summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--build.conf.sample4
-rwxr-xr-xbuild.sh23
-rwxr-xr-xbuild/scripts/build_freebsd.sh2
-rw-r--r--build/scripts/common.subr2
-rwxr-xr-xbuild/scripts/create_core_pkg.sh2
-rwxr-xr-xbuild/scripts/git_checkout.sh6
-rwxr-xr-xbuild/scripts/install_freebsd.sh2
-rwxr-xr-xsrc/etc/ecl.php2
-rw-r--r--src/etc/inc/auth.inc11
-rw-r--r--src/etc/inc/authgui.inc10
-rw-r--r--src/etc/inc/captiveportal.inc674
-rw-r--r--src/etc/inc/certs.inc72
-rw-r--r--src/etc/inc/config.console.inc294
-rw-r--r--src/etc/inc/config.gui.inc9
-rw-r--r--src/etc/inc/config.inc98
-rw-r--r--src/etc/inc/config.lib.inc141
-rw-r--r--src/etc/inc/crypt.inc2
-rw-r--r--src/etc/inc/dyndns.class128
-rw-r--r--src/etc/inc/easyrule.inc2
-rw-r--r--src/etc/inc/filter.inc41
-rw-r--r--src/etc/inc/filter_log.inc2
-rw-r--r--src/etc/inc/functions.inc2
-rw-r--r--src/etc/inc/globals.inc48
-rw-r--r--src/etc/inc/gmirror.inc2
-rw-r--r--src/etc/inc/gwlb.inc40
-rw-r--r--src/etc/inc/interfaces.inc150
-rw-r--r--src/etc/inc/ipsec.attributes.php2
-rwxr-xr-xsrc/etc/inc/ipsec.auth-user.php2
-rw-r--r--src/etc/inc/ipsec.inc8
-rw-r--r--src/etc/inc/itemid.inc2
-rw-r--r--src/etc/inc/led.inc2
-rw-r--r--src/etc/inc/meta.inc2
-rw-r--r--src/etc/inc/notices.inc2
-rw-r--r--src/etc/inc/openvpn.attributes.php2
-rw-r--r--src/etc/inc/openvpn.auth-user.php2
-rw-r--r--src/etc/inc/openvpn.inc6
-rw-r--r--src/etc/inc/openvpn.tls-verify.php2
-rw-r--r--src/etc/inc/pfsense-utils.inc422
-rw-r--r--src/etc/inc/pkg-utils.inc37
-rw-r--r--src/etc/inc/priv.defs.inc12
-rw-r--r--src/etc/inc/priv.inc16
-rw-r--r--src/etc/inc/rrd.inc6
-rw-r--r--src/etc/inc/service-utils.inc55
-rw-r--r--src/etc/inc/services.inc96
-rw-r--r--src/etc/inc/shaper.inc17
-rw-r--r--src/etc/inc/system.inc184
-rw-r--r--src/etc/inc/unbound.inc2
-rw-r--r--src/etc/inc/upgrade_config.inc78
-rw-r--r--src/etc/inc/util.inc265
-rw-r--r--src/etc/inc/voucher.inc185
-rw-r--r--src/etc/inc/vpn.inc319
-rw-r--r--src/etc/inc/vslb.inc2
-rw-r--r--src/etc/inc/wizardapp.inc2
-rw-r--r--src/etc/inc/xmlparse.inc10
-rw-r--r--src/etc/inc/xmlparse_attr.inc2
-rw-r--r--src/etc/inc/xmlreader.inc16
-rw-r--r--src/etc/inc/xmlrpc_client.inc163
-rw-r--r--src/etc/pfSense-ddb.conf15
-rw-r--r--src/etc/pfSense-devd.conf2
-rwxr-xr-xsrc/etc/pfSense-rc310
-rwxr-xr-xsrc/etc/pfSense-rc.shutdown12
-rw-r--r--src/etc/pfSense.obsoletedfiles9
-rw-r--r--src/etc/phpshellsessions/changepassword2
-rw-r--r--src/etc/phpshellsessions/disablecarp2
-rw-r--r--src/etc/phpshellsessions/disablecarpmaint2
-rw-r--r--src/etc/phpshellsessions/disabledhcpd2
-rw-r--r--src/etc/phpshellsessions/disablereferercheck2
-rw-r--r--src/etc/phpshellsessions/enableallowallwan2
-rw-r--r--src/etc/phpshellsessions/enablecarp2
-rw-r--r--src/etc/phpshellsessions/enablecarpmaint2
-rw-r--r--src/etc/phpshellsessions/enablesshd2
-rw-r--r--src/etc/phpshellsessions/externalconfiglocator2
-rw-r--r--src/etc/phpshellsessions/generateguicert2
-rw-r--r--src/etc/phpshellsessions/gitsync85
-rw-r--r--src/etc/phpshellsessions/installpkg2
-rw-r--r--src/etc/phpshellsessions/listpkg2
-rw-r--r--src/etc/phpshellsessions/removepkgconfig2
-rw-r--r--src/etc/phpshellsessions/removeshaper2
-rw-r--r--src/etc/phpshellsessions/resetwebgui2
-rw-r--r--src/etc/phpshellsessions/restartdhcpd2
-rw-r--r--src/etc/phpshellsessions/restartipsec2
-rw-r--r--src/etc/phpshellsessions/svc2
-rw-r--r--src/etc/phpshellsessions/uninstallpkg2
-rwxr-xr-xsrc/etc/rc.backup_aliastables.sh4
-rwxr-xr-xsrc/etc/rc.backup_dhcpleases.sh2
-rwxr-xr-xsrc/etc/rc.backup_rrd.sh2
-rwxr-xr-xsrc/etc/rc.banner14
-rwxr-xr-xsrc/etc/rc.bootup55
-rwxr-xr-xsrc/etc/rc.captiveportal_configure2
-rwxr-xr-xsrc/etc/rc.captiveportal_configure_mac4
-rwxr-xr-xsrc/etc/rc.carpbackup2
-rwxr-xr-xsrc/etc/rc.carpmaster2
-rwxr-xr-xsrc/etc/rc.cdrom54
-rwxr-xr-xsrc/etc/rc.conf_mount_ro6
-rwxr-xr-xsrc/etc/rc.conf_mount_rw6
-rwxr-xr-xsrc/etc/rc.disable_hdd_apm2
-rwxr-xr-xsrc/etc/rc.dumpon2
-rwxr-xr-xsrc/etc/rc.dyndns.update2
-rwxr-xr-xsrc/etc/rc.embedded2
-rwxr-xr-xsrc/etc/rc.expireaccounts2
-rwxr-xr-xsrc/etc/rc.filter_configure2
-rwxr-xr-xsrc/etc/rc.filter_configure_sync2
-rwxr-xr-xsrc/etc/rc.filter_synchronize195
-rwxr-xr-xsrc/etc/rc.gateway_alarm2
-rwxr-xr-xsrc/etc/rc.initial20
-rwxr-xr-xsrc/etc/rc.initial.defaults2
-rwxr-xr-xsrc/etc/rc.initial.halt2
-rwxr-xr-xsrc/etc/rc.initial.password2
-rwxr-xr-xsrc/etc/rc.initial.ping2
-rwxr-xr-xsrc/etc/rc.initial.reboot30
-rwxr-xr-xsrc/etc/rc.initial.setlanip2
-rwxr-xr-xsrc/etc/rc.initial.setports2
-rwxr-xr-xsrc/etc/rc.initial.store_config_to_removable_device2
-rwxr-xr-xsrc/etc/rc.initial.toggle_sshd4
-rwxr-xr-xsrc/etc/rc.interfaces_carp_configure2
-rwxr-xr-xsrc/etc/rc.interfaces_lan_configure2
-rwxr-xr-xsrc/etc/rc.interfaces_opt_configure2
-rwxr-xr-xsrc/etc/rc.interfaces_wan_configure2
-rwxr-xr-xsrc/etc/rc.kill_states2
-rwxr-xr-xsrc/etc/rc.linkup2
-rwxr-xr-xsrc/etc/rc.nanobsd_switch_boot_slice47
-rwxr-xr-xsrc/etc/rc.newipsecdns2
-rwxr-xr-xsrc/etc/rc.newroutedns2
-rwxr-xr-xsrc/etc/rc.newwanip2
-rwxr-xr-xsrc/etc/rc.newwanipv62
-rwxr-xr-xsrc/etc/rc.notify_message2
-rwxr-xr-xsrc/etc/rc.ntpdate2
-rwxr-xr-xsrc/etc/rc.openvpn2
-rwxr-xr-xsrc/etc/rc.packages2
-rwxr-xr-xsrc/etc/rc.php-fpm_restart4
-rwxr-xr-xsrc/etc/rc.php_ini_setup11
-rwxr-xr-xsrc/etc/rc.prunecaptiveportal2
-rwxr-xr-xsrc/etc/rc.reboot12
-rwxr-xr-xsrc/etc/rc.reload_all2
-rwxr-xr-xsrc/etc/rc.reload_interfaces2
-rwxr-xr-xsrc/etc/rc.resolv_conf_generate2
-rwxr-xr-xsrc/etc/rc.restart_webgui2
-rwxr-xr-xsrc/etc/rc.restore_config_backup4
-rwxr-xr-xsrc/etc/rc.savecore2
-rwxr-xr-xsrc/etc/rc.savevoucher2
-rwxr-xr-xsrc/etc/rc.start_packages2
-rwxr-xr-xsrc/etc/rc.stop_packages2
-rwxr-xr-xsrc/etc/rc.update_alias_url_data2
-rwxr-xr-xsrc/etc/rc.update_bogons.sh8
-rwxr-xr-xsrc/etc/rc.update_urltables2
-rw-r--r--src/etc/skel/dot.profile2
-rw-r--r--src/etc/skel/dot.shrc2
-rw-r--r--src/etc/skel/dot.tcshrc4
-rwxr-xr-xsrc/etc/sshd30
-rw-r--r--src/etc/version2
-rwxr-xr-xsrc/usr/local/bin/3gstats.php2
-rwxr-xr-xsrc/usr/local/bin/beep.sh2
-rw-r--r--src/usr/local/bin/captiveportal_gather_stats.php2
-rw-r--r--src/usr/local/bin/dhcpd_gather_stats.php2
-rwxr-xr-xsrc/usr/local/bin/easyrule2
-rwxr-xr-xsrc/usr/local/bin/filterparser.php2
-rwxr-xr-xsrc/usr/local/bin/mail.php2
-rwxr-xr-xsrc/usr/local/bin/ping_hosts.sh2
-rwxr-xr-xsrc/usr/local/bin/runmsntp.sh2
-rw-r--r--src/usr/local/captiveportal/index.php2
-rwxr-xr-xsrc/usr/local/sbin/gmirror_status_check.php2
-rwxr-xr-xsrc/usr/local/sbin/openvpn.attributes.sh2
-rwxr-xr-xsrc/usr/local/sbin/ovpn-linkdown3
-rwxr-xr-xsrc/usr/local/sbin/ovpn-linkup15
-rwxr-xr-xsrc/usr/local/sbin/ovpn_auth_verify2
-rwxr-xr-xsrc/usr/local/sbin/pfSense-upgrade930
-rwxr-xr-xsrc/usr/local/sbin/pfSsh.php4
-rwxr-xr-xsrc/usr/local/sbin/ppp-ipv62
-rwxr-xr-xsrc/usr/local/sbin/ppp-linkdown2
-rwxr-xr-xsrc/usr/local/sbin/ppp-linkup14
-rwxr-xr-xsrc/usr/local/sbin/ppp-log-uptime.sh4
-rwxr-xr-xsrc/usr/local/sbin/ppp-uptime.sh2
-rw-r--r--src/usr/local/sbin/prefixes.php5
-rwxr-xr-xsrc/usr/local/sbin/read_global_var2
-rwxr-xr-xsrc/usr/local/sbin/read_xml_tag.sh2
-rwxr-xr-xsrc/usr/local/sbin/show_filter_reload_status.php2
-rwxr-xr-xsrc/usr/local/sbin/vpn-linkdown2
-rwxr-xr-xsrc/usr/local/sbin/vpn-linkup14
-rw-r--r--src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot8989
-rw-r--r--src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po2
-rw-r--r--src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po2
-rwxr-xr-xsrc/usr/local/share/pfSense/post_upgrade_command74
-rwxr-xr-xsrc/usr/local/share/pfSense/post_upgrade_command.php50
-rw-r--r--src/usr/local/share/pfSense/pre_upgrade_command159
-rw-r--r--src/usr/local/www/bandwidth_by_ip.php2
-rw-r--r--src/usr/local/www/classes/Form.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Button.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Checkbox.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Element.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Group.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Input.class.php2
-rw-r--r--src/usr/local/www/classes/Form/IpAddress.class.php8
-rw-r--r--src/usr/local/www/classes/Form/MultiCheckbox.class.php2
-rw-r--r--src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Section.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Select.class.php2
-rw-r--r--src/usr/local/www/classes/Form/StaticText.class.php2
-rw-r--r--src/usr/local/www/classes/Form/Textarea.class.php2
-rw-r--r--src/usr/local/www/classes/Modal.class.php2
-rw-r--r--src/usr/local/www/classes/autoload.inc.php2
-rw-r--r--src/usr/local/www/crash_reporter.php2
-rw-r--r--src/usr/local/www/css/Compact-RED.css20
-rw-r--r--src/usr/local/www/css/pfSense-BETA.css6
-rw-r--r--src/usr/local/www/css/pfSense-dark-BETA.css6
-rw-r--r--src/usr/local/www/css/pfSense-dark.css22
-rw-r--r--src/usr/local/www/css/pfSense.css12
-rw-r--r--src/usr/local/www/diag_arp.php28
-rw-r--r--src/usr/local/www/diag_authentication.php2
-rw-r--r--src/usr/local/www/diag_backup.php55
-rw-r--r--src/usr/local/www/diag_command.php4
-rw-r--r--src/usr/local/www/diag_confbak.php4
-rw-r--r--src/usr/local/www/diag_defaults.php2
-rw-r--r--src/usr/local/www/diag_dns.php29
-rw-r--r--src/usr/local/www/diag_dump_states.php7
-rw-r--r--src/usr/local/www/diag_dump_states_sources.php2
-rw-r--r--src/usr/local/www/diag_edit.php4
-rw-r--r--src/usr/local/www/diag_gmirror.php2
-rw-r--r--src/usr/local/www/diag_halt.php2
-rw-r--r--src/usr/local/www/diag_limiter_info.php2
-rw-r--r--src/usr/local/www/diag_nanobsd.php252
-rw-r--r--src/usr/local/www/diag_ndp.php2
-rw-r--r--src/usr/local/www/diag_packet_capture.php4
-rw-r--r--src/usr/local/www/diag_pf_info.php2
-rw-r--r--src/usr/local/www/diag_pftop.php4
-rw-r--r--src/usr/local/www/diag_ping.php2
-rw-r--r--src/usr/local/www/diag_reboot.php2
-rw-r--r--src/usr/local/www/diag_resetstate.php2
-rw-r--r--src/usr/local/www/diag_routes.php2
-rw-r--r--src/usr/local/www/diag_smart.php106
-rw-r--r--src/usr/local/www/diag_sockets.php2
-rw-r--r--src/usr/local/www/diag_states_summary.php2
-rw-r--r--src/usr/local/www/diag_system_activity.php2
-rw-r--r--src/usr/local/www/diag_tables.php2
-rw-r--r--src/usr/local/www/diag_testport.php2
-rw-r--r--src/usr/local/www/diag_traceroute.php2
-rw-r--r--src/usr/local/www/easyrule.php2
-rw-r--r--src/usr/local/www/firewall_aliases.php2
-rw-r--r--src/usr/local/www/firewall_aliases_edit.php5
-rw-r--r--src/usr/local/www/firewall_aliases_import.php2
-rw-r--r--src/usr/local/www/firewall_nat.php16
-rw-r--r--src/usr/local/www/firewall_nat_1to1.php2
-rw-r--r--src/usr/local/www/firewall_nat_1to1_edit.php19
-rw-r--r--src/usr/local/www/firewall_nat_edit.php7
-rw-r--r--src/usr/local/www/firewall_nat_npt.php2
-rw-r--r--src/usr/local/www/firewall_nat_npt_edit.php2
-rw-r--r--src/usr/local/www/firewall_nat_out.php8
-rw-r--r--src/usr/local/www/firewall_nat_out_edit.php88
-rw-r--r--src/usr/local/www/firewall_rules.php31
-rw-r--r--src/usr/local/www/firewall_rules_edit.php93
-rw-r--r--src/usr/local/www/firewall_schedule.php2
-rw-r--r--src/usr/local/www/firewall_schedule_edit.php2
-rw-r--r--src/usr/local/www/firewall_shaper.php2
-rw-r--r--src/usr/local/www/firewall_shaper_queues.php2
-rw-r--r--src/usr/local/www/firewall_shaper_vinterface.php2
-rw-r--r--src/usr/local/www/firewall_shaper_wizards.php2
-rw-r--r--src/usr/local/www/firewall_virtual_ip.php2
-rw-r--r--src/usr/local/www/firewall_virtual_ip_edit.php17
-rw-r--r--src/usr/local/www/foot.inc2
-rw-r--r--src/usr/local/www/getserviceproviders.php2
-rw-r--r--src/usr/local/www/getstats.php2
-rw-r--r--src/usr/local/www/graph.php2
-rw-r--r--src/usr/local/www/graph_cpu.php2
-rw-r--r--src/usr/local/www/guiconfig.inc3
-rw-r--r--src/usr/local/www/head.inc29
-rw-r--r--src/usr/local/www/help.php3
-rw-r--r--src/usr/local/www/ifstats.php2
-rw-r--r--src/usr/local/www/includes/functions.inc.php2
-rw-r--r--src/usr/local/www/index.php21
-rw-r--r--src/usr/local/www/interfaces.php36
-rw-r--r--src/usr/local/www/interfaces_assign.php10
-rw-r--r--src/usr/local/www/interfaces_bridge.php2
-rw-r--r--src/usr/local/www/interfaces_bridge_edit.php2
-rw-r--r--src/usr/local/www/interfaces_gif.php2
-rw-r--r--src/usr/local/www/interfaces_gif_edit.php2
-rw-r--r--src/usr/local/www/interfaces_gre.php2
-rw-r--r--src/usr/local/www/interfaces_gre_edit.php6
-rw-r--r--src/usr/local/www/interfaces_groups.php2
-rw-r--r--src/usr/local/www/interfaces_groups_edit.php2
-rw-r--r--src/usr/local/www/interfaces_lagg.php2
-rw-r--r--src/usr/local/www/interfaces_lagg_edit.php2
-rw-r--r--src/usr/local/www/interfaces_ppps.php2
-rw-r--r--src/usr/local/www/interfaces_ppps_edit.php2
-rw-r--r--src/usr/local/www/interfaces_qinq.php2
-rw-r--r--src/usr/local/www/interfaces_qinq_edit.php2
-rw-r--r--src/usr/local/www/interfaces_vlan.php18
-rw-r--r--src/usr/local/www/interfaces_vlan_edit.php2
-rw-r--r--src/usr/local/www/interfaces_wireless.php2
-rw-r--r--src/usr/local/www/interfaces_wireless_edit.php14
-rw-r--r--src/usr/local/www/js/pfSense.js7
-rw-r--r--src/usr/local/www/js/pfSenseHelpers.js15
-rw-r--r--src/usr/local/www/js/traffic-graphs.js4
-rw-r--r--src/usr/local/www/license.php2
-rw-r--r--src/usr/local/www/load_balancer_monitor.php2
-rw-r--r--src/usr/local/www/load_balancer_monitor_edit.php2
-rw-r--r--src/usr/local/www/load_balancer_pool.php2
-rw-r--r--src/usr/local/www/load_balancer_pool_edit.php2
-rw-r--r--src/usr/local/www/load_balancer_setting.php2
-rw-r--r--src/usr/local/www/load_balancer_virtual_server.php2
-rw-r--r--src/usr/local/www/load_balancer_virtual_server_edit.php2
-rw-r--r--src/usr/local/www/pkg.php2
-rw-r--r--src/usr/local/www/pkg_edit.php2
-rw-r--r--src/usr/local/www/pkg_mgr.php2
-rw-r--r--src/usr/local/www/pkg_mgr_install.php41
-rw-r--r--src/usr/local/www/pkg_mgr_installed.php2
-rw-r--r--src/usr/local/www/restart_httpd.php54
-rw-r--r--src/usr/local/www/services_captiveportal.php18
-rw-r--r--src/usr/local/www/services_captiveportal_filemanager.php6
-rw-r--r--src/usr/local/www/services_captiveportal_hostname.php21
-rw-r--r--src/usr/local/www/services_captiveportal_hostname_edit.php6
-rw-r--r--src/usr/local/www/services_captiveportal_ip.php19
-rw-r--r--src/usr/local/www/services_captiveportal_ip_edit.php27
-rw-r--r--src/usr/local/www/services_captiveportal_mac.php12
-rw-r--r--src/usr/local/www/services_captiveportal_mac_edit.php6
-rw-r--r--src/usr/local/www/services_captiveportal_vouchers.php65
-rw-r--r--src/usr/local/www/services_captiveportal_vouchers_edit.php4
-rw-r--r--src/usr/local/www/services_captiveportal_zones.php4
-rw-r--r--src/usr/local/www/services_captiveportal_zones_edit.php4
-rw-r--r--src/usr/local/www/services_checkip.php15
-rw-r--r--src/usr/local/www/services_checkip_edit.php2
-rw-r--r--src/usr/local/www/services_dhcp.php61
-rw-r--r--src/usr/local/www/services_dhcp_edit.php52
-rw-r--r--src/usr/local/www/services_dhcp_relay.php2
-rw-r--r--src/usr/local/www/services_dhcpv6.php31
-rw-r--r--src/usr/local/www/services_dhcpv6_edit.php2
-rw-r--r--src/usr/local/www/services_dhcpv6_relay.php2
-rw-r--r--src/usr/local/www/services_dnsmasq.php57
-rw-r--r--src/usr/local/www/services_dnsmasq_domainoverride_edit.php2
-rw-r--r--src/usr/local/www/services_dnsmasq_edit.php18
-rw-r--r--src/usr/local/www/services_dyndns.php7
-rw-r--r--src/usr/local/www/services_dyndns_edit.php12
-rw-r--r--src/usr/local/www/services_igmpproxy.php2
-rw-r--r--src/usr/local/www/services_igmpproxy_edit.php4
-rw-r--r--src/usr/local/www/services_ntpd.php22
-rw-r--r--src/usr/local/www/services_ntpd_acls.php2
-rw-r--r--src/usr/local/www/services_ntpd_gps.php2
-rw-r--r--src/usr/local/www/services_ntpd_pps.php2
-rw-r--r--src/usr/local/www/services_pppoe.php2
-rw-r--r--src/usr/local/www/services_pppoe_edit.php2
-rw-r--r--src/usr/local/www/services_rfc2136.php2
-rw-r--r--src/usr/local/www/services_rfc2136_edit.php2
-rw-r--r--src/usr/local/www/services_router_advertisements.php9
-rw-r--r--src/usr/local/www/services_snmp.php48
-rw-r--r--src/usr/local/www/services_unbound.php6
-rw-r--r--src/usr/local/www/services_unbound_acls.php2
-rw-r--r--src/usr/local/www/services_unbound_advanced.php2
-rw-r--r--src/usr/local/www/services_unbound_domainoverride_edit.php4
-rw-r--r--src/usr/local/www/services_unbound_host_edit.php2
-rw-r--r--src/usr/local/www/services_wol.php2
-rw-r--r--src/usr/local/www/services_wol_edit.php2
-rw-r--r--src/usr/local/www/shortcuts.inc6
-rw-r--r--src/usr/local/www/shortcuts/pkg_upnp.inc2
-rw-r--r--src/usr/local/www/stats.php2
-rw-r--r--src/usr/local/www/status.php6
-rw-r--r--src/usr/local/www/status_captiveportal.php4
-rw-r--r--src/usr/local/www/status_captiveportal_expire.php2
-rw-r--r--src/usr/local/www/status_captiveportal_test.php2
-rw-r--r--src/usr/local/www/status_captiveportal_voucher_rolls.php2
-rw-r--r--src/usr/local/www/status_captiveportal_vouchers.php2
-rw-r--r--src/usr/local/www/status_carp.php2
-rw-r--r--src/usr/local/www/status_dhcp_leases.php2
-rw-r--r--src/usr/local/www/status_dhcpv6_leases.php15
-rw-r--r--src/usr/local/www/status_filter_reload.php42
-rw-r--r--src/usr/local/www/status_gateway_groups.php2
-rw-r--r--src/usr/local/www/status_gateways.php2
-rw-r--r--src/usr/local/www/status_graph.php2
-rw-r--r--src/usr/local/www/status_graph_cpu.php2
-rw-r--r--src/usr/local/www/status_interfaces.php4
-rw-r--r--src/usr/local/www/status_ipsec.php2
-rw-r--r--src/usr/local/www/status_ipsec_leases.php2
-rw-r--r--src/usr/local/www/status_ipsec_sad.php2
-rw-r--r--src/usr/local/www/status_ipsec_spd.php2
-rw-r--r--src/usr/local/www/status_lb_pool.php2
-rw-r--r--src/usr/local/www/status_lb_vs.php2
-rw-r--r--src/usr/local/www/status_logs.php2
-rw-r--r--src/usr/local/www/status_logs_common.inc2
-rw-r--r--src/usr/local/www/status_logs_filter.php2
-rw-r--r--src/usr/local/www/status_logs_filter_dynamic.php2
-rw-r--r--src/usr/local/www/status_logs_filter_summary.php2
-rw-r--r--src/usr/local/www/status_logs_settings.php56
-rw-r--r--src/usr/local/www/status_logs_vpn.php2
-rw-r--r--src/usr/local/www/status_ntpd.php38
-rw-r--r--src/usr/local/www/status_openvpn.php10
-rw-r--r--src/usr/local/www/status_pkglogs.php6
-rw-r--r--src/usr/local/www/status_queues.php2
-rw-r--r--src/usr/local/www/status_services.php14
-rw-r--r--src/usr/local/www/status_upnp.php2
-rw-r--r--src/usr/local/www/status_wireless.php2
-rw-r--r--src/usr/local/www/system.php12
-rw-r--r--src/usr/local/www/system_advanced_admin.php4
-rw-r--r--src/usr/local/www/system_advanced_firewall.php2
-rw-r--r--src/usr/local/www/system_advanced_misc.php31
-rw-r--r--src/usr/local/www/system_advanced_network.php2
-rw-r--r--src/usr/local/www/system_advanced_notifications.php2
-rw-r--r--src/usr/local/www/system_advanced_sysctl.php2
-rw-r--r--src/usr/local/www/system_authservers.php14
-rw-r--r--src/usr/local/www/system_camanager.php30
-rw-r--r--src/usr/local/www/system_certmanager.php7
-rw-r--r--src/usr/local/www/system_crlmanager.php4
-rw-r--r--src/usr/local/www/system_gateway_groups.php2
-rw-r--r--src/usr/local/www/system_gateway_groups_edit.php2
-rw-r--r--src/usr/local/www/system_gateways.php18
-rw-r--r--src/usr/local/www/system_gateways_edit.php23
-rw-r--r--src/usr/local/www/system_groupmanager.php8
-rw-r--r--src/usr/local/www/system_groupmanager_addprivs.php2
-rw-r--r--src/usr/local/www/system_hasync.php2
-rw-r--r--src/usr/local/www/system_routes.php2
-rw-r--r--src/usr/local/www/system_routes_edit.php2
-rw-r--r--src/usr/local/www/system_update_settings.php9
-rw-r--r--src/usr/local/www/system_user_settings.php2
-rw-r--r--src/usr/local/www/system_usermanager.php10
-rw-r--r--src/usr/local/www/system_usermanager_addprivs.php5
-rw-r--r--src/usr/local/www/system_usermanager_passwordmg.php2
-rw-r--r--src/usr/local/www/system_usermanager_settings.php6
-rw-r--r--src/usr/local/www/uploadconfig.php2
-rw-r--r--src/usr/local/www/vendor/filebrowser/browser.php2
-rw-r--r--src/usr/local/www/vpn_ipsec.php2
-rw-r--r--src/usr/local/www/vpn_ipsec_keys.php2
-rw-r--r--src/usr/local/www/vpn_ipsec_keys_edit.php2
-rw-r--r--src/usr/local/www/vpn_ipsec_mobile.php2
-rw-r--r--src/usr/local/www/vpn_ipsec_phase1.php12
-rw-r--r--src/usr/local/www/vpn_ipsec_phase2.php11
-rw-r--r--src/usr/local/www/vpn_ipsec_settings.php2
-rw-r--r--src/usr/local/www/vpn_l2tp.php2
-rw-r--r--src/usr/local/www/vpn_l2tp_users.php2
-rw-r--r--src/usr/local/www/vpn_l2tp_users_edit.php2
-rw-r--r--src/usr/local/www/vpn_openvpn_client.php2
-rw-r--r--src/usr/local/www/vpn_openvpn_csc.php2
-rw-r--r--src/usr/local/www/vpn_openvpn_server.php8
-rw-r--r--src/usr/local/www/widgets/include/captiveportal.inc2
-rw-r--r--src/usr/local/www/widgets/include/carp_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/dyn_dns_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/gateways.inc2
-rw-r--r--src/usr/local/www/widgets/include/gmirror_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/installed_packages.inc2
-rw-r--r--src/usr/local/www/widgets/include/interface_statistics.inc2
-rw-r--r--src/usr/local/www/widgets/include/interfaces.inc2
-rw-r--r--src/usr/local/www/widgets/include/ipsec.inc2
-rw-r--r--src/usr/local/www/widgets/include/load_balancer.inc2
-rw-r--r--src/usr/local/www/widgets/include/log.inc2
-rw-r--r--src/usr/local/www/widgets/include/ntp_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/openvpn.inc2
-rw-r--r--src/usr/local/www/widgets/include/services_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/smart_status.inc2
-rw-r--r--src/usr/local/www/widgets/include/thermal_sensors.inc2
-rw-r--r--src/usr/local/www/widgets/include/traffic_graph.inc2
-rw-r--r--src/usr/local/www/widgets/include/wake_on_lan.inc2
-rw-r--r--src/usr/local/www/widgets/javascript/ipsec.js2
-rw-r--r--src/usr/local/www/widgets/javascript/thermal_sensors.js2
-rw-r--r--src/usr/local/www/widgets/javascript/traffic_graph.js2
-rw-r--r--src/usr/local/www/widgets/widgets/captive_portal_status.widget.php4
-rw-r--r--src/usr/local/www/widgets/widgets/carp_status.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php33
-rw-r--r--src/usr/local/www/widgets/widgets/gateways.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/gmirror_status.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/installed_packages.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/interface_statistics.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/interfaces.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/ipsec.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/load_balancer_status.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/log.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/ntp_status.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/openvpn.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/picture.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/rss.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/services_status.widget.php4
-rw-r--r--src/usr/local/www/widgets/widgets/smart_status.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/system_information.widget.php50
-rw-r--r--src/usr/local/www/widgets/widgets/thermal_sensors.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/traffic_graphs.widget.php2
-rw-r--r--src/usr/local/www/widgets/widgets/wake_on_lan.widget.php2
-rw-r--r--src/usr/local/www/wizard.php2
-rw-r--r--src/usr/local/www/wizards/openvpn_wizard.inc4
-rw-r--r--src/usr/local/www/wizards/openvpn_wizard.xml54
-rw-r--r--src/usr/local/www/wizards/setup_wizard.xml63
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc213
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml2
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc80
-rw-r--r--src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml2
-rw-r--r--src/usr/local/www/xmlrpc.php79
-rwxr-xr-xtools/build_snapshots.sh4
-rw-r--r--tools/builder_common.sh456
-rw-r--r--tools/builder_defaults.sh55
-rw-r--r--tools/conf/pfPorts/make.conf2
-rw-r--r--tools/conf/pfPorts/poudriere_bulk3
-rwxr-xr-xtools/scripts/generate-privdefs.php2
-rwxr-xr-xtools/scripts/update_pot.sh2
-rw-r--r--tools/templates/core_pkg/base-nanobsd/exclude_files31
-rw-r--r--tools/templates/core_pkg/base-nanobsd/metadir/+DEINSTALL21
-rw-r--r--tools/templates/core_pkg/base-nanobsd/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/base-nanobsd/metadir/+INSTALL59
-rw-r--r--tools/templates/core_pkg/base-nanobsd/metadir/+MANIFEST16
-rw-r--r--tools/templates/core_pkg/base-nanobsd/pkg-plist2
-rw-r--r--tools/templates/core_pkg/base/exclude_files1
-rw-r--r--tools/templates/core_pkg/base/metadir/+INSTALL2
-rw-r--r--tools/templates/core_pkg/base/metadir/+MANIFEST1
-rw-r--r--tools/templates/core_pkg/kernel/metadir/+DEINSTALL3
-rw-r--r--tools/templates/core_pkg/repo/metadir/+DESC3
-rw-r--r--tools/templates/core_pkg/repo/metadir/+INSTALL22
-rw-r--r--tools/templates/core_pkg/repo/metadir/+MANIFEST15
-rw-r--r--tools/templates/pkg_repos/pfSense-repo-devel.conf17
-rw-r--r--tools/templates/pkg_repos/pfSense-repo-devel.descr1
-rw-r--r--tools/templates/pkg_repos/pfSense-repo.conf17
-rw-r--r--tools/templates/pkg_repos/pfSense-repo.descr1
504 files changed, 8102 insertions, 10748 deletions
diff --git a/README.md b/README.md
index ac858d7..2608677 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ pfSense software includes a web interface for the configuration of all included
pfSense started in 2004 as a fork of the [m0n0wall](http://m0n0.ch/wall/index.php "m0n0wall project homepage") Project (which ended 2015/02/15), though has diverged significantly since.
-pfSense is Copyright 2004-2015 [Electric Sheep Fencing LLC](https://pfsense.org/license "License Information") and published under an open source license.
+pfSense is Copyright 2004-2016 [Rubicon Communications, LLC (Netgate)](https://pfsense.org/license "License Information") and published under an open source license.
Read more at [https://pfsense.org/](https://pfsense.org/ "The pfSense homepage") and support the team by buying a Gold Membership Subscription, bundled hardware appliances or commercial support.
## Contribute
diff --git a/build.conf.sample b/build.conf.sample
index ad0ae18..2b9eb9a 100644
--- a/build.conf.sample
+++ b/build.conf.sample
@@ -2,7 +2,7 @@
# build.conf.sample
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,7 +17,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Name of the product you are building, beware that only ESF is legally
+# Name of the product you are building, beware that only Netgate is legally
# authorized to build and distribute pfSense® software
export PRODUCT_NAME="nonSense"
export PRODUCT_URL="https://PRODUCT_URL/"
diff --git a/build.sh b/build.sh
index fc5f200..fecc39f 100755
--- a/build.sh
+++ b/build.sh
@@ -3,7 +3,7 @@
# build.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,11 +20,10 @@
set +e
usage() {
- echo "Usage $0 [options] [ iso | nanobsd | ova | nanobsd-vga | memstick | memstickserial | memstickadi | all | none ]"
- echo " all = iso nanobsd nanobsd-vga memstick memstickserial memstickadi"
+ echo "Usage $0 [options] [ iso | ova | memstick | memstickserial | memstickadi | all | none ]"
+ echo " all = iso memstick memstickserial memstickadi"
echo " none = upgrade only pkg repo"
echo " [ options ]: "
- echo " --flash-size|-f size(s) - a list of flash sizes to build with nanobsd i.e. '2g 4g'. Default: 2g"
echo " --no-buildworld|-c - Will set NO_BUILDWORLD NO_BUILDKERNEL to not build kernel and world"
echo " --no-cleanobjdir|-d - Will not clean FreeBSD object built dir to allow restarting a build with NO_CLEAN"
echo " --resume-image-build|-r - Includes -c -d and also will just move directly to image creation using pre-staged data"
@@ -70,15 +69,6 @@ while test "$1" != ""; do
--no-cleanobjdir|-d)
export NO_CLEAN_FREEBSD_OBJ=YES
;;
- --flash-size|-f)
- shift
- if [ $# -eq 0 ]; then
- echo "--flash-size needs extra parameter."
- echo
- usage
- fi
- export FLASH_SIZE="${1}"
- ;;
--resume-image-build|-r)
export NO_BUILDWORLD=YES
export NO_BUILDKERNEL=YES
@@ -153,7 +143,7 @@ while test "$1" != ""; do
--do-not-upload|-u)
export DO_NOT_UPLOAD=1
;;
- all|none|*iso*|*ova*|*memstick*|*memstickserial*|*memstickadi*|*nanobsd*|*nanobsd-vga*)
+ all|none|*iso*|*ova*|*memstick*|*memstickserial*|*memstickadi*)
BUILDACTION="images"
IMAGETYPE="${1}"
;;
@@ -302,7 +292,7 @@ fi
if [ "$IMAGETYPE" = "none" ]; then
_IMAGESTOBUILD=""
elif [ "$IMAGETYPE" = "all" ]; then
- _IMAGESTOBUILD="iso nanobsd nanobsd-vga memstick memstickserial"
+ _IMAGESTOBUILD="iso memstick memstickserial"
if [ "${TARGET}" = "amd64" ]; then
_IMAGESTOBUILD="${_IMAGESTOBUILD} memstickadi"
if [ -n "${_IS_RELEASE}" ]; then
@@ -389,9 +379,6 @@ for _IMGTOBUILD in $_IMAGESTOBUILD; do
memstickadi)
create_memstick_adi_image
;;
- nanobsd|nanobsd-vga)
- create_nanobsd_diskimage ${_IMGTOBUILD} "${FLASH_SIZE}"
- ;;
ova)
old_custom_package_list="${custom_package_list}"
export custom_package_list="${custom_package_list} ${PRODUCT_NAME}-pkg-Open-VM-Tools"
diff --git a/build/scripts/build_freebsd.sh b/build/scripts/build_freebsd.sh
index 306db0d..4c67a05 100755
--- a/build/scripts/build_freebsd.sh
+++ b/build/scripts/build_freebsd.sh
@@ -3,7 +3,7 @@
# build_freebsd.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/build/scripts/common.subr b/build/scripts/common.subr
index 3ceb468..ce8abb2 100644
--- a/build/scripts/common.subr
+++ b/build/scripts/common.subr
@@ -4,7 +4,7 @@
# common.subr
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/build/scripts/create_core_pkg.sh b/build/scripts/create_core_pkg.sh
index 40128a1..9b08d05 100755
--- a/build/scripts/create_core_pkg.sh
+++ b/build/scripts/create_core_pkg.sh
@@ -3,7 +3,7 @@
# create_core_pkg.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/build/scripts/git_checkout.sh b/build/scripts/git_checkout.sh
index 10c43ce..8612c30 100755
--- a/build/scripts/git_checkout.sh
+++ b/build/scripts/git_checkout.sh
@@ -3,7 +3,7 @@
# git_checkout.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -81,8 +81,8 @@ if [ -d "${destdir}/.git" ]; then
current_url=$(${git} -C ${destdir} config --get remote.origin.url)
[ "${current_url}" != "${repo_url}" ] \
- && err "destination directory contains a different git " \
- "repository"
+ && err \
+ "destination directory contains a different git repository"
run "Removing local changes from git repo ${repo_url} (${branch})" \
"${git} -C ${destdir} reset -q --hard"
diff --git a/build/scripts/install_freebsd.sh b/build/scripts/install_freebsd.sh
index dc1c558..5a03e42 100755
--- a/build/scripts/install_freebsd.sh
+++ b/build/scripts/install_freebsd.sh
@@ -3,7 +3,7 @@
# install_freebsd.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/ecl.php b/src/etc/ecl.php
index b0a1507..20c702f 100755
--- a/src/etc/ecl.php
+++ b/src/etc/ecl.php
@@ -2,7 +2,7 @@
/*
* ecl.php
*
- * Copyright (c) 2010-2015 Electric Sheep Fencing, LLC. All rights reserved.
+ * Copyright (c) 2010-2015 Rubicon Communications, LLC (Netgate). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/etc/inc/auth.inc b/src/etc/inc/auth.inc
index eb18765..04af52f 100644
--- a/src/etc/inc/auth.inc
+++ b/src/etc/inc/auth.inc
@@ -6,7 +6,7 @@
* Copyright (c) 2003-2006 Manuel Kasper <mk@neon1.net>
* Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com>
* Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com>
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -370,7 +370,6 @@ function local_backed($username, $passwd) {
function local_sync_accounts() {
global $debug, $config;
- conf_mount_rw();
/* remove local users to avoid uid conflicts */
$fd = popen("/usr/sbin/pw usershow -a", "r");
@@ -444,7 +443,6 @@ function local_sync_accounts() {
}
}
- conf_mount_ro();
}
@@ -456,7 +454,6 @@ function local_user_set(& $user) {
return;
}
- conf_mount_rw();
$home_base = "/home/";
$user_uid = $user['uid'];
@@ -578,7 +575,6 @@ function local_user_set(& $user) {
$un = $lock_account ? "" : "un";
exec("/usr/sbin/pw {$un}lock " . escapeshellarg($user_name) . " -q 2>/dev/null");
- conf_mount_ro();
}
function local_user_del($user) {
@@ -1668,11 +1664,12 @@ function session_auth() {
$attributes = array();
if (isset($_POST['login']) && !empty($_POST['usernamefld']) && !empty($_POST['passwordfld'])) {
$authcfg = auth_get_authserver($config['system']['webgui']['authmode']);
- if (authenticate_user($_POST['usernamefld'], $_POST['passwordfld'], $authcfg, $attributes) ||
- authenticate_user($_POST['usernamefld'], $_POST['passwordfld'])) {
+ $remoteauth = authenticate_user($_POST['usernamefld'], $_POST['passwordfld'], $authcfg, $attributes);
+ if ($remoteauth || authenticate_user($_POST['usernamefld'], $_POST['passwordfld'])) {
// Generate a new id to avoid session fixation
session_regenerate_id();
$_SESSION['Logged_In'] = "True";
+ $_SESSION['remoteauth'] = $remoteauth;
$_SESSION['Username'] = $_POST['usernamefld'];
$_SESSION['user_radius_attributes'] = $attributes;
$_SESSION['last_access'] = time();
diff --git a/src/etc/inc/authgui.inc b/src/etc/inc/authgui.inc
index 20b5581..a8189c4 100644
--- a/src/etc/inc/authgui.inc
+++ b/src/etc/inc/authgui.inc
@@ -6,7 +6,7 @@
* Copyright (c) 2003-2006 Manuel Kasper <mk@neon1.net>
* Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com>
* Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com>
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -220,6 +220,12 @@ if (isset($user_settings['webgui']['webguicss'])) {
}
}
+if (isset($config['system']['webgui']['loginshowhost'])) {
+$hoststr = sprintf(gettext(" on %s.%s"), htmlspecialchars($config['system']['hostname']), htmlspecialchars($config['system']['domain']));
+} else {
+ $hoststr = "";
+}
+
?>
<!DOCTYPE html>
<html lang="en">
@@ -248,7 +254,7 @@ if (isset($user_settings['webgui']['webguicss'])) {
<div class="panel panel-default">
<div class="panel-heading">
- <h2 class="panel-title"><?=sprintf(gettext("Login to %s"), $g['product_name'])?></h2>
+ <h2 class="panel-title"><?=sprintf(gettext("Login to %s %s"), $g['product_name'], $hoststr)?></h2>
</div>
<div class="panel-body">
diff --git a/src/etc/inc/captiveportal.inc b/src/etc/inc/captiveportal.inc
index a482b12..208c7c8 100644
--- a/src/etc/inc/captiveportal.inc
+++ b/src/etc/inc/captiveportal.inc
@@ -3,7 +3,7 @@
* captiveportal.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -139,17 +139,26 @@ function captiveportal_load_modules() {
mwexec("/sbin/kldload ipfw");
/* make sure ipfw is not on pfil hooks */
set_sysctl(array(
- "net.inet.ip.pfil.inbound" => "pf", "net.inet6.ip6.pfil.inbound" => "pf",
- "net.inet.ip.pfil.outbound" => "pf", "net.inet6.ip6.pfil.outbound" => "pf")
- );
+ "net.inet.ip.pfil.inbound" => "pf",
+ "net.inet6.ip6.pfil.inbound" => "pf",
+ "net.inet.ip.pfil.outbound" => "pf",
+ "net.inet6.ip6.pfil.outbound" => "pf"
+ ));
}
/* Activate layer2 filtering */
- set_sysctl(array("net.link.ether.ipfw" => "1", "net.inet.ip.fw.one_pass" => "1"));
+ set_sysctl(array(
+ "net.link.ether.ipfw" => "1",
+ "net.inet.ip.fw.one_pass" => "1",
+ "net.inet.ip.fw.tables_max" => "65534"
+ ));
/* Always load dummynet now that even allowed ip and mac passthrough use it. */
if (!is_module_loaded("dummynet.ko")) {
mwexec("/sbin/kldload dummynet");
- set_sysctl(array("net.inet.ip.dummynet.io_fast" => "1", "net.inet.ip.dummynet.hash_size" => "256"));
+ set_sysctl(array(
+ "net.inet.ip.dummynet.io_fast" => "1",
+ "net.inet.ip.dummynet.hash_size" => "256"
+ ));
}
unmute_kernel_msgs();
}
@@ -340,6 +349,8 @@ EOD;
captiveportal_radius_stop_all();
+ captiveportal_filterdns_configure();
+
/* send Accounting-Off to server */
if (!platform_booting()) {
captiveportal_send_server_accounting(true);
@@ -352,7 +363,7 @@ EOD;
/* Release allocated pipes for this zone */
captiveportal_free_dnrules();
- mwexec("/sbin/ipfw zone {$cpzoneid} destroy", true);
+ captiveportal_delete_rules();
if (empty($config['captiveportal'])) {
set_single_sysctl("net.link.ether.ipfw", "0");
@@ -461,6 +472,57 @@ function captiveportal_init_rules_byinterface($interface) {
}
}
+/* Create basic rules used by all zones */
+function captiveportal_init_general_rules($flush = false) {
+ global $g;
+
+ $flush_rule = '';
+ if ($flush) {
+ $flush_rule = 'flush';
+ }
+
+ /* Already loaded */
+ if (!$flush && (mwexec("/sbin/ipfw list 1000", true) == 0)) {
+ return;
+ }
+
+ $cprules = <<<EOD
+{$flush_rule}
+# Table with interfaces that have CP enabled
+table cp_ifaces create type iface valtype skipto
+
+# Redirect each CP interface to its specific rule
+add 1000 skipto tablearg all from any to any via table(cp_ifaces)
+
+# This interface has no cp zone configured
+add 1100 allow all from any to any
+
+# block everything else
+add 65534 deny all from any to any
+EOD;
+
+ /* load rules */
+ file_put_contents("{$g['tmp_path']}/ipfw.cp.rules", $cprules);
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw.cp.rules", true);
+ @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules");
+ unset($cprules);
+}
+
+/* Create a string with ipfw rule and increase rulenum */
+function captiveportal_create_ipfw_rule($cmd, &$rulenum, $args) {
+ $rule = "{$cmd} {$rulenum} {$args}\n";
+ $rulenum++;
+
+ return $rule;
+}
+
+/* Return first rule number for a cp zone */
+function captiveportal_ipfw_ruleno($id) {
+ global $g;
+
+ return 2000 + $id * $g['captiveportal_rules_interval'];
+}
+
/* reinit will disconnect all users, be careful! */
function captiveportal_init_rules($reinit = false) {
global $config, $g, $cpzone, $cpzoneid;
@@ -470,12 +532,16 @@ function captiveportal_init_rules($reinit = false) {
}
captiveportal_load_modules();
- mwexec("/sbin/ipfw zone {$cpzoneid} create", true);
+ captiveportal_init_general_rules();
/* Cleanup so nothing is leaked */
captiveportal_free_dnrules();
unlink_if_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules");
+ $skipto = captiveportal_ipfw_ruleno($cpzoneid);
+
+ $cprules = '';
+
$cpips = array();
$ifaces = get_configured_interface_list();
$cpinterfaces = explode(",", $config['captiveportal'][$cpzone]['interface']);
@@ -485,20 +551,28 @@ function captiveportal_init_rules($reinit = false) {
continue;
}
$tmpif = get_real_interface($cpifgrp);
- if (!empty($tmpif)) {
- $cpipm = get_interface_ip($cpifgrp);
- if (is_ipaddr($cpipm)) {
- $cpips[] = $cpipm;
- if (is_array($config['virtualip']['vip'])) {
- foreach ($config['virtualip']['vip'] as $vip) {
- if (($vip['interface'] == $cpifgrp) && (($vip['mode'] == "carp") || ($vip['mode'] == "ipalias"))) {
- $cpips[] = $vip['subnet'];
- }
- }
+ if (empty($tmpif)) {
+ continue;
+ }
+
+ $cpipm = get_interface_ip($cpifgrp);
+
+ if (!is_ipaddr($cpipm)) {
+ continue;
+ }
+
+ $cpips[] = $cpipm;
+ if (is_array($config['virtualip']['vip'])) {
+ foreach ($config['virtualip']['vip'] as $vip) {
+ if (($vip['interface'] == $cpifgrp) &&
+ (($vip['mode'] == "carp") ||
+ ($vip['mode'] == "ipalias"))) {
+ $cpips[] = $vip['subnet'];
}
}
- mwexec("/sbin/ipfw zone {$cpzoneid} madd {$tmpif}", true);
}
+
+ $cprules .= "table cp_ifaces add {$tmpif} {$skipto}\n";
}
if (count($cpips) > 0) {
$cpactive = true;
@@ -510,53 +584,60 @@ function captiveportal_init_rules($reinit = false) {
$captiveportallck = lock("captiveportal{$cpzone}");
}
- $cprules = <<<EOD
-
-flush
-add 65291 allow pfsync from any to any
-add 65292 allow carp from any to any
-
-# layer 2: pass ARP
-add 65301 pass layer2 mac-type arp,rarp
-# pfsense requires for WPA
-add 65302 pass layer2 mac-type 0x888e,0x88c7
-# PPP Over Ethernet Session Stage/Discovery Stage
-add 65303 pass layer2 mac-type 0x8863,0x8864
-
-# layer 2: block anything else non-IP(v4/v6)
-add 65307 deny layer2 not mac-type ip,ipv6
-
-EOD;
+ $rulenum = $skipto;
+ $cprules .= "table {$cpzone}_pipe_mac create type mac valtype pipe\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg MAC table({$cpzone}_pipe_mac)");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "allow pfsync from any to any");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "allow carp from any to any\n");
+ $cprules .= "# layer 2: pass ARP\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass layer2 mac-type arp,rarp");
+ $cprules .= "# pfsense requires for WPA\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass layer2 mac-type 0x888e,0x88c7");
+ $cprules .= "# PPP Over Ethernet Session Stage/Discovery Stage\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass layer2 mac-type 0x8863,0x8864\n");
+ $cprules .= "# layer 2: block anything else non-IP(v4/v6)\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "deny layer2 not mac-type ip,ipv6");
- $rulenum = 65310;
/* These tables contain host ips */
- $cprules .= "add {$rulenum} pass ip from any to table(100) in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pass ip from table(100) to any out\n";
- $rulenum++;
+ $cprules .= "table {$cpzone}_host_ips create type addr\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass ip from any to table({$cpzone}_host_ips) in");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass ip from table({$cpzone}_host_ips) to any out");
foreach ($cpips as $cpip) {
- $cprules .= "table 100 add {$cpip}\n";
+ $cprules .= "table {$cpzone}_host_ips add {$cpip}\n";
}
- $cprules .= "add {$rulenum} pass ip from any to 255.255.255.255 in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pass ip from 255.255.255.255 to any out\n";
- $rulenum++;
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass ip from any to 255.255.255.255 in");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass ip from 255.255.255.255 to any out");
/* Allowed ips */
- $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any out\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) out\n";
- $rulenum++;
+ $cprules .= "table {$cpzone}_allowed_up create type addr valtype pipe\n";
+ $cprules .= "table {$cpzone}_allowed_down create type addr valtype pipe\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from table({$cpzone}_allowed_up) to any in");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from any to table({$cpzone}_allowed_down) in");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from table({$cpzone}_allowed_up) to any out");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from any to table({$cpzone}_allowed_down) out");
/* Authenticated users rules. */
- $cprules .= "add {$rulenum} pipe tablearg ip from table(1) to any in\n";
- $rulenum++;
- $cprules .= "add {$rulenum} pipe tablearg ip from any to table(2) out\n";
- $rulenum++;
+ $cprules .= "table {$cpzone}_auth_up create type addr valtype pipe\n";
+ $cprules .= "table {$cpzone}_auth_down create type addr valtype pipe\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from table({$cpzone}_auth_up) to any in");
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pipe tablearg ip from any to table({$cpzone}_auth_down) out");
if (!empty($config['captiveportal'][$cpzone]['listenporthttp'])) {
$listenporthttp = $config['captiveportal'][$cpzone]['listenporthttp'];
@@ -571,22 +652,23 @@ EOD;
$listenporthttps = 8001 + $cpzoneid;
}
if (!isset($config['captiveportal'][$cpzone]['nohttpsforwards'])) {
- $cprules .= "add 65531 fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in");
}
}
- $cprules .= <<<EOD
-
-# redirect non-authenticated clients to captive portal
-add 65532 fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in
-# let the responses from the captive portal web server back out
-add 65533 pass tcp from any to any out
-# block everything else
-add 65534 deny all from any to any
-
-EOD;
+ $cprules .= "# redirect non-authenticated clients to captive portal\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in");
+ $cprules .= "# let the responses from the captive portal web server back out\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "pass tcp from any to any out");
+ $cprules .= "# This CP zone is over, skip to last rule\n";
+ $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
+ "skipto 65534 all from any to any");
/* generate passthru mac database */
+ file_put_contents("/tmp/debug_antes", $cprules);
$cprules .= captiveportal_passthrumac_configure(true);
$cprules .= "\n";
@@ -597,16 +679,57 @@ EOD;
$cprules .= captiveportal_allowedhostname_configure();
/* load rules */
+ captiveportal_delete_rules();
file_put_contents("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", $cprules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true);
- //@unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true);
+ @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules");
unset($cprules);
+ captiveportal_filterdns_configure();
+
if ($reinit == false) {
unlock($captiveportallck);
}
}
+/* Delete all rules related to specific cpzone */
+function captiveportal_delete_rules() {
+ global $g, $cpzoneid;
+
+ $skipto1 = captiveportal_ipfw_ruleno($cpzoneid);
+ $skipto2 = $skipto1 + $g['captiveportal_rules_interval'];
+
+ $cp_ifaces = pfSense_ipfw_table_list("cp_ifaces");
+ if (is_array($cp_ifaces)) {
+ foreach ($cp_ifaces as $cp_iface) {
+ if (empty($cp_iface['skipto']) ||
+ $cp_iface['skipto'] != $skipto1) {
+ continue;
+ }
+
+ pfSense_ipfw_table("cp_ifaces", IP_FW_TABLE_XDEL,
+ $cp_iface['iface']);
+ }
+ }
+
+ mwexec("/sbin/ipfw delete {$skipto1}-{$skipto2}", true);
+
+ $tables = captiveportal_get_ipfw_table_names();
+
+ $delrules = "";
+ foreach ($tables as $table) {
+ $delrules .= "table {$table} destroy\n";
+ }
+
+ if (empty($delrules)) {
+ return;
+ }
+
+ file_put_contents("{$g['tmp_path']}/ipfw_{$cpzone}.deltable.rules", $delrules);
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw_{$cpzone}.deltable.rules", true);
+ @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.del.rules");
+}
+
/*
* Remove clients that have been around for longer than the specified amount of time
* db file structure:
@@ -741,8 +864,10 @@ function captiveportal_prune_old() {
false, // Not an interim request
$rastop_time); // Stop Time
$clientsn = (is_ipaddrv6($cpentry[2])) ? 128 : 32;
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XZEROENTRY, 1, $cpentry[2], $clientsn, $cpentry[3]);
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XZEROENTRY, 2, $cpentry[2], $clientsn, $cpentry[3]);
+ /* XXX: Fix
+ $_gb = @pfSense_ipfw_table($cpzoneid, IP_FW_TABLE_XZEROENTRY, {$cpzone}_auth_up, $cpentry[2], $clientsn, $cpentry[3]);
+ $_gb = @pfSense_ipfw_table($cpzoneid, IP_FW_TABLE_XZEROENTRY, {$cpzone}_auth_down, $cpentry[2], $clientsn, $cpentry[3]);
+ */
if ($cpcfg['reauthenticateacct'] == "stopstartfreeradius") {
/* Need to pause here or the FreeRADIUS server gets confused about packet ordering. */
sleep(1);
@@ -814,61 +939,55 @@ function captiveportal_prune_old() {
function captiveportal_prune_old_automac() {
global $g, $config, $cpzone, $cpzoneid;
- if (is_array($config['captiveportal'][$cpzone]['passthrumac']) && isset($config['captiveportal'][$cpzone]['passthrumacaddusername'])) {
+ if (is_array($config['captiveportal'][$cpzone]['passthrumac']) &&
+ isset($config['captiveportal'][$cpzone]['passthrumacaddusername'])) {
$tmpvoucherdb = array();
$macrules = "";
$writecfg = false;
foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $eid => $emac) {
- if ($emac['logintype'] == "voucher") {
- if (isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) {
- if (isset($tmpvoucherdb[$emac['username']])) {
- $temac = $config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]];
- $ruleno = captiveportal_get_ipfw_passthru_ruleno($temac['mac']);
- $pipeno = captiveportal_get_dn_passthru_ruleno($temac['mac']);
- if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno);
- $macrules .= "delete {$ruleno}";
- ++$ruleno;
- $macrules .= "delete {$ruleno}";
- }
- if ($pipeno) {
- captiveportal_free_dn_ruleno($pipeno);
- $macrules .= "pipe delete {$pipeno}\n";
- ++$pipeno;
- $macrules .= "pipe delete {$pipeno}\n";
- }
- $writecfg = true;
- captiveportal_logportalauth($temac['username'], $temac['mac'], $temac['ip'], "DUPLICATE {$temac['username']} LOGIN - TERMINATING OLD SESSION");
- unset($config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]);
- }
- $tmpvoucherdb[$emac['username']] = $eid;
- }
- if (voucher_auth($emac['username']) <= 0) {
- $ruleno = captiveportal_get_ipfw_passthru_ruleno($emac['mac']);
- $pipeno = captiveportal_get_dn_passthru_ruleno($emac['mac']);
- if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno);
- $macrules .= "delete {$ruleno}";
- ++$ruleno;
- $macrules .= "delete {$ruleno}";
- }
+ if ($emac['logintype'] != "voucher") {
+ continue;
+ }
+ if (isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) {
+ if (isset($tmpvoucherdb[$emac['username']])) {
+ $temac = $config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]];
+ $pipeno = captiveportal_get_dn_passthru_ruleno($temac['mac']);
if ($pipeno) {
captiveportal_free_dn_ruleno($pipeno);
+ $macrules .= "table {$cpzone}_pipe_mac delete any,{$temac['mac']}\n";
+ $macrules .= "table {$cpzone}_pipe_mac delete {$temac['mac']},any\n";
$macrules .= "pipe delete {$pipeno}\n";
++$pipeno;
$macrules .= "pipe delete {$pipeno}\n";
}
$writecfg = true;
- captiveportal_logportalauth($emac['username'], $emac['mac'], $emac['ip'], "EXPIRED {$emac['username']} LOGIN - TERMINATING SESSION");
- unset($config['captiveportal'][$cpzone]['passthrumac'][$eid]);
+ captiveportal_logportalauth($temac['username'], $temac['mac'],
+ $temac['ip'], "DUPLICATE {$temac['username']} LOGIN - TERMINATING OLD SESSION");
+ unset($config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]);
+ }
+ $tmpvoucherdb[$emac['username']] = $eid;
+ }
+ if (voucher_auth($emac['username']) <= 0) {
+ $pipeno = captiveportal_get_dn_passthru_ruleno($emac['mac']);
+ if ($pipeno) {
+ captiveportal_free_dn_ruleno($pipeno);
+ $macrules .= "table {$cpzone}_pipe_mac delete any,{$emac['mac']}\n";
+ $macrules .= "table {$cpzone}_pipe_mac delete {$emac['mac']},any\n";
+ $macrules .= "pipe delete {$pipeno}\n";
+ ++$pipeno;
+ $macrules .= "pipe delete {$pipeno}\n";
}
+ $writecfg = true;
+ captiveportal_logportalauth($emac['username'], $emac['mac'],
+ $emac['ip'], "EXPIRED {$emac['username']} LOGIN - TERMINATING SESSION");
+ unset($config['captiveportal'][$cpzone]['passthrumac'][$eid]);
}
}
unset($tmpvoucherdb);
if (!empty($macrules)) {
@file_put_contents("{$g['tmp_path']}/macentry.prunerules.tmp", $macrules);
unset($macrules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry.prunerules.tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry.prunerules.tmp");
}
if ($writecfg === true) {
write_config("Prune session for auto-added macs");
@@ -904,10 +1023,10 @@ function captiveportal_disconnect($dbent, $radiusservers, $term_cause = 1, $stop
}
if (is_ipaddr($dbent[2])) {
- /* Delete client's ip entry from tables 1 and 2. */
+ /* Delete client's ip entry from tables auth_up and auth_down. */
$clientsn = (is_ipaddrv6($dbent[2])) ? 128 : 32;
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 1, $dbent[2], $clientsn, $dbent[3]);
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 2, $dbent[2], $clientsn, $dbent[3]);
+ pfSense_ipfw_table("{$cpzone}_auth_up", IP_FW_TABLE_XDEL, "{$dbent[2]}/{$clientsn}");
+ pfSense_ipfw_table("{$cpzone}_auth_down", IP_FW_TABLE_XDEL, "{$dbent[2]}/{$clientsn}");
/* XXX: Redundant?! Ensure all pf(4) states are killed. */
$_gb = @pfSense_kill_states($dbent[2]);
$_gb = @pfSense_kill_srcstates($dbent[2]);
@@ -918,8 +1037,8 @@ function captiveportal_disconnect($dbent, $radiusservers, $term_cause = 1, $stop
* We could get an error if the pipe doesn't exist but everything should still be fine
*/
if (!empty($dbent[1])) {
- $_gb = @pfSense_pipe_action("pipe delete {$dbent[1]}");
- $_gb = @pfSense_pipe_action("pipe delete " . ($dbent[1]+1));
+ $_gb = @pfSense_ipfw_pipe("pipe delete {$dbent[1]}");
+ $_gb = @pfSense_ipfw_pipe("pipe delete " . ($dbent[1]+1));
/* Release the ruleno so it can be reallocated to new clients. */
captiveportal_free_dn_ruleno($dbent[1]);
@@ -1006,29 +1125,27 @@ function captiveportal_passthrumac_configure_entry($macent, $pipeinrule = false)
$bwDown = $config['captiveportal'][$cpzone]['bwdefaultdn'];
}
- $ruleno = captiveportal_get_next_ipfw_ruleno();
-
if ($macent['action'] == 'pass') {
$rules = "";
+
$pipeno = captiveportal_get_next_dn_ruleno();
$pipeup = $pipeno;
if ($pipeinrule == true) {
- $_gb = @pfSense_pipe_action("pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16");
} else {
$rules .= "pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16\n";
}
$pipedown = $pipeno + 1;
if ($pipeinrule == true) {
- $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16");
} else {
$rules .= "pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16\n";
}
- $rules .= "add {$ruleno} pipe {$pipeup} ip from any to any MAC any {$macent['mac']}\n";
- $ruleno++;
- $rules .= "add {$ruleno} pipe {$pipedown} ip from any to any MAC {$macent['mac']} any\n";
+ $rules .= "table {$cpzone}_pipe_mac add any,{$macent['mac']} {$pipeup}\n";
+ $rules .= "table {$cpzone}_pipe_mac add {$macent['mac']},any {$pipedown}\n";
}
return $rules;
@@ -1038,21 +1155,12 @@ function captiveportal_passthrumac_delete_entry($macent) {
$rules = "";
if ($macent['action'] == 'pass') {
- $ruleno = captiveportal_get_ipfw_passthru_ruleno($macent['mac']);
-
- if (!$ruleno) {
- return $rules;
- }
-
- captiveportal_free_ipfw_ruleno($ruleno);
-
- $rules .= "delete {$ruleno}\n";
- $rules .= "delete " . ++$ruleno . "\n";
-
$pipeno = captiveportal_get_dn_passthru_ruleno($macent['mac']);
if (!empty($pipeno)) {
captiveportal_free_dn_ruleno($pipeno);
+ $rules .= "table {$cpzone}_pipe_mac delete any,{$macent['mac']}\n";
+ $rules .= "table {$cpzone}_pipe_mac delete {$macent['mac']},any\n";
$rules .= "pipe delete " . $pipeno . "\n";
$rules .= "pipe delete " . ++$pipeno . "\n";
}
@@ -1117,7 +1225,7 @@ function captiveportal_passthrumac_findbyname($username) {
* table (3=IN)/(4=OUT) hold allowed ip's without bw limits
*/
function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) {
- global $g;
+ global $g, $config, $cpzone;
/* Instead of copying this entire function for something
* easy such as hostname vs ip address add this check
@@ -1150,23 +1258,25 @@ function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) {
$enBwdown = $config['captiveportal'][$cpzone]['bwdefaultdn'];
}
- $pipeno = captiveportal_get_next_dn_ruleno();
- $_gb = @pfSense_pipe_action("pipe {$pipeno} config bw {$enBwup}Kbit/s queue 100 buckets 16");
- $pipedown = $pipeno + 1;
- $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16");
+ $pipeup = captiveportal_get_next_dn_ruleno();
+ $_gb = @pfSense_ipfw_pipe("pipe {$pipeup} config bw {$enBwup}Kbit/s queue 100 buckets 16");
+ $pipedown = $pipeup + 1;
+ $_gb = @pfSense_ipfw_pipe("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16");
+
if ($ishostname === true) {
- $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 3 pipe {$pipeno}\n";
- $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 4 pipe {$pipedown}\n";
+ $cp_filterdns_conf .= "ipfw {$ipent['hostname']} {$cpzone}_allowed_up pipe {$pipeup}\n";
+ $cp_filterdns_conf .= "ipfw {$ipent['hostname']} {$cpzone}_allowed_down pipe {$pipedown}\n";
if (!is_ipaddr($ipaddress)) {
return array("", $cp_filterdns_conf);
}
}
+
$subnet = "";
if (!empty($ipent['sn'])) {
$subnet = "/{$ipent['sn']}";
}
- $rules .= "table 3 add {$ipaddress}{$subnet} {$pipeno}\n";
- $rules .= "table 4 add {$ipaddress}{$subnet} {$pipedown}\n";
+ $rules .= "table {$cpzone}_allowed_up add {$ipaddress}{$subnet} {$pipeup}\n";
+ $rules .= "table {$cpzone}_allowed_down add {$ipaddress}{$subnet} {$pipedown}\n";
if ($ishostname === true) {
return array($rules, $cp_filterdns_conf);
@@ -1179,21 +1289,41 @@ function captiveportal_allowedhostname_configure() {
global $config, $g, $cpzone, $cpzoneid;
$rules = "";
- if (is_array($config['captiveportal'][$cpzone]['allowedhostname'])) {
- $rules = "\n# captiveportal_allowedhostname_configure()\n";
- $cp_filterdns_conf = "";
- foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent) {
- $tmprules = captiveportal_allowedip_configure_entry($hostnameent, true);
- $rules .= $tmprules[0];
- $cp_filterdns_conf .= $tmprules[1];
- }
- $cp_filterdns_filename = "{$g['varetc_path']}/filterdns-{$cpzone}-captiveportal.conf";
- @file_put_contents($cp_filterdns_filename, $cp_filterdns_conf);
- unset($cp_filterdns_conf);
- if (isvalidpid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid")) {
- sigkillbypid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid", "HUP");
+ if (!is_array($config['captiveportal'][$cpzone]['allowedhostname'])) {
+ return $rules;
+ }
+
+ $rules = "\n# captiveportal_allowedhostname_configure()\n";
+ $cp_filterdns_conf = "";
+ foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent) {
+ $tmprules = captiveportal_allowedip_configure_entry($hostnameent, true);
+ $rules .= $tmprules[0];
+ $cp_filterdns_conf .= $tmprules[1];
+ }
+ $cp_filterdns_filename = "{$g['varetc_path']}/filterdns-{$cpzone}-captiveportal.conf";
+ @file_put_contents($cp_filterdns_filename, $cp_filterdns_conf);
+ unset($cp_filterdns_conf);
+
+ return $rules;
+}
+
+function captiveportal_filterdns_configure() {
+ global $config, $g, $cpzone, $cpzoneid;
+
+ $cp_filterdns_filename = $g['varetc_path'] .
+ "/filterdns-{$cpzone}-captiveportal.conf";
+
+ if (isset($config['captiveportal'][$cpzone]['enable']) &&
+ is_array($config['captiveportal'][$cpzone]['allowedhostname']) &&
+ file_exists($cp_filterdns_filename)) {
+ if (isvalidpid($g['varrun_path'] .
+ "/filterdns-{$cpzone}-cpah.pid")) {
+ sigkillbypid($g['varrun_path'] .
+ "/filterdns-{$cpzone}-cpah.pid", "HUP");
} else {
- mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid -i 300 -c {$cp_filterdns_filename} -y {$cpzoneid} -d 1");
+ mwexec("/usr/local/sbin/filterdns -p " .
+ "{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid" .
+ " -i 300 -c {$cp_filterdns_filename} -d 1");
}
} else {
killbypid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid");
@@ -1220,6 +1350,8 @@ function captiveportal_allowedip_configure() {
function captiveportal_get_last_activity($ip, $mac = NULL, $table = 1) {
global $cpzoneid;
+ /* XXX Fix */
+ return 0;
$ipfwoutput = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, $table, $ip, $mac);
/* Reading only from one of the tables is enough of approximation. */
if (is_array($ipfwoutput)) {
@@ -1465,7 +1597,10 @@ function captiveportal_opendb() {
}
}
if (is_numericint($cpzoneid)) {
- mwexec("/sbin/ipfw -x $cpzoneid table all flush");
+ $table_names = captiveportal_get_ipfw_table_names();
+ foreach ($table_names as $table_name) {
+ mwexec("/sbin/ipfw table {$table_name} flush");
+ }
captiveportal_syslog("Flushed tables for {$cpzone} after database reset.");
}
} else {
@@ -1476,6 +1611,29 @@ function captiveportal_opendb() {
return $DB;
}
+/* Get all tables for specific cpzone */
+function captiveportal_get_ipfw_table_names() {
+ global $cpzone;
+
+ $result = array();
+ $tables = pfSense_ipfw_tables_list();
+
+ if (!is_array($tables)) {
+ return $result;
+ }
+
+ $len = strlen($cpzone) + 1;
+ foreach ($tables as $table) {
+ if (substr($table['name'], 0, $len) != $cpzone . '_') {
+ continue;
+ }
+
+ $result[] = $table['name'];
+ }
+
+ return $result;
+}
+
/* read captive portal DB into array */
function captiveportal_read_db($query = "") {
$cpdb = array();
@@ -1547,7 +1705,6 @@ function captiveportal_write_elements() {
}
if (is_array($cpcfg['element'])) {
- conf_mount_rw();
foreach ($cpcfg['element'] as $data) {
/* Do not attempt to decode or write out empty files. */
if (empty($data['content']) || empty(base64_decode($data['content']))) {
@@ -1561,7 +1718,6 @@ function captiveportal_write_elements() {
@symlink("{$g['captiveportal_element_path']}/{$data['name']}", "{$g['captiveportal_path']}/{$data['name']}");
}
}
- conf_mount_ro();
}
return 0;
@@ -1649,102 +1805,16 @@ function captiveportal_get_dn_passthru_ruleno($value) {
$cpruleslck = lock("captiveportalrulesdn", LOCK_EX);
$ruleno = NULL;
if (file_exists("{$g['vardb_path']}/captiveportaldn.rules")) {
- $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules"));
unset($output);
- $_gb = exec("/sbin/ipfw -x {$cpzoneid} show | /usr/bin/grep " . escapeshellarg($value) . " | /usr/bin/grep -v grep | /usr/bin/awk '{print $5}' | /usr/bin/head -n 1", $output);
- $ruleno = intval($output[0]);
- if (!$rules[$ruleno]) {
- $ruleno = NULL;
+ $item = pfSense_ipfw_table_lookup("{$cpzone}_pipe_mac",
+ "any,{$value}");
+ if (!is_array($item) || empty($item['pipe'])) {
+ unlock($cpruleslck);
+ return NULL;
}
- unset($rules);
- }
- unlock($cpruleslck);
- return $ruleno;
-}
-
-/*
- * This function will calculate the lowest free firewall ruleno
- * within the range specified based on the actual logged on users
- *
- */
-function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2, $rulenos_range_max = 64500) {
- global $config, $g, $cpzone;
-
- $cpcfg = $config['captiveportal'][$cpzone];
- if (!isset($cpcfg['enable'])) {
- return NULL;
- }
-
- $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX);
- $ruleno = 0;
- if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) {
- $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules"));
- $ridx = $rulenos_start;
- while ($ridx < $rulenos_range_max) {
- if (empty($rules[$ridx])) {
- $ruleno = $ridx;
- $rules[$ridx] = $cpzone;
- $ridx++;
- $rules[$ridx] = $cpzone;
- break;
- } else {
- /*
- * This allows our traffic shaping pipes to be the in pipe the same as ruleno
- * and the out pipe ruleno + 1.
- */
- $ridx += 2;
- }
- }
- } else {
- $rules = array_pad(array(), $rulenos_range_max, false);
- $ruleno = $rulenos_start;
- $rules[$rulenos_start] = $cpzone;
- $rulenos_start++;
- $rules[$rulenos_start] = $cpzone;
- }
- file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules));
- unlock($cpruleslck);
- unset($rules);
-
- return $ruleno;
-}
-
-function captiveportal_free_ipfw_ruleno($ruleno) {
- global $config, $g, $cpzone;
-
- $cpcfg = $config['captiveportal'][$cpzone];
- if (!isset($cpcfg['enable'])) {
- return NULL;
- }
-
- $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX);
- if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) {
- $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules"));
- $rules[$ruleno] = false;
- $ruleno++;
- $rules[$ruleno] = false;
- file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules));
- unset($rules);
- }
- unlock($cpruleslck);
-}
-
-function captiveportal_get_ipfw_passthru_ruleno($value) {
- global $config, $g, $cpzone, $cpzoneid;
-
- $cpcfg = $config['captiveportal'][$cpzone];
- if (!isset($cpcfg['enable'])) {
- return NULL;
- }
-
- $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX);
- $ruleno = NULL;
- if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) {
- $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules"));
- unset($output);
- $_gb = exec("/sbin/ipfw -x {$cpzoneid} show | /usr/bin/grep " . escapeshellarg($value) . " | /usr/bin/grep -v grep | /usr/bin/awk '{print $1}' | /usr/bin/head -n 1", $output);
- $ruleno = intval($output[0]);
+ $ruleno = intval($item['pipe']);
+ $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules"));
if (!$rules[$ruleno]) {
$ruleno = NULL;
}
@@ -1769,11 +1839,13 @@ function captiveportal_get_ipfw_passthru_ruleno($value) {
function getVolume($ip, $mac = NULL) {
global $config, $cpzone, $cpzoneid;
- $reverse = empty($config['captiveportal'][$cpzone]['reverseacct']) ? false : true;
+ $reverse = isset($config['captiveportal'][$cpzone]['reverseacct']) ? true : false;
$volume = array();
// Initialize vars properly, since we don't want NULL vars
$volume['input_pkts'] = $volume['input_bytes'] = $volume['output_pkts'] = $volume['output_bytes'] = 0 ;
+ /* XXX Fix */
+ return $volume;
$ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 1, $ip, $mac);
if (is_array($ipfw)) {
if ($reverse) {
@@ -1981,8 +2053,8 @@ function captiveportal_reapply_attributes($cpentry, $attributes) {
$bw_up_pipeno = $cpentry[1];
$bw_down_pipeno = $cpentry[1]+1;
- $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
- $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16");
//captiveportal_logportalauth($cpentry[4], $cpentry[3], $cpentry[2], "RADIUS_BANDWIDTH_REAPPLY", "{$bw_up}/{$bw_down}");
unset($bw_up_pipeno, $bw_down_pipeno, $bw_up, $bw_down);
@@ -2009,47 +2081,42 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri
$writecfg = false;
/* Find an existing session */
- if ((isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) && $passthrumac) {
- if (isset($config['captiveportal'][$cpzone]['passthrumacadd'])) {
- $mac = captiveportal_passthrumac_findbyname($username);
- if (!empty($mac)) {
- if ($_POST['replacemacpassthru']) {
- foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $idx => $macent) {
- if ($macent['mac'] == $mac['mac']) {
- $macrules = "";
- $ruleno = captiveportal_get_ipfw_passthru_ruleno($mac['mac']);
- $pipeno = captiveportal_get_dn_passthru_ruleno($mac['mac']);
- if ($ruleno) {
- captiveportal_free_ipfw_ruleno($ruleno);
- $macrules .= "delete {$ruleno}\n";
- ++$ruleno;
- $macrules .= "delete {$ruleno}\n";
- }
- if ($pipeno) {
- captiveportal_free_dn_ruleno($pipeno);
- $macrules .= "pipe delete {$pipeno}\n";
- ++$pipeno;
- $macrules .= "pipe delete {$pipeno}\n";
- }
- unset($config['captiveportal'][$cpzone]['passthrumac'][$idx]);
- $mac['action'] = 'pass';
- $mac['mac'] = $clientmac;
- $config['captiveportal'][$cpzone]['passthrumac'][] = $mac;
- $macrules .= captiveportal_passthrumac_configure_entry($mac);
- file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
- $writecfg = true;
- $sessionid = true;
- break;
- }
- }
- } else {
- portal_reply_page($redirurl, "error", "Username: {$username} is already authenticated using another MAC address.",
- $clientmac, $clientip, $username, $password);
- unlock($cpdblck);
- return;
+ if ((isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) &&
+ $passthrumac &&
+ isset($config['captiveportal'][$cpzone]['passthrumacadd'])) {
+ $mac = captiveportal_passthrumac_findbyname($username);
+ if (!empty($mac) && $_POST['replacemacpassthru']) {
+ foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $idx => $macent) {
+ if ($macent['mac'] != $mac['mac']) {
+ continue;
}
+
+ $macrules = "";
+ $pipeno = captiveportal_get_dn_passthru_ruleno($mac['mac']);
+ if ($pipeno) {
+ captiveportal_free_dn_ruleno($pipeno);
+ $macrules .= "table {$cpzone}_pipe_mac delete any,{$mac['mac']}\n";
+ $macrules .= "table {$cpzone}_pipe_mac delete {$mac['mac']},any\n";
+ $macrules .= "pipe delete {$pipeno}\n";
+ ++$pipeno;
+ $macrules .= "pipe delete {$pipeno}\n";
+ }
+ unset($config['captiveportal'][$cpzone]['passthrumac'][$idx]);
+ $mac['action'] = 'pass';
+ $mac['mac'] = $clientmac;
+ $config['captiveportal'][$cpzone]['passthrumac'][] = $mac;
+ $macrules .= captiveportal_passthrumac_configure_entry($mac);
+ file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules);
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
+ $writecfg = true;
+ $sessionid = true;
+ break;
}
+ } elseif (!empty($mac)) {
+ portal_reply_page($redirurl, "error", "Username: {$username} is already authenticated using another MAC address.",
+ $clientmac, $clientip, $username, $password);
+ unlock($cpdblck);
+ return;
}
}
@@ -2150,7 +2217,7 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri
unlock($cpdblck);
$macrules = captiveportal_passthrumac_configure_entry($mac);
file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp");
$writecfg = true;
} else {
/* See if a pipeno is passed, if not start sessions because this means there isn't one atm */
@@ -2178,21 +2245,12 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri
$bw_up_pipeno = $pipeno;
$bw_down_pipeno = $pipeno + 1;
//$bw_up /= 1000; // Scale to Kbit/s
- $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
- $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16");
+ $_gb = @pfSense_ipfw_pipe("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16");
$clientsn = (is_ipaddrv6($clientip)) ? 128 : 32;
- if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) {
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 1, $clientip, $clientsn, $clientmac, $bw_up_pipeno);
- } else {
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 1, $clientip, $clientsn, NULL, $bw_up_pipeno);
- }
-
- if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) {
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 2, $clientip, $clientsn, $clientmac, $bw_down_pipeno);
- } else {
- $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 2, $clientip, $clientsn, NULL, $bw_down_pipeno);
- }
+ $_gb = @pfSense_ipfw_table("{$cpzone}_auth_up", IP_FW_TABLE_XADD, "{$clientip}/{$clientsn}", $bw_up_pipeno);
+ $_gb = @pfSense_ipfw_table("{$cpzone}_auth_down", IP_FW_TABLE_XADD, "{$clientip}/{$clientsn}", $bw_down_pipeno);
if ($attributes['voucher']) {
$attributes['session_timeout'] = $remaining_time;
diff --git a/src/etc/inc/certs.inc b/src/etc/inc/certs.inc
index 4970314..248019e 100644
--- a/src/etc/inc/certs.inc
+++ b/src/etc/inc/certs.inc
@@ -3,7 +3,7 @@
* certs.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc. All rights reserved.
* All rights reserved.
*
@@ -143,14 +143,16 @@ function ca_chain(& $cert) {
return "";
}
-function ca_import(& $ca, $str, $key = "", $serial = 0) {
+function ca_import(& $ca, $str, $key = "", $serial = "") {
global $config;
$ca['crt'] = base64_encode($str);
if (!empty($key)) {
$ca['prv'] = base64_encode($key);
}
- if (!empty($serial)) {
+ if (empty($serial)) {
+ $ca['serial'] = 0;
+ } else {
$ca['serial'] = $serial;
}
$subject = cert_get_subject($str, false);
@@ -315,6 +317,9 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type = "user", $
if (!$ca_res_key) {
return false;
}
+ if (empty($ca['serial'])) {
+ $ca['serial'] = 0;
+ }
$ca_serial = ++$ca['serial'];
}
@@ -570,7 +575,7 @@ function cert_get_purpose($str_crt, $decode = true) {
$crt_details = openssl_x509_parse($str_crt);
$purpose = array();
$purpose['ca'] = (stristr($crt_details['extensions']['basicConstraints'], 'CA:TRUE') === false) ? 'No': 'Yes';
- $purpose['server'] = ($crt_details['extensions']['nsCertType'] == "SSL Server") ? 'Yes': 'No';
+ $purpose['server'] = (strpos($crt_details['extensions']['nsCertType'], 'SSL Server') !== FALSE) ? 'Yes': 'No';
return $purpose;
}
@@ -604,6 +609,65 @@ function prv_get_modulus($str_crt, $decode = true) {
return cert_get_modulus($str_crt, $decode, "prv");
}
+function is_openvpn_server_ca($caref) {
+ global $config;
+ if (!is_array($config['openvpn']['openvpn-server'])) {
+ return;
+ }
+ foreach ($config['openvpn']['openvpn-server'] as $ovpns) {
+ if ($ovpns['caref'] == $caref) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function is_openvpn_client_ca($caref) {
+ global $config;
+ if (!is_array($config['openvpn']['openvpn-client'])) {
+ return;
+ }
+ foreach ($config['openvpn']['openvpn-client'] as $ovpnc) {
+ if ($ovpnc['caref'] == $caref) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function is_ipsec_peer_ca($caref) {
+ global $config;
+ if (!is_array($config['ipsec']['phase1'])) {
+ return;
+ }
+ foreach ($config['ipsec']['phase1'] as $ipsec) {
+ if ($ipsec['caref'] == $caref) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function is_ldap_peer_ca($caref) {
+ global $config;
+ if (!is_array($config['system']['authserver'])) {
+ return;
+ }
+ foreach ($config['system']['authserver'] as $authserver) {
+ if ($authserver['ldap_caref'] == $caref) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function ca_in_use($caref) {
+ return (is_openvpn_server_ca($caref) ||
+ is_openvpn_client_ca($caref) ||
+ is_ipsec_peer_ca($caref) ||
+ is_ldap_peer_ca($caref));
+}
+
function is_user_cert($certref) {
global $config;
if (!is_array($config['system']['user'])) {
diff --git a/src/etc/inc/config.console.inc b/src/etc/inc/config.console.inc
index a87b082..90be4aa 100644
--- a/src/etc/inc/config.console.inc
+++ b/src/etc/inc/config.console.inc
@@ -3,7 +3,7 @@
* config.console.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -47,14 +47,9 @@ function set_networking_interfaces_ports() {
$iflist = get_interface_list();
- /* Function flow is based on $key and $auto_assign or the lack thereof */
+ /* Function flow is based on $key or the lack thereof */
$key = null;
- /* Only present auto interface option if running from the installer media and interface mismatch*/
- if ((preg_match("/cdrom/", $g['platform'])) && is_interface_mismatch()) {
- $auto_assign = false;
- }
-
echo <<<EOD
Valid interfaces are:
@@ -81,15 +76,6 @@ EOD;
}
}
- if ($auto_assign) {
- echo <<<EOD
-
- !!! Installation Media Detected: Auto Interface Option !!!!
-BEGIN MANUAL CONFIGURATION OR THE SYSTEM WILL PROCEED WITH AUTO CONFIGURATION.
-
-EOD;
- }
-
echo "\n" . gettext("Do VLANs need to be set up first?");
echo "\n" .
gettext(
@@ -98,211 +84,147 @@ EOD;
"\n";
echo "\n" . gettext("Should VLANs be set up now [y|n]?") . " ";
- if ($auto_assign) {
- $key = timeout();
- } else {
- $key = chop(fgets($fp));
- }
-
- if (!isset($key) and $auto_assign) { // Auto Assign Interfaces
- do {
- echo <<<EOD
+ $key = chop(fgets($fp));
- !!! Auto Assigning Interfaces !!!
-
-For setup purposes, there must be at least one NIC connected for
-the LAN. If a second NIC is connected, it will be assigned to the
-WAN. Otherwise, WAN will be temporarily assigned to the next
-available NIC found regardless of activity. The WAN interface
-should then be assigned and configured as required.
-
-Please make the pfSense NIC connections now.
-The system will continue checking until they have been made.
-
-Searching for active interfaces...
-
-EOD;
- unset($wanif, $lanif);
+ //Manually assign interfaces
+ if (in_array($key, array('y', 'Y'))) {
+ vlan_setup();
+ }
- $media_iflist = $plugged_in = array();
- $media_iflist = get_interface_list("media");
- foreach ($media_iflist as $iface => $ifa) {
- if ($ifa['up']) {
- $plugged_in[] = $iface;
- }
- }
+ if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) {
- $lanif = array_shift($plugged_in);
- $wanif = array_shift($plugged_in);
+ echo "\n\n" . gettext("VLAN interfaces:") . "\n\n";
+ foreach ($config['vlans']['vlan'] as $vlan) {
- if (isset($lanif) && !isset($wanif)) {
- foreach ($iflist as $iface => $ifa) {
- if ($iface != $lanif) {
- $wanif = $iface;
- break;
- }
- }
- }
+ echo sprintf("% -16s%s\n", "{$vlan['if']}_vlan{$vlan['tag']}",
+ "VLAN tag {$vlan['tag']}, parent interface {$vlan['if']}");
- echo <<<EOD
+ $iflist[$vlan['if'] . '_vlan' . $vlan['tag']] = array();
+ $ifsmallist = $ifsmallist . $vlan['if'] . '_vlan' . $vlan['tag'] . " ";
+ }
+ }
-Assigned WAN to : $wanif
-Assigned LAN to : $lanif
+ echo <<<EOD
-If these assignments are not suitable,
-press any key to go back to manual configuration.
+If the names of the interfaces are not known, auto-detection can
+be used instead. To use auto-detection, please disconnect all
+interfaces before pressing 'a' to begin the process.
EOD;
- $key = timeout(20);
- if (isset($key)) {
- return;
- }
- } while (!isset($wanif));
- $config['system']['enablesshd'] = 'enabled';
- $key = 'y';
-
- } else {
- //Manually assign interfaces
- if (in_array($key, array('y', 'Y'))) {
- vlan_setup();
+ do {
+ echo "\n" . gettext("Enter the WAN interface name or 'a' for auto-detection") . " ";
+ printf(gettext("%s(%s or a): "), "\n", trim($ifsmallist));
+ $wanif = chop(fgets($fp));
+ if ($wanif === "") {
+ return;
}
-
- if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) {
-
- echo "\n\n" . gettext("VLAN interfaces:") . "\n\n";
- foreach ($config['vlans']['vlan'] as $vlan) {
-
- echo sprintf("% -16s%s\n", "{$vlan['if']}_vlan{$vlan['tag']}",
- "VLAN tag {$vlan['tag']}, parent interface {$vlan['if']}");
-
- $iflist[$vlan['if'] . '_vlan' . $vlan['tag']] = array();
- $ifsmallist = $ifsmallist . $vlan['if'] . '_vlan' . $vlan['tag'] . " ";
- }
+ if ($wanif === "a") {
+ $wanif = autodetect_interface("WAN", $fp);
+ } else if (!array_key_exists($wanif, $iflist)) {
+ printf(gettext("%sInvalid interface name '%s'%s"), "\n", $wanif, "\n");
+ unset($wanif);
+ continue;
}
+ $ifsmallist = str_replace(" " . $wanif . " ", " ", $ifsmallist);
+ } while (!$wanif);
- echo <<<EOD
-
-If the names of the interfaces are not known, auto-detection can
-be used instead. To use auto-detection, please disconnect all
-interfaces before pressing 'a' to begin the process.
+ do {
+ printf(gettext("%sEnter the LAN interface name or 'a' for auto-detection %s" .
+ "NOTE: this enables full Firewalling/NAT mode.%s" .
+ "(%s a or nothing if finished):%s"), "\n", "\n", "\n", trim($ifsmallist), " ");
-EOD;
+ $lanif = chop(fgets($fp));
- do {
- echo "\n" . gettext("Enter the WAN interface name or 'a' for auto-detection") . " ";
- printf(gettext("%s(%s or a): "), "\n", trim($ifsmallist));
- $wanif = chop(fgets($fp));
- if ($wanif === "") {
- return;
- }
- if ($wanif === "a") {
- $wanif = autodetect_interface("WAN", $fp);
- } else if (!array_key_exists($wanif, $iflist)) {
- printf(gettext("%sInvalid interface name '%s'%s"), "\n", $wanif, "\n");
- unset($wanif);
- continue;
- }
- $ifsmallist = str_replace(" " . $wanif . " ", " ", $ifsmallist);
- } while (!$wanif);
+ if ($lanif == "exit") {
+ exit;
+ }
- do {
- printf(gettext("%sEnter the LAN interface name or 'a' for auto-detection %s" .
- "NOTE: this enables full Firewalling/NAT mode.%s" .
- "(%s a or nothing if finished):%s"), "\n", "\n", "\n", trim($ifsmallist), " ");
+ if ($lanif == "") {
+ /* It is OK to have just a WAN, without a LAN so break if the user does not want LAN. */
+ break;
+ }
- $lanif = chop(fgets($fp));
+ if ($lanif === "a") {
+ $lanif = autodetect_interface("LAN", $fp);
+ } else if (!array_key_exists($lanif, $iflist)) {
+ printf(gettext("%sInvalid interface name '%s'%s"), "\n", $lanif, "\n");
+ unset($lanif);
+ continue;
+ }
+ $ifsmallist = str_replace(" " . $lanif . " ", " ", $ifsmallist);
+ } while (!$lanif);
- if ($lanif == "exit") {
- exit;
- }
+ /* optional interfaces */
+ $i = 0;
+ $optif = array();
- if ($lanif == "") {
- /* It is OK to have just a WAN, without a LAN so break if the user does not want LAN. */
- break;
+ if ($lanif <> "") {
+ while (1) {
+ if ($optif[$i]) {
+ $i++;
}
+ $io = $i + 1;
- if ($lanif === "a") {
- $lanif = autodetect_interface("LAN", $fp);
- } else if (!array_key_exists($lanif, $iflist)) {
- printf(gettext("%sInvalid interface name '%s'%s"), "\n", $lanif, "\n");
- unset($lanif);
- continue;
+ if ($config['interfaces']['opt' . $io]['descr']) {
+ printf(gettext("%sOptional interface %s description found: %s"), "\n", $io, $config['interfaces']['opt' . $io]['descr']);
}
- $ifsmallist = str_replace(" " . $lanif . " ", " ", $ifsmallist);
- } while (!$lanif);
- /* optional interfaces */
- $i = 0;
- $optif = array();
+ printf(gettext("%sEnter the Optional %s interface name or 'a' for auto-detection%s" .
+ "(%s a or nothing if finished):%s"), "\n", $io, "\n", trim($ifsmallist), " ");
- if ($lanif <> "") {
- while (1) {
- if ($optif[$i]) {
- $i++;
- }
- $io = $i + 1;
+ $optif[$i] = chop(fgets($fp));
- if ($config['interfaces']['opt' . $io]['descr']) {
- printf(gettext("%sOptional interface %s description found: %s"), "\n", $io, $config['interfaces']['opt' . $io]['descr']);
- }
-
- printf(gettext("%sEnter the Optional %s interface name or 'a' for auto-detection%s" .
- "(%s a or nothing if finished):%s"), "\n", $io, "\n", trim($ifsmallist), " ");
-
- $optif[$i] = chop(fgets($fp));
-
- if ($optif[$i]) {
- if ($optif[$i] === "a") {
- $ad = autodetect_interface(gettext("Optional") . " " . $io, $fp);
- if ($ad) {
- $optif[$i] = $ad;
- } else {
- unset($optif[$i]);
- }
- } else if (!array_key_exists($optif[$i], $iflist)) {
- printf(gettext("%sInvalid interface name '%s'%s"), "\n", $optif[$i], "\n");
+ if ($optif[$i]) {
+ if ($optif[$i] === "a") {
+ $ad = autodetect_interface(gettext("Optional") . " " . $io, $fp);
+ if ($ad) {
+ $optif[$i] = $ad;
+ } else {
unset($optif[$i]);
- continue;
}
- $ifsmallist = str_replace(" " . $optif[$i] . " ", " ", $ifsmallist);
- } else {
+ } else if (!array_key_exists($optif[$i], $iflist)) {
+ printf(gettext("%sInvalid interface name '%s'%s"), "\n", $optif[$i], "\n");
unset($optif[$i]);
- break;
+ continue;
}
+ $ifsmallist = str_replace(" " . $optif[$i] . " ", " ", $ifsmallist);
+ } else {
+ unset($optif[$i]);
+ break;
}
}
+ }
- /* check for double assignments */
- $ifarr = array_merge(array($lanif, $wanif), $optif);
+ /* check for double assignments */
+ $ifarr = array_merge(array($lanif, $wanif), $optif);
- for ($i = 0; $i < (count($ifarr)-1); $i++) {
- for ($j = ($i+1); $j < count($ifarr); $j++) {
- if ($ifarr[$i] == $ifarr[$j]) {
- echo <<<EOD
+ for ($i = 0; $i < (count($ifarr)-1); $i++) {
+ for ($j = ($i+1); $j < count($ifarr); $j++) {
+ if ($ifarr[$i] == $ifarr[$j]) {
+ echo <<<EOD
Error: The same interface name cannot be assigned twice!
EOD;
- fclose($fp);
- return;
- }
+ fclose($fp);
+ return;
}
}
+ }
- echo "\n" . gettext("The interfaces will be assigned as follows:") . "\n\n";
-
- echo "WAN -> " . $wanif . "\n";
- if ($lanif != "") {
- echo "LAN -> " . $lanif . "\n";
- }
- for ($i = 0; $i < count($optif); $i++) {
- echo "OPT" . ($i+1) . " -> " . $optif[$i] . "\n";
- }
+ echo "\n" . gettext("The interfaces will be assigned as follows:") . "\n\n";
- echo "\n" . gettext("Do you want to proceed [y|n]?") . " ";
- $key = chop(fgets($fp));
+ echo "WAN -> " . $wanif . "\n";
+ if ($lanif != "") {
+ echo "LAN -> " . $lanif . "\n";
}
+ for ($i = 0; $i < count($optif); $i++) {
+ echo "OPT" . ($i+1) . " -> " . $optif[$i] . "\n";
+ }
+
+ echo "\n" . gettext("Do you want to proceed [y|n]?") . " ";
+ $key = chop(fgets($fp));
if (in_array($key, array('y', 'Y'))) {
if ($lanif) {
@@ -316,7 +238,7 @@ EOD;
}
$config['interfaces']['lan']['if'] = $lanif;
$config['interfaces']['lan']['enable'] = true;
- } elseif (!platform_booting() && !$auto_assign) {
+ } elseif (!platform_booting()) {
echo "\n" . gettext("You have chosen to remove the LAN interface.") . "\n";
echo "\n" . gettext("Would you like to remove the LAN IP address and \nunload the interface now [y|n]?") . " ";
@@ -532,7 +454,7 @@ function vlan_setup() {
$vlan['if'] = chop(fgets($fp));
if ($vlan['if']) {
- if (!array_key_exists($vlan['if'], $iflist) or
+ if (!array_key_exists($vlan['if'], $iflist) ||
!is_jumbo_capable($vlan['if'])) {
printf(gettext("%sInvalid interface name '%s'%s"), "\n", $vlan['if'], "\n");
continue;
@@ -584,8 +506,14 @@ function check_for_alternate_interfaces() {
$default_device['lan'] = "re2";
break;
case 'RCC-VE':
- $default_device['wan'] = "igb0";
- $default_device['lan'] = "igb1";
+ /* SG-4860 or SG-8860 */
+ if (does_interface_exist('igb4')) {
+ $config['interfaces']['wan']['if'] = 'igb1';
+ $config['interfaces']['lan']['if'] = 'igb0';
+ } else {
+ $config['interfaces']['wan']['if'] = 'igb0';
+ $config['interfaces']['lan']['if'] = 'igb1';
+ }
break;
default:
$default_device['wan'] = "";
diff --git a/src/etc/inc/config.gui.inc b/src/etc/inc/config.gui.inc
index de9d422..3ed814c 100644
--- a/src/etc/inc/config.gui.inc
+++ b/src/etc/inc/config.gui.inc
@@ -3,7 +3,7 @@
* config.gui.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -44,13 +44,6 @@ if (file_exists("/cf/conf/use_xmlreader")) {
}
require_once("crypt.inc");
-/* read platform */
-if (file_exists("{$g['etc_path']}/platform")) {
- $g['platform'] = chop(file_get_contents("{$g['etc_path']}/platform"));
-} else {
- $g['platform'] = "unknown";
-}
-
/* if /debugging exists, lets set $debugging
so we can output more information */
if (file_exists("/debugging")) {
diff --git a/src/etc/inc/config.inc b/src/etc/inc/config.inc
index 083afdb..aa33214 100644
--- a/src/etc/inc/config.inc
+++ b/src/etc/inc/config.inc
@@ -3,7 +3,7 @@
* config.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -57,13 +57,6 @@ if (file_exists("/cf/conf/use_xmlreader")) {
}
require_once("crypt.inc");
-/* read platform */
-if (file_exists("{$g['etc_path']}/platform")) {
- $g['platform'] = chop(file_get_contents("{$g['etc_path']}/platform"));
-} else {
- $g['platform'] = "unknown";
-}
-
/* if /debugging exists, lets set $debugging
so we can output more information */
if (file_exists("/debugging")) {
@@ -83,9 +76,7 @@ if (platform_booting(true)) {
if (!config_validate("{$g['conf_path']}/config.xml")) {
log_error(gettext("ERROR! Could not convert m0n0wall -> pfsense in config.xml"));
}
- conf_mount_rw();
file_put_contents("/cf/conf/config.xml", $config_contents);
- conf_mount_ro();
}
unset($config_contents);
}
@@ -98,63 +89,44 @@ if (platform_booting(true)) {
/* check if there's already an fstab (NFS booting?) */
if (!file_exists("{$g['etc_path']}/fstab")) {
echo ".";
- if (strstr($g['platform'], "cdrom")) {
- /* config is on floppy disk for CD-ROM version */
- $cfgdevice = $cfgpartition = "fd0";
- $_gb = exec('/sbin/dmesg -a', $dmesg);
- if (preg_match("/da0/", $dmesg) == true) {
- $cfgdevice = $cfgpartition = "da0" ;
- if (mwexec("/sbin/mount -r /dev/{$cfgdevice} /cf")) {
- /* could not mount, fallback to floppy */
- $cfgdevice = $cfgpartition = "fd0";
+ /* probe kernel known disks until we find one with config.xml */
+ $disks = explode(" ", get_single_sysctl("kern.disks"));
+ foreach ($disks as $mountdisk) {
+ /* skip mfs mounted filesystems */
+ if (strstr($mountdisk, "md")) {
+ continue;
+ }
+ if (mwexec("/sbin/mount -r /dev/{$mountdisk}a {$g['cf_path']}") == 0) {
+ if (file_exists("{$g['cf_conf_path']}/config.xml")) {
+ /* found it */
+ $cfgdevice = $mountdisk;
+ $cfgpartition = $cfgdevice . "a";
+ $cfgfstype = "ufs";
+ printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n");
+ }
+
+ mwexec("/sbin/umount -f {$g['cf_path']}");
+
+ if ($cfgdevice) {
+ break;
}
}
- unset($dmesg);
- $cfgfstype = "msdosfs";
- echo gettext("CDROM build") . "\n";
- echo " " . gettext("CFG:") . " {$cfgpartition}\n";
- echo " " . gettext("TYPE:") . " {$cfgfstype}\n";
- } else {
- echo ".";
- /* probe kernel known disks until we find one with config.xml */
- $disks = explode(" ", get_single_sysctl("kern.disks"));
- foreach ($disks as $mountdisk) {
- /* skip mfs mounted filesystems */
- if (strstr($mountdisk, "md")) {
- continue;
+ if (mwexec("/sbin/mount -r /dev/{$mountdisk}d {$g['cf_path']}") == 0) {
+ if (platform_booting()) {
+ echo ".";
}
- if (mwexec("/sbin/mount -r /dev/{$mountdisk}a {$g['cf_path']}") == 0) {
- if (file_exists("{$g['cf_conf_path']}/config.xml")) {
- /* found it */
- $cfgdevice = $mountdisk;
- $cfgpartition = $cfgdevice . "a";
- $cfgfstype = "ufs";
- printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n");
- }
-
- mwexec("/sbin/umount -f {$g['cf_path']}");
-
- if ($cfgdevice) {
- break;
- }
+ if (file_exists("{$g['cf_conf_path']}/config.xml")) {
+ /* found it */
+ $cfgdevice = $mountdisk;
+ $cfgpartition = $cfgdevice . "d";
+ $cfgfstype = "ufs";
+ printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n");
}
- if (mwexec("/sbin/mount -r /dev/{$mountdisk}d {$g['cf_path']}") == 0) {
- if (platform_booting()) {
- echo ".";
- }
- if (file_exists("{$g['cf_conf_path']}/config.xml")) {
- /* found it */
- $cfgdevice = $mountdisk;
- $cfgpartition = $cfgdevice . "d";
- $cfgfstype = "ufs";
- printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n");
- }
-
- mwexec("/sbin/umount -f {$g['cf_path']}");
-
- if ($cfgdevice) {
- break;
- }
+
+ mwexec("/sbin/umount -f {$g['cf_path']}");
+
+ if ($cfgdevice) {
+ break;
}
}
}
diff --git a/src/etc/inc/config.lib.inc b/src/etc/inc/config.lib.inc
index 2f8fa59..2971c4a 100644
--- a/src/etc/inc/config.lib.inc
+++ b/src/etc/inc/config.lib.inc
@@ -3,7 +3,7 @@
* config.lib.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2009 Erik Kristensen
* All rights reserved.
*
@@ -200,7 +200,6 @@ function restore_backup($file) {
global $g;
if (file_exists($file)) {
- conf_mount_rw();
unlink_if_exists("{$g['tmp_path']}/config.cache");
copy("$file", "/cf/conf/config.xml");
pfSense_fsync("/cf/conf/config.xml");
@@ -208,7 +207,6 @@ function restore_backup($file) {
disable_security_checks();
log_error(sprintf(gettext('%1$s is restoring the configuration %2$s'), $g['product_name'], $file));
file_notice("config.xml", sprintf(gettext('%1$s is restoring the configuration %2$s'), $g['product_name'], $file), "pfSenseConfigurator", "");
- conf_mount_ro();
}
}
@@ -228,32 +226,20 @@ function parse_config_bootup() {
$lockkey = lock('config');
if (!file_exists("{$g['conf_path']}/config.xml")) {
if (platform_booting()) {
- if (strstr($g['platform'], "cdrom")) {
- /* try copying the default config. to the floppy */
- echo gettext("Resetting factory defaults...") . "\n";
- reset_factory_defaults(true, false);
- if (!file_exists("{$g['conf_path']}/config.xml")) {
- echo gettext("No XML configuration file found - using factory defaults.\n" .
- "Make sure that the configuration floppy disk with the conf/config.xml\n" .
- "file is inserted. If it isn't, the configuration changes will be lost\n" .
- "on reboot.\n");
- }
- } else {
- $last_backup = discover_last_backup();
- if ($last_backup) {
- log_error("No config.xml found, attempting last known config restore.");
- file_notice("config.xml", gettext("No config.xml found, attempting last known config restore."), "pfSenseConfigurator", "");
- restore_backup("/cf/conf/backup/{$last_backup}");
- }
- if (!file_exists("{$g['conf_path']}/config.xml")) {
- echo sprintf(gettext("XML configuration file not found. %s cannot continue booting."), $g['product_name']) . "\n";
- unlock($lockkey);
- mwexec("/sbin/halt");
- exit;
- }
- log_error("Last known config found and restored. Please double check the configuration file for accuracy.");
- file_notice("config.xml", gettext("Last known config found and restored. Please double check the configuration file for accuracy."), "pfSenseConfigurator", "");
+ $last_backup = discover_last_backup();
+ if ($last_backup) {
+ log_error("No config.xml found, attempting last known config restore.");
+ file_notice("config.xml", gettext("No config.xml found, attempting last known config restore."), "pfSenseConfigurator", "");
+ restore_backup("/cf/conf/backup/{$last_backup}");
}
+ if (!file_exists("{$g['conf_path']}/config.xml")) {
+ echo sprintf(gettext("XML configuration file not found. %s cannot continue booting."), $g['product_name']) . "\n";
+ unlock($lockkey);
+ mwexec("/sbin/halt");
+ exit;
+ }
+ log_error("Last known config found and restored. Please double check the configuration file for accuracy.");
+ file_notice("config.xml", gettext("Last known config found and restored. Please double check the configuration file for accuracy."), "pfSenseConfigurator", "");
} else {
unlock($lockkey);
log_error(gettext("Could not find a usable configuration file! Exiting...."));
@@ -304,36 +290,8 @@ EOD;
******/
/* mount flash card read/write */
function conf_mount_rw() {
- global $g, $config;
-
- /* do not mount on cdrom platform */
- if ($g['platform'] == "cdrom" or $g['platform'] == $g['product_name']) {
- return;
- }
-
- if ((refcount_reference(1000) > 1) && is_writable("/")) {
- return;
- }
-
- $status = mwexec("/sbin/mount -u -w -o sync,noatime {$g['cf_path']}");
- if ($status <> 0) {
- if (platform_booting()) {
- echo gettext("/cf Filesystem is dirty.") . "\n";
- }
- $status = mwexec("/sbin/mount -u -w -o sync,noatime {$g['cf_path']}");
- }
-
- /* if the platform is soekris or wrap or $product, lets mount the
- * compact flash cards root.
- */
- $status = mwexec("/sbin/mount -u -w -o sync,noatime /");
- /* we could not mount this correctly. */
- if ($status <> 0) {
- log_error(gettext("/ File system is dirty."));
- $status = mwexec("/sbin/mount -u -w -o sync,noatime /");
- }
-
- mark_subsystem_dirty('mount');
+ /* Obsoleted. Keep it here untill all calls are removed */
+ return;
}
/****f* config/conf_mount_ro
@@ -343,35 +301,8 @@ function conf_mount_rw() {
* null
******/
function conf_mount_ro() {
- global $g, $config;
-
- // do nothing here. redmine #6184
+ /* Obsoleted. Keep it here untill all calls are removed */
return;
-
- /* Do not trust $g['platform'] since this can be clobbered during factory reset. */
- $platform = trim(file_get_contents("/etc/platform"));
- /* do not umount on cdrom or pfSense platforms */
- if ($platform == "cdrom" or $platform == $g['product_name']) {
- return;
- }
-
- if (refcount_unreference(1000) > 0) {
- return;
- }
-
- if (isset($config['system']['nanobsd_force_rw'])) {
- return;
- }
-
- if (platform_booting()) {
- return;
- }
-
- clear_subsystem_dirty('mount');
- /* sync data, then force a remount of /cf */
- pfSense_fsync($g['cf_path']);
- mwexec("/sbin/mount -u -r -f -o sync,noatime {$g['cf_path']}");
- mwexec("/sbin/mount -u -r -f -o sync,noatime /");
}
/****f* config/convert_config
@@ -453,13 +384,13 @@ function convert_config() {
* process, them renaming the temporary file over the original.
* INPUTS
* $filename - string containing the filename of the file to write
- * $content - string containing the file content to write to file
+ * $content - string or array containing the file content to write to file
* $force_binary - boolean denoting whether we should force binary
* mode writing.
* RESULT
* boolean - true if successful, false if not
******/
-function safe_write_file($file, $content, $force_binary) {
+function safe_write_file($file, $content, $force_binary = false) {
$tmp_file = $file . "." . getmypid();
$write_mode = $force_binary ? "wb" : "w";
@@ -468,7 +399,15 @@ function safe_write_file($file, $content, $force_binary) {
// Unable to open temporary file for writing
return false;
}
- if (!fwrite($fd, $content)) {
+ if (is_array($content)) {
+ foreach ($content as $line) {
+ if (!fwrite($fd, $line . "\n")) {
+ // Unable to write to temporary file
+ fclose($fd);
+ return false;
+ }
+ }
+ } elseif (!fwrite($fd, $content)) {
// Unable to write to temporary file
fclose($fd);
return false;
@@ -526,14 +465,13 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals
$config['revision'] = make_config_revision_entry($desc);
- conf_mount_rw();
$lockkey = lock('config', LOCK_EX);
/* generate configuration XML */
$xmlconfig = dump_xml_config($config, $g['xml_rootobj']);
/* write new configuration */
- if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig, false)) {
+ if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig)) {
log_error(gettext("WARNING: Config contents could not be saved. Could not open file!"));
unlock($lockkey);
file_notice("config.xml", sprintf(gettext("Unable to open %s/config.xml for writing in write_config()%s"), $g['cf_conf_path'], "\n"));
@@ -566,16 +504,11 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals
unlock($lockkey);
if ($write_config_only) {
- /* tell kernel to sync fs data */
- conf_mount_ro();
return $config;
}
unlink_if_exists("/usr/local/pkg/pf/carp_sync_client.php");
- /* tell kernel to sync fs data */
- conf_mount_ro();
-
/* sync carp entries to other firewalls */
carp_sync_client();
@@ -596,7 +529,6 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals
function reset_factory_defaults($lock = false, $reboot_required = true) {
global $g;
- conf_mount_rw();
/* Remove all additional packages */
mwexec("/bin/sh /usr/local/sbin/{$g['product_name']}-upgrade " .
@@ -636,7 +568,6 @@ function reset_factory_defaults($lock = false, $reboot_required = true) {
if (!$lock) {
unlock($lockkey);
}
- conf_mount_ro();
setup_serial_port();
return 0;
}
@@ -650,7 +581,6 @@ function config_restore($conffile) {
backup_config();
- conf_mount_rw();
$lockkey = lock('config', LOCK_EX);
@@ -663,7 +593,6 @@ function config_restore($conffile) {
$config = parse_config(true);
- conf_mount_ro();
write_config(sprintf(gettext("Reverted to %s."), array_pop(explode("/", $conffile))), false);
@@ -687,7 +616,6 @@ function config_install($conffile) {
log_error(gettext("Installing configuration ...."));
}
- conf_mount_rw();
$lockkey = lock('config', LOCK_EX);
copy($conffile, "{$g['conf_path']}/config.xml");
@@ -700,7 +628,6 @@ function config_install($conffile) {
}
unlock($lockkey);
- conf_mount_ro();
return 0;
}
@@ -757,7 +684,7 @@ function config_validate($conffile) {
}
function cleanup_backupcache($lock = false) {
- global $g;
+ global $config, $g;
$i = false;
$revisions = intval(is_numericint($config['system']['backupcount']) ? $config['system']['backupcount'] : $g['default_config_backup_count']);
@@ -766,7 +693,6 @@ function cleanup_backupcache($lock = false) {
$lockkey = lock('config');
}
- conf_mount_rw();
$backups = get_backups();
if ($backups) {
@@ -838,7 +764,6 @@ function cleanup_backupcache($lock = false) {
fwrite($bakout, serialize($tocache));
fclose($bakout);
pfSense_fsync("{$g['cf_conf_path']}/backup/backup.cache");
- conf_mount_ro();
if (!$lock) {
unlock($lockkey);
@@ -866,11 +791,6 @@ function get_backups() {
function backup_config() {
global $config, $g;
- if ($g['platform'] == "cdrom") {
- return;
- }
-
- conf_mount_rw();
/* Create backup directory if needed */
safe_mkdir("{$g['cf_conf_path']}/backup");
@@ -901,7 +821,6 @@ function backup_config() {
fclose($bakout);
pfSense_fsync("{$g['cf_conf_path']}/backup/backup.cache");
- conf_mount_ro();
return true;
}
diff --git a/src/etc/inc/crypt.inc b/src/etc/inc/crypt.inc
index f3476f4..d72bbe5 100644
--- a/src/etc/inc/crypt.inc
+++ b/src/etc/inc/crypt.inc
@@ -3,7 +3,7 @@
* crypt.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc. All rights reserved.
* All rights reserved.
*
diff --git a/src/etc/inc/dyndns.class b/src/etc/inc/dyndns.class
index a9f6813..8b488dc 100644
--- a/src/etc/inc/dyndns.class
+++ b/src/etc/inc/dyndns.class
@@ -3,7 +3,7 @@
* dyndns.class
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -57,6 +57,9 @@
* - DNS Made Easy (www.dnsmadeeasy.com)
* - SPDYN (spdyn.de)
* - SPDYN IPv6 (spdyn.de)
+ * - All-Inkl (all-inkl.com)
+ * - DuiaDNS (www.duiadns.net)
+ * - DuiaDNS IPv6 (www.duiadns.net)
* +----------------------------------------------------+
* Requirements:
* - PHP version 4.0.2 or higher with the CURL Library and the PCRE Library
@@ -107,6 +110,9 @@
* DNS Made Easy - Last Tested: 27 April 2015
* SPDYN - Last Tested: 02 July 2016
* SPDYN IPv6 - Last Tested: 02 July 2016
+ * All-Inkl - Last Tested: 12 November 2016
+ * DuiaDNS - Last Tested: 25 November 2016
+ * DuiaDNS IPv6 - Last Tested: 25 November 2016
* +====================================================+
*
* @author E.Kristensen
@@ -169,9 +175,8 @@
$dnsZoneID ='', $dnsTTL='', $dnsResultMatch = '', $dnsRequestIf = '',
$dnsID = '', $dnsVerboseLog = false, $curlIpresolveV4 = false, $curlSslVerifypeer = true) {
- global $config, $g;
-
- if ($dnsService == "namecheap") {
+ global $config, $g, $dyndns_split_domain_types;
+ if (in_array($dnsService, $dyndns_split_domain_types)) {
$this->_FQDN = $dnsHost . "." . $dnsDomain;
} else {
$this->_FQDN = $dnsHost;
@@ -196,7 +201,15 @@
case 'freedns-v6':
if (!$dnsHost) $this->_error(5);
break;
- case 'namecheap':
+ case "namecheap":
+ if (!$dnsPass) $this->_error(4);
+ if (!$dnsHost) $this->_error(5);
+ if (!$dnsDomain) $this->_error(5);
+ break;
+ case "cloudflare-v6":
+ case "cloudflare":
+ case "gratisdns":
+ if (!$dnsUser) $this->_error(3);
if (!$dnsPass) $this->_error(4);
if (!$dnsHost) $this->_error(5);
if (!$dnsDomain) $this->_error(5);
@@ -218,6 +231,7 @@
case 'he-net-v6':
case 'custom-v6':
case 'spdyn-v6':
+ case 'duiadns-v6':
case 'freedns-v6':
case 'cloudflare-v6':
$this->_useIPv6 = true;
@@ -227,7 +241,7 @@
}
$this->_dnsService = strtolower($dnsService);
$this->_dnsUser = $dnsUser;
- $this->_dnsPass = $dnsPass;
+ $this->_dnsPass = base64_decode($dnsPass);
$this->_dnsHost = $dnsHost;
$this->_dnsDomain = $dnsDomain;
$this->_dnsServer = $dnsServer;
@@ -286,6 +300,8 @@
case 'namecheap':
case 'he-net':
case 'he-net-v6':
+ case 'duiadns':
+ case 'duiadns-v6':
case 'selfhost':
case 'he-net-tunnelbroker':
case 'route53':
@@ -300,6 +316,7 @@
case 'dnsmadeeasy':
case 'spdyn':
case 'spdyn-v6':
+ case 'all-inkl':
$this->_update();
if ($this->_dnsDummyUpdateDone == true) {
// If a dummy update was needed, then sleep a while and do the update again to put the proper address back.
@@ -343,7 +360,7 @@
}
if ($this->_dnsService != 'ods' and $this->_dnsService != 'route53 ') {
- curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $this->_UserAgent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_INTERFACE, 'if!' . $realparentif);
@@ -590,6 +607,15 @@
$server = "https://dynamicdns.park-your-domain.com/update?host={$this->_dnsHost}&domain={$this->_dnsDomain}&password={$dnspass}&ip={$this->_dnsIP}";
curl_setopt($ch, CURLOPT_URL, $server);
break;
+ case 'duiadns':
+ case 'duiadns-v6':
+ $needsIP = FALSE;
+ $server = "https://ipv4.duiadns.net/dyndns.duia?";
+ curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+ curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser . ':' . $this->_dnsPass);
+ curl_setopt($ch, CURLOPT_URL, $server . 'hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP);
+ break;
case 'he-net':
case 'he-net-v6':
$needsIP = FALSE;
@@ -665,8 +691,6 @@
$needsIP = TRUE;
$dnsServer ='api.cloudflare.com';
$dnsHost = str_replace(' ', '', $this->_dnsHost);
- $host_names = explode(".", $dnsHost);
- $bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
@@ -676,12 +700,12 @@
));
// Get zone ID
- $getZoneId = "https://{$dnsServer}/client/v4/zones/?name={$bottom_host_name}";
+ $getZoneId = "https://{$dnsServer}/client/v4/zones/?name={$this->_dnsDomain}";
curl_setopt($ch, CURLOPT_URL, $getZoneId);
$output = json_decode(curl_exec($ch));
$zone = $output->result[0]->id;
if ($zone) { // If zone ID was found get host ID
- $getHostId = "https://{$dnsServer}/client/v4/zones/{$zone}/dns_records?name={$this->_dnsHost}&type={$recordType}";
+ $getHostId = "https://{$dnsServer}/client/v4/zones/{$zone}/dns_records?name={$this->_FQDN}&type={$recordType}";
curl_setopt($ch, CURLOPT_URL, $getHostId);
$output = json_decode(curl_exec($ch));
$host = $output->result[0]->id;
@@ -712,15 +736,7 @@
case 'gratisdns':
$needsIP = TRUE;
$server = "https://ssl.gratisdns.dk/ddns.phtml";
- $host = trim($this->_dnsHost);
- $hostnames = explode(".", $host);
- $hostnames_count = count($hostnames);
- if ($hostnames_count > 2) {
- $domain = $hostnames[$hostnames_count-2] . "." . $hostnames[$hostnames_count-1];
- } else {
- $domain = $host;
- }
- curl_setopt($ch, CURLOPT_URL, $server . '?u=' . $this->_dnsUser . '&p=' . $this->_dnsPass . '&h=' . $host . '&d=' . $domain . '&i=' . $this->_dnsIP);
+ curl_setopt($ch, CURLOPT_URL, $server . '?u=' . $this->_dnsUser . '&p=' . $this->_dnsPass . '&h=' . $this->_dnsHost . '&d=' . $this->_dnsDomain . '&i=' . $this->_dnsIP);
break;
case 'ovh-dynhost':
$needsIP = FALSE;
@@ -795,12 +811,21 @@
}
curl_setopt($ch, CURLOPT_URL, $server .$port . '?hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP);
break;
+ case 'all-inkl':
+ $needsIP = FALSE;
+ $server = 'https://dyndns.kasserver.com/';
+ curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass);
+ curl_setopt($ch, CURLOPT_URL, $server . 'myip=' . $this->_dnsIP);
+ break;
default:
break;
}
if ($this->_dnsService != 'ods') {
- $data = curl_exec($ch);
- $this->_checkStatus($ch, $data);
+ $response = curl_exec($ch);
+ $header_size = curl_getinfo($ch, CURLINFO_ ER_SIZE);
+ $header = substr($response, 0, $header_size);
+ $data = substr($response, $header_size);
+ $this->_checkStatus($ch, $data, $header);
@curl_close($ch);
}
}
@@ -1167,7 +1192,26 @@
$this->_debug($data);
}
break;
-
+ case 'duiadns':
+ case 'duiadns-v6':
+ if (preg_match("/error/i", $data)) {
+ $status = $status_intro . $error_str . gettext("Server side error.");
+ } else if (preg_match('/nohost/i', $data)) {
+ $status = $status_intro . $error_str . gettext("Bad Request - A hostname was not provided.");
+ } else if (preg_match('/badauth/i', $data)) {
+ $status = $status_intro . $error_str . gettext("Invalid username or password.");
+ } else if (preg_match('/good/i', $data)) {
+ $status = $status_intro . $success_str . gettext("IP Address Updated Successfully!");
+ $successful_update = true;
+ } else if (preg_match('/nochg/i', $data)) {
+ $status = $status_intro . $success_str . gettext("No Change In IP Address.");
+ $successful_update = true;
+ } else {
+ $status = $status_intro . "(" . gettext("Unknown Response") . ")";
+ log_error($status_intro . gettext("PAYLOAD:") . " " . $data);
+ $this->_debug($data);
+ }
+ break;
case 'he-net':
case 'he-net-v6':
if (preg_match("/badip/i", $data)) {
@@ -1318,14 +1362,12 @@
/* Responds with HTTP 200 on success.
Responds with HTTP 4xx on error.
Returns JSON data as body */
- $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
- $header = substr($data, 0, $header_size);
- $body = substr($data, $header_size);
- if (preg_match("/Status: 200\s/i", $header)) {
+;
+ if (preg_match("/\s200\sOK/i", $header)) {
$status = $status_intro . $success_str . gettext("IP Address Updated Successfully!");
$successful_update = true;
- } else if (preg_match("/Status: 4\d\d\s/i", $header)) {
- $arrbody = json_decode($body, true);
+ } else if (preg_match("/\s4\d\d\s/i", $header)) {
+ $arrbody = json_decode($data, true);
$message = $arrbody['message'] . ".";
if (isset($arrbody['errors']['content'])) {
foreach ($arrbody['errors']['content'] as $key => $content) {
@@ -1335,8 +1377,8 @@
$status = $status_intro . $error_str . $message;
} else {
$status = $status_intro . "(" . gettext("Unknown Response") . ")";
- log_error($status_intro . gettext("PAYLOAD:") . " " . $body);
- $this->_debug($body);
+ log_error($status_intro . gettext("PAYLOAD:") . " " . $data);
+ $this->_debug($data);
}
break;
case 'googledomains':
@@ -1422,12 +1464,27 @@
$this->_debug($data);
}
break;
+ case 'all-inkl':
+ if (preg_match('/good\s'.$this->_dnsIP.'/i', $data)) {
+ $status = $status_intro . $success_str . gettext("IP Address Changed Successfully!") . " (" . $this->_dnsIP . ")";
+ $successful_update = true;
+ } else if (preg_match('/good/i', $data)) {
+ $status = $status_intro . $error_str . gettext("Result did not match.");
+ } else if (preg_match("/\s401\sUnauthorized/i", $header)) {
+ $status = $status_intro . $error_str . gettext("Invalid username or password");
+ }
+ else {
+ $status = $status_intro . "(" . gettext("Unknown Response") . ")";
+ log_error($status_intro . gettext("PAYLOAD:") . " " . $header.$data);
+ $this->_debug($data);
+ $this->_debug($header);
+ }
+ break;
}
if ($successful_update == true) {
/* Write WAN IP to cache file */
$wan_ip = $this->_checkIP();
- conf_mount_rw();
if ($this->_useIPv6 == false && $wan_ip > 0) {
$currentTime = time();
notify_all_remote(sprintf(gettext('DynDNS updated IP Address on %1$s (%2$s) to %3$s'), convert_real_interface_to_friendly_descr($this->_if), $this->_if, $wan_ip));
@@ -1444,7 +1501,6 @@
} else {
@unlink($this->_cacheFile_v6);
}
- conf_mount_ro();
}
$this->status = $status;
log_error($status);
@@ -1527,10 +1583,8 @@
$initial = false;
$log_error .= sprintf(gettext("Cached IPv6: %s"), $cacheIP);
} else {
- conf_mount_rw();
$cacheIP = '::';
@file_put_contents($this->_cacheFile, "::|{$currentTime}");
- conf_mount_ro();
$cacheTime = $currentTime;
$initial = true;
$log_error .= gettext("No Cached IPv6 found.");
@@ -1543,10 +1597,8 @@
$initial = false;
$log_error .= sprintf(gettext("Cached IP: %s"), $cacheIP);
} else {
- conf_mount_rw();
$cacheIP = '0.0.0.0';
@file_put_contents($this->_cacheFile, "0.0.0.0:{$currentTime}");
- conf_mount_ro();
$cacheTime = $currentTime;
$initial = true;
$log_error .= gettext("No Cached IP found.");
@@ -1603,11 +1655,9 @@
return;
}
$string = date('m-d-y h:i:s').' - ('.$this->_debugID.') - ['.$this->_dnsService.'] - '.$data."\n";
- conf_mount_rw();
$file = fopen($this->_debugFile, 'a');
fwrite($file, $string);
fclose($file);
- conf_mount_ro();
}
function _checkIP() {
global $debug;
diff --git a/src/etc/inc/easyrule.inc b/src/etc/inc/easyrule.inc
index 8420982..b86a39e 100644
--- a/src/etc/inc/easyrule.inc
+++ b/src/etc/inc/easyrule.inc
@@ -3,7 +3,7 @@
* easyrule.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate)
* Originally Sponsored By Anathematic @ pfSense Forums
* All rights reserved.
*
diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc
index 9479ba3..894da4d 100644
--- a/src/etc/inc/filter.inc
+++ b/src/etc/inc/filter.inc
@@ -5,7 +5,7 @@
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2005 Bill Marquette
* Copyright (c) 2006 Peter Allgeyer
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -232,7 +232,7 @@ function filter_configure_sync($delete_states_if_needed = true) {
$filterlck = lock('filter', LOCK_EX);
filter_pflog_start();
- update_filter_reload_status(gettext("Initializing"));
+ update_filter_reload_status(gettext("Initializing"), true); // second argument = overwrite existing file
/* invalidate interface cache */
get_interface_arr(true);
@@ -730,14 +730,12 @@ function filter_generate_aliases() {
$aliases .= "table <snort2c>\n";
$aliases .= "table <virusprot>\n";
if (!file_exists("/etc/bogons") || !file_exists("/etc/bogonsv6")) {
- conf_mount_rw();
if (!file_exists("/etc/bogons")) {
@file_put_contents("/etc/bogons", "");
}
if (!file_exists("/etc/bogonsv6")) {
@file_put_contents("/etc/bogonsv6", "");
}
- conf_mount_ro();
}
$aliases .= "table <bogons> persist file \"/etc/bogons\"\n";
if (is_bogonsv6_used()) {
@@ -2035,6 +2033,11 @@ function filter_nat_rules_generate() {
$obtarget = ($obent['target'] == "other-subnet") ? $obent['targetip'] . '/' . $obent['targetip_subnet']: $obent['target'];
$poolopts = (is_subnet($obtarget) || is_alias($obtarget)) ? $obent['poolopts'] : "";
+ /* pool option source-hash allows specification of an optional source-hash key */
+ if ($poolopts == "source-hash" && !empty($obent['source_hash_key'])) {
+ $poolopts = "source-hash ".$obent['source_hash_key'];
+ }
+
$natrules .= filter_nat_rules_generate_if($obent['interface'],
$src,
$obent['sourceport'],
@@ -3105,6 +3108,11 @@ block out {$log['block']} inet all tracker {$increment_tracker($tracker)} label
block in {$log['block']} inet6 all tracker {$increment_tracker($tracker)} label "Default deny rule IPv6"
block out {$log['block']} inet6 all tracker {$increment_tracker($tracker)} label "Default deny rule IPv6"
+EOD;
+
+ if (isset($config['system']['ipv6allow'])) {
+ $ipfrules .= <<<EOD
+
# IPv6 ICMP is not auxilary, it is required for operation
# See man icmp6(4)
# 1 unreach Destination unreachable
@@ -3124,12 +3132,23 @@ pass in {$log['pass']} quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 i
pass in {$log['pass']} quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type {128,133,134,135,136} tracker {$increment_tracker($tracker)} keep state
pass in {$log['pass']} quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type {128,133,134,135,136} tracker {$increment_tracker($tracker)} keep state
+EOD;
+ }
+ $ipfrules .= <<<EOD
# We use the mighty pf, we cannot be fooled.
block {$log['block']} quick inet proto { tcp, udp } from any port = 0 to any tracker {$increment_tracker($tracker)} label "Block traffic from port 0"
block {$log['block']} quick inet proto { tcp, udp } from any to any port = 0 tracker {$increment_tracker($tracker)} label "Block traffic to port 0"
+
+EOD;
+ if (isset($config['system']['ipv6allow'])) {
+ $ipfrules .= <<<EOD
block {$log['block']} quick inet6 proto { tcp, udp } from any port = 0 to any tracker {$increment_tracker($tracker)} label "Block traffic from port 0"
block {$log['block']} quick inet6 proto { tcp, udp } from any to any port = 0 tracker {$increment_tracker($tracker)} label "Block traffic to port 0"
+EOD;
+ }
+ $ipfrules .= <<<EOD
+
# Snort package
block {$log['block']} quick from <snort2c> to any tracker {$increment_tracker($tracker)} label "Block snort2c hosts"
block {$log['block']} quick from any to <snort2c> tracker {$increment_tracker($tracker)} label "Block snort2c hosts"
@@ -3469,13 +3488,27 @@ EOD;
# loopback
pass in {$log['pass']} on \$loopback inet all tracker {$increment_tracker($tracker)} label "pass IPv4 loopback"
pass out {$log['pass']} on \$loopback inet all tracker {$increment_tracker($tracker)} label "pass IPv4 loopback"
+
+EOD;
+ if (isset($config['system']['ipv6allow'])) {
+ $ipfrules .= <<<EOD
pass in {$log['pass']} on \$loopback inet6 all tracker {$increment_tracker($tracker)} label "pass IPv6 loopback"
pass out {$log['pass']} on \$loopback inet6 all tracker {$increment_tracker($tracker)} label "pass IPv6 loopback"
+
+EOD;
+ }
+ $ipfrules .= <<<EOD
# let out anything from the firewall host itself and decrypted IPsec traffic
pass out {$log['pass']} inet all keep state allow-opts tracker {$increment_tracker($tracker)} label "let out anything IPv4 from firewall host itself"
+
+EOD;
+ if (isset($config['system']['ipv6allow'])) {
+ $ipfrules .= <<<EOD
pass out {$log['pass']} inet6 all keep state allow-opts tracker {$increment_tracker($tracker)} label "let out anything IPv6 from firewall host itself"
EOD;
+ }
+ $ipfrules .= "\n";
$saved_tracker += 100;
$tracker = $saved_tracker;
diff --git a/src/etc/inc/filter_log.inc b/src/etc/inc/filter_log.inc
index bd91d6e..93b049c 100644
--- a/src/etc/inc/filter_log.inc
+++ b/src/etc/inc/filter_log.inc
@@ -3,7 +3,7 @@
* filter_log.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/functions.inc b/src/etc/inc/functions.inc
index 7c56ac0..85aff1a 100644
--- a/src/etc/inc/functions.inc
+++ b/src/etc/inc/functions.inc
@@ -3,7 +3,7 @@
* functions.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/inc/globals.inc b/src/etc/inc/globals.inc
index 2dd1714..76c6aa7 100644
--- a/src/etc/inc/globals.inc
+++ b/src/etc/inc/globals.inc
@@ -3,7 +3,7 @@
* globals.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -54,33 +54,32 @@ $g = array(
"admin_group" => "admins",
"product_name" => "pfSense",
"product_version" => trim(file_get_contents("/etc/version"), " \n"),
- "product_copyright" => "Electric Sheep Fencing LLC",
+ "product_copyright" => "Rubicon Communications, LLC (Netgate)",
"product_copyright_url" => "https://pfsense.org/license",
"product_copyright_years" => "2004 - ".date("Y"),
"product_website" => "www.pfsense.org",
"product_website_footer" => "https://www.pfsense.org/?gui=bootstrap",
"product_email" => "coreteam@pfsense.org",
- "hideplatform" => false,
- "hidebackupbeforeupgrade" => false,
"disablehelpmenu" => false,
"disablehelpicon" => false,
"disablecrashreporter" => false,
"crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php",
"debug" => false,
- "latest_config" => "15.5",
- "nopkg_platforms" => array("cdrom"),
+ "latest_config" => "15.8",
"minimum_ram_warning" => "101",
"minimum_ram_warning_text" => "128 MB",
"wan_interface_name" => "wan",
"captiveportal_path" => "/usr/local/captiveportal",
"captiveportal_element_path" => "/var/db/cpelements",
"captiveportal_element_sizelimit" => 1048576,
+ "captiveportal_rules_interval" => 50,
"services_dhcp_server_enable" => true,
- "wireless_regex" => "/^(ndis|wi|ath|an|ral|ural|iwi|wlan|rum|run|bwn|zyd|mwl|bwi|ipw|iwn|malo|uath|upgt|urtw|wpi)/",
+ "wireless_regex" => "/^(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+/",
"help_base_url" => "/help.php",
"pkg_prefix" => "pfSense-pkg-",
"default_timezone" => "Etc/UTC",
- "language" => "en_US"
+ "language" => "en_US",
+ "default_config_backup_count" => 30
);
/* IP TOS flags */
@@ -100,36 +99,8 @@ if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0
$g['product_version_string'] .= "-p{$g['product_version_patch']}";
}
-if (file_exists("/etc/platform")) {
- $arch = php_uname("m");
-
- if (strstr($g['product_version'], "-RELEASE")) {
- /* This is only necessary for RELEASE */
- $arch = ($arch == "i386") ? "" : '/' . $arch;
- /* Full installs and NanoBSD use the same update directory and manifest in 2.x */
- $g['update_url']="https://updates.pfsense.org/_updaters{$arch}";
- $g['update_manifest']="https://updates.pfsense.org/manifest";
- } else {
- /* Full installs and NanoBSD use the same update directory and manifest in 2.x */
- $g['update_url']="https://snapshots.pfsense.org/FreeBSD_releng/10.1/{$arch}/pfSense_HEAD/.updaters/";
- $g['update_manifest']="https://updates.pfSense.org/manifest";
- }
-
- $g['platform'] = trim(file_get_contents("/etc/platform"));
- if ($g['platform'] == "nanobsd") {
- $g['firmware_update_text']="pfSense-*.img.gz";
- $g['hidebackupbeforeupgrade'] = true;
- $g['default_config_backup_count'] = 5;
- } else {
- $g['firmware_update_text']="pfSense-*.tgz";
- $g['default_config_backup_count'] = 30;
- }
-} else {
- // shouldn't happen but "just in case" no platform were detected
- $g['platform'] = 'undetected';
- $g['default_config_backup_count'] = 30;
-}
-
+/* XXX: Backward compatible */
+$g['platform'] = $g['product_name'];
if (file_exists("{$g['etc_path']}/default-config-flavor")) {
$flavor_array = file("{$g['etc_path']}/default-config-flavor");
@@ -224,4 +195,5 @@ $factory_default_checkipservice = array(
"descr" => 'Default Check IP Service'
);
+$dyndns_split_domain_types = array("namecheap", "cloudflare", "cloudflare-v6", "gratisdns");
?>
diff --git a/src/etc/inc/gmirror.inc b/src/etc/inc/gmirror.inc
index 83964a3..7afe632 100644
--- a/src/etc/inc/gmirror.inc
+++ b/src/etc/inc/gmirror.inc
@@ -3,7 +3,7 @@
* gmirror.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/gwlb.inc b/src/etc/inc/gwlb.inc
index a71b0e4..4e91f34 100644
--- a/src/etc/inc/gwlb.inc
+++ b/src/etc/inc/gwlb.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Bill Marquette, Seth Mos
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -223,12 +223,11 @@ function setup_gateways_monitor() {
*/
if (is_ipaddrv4($gateway['gateway']) && $gateway['monitor'] != $gateway['gateway']) {
log_error(sprintf(gettext('Removing static route for monitor %1$s and adding a new route through %2$s'), $gateway['monitor'], $gateway['gateway']));
+ $route_to = "-host {$gateway['monitor']}";
if (interface_isppp_type($gateway['friendlyiface'])) {
- mwexec("/sbin/route change -host " . escapeshellarg($gateway['monitor']) .
- " -iface " . escapeshellarg($gateway['interface']), true);
+ route_add_or_change("{$route_to} -iface {$gateway['interface']}");
} else {
- mwexec("/sbin/route change -host " . escapeshellarg($gateway['monitor']) .
- " " . escapeshellarg($gateway['gateway']), true);
+ route_add_or_change("{$route_to} {$gateway['gateway']}");
}
pfSense_kill_states("0.0.0.0/0", $gateway['monitor'], $gateway['interface'], "icmp");
@@ -265,12 +264,11 @@ function setup_gateways_monitor() {
*/
if ($gateway['gateway'] != $gateway['monitor']) {
log_error(sprintf(gettext('Removing static route for monitor %1$s and adding a new route through %2$s'), $gateway['monitor'], $gateway['gateway']));
+ $route_to = "-host -inet6 {$gateway['monitor']}";
if (interface_isppp_type($gateway['friendlyiface'])) {
- mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gateway['monitor']) .
- " -iface " . escapeshellarg($gateway['interface']), true);
+ route_add_or_change("{$route_to} -iface {$gateway['interface']}");
} else {
- mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gateway['monitor']) .
- " " . escapeshellarg($gateway['gateway']), true);
+ route_add_or_change("{$route_to} {$gateway['gateway']}");
}
pfSense_kill_states("::0.0.0.0/0", $gateway['monitor'], $gateway['interface'], "icmpv6");
@@ -593,6 +591,7 @@ function return_gateways_array($disabled = false, $localhost = false, $inactive
switch ($ifcfg['ipaddr']) {
case "dhcp":
case "pppoe":
+ case "l2tp":
case "pptp":
case "ppp":
$ctype = strtoupper($ifcfg['ipaddr']);
@@ -842,7 +841,7 @@ function fixup_default_gateway($ipprotocol, $gateways_status, $gateways_arr) {
} else {
$inetfamily = "-inet";
}
- mwexec("/sbin/route change {$inetfamily} default {$gateways_arr[$upgw]['gateway']}");
+ route_add_or_change("{$inetfamily} default {$gateways_arr[$upgw]['gateway']}");
}
} else if (!empty($dfltgwname)) {
$defaultgw = trim(exec("/sbin/route -n get -{$ipprotocol} default | /usr/bin/awk '/gateway:/ {print $2}'"), " \n");
@@ -861,7 +860,7 @@ function fixup_default_gateway($ipprotocol, $gateways_status, $gateways_arr) {
}
}
if ($defaultgw != $gateways_arr[$dfltgwname]['gateway']) {
- mwexec("/sbin/route change -{$ipprotocol} default {$gateways_arr[$dfltgwname]['gateway']}");
+ route_add_or_change("-{$ipprotocol} default {$gateways_arr[$dfltgwname]['gateway']}");
}
}
}
@@ -923,26 +922,25 @@ function return_gateway_groups_array() {
$gwdown = true;
}
if ($gwdown == true) {
- if (!file_exists("/tmp/.down.$gwname")) {
- $msg .= "\n".implode("|", $status);
- touch("/tmp/.down.$gwname");
- log_error($msg);
- notify_via_growl($msg);
- notify_via_smtp($msg);
- }
+ if (!file_exists("/tmp/.down.{$gwname}")) {
+ $msg .= "\n".implode("|", $status);
+ touch("/tmp/.down.{$gwname}");
+ log_error($msg);
+ notify_via_growl($msg);
+ notify_via_smtp($msg);
+ }
} else {
/* Online add member */
if (!is_array($tiers[$tier])) {
$tiers[$tier] = array();
}
$tiers[$tier][] = $gwname;
- if (file_exists("/tmp/.down.$gwname")) {
- $msg = "MONITOR: {$gwname} is available now, adding to routing group";
+ if (unlink_if_exists("/tmp/.down.{$gwname}")) {
+ $msg = sprintf(gettext('MONITOR: %1$s is available now, adding to routing group %2$s'), $gwname, $group['name']);
$msg .= "\n".implode("|", $status);
log_error($msg);
notify_via_growl($msg);
notify_via_smtp($msg);
- unlink("/tmp/.down.$gwname");
}
}
} else if (isset($gateways_arr[$gwname]['monitor_disable'])) {
diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc
index 865009a..b1ef885 100644
--- a/src/etc/inc/interfaces.inc
+++ b/src/etc/inc/interfaces.inc
@@ -3,7 +3,7 @@
* interfaces.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -1006,10 +1006,10 @@ function interface_gif_configure(&$gif, $gifkey = "") {
}
if (is_ipaddrv4($realifgw)) {
- mwexec("/sbin/route change -host " . escapeshellarg($gif['remote-addr']) . " {$realifgw}");
+ route_add_or_change("-host {$gif['remote-addr']} {$realifgw}");
}
if (is_ipaddrv6($realifgw)) {
- mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gif['remote-addr']) . " {$realifgw}");
+ route_add_or_change("-host -inet6 {$gif['remote-addr']} {$realifgw}");
}
interfaces_bring_up($gifif);
@@ -1158,16 +1158,16 @@ function interfaces_configure() {
/* reload IPsec tunnels */
vpn_ipsec_configure();
- /* reload dhcpd (interface enabled/disabled status may have changed) */
- services_dhcpd_configure();
-
+ /* restart dns servers (defering dhcpd reload) */
if (isset($config['dnsmasq']['enable'])) {
- services_dnsmasq_configure();
+ services_dnsmasq_configure(false);
}
-
if (isset($config['unbound']['enable'])) {
- services_unbound_configure();
+ services_unbound_configure(false);
}
+
+ /* reload dhcpd (interface enabled/disabled status may have changed) */
+ services_dhcpd_configure();
}
return 0;
@@ -1300,11 +1300,7 @@ function interface_bring_down($interface = "wan", $destroy = false, $ifacecfg =
switch ($ifcfg['ipaddrv6']) {
case "slaac":
case "dhcp6":
- $pidv6 = find_dhcp6c_process($realif);
- if ($pidv6) {
- posix_kill($pidv6, SIGTERM);
- }
- sleep(3);
+ kill_dhcp6client_process($realif);
unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}.conf");
unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}_script.sh");
unlink_if_exists("{$g['varetc_path']}/rtsold_{$realifv6}_script.sh");
@@ -1654,6 +1650,9 @@ function interface_ppps_configure($interface) {
log_error(sprintf(gettext("Could not get a Local IP address for PPTP/L2TP link on %s in interfaces_ppps_configure. Using 0.0.0.0 ip!"), $port));
$localips[$pid] = "0.0.0.0";
}
+ if (!$g['booting'] && !is_ipaddr($gateways[$pid]) && is_hostname($gateways[$pid])) {
+ $gateways[$pid] = gethostbyname($gateways[$pid]);
+ }
if (!is_ipaddr($gateways[$pid])) {
log_error(sprintf(gettext('Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in interfaces_ppps_configure.'), $dhcp_gateway, $gway));
return 0;
@@ -1999,15 +1998,11 @@ EOD;
// Create the uptime log if requested and if it doesn't exist already, or delete it if it is no longer requested.
if (isset($ppp['uptime'])) {
if (!file_exists("/conf/{$pppif}.log")) {
- conf_mount_rw();
file_put_contents("/conf/{$pppif}.log", '');
- conf_mount_ro();
}
} else {
if (file_exists("/conf/{$pppif}.log")) {
- conf_mount_rw();
@unlink("/conf/{$pppif}.log");
- conf_mount_ro();
}
}
@@ -2582,8 +2577,6 @@ function interface_wireless_configure($if, &$wl, &$wlcfg) {
$wlcmd = array();
$wl_sysctl = array();
- /* Make sure it's up */
- $wlcmd[] = "up";
/* Set a/b/g standard */
$standard = str_replace(" Turbo", "", $wlcfg['standard']);
/* skip mode entirely for "auto" */
@@ -2710,7 +2703,6 @@ function interface_wireless_configure($if, &$wl, &$wlcfg) {
mwexec(kill_wpasupplicant("{$if}"));
/* generate wpa_supplicant/hostap config if wpa is enabled */
- conf_mount_rw();
switch ($wlcfg['mode']) {
case 'bss':
@@ -2842,7 +2834,8 @@ EOD;
/* add line to script to restore old mac to make hostapd happy */
if (file_exists("{$g['tmp_path']}/{$if}_oldmac")) {
$if_oldmac = file_get_contents("{$g['tmp_path']}/{$if}_oldmac");
- if (is_macaddr($if_oldmac)) {
+ $if_curmac = get_interface_mac($if);
+ if ($if_curmac != $if_oldmac && is_macaddr($if_oldmac)) {
fwrite($fd_set, "{$ifconfig} " . escapeshellarg($if) .
" link " . escapeshellarg($if_oldmac) . "\n");
}
@@ -2851,22 +2844,17 @@ EOD;
fwrite($fd_set, "{$hostapd} -B -P {$g['varrun_path']}/hostapd_{$if}.pid {$g['varetc_path']}/hostapd_{$if}.conf\n");
/* add line to script to restore spoofed mac after running hostapd */
- if (file_exists("{$g['tmp_path']}/{$if}_oldmac")) {
- if ($wl['spoofmac']) {
- $if_curmac = $wl['spoofmac'];
- } else {
- $if_curmac = get_interface_mac($if);
- }
- if (is_macaddr($if_curmac)) {
+ if ($wl['spoofmac']) {
+ $if_curmac = get_interface_mac($if);
+ if ($wl['spoofmac'] != $if_curmac && is_macaddr($wl['spoofmac'])) {
fwrite($fd_set, "{$ifconfig} " . escapeshellarg($if) .
- " link " . escapeshellarg($if_curmac) . "\n");
+ " link " . escapeshellarg($wl['spoofmac']) . "\n");
}
}
}
}
fclose($fd_set);
- conf_mount_ro();
/* Making sure regulatory settings have actually changed
* before applying, because changing them requires bringing
@@ -2954,18 +2942,22 @@ EOD;
}
}
- /* 20150318 cmb - Note: the below no longer appears to be true on FreeBSD 10.x, so don't set
- * mode twice (for now at least). This can be removed entirely in the future if no problems are found
-
- * The mode must be specified in a separate command before ifconfig
- * will allow the mode and channel at the same time in the next. */
- //mwexec("/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard));
- //fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard) . "\n");
+ /* The mode must be specified in a separate command before ifconfig
+ * will allow the mode and channel at the same time in the next.
+ * Only do this for AP mode as this breaks client mode (PR 198680).
+ */
+ if ($wlcfg['mode'] == "hostap") {
+ mwexec("/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard));
+ fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard) . "\n");
+ }
/* configure wireless */
$wlcmd_args = implode(" ", $wlcmd);
mwexec("/sbin/ifconfig " . escapeshellarg($if) . " " . $wlcmd_args, false);
fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " " . "$wlcmd_args \n");
+ /* Bring the interface up only after setting up all the other parameters. */
+ mwexec("/sbin/ifconfig " . escapeshellarg($if) . " up", false);
+ fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " up\n");
fclose($wlan_setup_log);
unset($wlcmd_args, $wlcmd);
@@ -3030,19 +3022,14 @@ function find_dhcp6c_process($interface) {
}
function kill_dhcp6client_process($interface) {
- if (empty($interface) || !does_interface_exist($interface)) {
- return;
- }
+ if (empty($interface) || !does_interface_exist($interface)) {
+ return;
+ }
- $i = 0;
- while ((($pid = find_dhcp6c_process($interface)) != 0) && ($i < 3)) {
- /* 3rd time make it die for sure */
- $sig = ($i == 2 ? SIGKILL : SIGTERM);
- posix_kill($pid, $sig);
- sleep(1);
- $i++;
- }
- unset($i);
+ if (($pid = find_dhcp6c_process($interface)) != 0) {
+ mwexec("kill -9 {$pid}");
+ sleep(1);
+ }
}
function interface_virtual_create($interface) {
@@ -3536,14 +3523,15 @@ function interface_track6_configure($interface = "lan", $wancfg, $linkupevent =
require_once("services.inc");
}
+ /* restart dns servers (defering dhcpd reload) */
if (isset($config['unbound']['enable'])) {
- services_unbound_configure();
+ services_unbound_configure(false);
}
-
if (isset($config['dnsmasq']['enable'])) {
- services_dnsmasq_configure();
+ services_dnsmasq_configure(false);
}
+ /* reconfigure dhcpdv6 (leaving dhcpdv4 alone) */
services_dhcpd_configure("inet6");
}
@@ -3704,12 +3692,12 @@ function interface_6rd_configure($interface = "wan", $wancfg) {
$rd6prefix = explode("/", $wancfg['prefix-6rd']);
$rd6prefixlen = $rd6prefix[1];
$brgw = explode('.', $wancfg['gateway-6rd']);
- $rd6brgw = substr(Net_IPv6::_ip2Bin($rd6prefix[0]), 0, $rd6prefixlen);
+ $rd6brgw = substr(ip6_to_bin($rd6prefix[0]), 0, $rd6prefixlen);
$rd6brgw .= str_pad(decbin($brgw[0]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[1]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[2]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[3]), 8, '0', STR_PAD_LEFT);
if (strlen($rd6brgw) < 128) {
$rd6brgw = str_pad($rd6brgw, 128, '0', STR_PAD_RIGHT);
}
- $rd6brgw = Net_IPv6::compress(Net_IPv6::_bin2Ip($rd6brgw));
+ $rd6brgw = bin_to_compressed_ip6($rd6brgw);
unset($brgw);
$rd6prefix = Net_IPv6::uncompress($rd6prefix[0]);
@@ -3753,7 +3741,7 @@ function interface_6rd_configure($interface = "wan", $wancfg) {
$ip4gateway = get_interface_gateway($interface);
if (is_ipaddrv4($ip4gateway)) {
- mwexec("/sbin/route change -host " . escapeshellarg($wancfg['gateway-6rd']) . " {$ip4gateway}");
+ route_add_or_change("-host {$wancfg['gateway-6rd']} {$ip4gateway}");
}
/* configure dependent interfaces */
@@ -3860,7 +3848,7 @@ function interface_6to4_configure($interface = "wan", $wancfg) {
$ip4gateway = get_interface_gateway($interface);
if (is_ipaddrv4($ip4gateway)) {
- mwexec("/sbin/route change -host 192.88.99.1 {$ip4gateway}");
+ route_add_or_change("-host 192.88.99.1 {$ip4gateway}");
}
if (!platform_booting()) {
@@ -3974,23 +3962,20 @@ function interface_dhcpv6_configure($interface = "wan", $wancfg) {
$rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_routerv6\n";
$rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_defaultgwv6\n";
$rtsoldscript .= "/usr/bin/logger -t rtsold \"Received RA specifying route \$2 for interface {$interface}({$wanif})\"\n";
- $rtsoldscript .= "if [ -f {$g['varrun_path']}/dhcp6c_{$wanif}.pid ]; then\n";
- $rtsoldscript .= "\t/bin/pkill -F {$g['varrun_path']}/dhcp6c_{$wanif}.pid\n";
- $rtsoldscript .= "\t/bin/sleep 1\n";
- $rtsoldscript .= "fi\n";
- $debugOption = isset($wancfg['dhcp6debug']) ? "-D" : "-d";
- $rtsoldscript .= "/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_{$interface}.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}\n";
- $rtsoldscript .= "/usr/bin/logger -t rtsold \"Starting dhcp6 client for interface {$interface}({$wanif})\"\n";
+
/* non ipoe Process */
- if (!isset($wancfg['dhcp6withoutra'])) {
+ if (!isset($wancfg['dhcp6withoutra'])) {
$rtsoldscript .= "if [ -f {$g['varrun_path']}/dhcp6c_{$wanif}.pid ]; then\n";
$rtsoldscript .= "\t/bin/pkill -F {$g['varrun_path']}/dhcp6c_{$wanif}.pid\n";
$rtsoldscript .= "\t/bin/sleep 1\n";
$rtsoldscript .= "fi\n";
} else {
- $rtsoldscript .= "\t/bin/sleep 1\n";
+ $rtsoldscript .= "{$g['varetc_path']}/dhcp6c_{$interface}_script.sh\n";
+ $rtsoldscript .= "/bin/sleep 1\n";
}
$debugOption = isset($wancfg['dhcp6debug']) ? "-D" : "-d";
+
+ /* add the start of dhcp6c to the rtsold script if we are going to wait for ra */
if (!isset($wancfg['dhcp6withoutra'])) {
$rtsoldscript .= "/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_{$interface}.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}\n";
$rtsoldscript .= "/usr/bin/logger -t rtsold \"Starting dhcp6 client for interface {$interface}({$wanif})\"\n";
@@ -4013,11 +3998,13 @@ function interface_dhcpv6_configure($interface = "wan", $wancfg) {
killbypid("{$g['varrun_path']}/rtsold_{$wanif}.pid");
sleep(2);
}
+
+ /* start dhcp6c here if we don't want to wait for ra */
if (isset($wancfg['dhcp6withoutra'])) {
kill_dhcp6client_process($wanif);
mwexec("/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_wan.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}");
- mwexec("/usr/bin/logger -t mwtag 'Starting dhcp6 client for interface wan({$wanif} in IPoE mode)'");
+ mwexec("/usr/bin/logger -t info 'Starting dhcp6 client for interface wan({$wanif} in DHCP6 without RA mode)'");
}
mwexec("/usr/sbin/rtsold -1 -p {$g['varrun_path']}/rtsold_{$wanif}.pid -O {$g['varetc_path']}/rtsold_{$wanif}_script.sh {$wanif}");
@@ -4741,6 +4728,27 @@ function interface_get_wireless_clone($wlif) {
}
}
+function interface_list_wireless() {
+ $portlist = explode(" ", get_single_sysctl("net.wlan.devices"));
+
+ $result = array();
+ foreach ($portlist as $port) {
+ if (preg_match("/^([^0-9]+)([0-9]+)/", $port, $matches) != 1) {
+ continue;
+ }
+
+ $desc = $port . " ( " . get_single_sysctl(
+ "dev.{$matches[1]}.{$matches[2]}.%desc") . " )";
+
+ $result[] = array(
+ "if" => $port,
+ "descr" => $desc
+ );
+ }
+
+ return $result;
+}
+
function get_real_interface($interface = "wan", $family = "all", $realv6iface = false, $flush = true) {
global $config, $g;
@@ -5655,7 +5663,7 @@ function is_altq_capable($int) {
* 20150328 - removed wireless drivers - ath, awi, bwn, iwi, ipw, ral, rum, run, wi - for now. redmine #4406
*/
$capable = array("ae", "age", "alc", "ale", "an", "aue", "axe", "bce",
- "bfe", "bge", "bridge", "cas", "dc", "de", "ed", "em", "ep", "epair", "et", "fxp", "gem",
+ "bfe", "bge", "bridge", "cas", "cxl", "dc", "de", "ed", "em", "ep", "epair", "et", "fxp", "gem",
"hme", "hn", "igb", "ix", "jme", "le", "lem", "msk", "mxge", "my", "nfe",
"nge", "npe", "nve", "re", "rl", "sf", "sge", "sis", "sk",
"ste", "stge", "ti", "txp", "udav", "ural", "vge", "vmx", "vr", "vte", "xl",
@@ -5919,7 +5927,9 @@ function interfaces_staticarp_configure($if) {
mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 ");
if (is_array($config['dhcpd'][$if]['staticmap'])) {
foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) {
- mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
+ if (!empty($arpent['ipaddr']) && !empty($arpent['mac'])) {
+ mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
+ }
}
}
} else {
@@ -5927,7 +5937,7 @@ function interfaces_staticarp_configure($if) {
mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 ");
if (is_array($config['dhcpd'][$if]) && is_array($config['dhcpd'][$if]['staticmap'])) {
foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) {
- if (isset($arpent['arp_table_static_entry'])) {
+ if (isset($arpent['arp_table_static_entry']) && !empty($arpent['ipaddr']) && !empty($arpent['mac'])) {
mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
}
}
diff --git a/src/etc/inc/ipsec.attributes.php b/src/etc/inc/ipsec.attributes.php
index 3cf1cf6..65ab036 100644
--- a/src/etc/inc/ipsec.attributes.php
+++ b/src/etc/inc/ipsec.attributes.php
@@ -3,7 +3,7 @@
* ipsec.attributes.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/ipsec.auth-user.php b/src/etc/inc/ipsec.auth-user.php
index 5c945ac..d7d790a 100755
--- a/src/etc/inc/ipsec.auth-user.php
+++ b/src/etc/inc/ipsec.auth-user.php
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Shrew Soft Inc
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/ipsec.inc b/src/etc/inc/ipsec.inc
index a77e485..c16e854 100644
--- a/src/etc/inc/ipsec.inc
+++ b/src/etc/inc/ipsec.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Shrew Soft Inc.
- * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -597,8 +597,12 @@ function ipsec_dump_sad() {
* Return dump of mobile user list
*/
function ipsec_dump_mobile() {
- global $g;
+ global $g, $config;
+ if(!isset($config['ipsec']['client']['enable'])) {
+ return array();
+ }
+
$_gb = exec("/usr/local/sbin/ipsec leases 2>/dev/null", $output, $rc);
if ($rc != 0) {
diff --git a/src/etc/inc/itemid.inc b/src/etc/inc/itemid.inc
index 6251928..1fe4809 100644
--- a/src/etc/inc/itemid.inc
+++ b/src/etc/inc/itemid.inc
@@ -3,7 +3,7 @@
* itemid.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2009 Janne Enberg <janne.enberg@lietu.net>
* All rights reserved.
*
diff --git a/src/etc/inc/led.inc b/src/etc/inc/led.inc
index 647f69c..17b96e2 100644
--- a/src/etc/inc/led.inc
+++ b/src/etc/inc/led.inc
@@ -3,7 +3,7 @@
* led.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/meta.inc b/src/etc/inc/meta.inc
index a58c1fe..f366072 100644
--- a/src/etc/inc/meta.inc
+++ b/src/etc/inc/meta.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Shrew Soft Inc
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/notices.inc b/src/etc/inc/notices.inc
index 9bda4c7..2df36c3 100644
--- a/src/etc/inc/notices.inc
+++ b/src/etc/inc/notices.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2005 Colin Smith (ethethlay@gmail.com)
- * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/openvpn.attributes.php b/src/etc/inc/openvpn.attributes.php
index 95239f6..44b2a34 100644
--- a/src/etc/inc/openvpn.attributes.php
+++ b/src/etc/inc/openvpn.attributes.php
@@ -3,7 +3,7 @@
* openvpn.attributes.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/openvpn.auth-user.php b/src/etc/inc/openvpn.auth-user.php
index cbbe1f7..e2a6549 100644
--- a/src/etc/inc/openvpn.auth-user.php
+++ b/src/etc/inc/openvpn.auth-user.php
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Shrew Soft Inc
- * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/openvpn.inc b/src/etc/inc/openvpn.inc
index 117aba9..dd303c5 100644
--- a/src/etc/inc/openvpn.inc
+++ b/src/etc/inc/openvpn.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2006 Fernando Lemos
- * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* This file was rewritten from scratch by Fernando Lemos but
@@ -368,11 +368,11 @@ function openvpn_port_next($prot, $interface = "wan") {
function openvpn_get_cipherlist() {
$ciphers = array();
- $cipher_out = shell_exec('/usr/local/sbin/openvpn --show-ciphers | /usr/bin/grep "default key" | /usr/bin/awk \'{print $1, "(" $2 "-" $3 ")";}\'');
+ $cipher_out = shell_exec('/usr/local/sbin/openvpn --show-ciphers | /usr/bin/grep \'(.*key\' | sed \'s/, TLS client\/server mode only//\'');
$cipher_lines = explode("\n", trim($cipher_out));
sort($cipher_lines);
foreach ($cipher_lines as $line) {
- $words = explode(' ', $line);
+ $words = explode(' ', $line, 2);
$ciphers[$words[0]] = "{$words[0]} {$words[1]}";
}
$ciphers["none"] = gettext("None (No Encryption)");
diff --git a/src/etc/inc/openvpn.tls-verify.php b/src/etc/inc/openvpn.tls-verify.php
index 46c8ff7..b4cfd24 100644
--- a/src/etc/inc/openvpn.tls-verify.php
+++ b/src/etc/inc/openvpn.tls-verify.php
@@ -4,7 +4,7 @@
* openvpn.tls-verify.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 9087ff7..0cc6416 100644
--- a/src/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
@@ -3,7 +3,7 @@
* pfsense-utils.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -380,6 +380,12 @@ function hardware_offloading_applyflags($iface) {
if (isset($options['encaps']['rxcsum'])) {
$flags_off |= IFCAP_RXCSUM;
}
+ if (isset($options['encaps']['txcsum6'])) {
+ $flags_off |= IFCAP_TXCSUM_IPV6;
+ }
+ if (isset($options['encaps']['rxcsum6'])) {
+ $flags_off |= IFCAP_RXCSUM_IPV6;
+ }
} else {
if (isset($options['caps']['txcsum'])) {
$flags_on |= IFCAP_TXCSUM;
@@ -387,6 +393,12 @@ function hardware_offloading_applyflags($iface) {
if (isset($options['caps']['rxcsum'])) {
$flags_on |= IFCAP_RXCSUM;
}
+ if (isset($options['caps']['txcsum6'])) {
+ $flags_on |= IFCAP_TXCSUM_IPV6;
+ }
+ if (isset($options['caps']['rxcsum6'])) {
+ $flags_on |= IFCAP_RXCSUM_IPV6;
+ }
}
if (isset($config['system']['disablesegmentationoffloading'])) {
@@ -629,8 +641,11 @@ function get_carp_interface_status($carpid) {
$interface = get_real_interface($carpiface);
if ($interface == NULL)
return "";
+ $vip = get_configured_vip($carpid);
+ if ($vip == NULL || !isset($vip['vhid']))
+ return "";
- $vhid = $carp['vhid'];
+ $vhid = $vip['vhid'];
$carp_query = '';
$_gb = exec("/sbin/ifconfig $interface | /usr/bin/grep carp: | /usr/bin/grep \"vhid $vhid\"", $carp_query);
foreach ($carp_query as $int) {
@@ -788,7 +803,6 @@ function backup_config_section($section_name) {
*/
function restore_config_section($section_name, $new_contents) {
global $config, $g;
- conf_mount_rw();
$fout = fopen("{$g['tmp_path']}/tmpxml", "w");
fwrite($fout, $new_contents);
fclose($fout);
@@ -816,7 +830,6 @@ function restore_config_section($section_name, $new_contents) {
}
write_config(sprintf(gettext("Restored %s of config file (maybe from CARP partner)"), $section_name));
disable_security_checks();
- conf_mount_ro();
return true;
}
@@ -828,7 +841,6 @@ function restore_config_section($section_name, $new_contents) {
*/
function merge_config_section($section_name, $new_contents) {
global $config;
- conf_mount_rw();
$fname = get_tmp_filename();
$fout = fopen($fname, "w");
fwrite($fout, $new_contents);
@@ -838,7 +850,6 @@ function merge_config_section($section_name, $new_contents) {
unlink($fname);
write_config(sprintf(gettext("Restored %s of config file (maybe from CARP partner)"), $section_name));
disable_security_checks();
- conf_mount_ro();
return;
}
@@ -932,7 +943,7 @@ function host_firmware_version($tocheck = "") {
"firmware" => array("version" => $g['product_version']),
"kernel" => array("version" => $os_version),
"base" => array("version" => $os_version),
- "platform" => trim(file_get_contents('/etc/platform', " \n")),
+ "platform" => $g['platform'],
"config_version" => $config['version']
);
}
@@ -1057,10 +1068,8 @@ function reload_all_sync() {
system_ntp_configure();
/* sync pw database */
- conf_mount_rw();
unlink_if_exists("/etc/spwd.db.tmp");
mwexec("/usr/sbin/pwd_mkdb -d /etc/ /etc/master.passwd");
- conf_mount_ro();
/* restart sshd */
send_event("service restart sshd");
@@ -1071,7 +1080,6 @@ function reload_all_sync() {
function setup_serial_port($when = "save", $path = "") {
global $g, $config;
- conf_mount_rw();
$ttys_file = "{$path}/etc/ttys";
$boot_config_file = "{$path}/boot.config";
$loader_conf_file = "{$path}/boot/loader.conf";
@@ -1083,96 +1091,99 @@ function setup_serial_port($when = "save", $path = "") {
}
$serialspeed = (is_numeric($config['system']['serialspeed'])) ? $config['system']['serialspeed'] : "115200";
- if ($g['platform'] != "cdrom") {
- $serial_only = false;
+ $serial_only = false;
- if (($g['platform'] == "nanobsd") && isset($g['enableserial_force'])) {
- $serial_only = true;
- } else {
- $specific_platform = system_identify_specific_platform();
- if ($specific_platform['name'] == 'RCC-VE' ||
- $specific_platform['name'] == 'RCC' ||
- $specific_platform['name'] == 'RCC-DFF') {
- $serial_only = true;
- }
+ $specific_platform = system_identify_specific_platform();
+ if ($specific_platform['name'] == 'RCC-VE' ||
+ $specific_platform['name'] == 'RCC' ||
+ $specific_platform['name'] == 'RCC-DFF') {
+ $serial_only = true;
+ }
+
+ $boot_config_split = explode("\n", $boot_config);
+ $data = array();
+ foreach ($boot_config_split as $bcs) {
+ /* Ignore -D and -h lines now */
+ if (!empty($bcs) && !stristr($bcs, "-D") &&
+ !stristr($bcs, "-h")) {
+ $data[] = $bcs;
}
+ }
+ if ($serial_only === true) {
+ $data[] = "-S{$serialspeed} -h";
+ } elseif (is_serial_enabled()) {
+ $data[] = "-S{$serialspeed} -D";
+ }
- $boot_config_split = explode("\n", $boot_config);
- $fd = fopen($boot_config_file, "w");
- if ($fd) {
- foreach ($boot_config_split as $bcs) {
- if (stristr($bcs, "-D") || stristr($bcs, "-h")) {
- /* DONT WRITE OUT, WE'LL DO IT LATER */
- } else {
- if ($bcs <> "") {
- fwrite($fd, "{$bcs}\n");
- }
- }
- }
- if ($serial_only === true) {
- fwrite($fd, "-S{$serialspeed} -h");
- } else if (is_serial_enabled()) {
- fwrite($fd, "-S{$serialspeed} -D");
- }
- fclose($fd);
- }
-
- /* serial console - write out /boot/loader.conf */
- if ($when == "upgrade") {
- system("echo \"Reading {$loader_conf_file}...\" >> /conf/upgrade_log.txt");
- }
- $boot_config = file_get_contents($loader_conf_file);
- $boot_config_split = explode("\n", $boot_config);
- if (count($boot_config_split) > 0) {
- $new_boot_config = array();
- // Loop through and only add lines that are not empty, and which
- // do not contain a console directive.
- foreach ($boot_config_split as $bcs) {
- if (!empty($bcs) &&
- (stripos($bcs, "console") === false) &&
- (stripos($bcs, "boot_multicons") === false) &&
- (stripos($bcs, "boot_serial") === false) &&
- (stripos($bcs, "hw.usb.no_pf") === false) &&
- (stripos($bcs, "hint.uart.0.flags") === false) &&
- (stripos($bcs, "hint.uart.1.flags") === false)) {
- $new_boot_config[] = $bcs;
- }
- }
+ if (empty($data)) {
+ @unlink($boot_conf_file);
+ } else {
+ safe_write_file($boot_config_file, $data);
+ }
+
+ unset($boot_config, $boot_config_file, $boot_config_split);
+
+ /* serial console - write out /boot/loader.conf */
+ if ($when == "upgrade") {
+ system("echo \"Reading {$loader_conf_file}...\" >> /conf/upgrade_log.txt");
+ }
+
+ $loader_conf = file_get_contents($loader_conf_file);
+ $loader_conf_split = explode("\n", $loader_conf);
+
+ $data = array();
+ // Loop through and only add lines that are not empty, and which
+ // do not contain a console directive.
+ foreach ($loader_conf_split as $bcs) {
+ if (!empty($bcs) &&
+ (stripos($bcs, "console") === false) &&
+ (stripos($bcs, "boot_multicons") === false) &&
+ (stripos($bcs, "boot_serial") === false) &&
+ (stripos($bcs, "hw.usb.no_pf") === false) &&
+ (stripos($bcs, "hint.uart.0.flags") === false) &&
+ (stripos($bcs, "hint.uart.1.flags") === false)) {
+ $data[] = $bcs;
+ }
+ }
+
+ if ($serial_only === true) {
+ $data[] = 'boot_serial="YES"';
+ $data[] = 'console="comconsole"';
+ } else if (is_serial_enabled()) {
+ $data[] = 'boot_multicons="YES"';
+ $data[] = 'boot_serial="YES"';
+ $primaryconsole = isset($g['primaryconsole_force']) ?
+ $g['primaryconsole_force'] :
+ $config['system']['primaryconsole'];
+ switch ($primaryconsole) {
+ case "video":
+ $data[] = 'console="vidconsole,comconsole"';
+ break;
+ case "serial":
+ default:
+ $data[] = 'console="comconsole,vidconsole"';
+ }
+ }
+ $data[] = 'comconsole_speed="' . $serialspeed . '"';
- if ($serial_only === true) {
- $new_boot_config[] = 'boot_serial="YES"';
- $new_boot_config[] = 'console="comconsole"';
- } else if (is_serial_enabled()) {
- $new_boot_config[] = 'boot_multicons="YES"';
- $new_boot_config[] = 'boot_serial="YES"';
- $primaryconsole = isset($g['primaryconsole_force']) ? $g['primaryconsole_force'] : $config['system']['primaryconsole'];
- switch ($primaryconsole) {
- case "video":
- $new_boot_config[] = 'console="vidconsole,comconsole"';
- break;
- case "serial":
- default:
- $new_boot_config[] = 'console="comconsole,vidconsole"';
- }
- }
- $new_boot_config[] = 'comconsole_speed="' . $serialspeed . '"';
+ $specplatform = system_identify_specific_platform();
+ if ($specplatform['name'] == 'RCC-VE' ||
+ $specplatform['name'] == 'RCC' ||
+ $specplatform['name'] == 'RCC-DFF') {
+ $data[] = 'comconsole_port="0x2F8"';
+ $data[] = 'hint.uart.0.flags="0x00"';
+ $data[] = 'hint.uart.1.flags="0x10"';
+ }
+ $data[] = 'hw.usb.no_pf="1"';
- $specplatform = system_identify_specific_platform();
- if ($specplatform['name'] == 'RCC-VE' ||
- $specplatform['name'] == 'RCC' ||
- $specplatform['name'] == 'RCC-DFF') {
- $new_boot_config[] = 'comconsole_port="0x2F8"';
- $new_boot_config[] = 'hint.uart.0.flags="0x00"';
- $new_boot_config[] = 'hint.uart.1.flags="0x10"';
- }
- $new_boot_config[] = 'hw.usb.no_pf="1"';
+ safe_write_file($loader_conf_file, $data);
+
+ unset($loader_conf, $loader_conf_split, $loader_config_file);
- file_put_contents($loader_conf_file, implode("\n", $new_boot_config) . "\n");
- }
- }
$ttys = file_get_contents($ttys_file);
$ttys_split = explode("\n", $ttys);
- $fd = fopen($ttys_file, "w");
+
+ $data = array();
$on_off = (is_serial_enabled() ? 'onifconsole' : 'off');
@@ -1183,23 +1194,69 @@ function setup_serial_port($when = "save", $path = "") {
$console_type = 'al.Pc';
$serial_type = 'al.3wire';
}
+
+ $console_line = "console\tnone\t\t\t\tunknown\toff\tsecure";
+ $ttyv0_line =
+ "ttyv0\t\"/usr/libexec/getty {$console_type}\"\txterm\ton\tsecure";
+ $ttyu_line =
+ "\"/usr/libexec/getty {$serial_type}\"\tvt100\t{$on_off}\tsecure";
+
+ $found = array();
+
foreach ($ttys_split as $tty) {
+ /* Ignore blank lines */
+ if (empty($tty)) {
+ continue;
+ }
+
if (stristr($tty, "ttyv0")) {
- fwrite($fd, "ttyv0 \"/usr/libexec/getty {$console_type}\" xterm on secure\n");
- } else if (stristr($tty, "ttyu")) {
+ $found['ttyv0'] = 1;
+ $data[] = $ttyv0_line;
+ } elseif (stristr($tty, "ttyu")) {
$ttyn = substr($tty, 0, 5);
- fwrite($fd, "{$ttyn} \"/usr/libexec/getty {$serial_type}\" vt100 {$on_off} secure\n");
+ $found[$ttyn] = 1;
+ $data[] = "{$ttyn}\t{$ttyu_line}";
+ } elseif (substr($tty, 0, 7) == 'console') {
+ $found['console'] = 1;
+ $data[] = $tty;
} else {
- fwrite($fd, $tty . "\n");
+ $data[] = $tty;
}
}
unset($on_off, $console_type, $serial_type);
- fclose($fd);
+
+ /* Detect missing main lines on original file and try to rebuild it */
+ $items = array(
+ 'console',
+ 'ttyv0',
+ 'ttyu0',
+ 'ttyu1',
+ 'ttyu2',
+ 'ttyu3'
+ );
+
+ foreach ($items as $item) {
+ if (isset($found[$item])) {
+ continue;
+ }
+
+ if ($item == 'console') {
+ $data[] = $console_line;
+ } elseif ($item == 'ttyv0') {
+ $data[] = $ttyv0_line;
+ } else {
+ $data[] = "{$item}\t{$ttyu_line}";
+ }
+ }
+
+ safe_write_file($ttys_file, $data);
+
+ unset($ttys, $ttys_file, $ttys_split, $data);
+
if ($when != "upgrade") {
reload_ttys();
}
- conf_mount_ro();
return;
}
@@ -1207,8 +1264,7 @@ function is_serial_enabled() {
global $g, $config;
if (!isset($g['enableserial_force']) &&
- !isset($config['system']['enableserial']) &&
- ($g['platform'] == $g['product_name'] || $g['platform'] == "cdrom")) {
+ !isset($config['system']['enableserial'])) {
return false;
}
@@ -1777,7 +1833,7 @@ function compare_hostname_to_dnscache($hostname) {
*/
function load_crypto() {
global $config, $g;
- $crypto_modules = array('glxsb', 'aesni');
+ $crypto_modules = array('aesni');
if (!in_array($config['system']['crypto_hardware'], $crypto_modules)) {
return false;
@@ -1816,7 +1872,7 @@ function load_thermal_hardware() {
******/
function isvm() {
$virtualenvs = array("vmware", "parallels", "qemu", "bochs", "plex86", "VirtualBox");
- $_gb = exec('/bin/kenv smbios.system.product 2>/dev/null', $output, $rc);
+ $_gb = exec('/bin/kenv -q smbios.system.product 2>/dev/null', $output, $rc);
if ($rc != 0 || !isset($output[0])) {
return false;
@@ -2374,7 +2430,6 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $
$forceupdate) {
// Try to fetch the URL supplied
- conf_mount_rw();
unlink_if_exists($tmp_urltable_filename);
$verify_ssl = isset($config['system']['checkaliasesurlcert']);
if (download_file($url, $tmp_urltable_filename, $verify_ssl)) {
@@ -2394,7 +2449,7 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $
}
/* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
unlink_if_exists("{$g['cf_conf_path']}/RAM_Disk_Store{$urltable_filename}.tgz");
} else {
/* Update the RAM disk store with the new/updated table file. */
@@ -2405,163 +2460,14 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $
if (!$validateonly) {
touch($urltable_filename);
}
- conf_mount_ro();
return false;
}
- conf_mount_ro();
return true;
} else {
// File exists, and it doesn't need to be updated.
return -1;
}
}
-function get_real_slice_from_glabel($label) {
- $label = escapeshellarg($label);
- return trim(`/sbin/glabel list | /usr/bin/grep -B2 ufs/{$label} | /usr/bin/head -n 1 | /usr/bin/cut -f3 -d' '`);
-}
-function nanobsd_get_boot_slice() {
- return trim(`/sbin/mount | /usr/bin/grep pfsense | /usr/bin/cut -d'/' -f4 | /usr/bin/cut -d' ' -f1`);
-}
-function nanobsd_get_boot_drive() {
- return trim(`/sbin/glabel list | /usr/bin/grep -B2 ufs/pfsense | /usr/bin/head -n 1 | /usr/bin/cut -f3 -d' ' | /usr/bin/cut -d's' -f1`);
-}
-function nanobsd_get_active_slice() {
- $boot_drive = nanobsd_get_boot_drive();
- $active = trim(`gpart show $boot_drive | grep '\[active\]' | awk '{print $3;}'`);
-
- return "{$boot_drive}s{$active}";
-}
-function nanobsd_get_size() {
- return strtoupper(file_get_contents("/etc/nanosize.txt"));
-}
-function nanobsd_switch_boot_slice() {
- global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
- global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
- global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
- nanobsd_detect_slice_info();
-
- if ($BOOTFLASH == $ACTIVE_SLICE) {
- $slice = $TOFLASH;
- } else {
- $slice = $BOOTFLASH;
- }
-
- for ($i = 0; $i < ob_get_level(); $i++) {
- ob_end_flush();
- }
- ob_implicit_flush(1);
- if (strstr($slice, "s2")) {
- $ASLICE = "2";
- $AOLDSLICE = "1";
- $AGLABEL_SLICE = "pfsense1";
- $AUFS_ID = "1";
- $AOLD_UFS_ID = "0";
- } else {
- $ASLICE = "1";
- $AOLDSLICE = "2";
- $AGLABEL_SLICE = "pfsense0";
- $AUFS_ID = "0";
- $AOLD_UFS_ID = "1";
- }
- $ATOFLASH = "{$BOOT_DRIVE}s{$ASLICE}";
- $ACOMPLETE_PATH = "{$BOOT_DRIVE}s{$ASLICE}a";
- $ABOOTFLASH = "{$BOOT_DRIVE}s{$AOLDSLICE}";
- conf_mount_rw();
- set_single_sysctl("kern.geom.debugflags", "16");
- exec("/sbin/gpart set -a active -i {$ASLICE} {$BOOT_DRIVE}");
- exec("/usr/sbin/boot0cfg -s {$ASLICE} -v /dev/{$BOOT_DRIVE}");
- // We can't update these if they are mounted now.
- if ($BOOTFLASH != $slice) {
- exec("/sbin/tunefs -L ${AGLABEL_SLICE} /dev/$ACOMPLETE_PATH");
- nanobsd_update_fstab($AGLABEL_SLICE, $ACOMPLETE_PATH, $AOLD_UFS_ID, $AUFS_ID);
- }
- set_single_sysctl("kern.geom.debugflags", "0");
- conf_mount_ro();
-}
-function nanobsd_clone_slice() {
- global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
- global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
- global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
- nanobsd_detect_slice_info();
-
- for ($i = 0; $i < ob_get_level(); $i++) {
- ob_end_flush();
- }
- ob_implicit_flush(1);
- set_single_sysctl("kern.geom.debugflags", "16");
- exec("/bin/dd if=/dev/zero of=/dev/{$TOFLASH} bs=1m count=1");
- exec("/bin/dd if=/dev/{$BOOTFLASH} of=/dev/{$TOFLASH} bs=64k");
- exec("/sbin/tunefs -L {$GLABEL_SLICE} /dev/{$COMPLETE_PATH}");
- $status = nanobsd_update_fstab($GLABEL_SLICE, $COMPLETE_PATH, $OLD_UFS_ID, $UFS_ID);
- set_single_sysctl("kern.geom.debugflags", "0");
- if ($status) {
- return false;
- } else {
- return true;
- }
-}
-function nanobsd_update_fstab($gslice, $complete_path, $oldufs, $newufs) {
- $tmppath = "/tmp/{$gslice}";
- $fstabpath = "/tmp/{$gslice}/etc/fstab";
-
- mkdir($tmppath);
- exec("/sbin/fsck_ufs -y /dev/{$complete_path}");
- exec("/sbin/mount /dev/ufs/{$gslice} {$tmppath}");
- copy("/etc/fstab", $fstabpath);
-
- if (!file_exists($fstabpath)) {
- $fstab = <<<EOF
-/dev/ufs/{$gslice} / ufs ro,noatime 1 1
-/dev/ufs/cf /cf ufs ro,noatime 1 1
-EOF;
- if (file_put_contents($fstabpath, $fstab)) {
- $status = true;
- } else {
- $status = false;
- }
- } else {
- $status = exec("/usr/bin/sed -i \"\" \"s/pfsense{$oldufs}/pfsense{$newufs}/g\" {$fstabpath}");
- }
- exec("/sbin/umount {$tmppath}");
- rmdir($tmppath);
-
- return $status;
-}
-function nanobsd_detect_slice_info() {
- global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
- global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
- global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
-
- $BOOT_DEVICE=nanobsd_get_boot_slice();
- $REAL_BOOT_DEVICE=get_real_slice_from_glabel($BOOT_DEVICE);
- $BOOT_DRIVE=nanobsd_get_boot_drive();
- $ACTIVE_SLICE=nanobsd_get_active_slice();
-
- // Detect which slice is active and set information.
- if (strstr($REAL_BOOT_DEVICE, "s1")) {
- $SLICE = "2";
- $OLDSLICE = "1";
- $GLABEL_SLICE = "pfsense1";
- $UFS_ID = "1";
- $OLD_UFS_ID = "0";
-
- } else {
- $SLICE = "1";
- $OLDSLICE = "2";
- $GLABEL_SLICE = "pfsense0";
- $UFS_ID = "0";
- $OLD_UFS_ID = "1";
- }
- $TOFLASH = "{$BOOT_DRIVE}s{$SLICE}";
- $COMPLETE_PATH = "{$BOOT_DRIVE}s{$SLICE}a";
- $COMPLETE_BOOT_PATH = "{$BOOT_DRIVE}s{$OLDSLICE}";
- $BOOTFLASH = "{$BOOT_DRIVE}s{$OLDSLICE}";
-}
-
-function nanobsd_friendly_slice_name($slicename) {
- global $g;
- return strtolower(str_ireplace('pfsense', $g['product_name'], $slicename));
-}
function get_include_contents($filename) {
if (is_file($filename)) {
@@ -3320,7 +3226,7 @@ function restore_aliastables() {
}
}
/* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
unlink_if_exists("{$file}");
}
}
@@ -3330,4 +3236,12 @@ function restore_aliastables() {
return false;
}
+// Convert IPv6 addresses to lower case
+function addrtolower($ip) {
+ if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
+ return(strtolower($ip));
+ } else {
+ return($ip);
+ }
+}
?>
diff --git a/src/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc
index 4699f68..4ab9c4c 100644
--- a/src/etc/inc/pkg-utils.inc
+++ b/src/etc/inc/pkg-utils.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2005-2006 Colin Smith (ethethlay@gmail.com)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -93,8 +93,7 @@ function pkg_env($extra_env = array()) {
$pkg_env_vars['HTTP_PROXY'] = $http_proxy;
}
- if ($g['platform'] == "nanobsd" ||
- isset($config['system']['use_mfs_tmpvar'])) {
+ if (isset($config['system']['use_mfs_tmpvar'])) {
$pkg_env_vars['PKG_DBDIR'] = '/root/var/db/pkg';
$pkg_env_vars['PKG_CACHEDIR'] = '/root/var/cache/pkg';
}
@@ -124,14 +123,12 @@ function pkg_call($params, $mute = false, $extra_env = array()) {
2 => array("pipe", "w") /* stderr */
);
- conf_mount_rw();
pkg_debug("pkg_call(): {$params}\n");
$process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes,
'/', pkg_env($extra_env));
if (!is_resource($process)) {
- conf_mount_ro();
return false;
}
@@ -172,7 +169,6 @@ function pkg_call($params, $mute = false, $extra_env = array()) {
fclose($pipes[2]);
proc_close($process);
- conf_mount_ro();
$rc = $status['exitcode'];
@@ -209,14 +205,12 @@ function pkg_exec($params, &$stdout, &$stderr, $extra_env = array()) {
2 => array("pipe", "w") /* stderr */
);
- conf_mount_rw();
pkg_debug("pkg_exec(): {$params}\n");
$process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes,
'/', pkg_env($extra_env));
if (!is_resource($process)) {
- conf_mount_ro();
return -1;
}
@@ -232,7 +226,6 @@ function pkg_exec($params, &$stdout, &$stderr, $extra_env = array()) {
}
fclose($pipes[2]);
- conf_mount_ro();
return proc_close($process);
}
@@ -340,7 +333,7 @@ function get_package_internal_name($package_data) {
}
// Get information about packages.
-function get_pkg_info($pkgs = 'all', $info = 'all', $only_local = false) {
+function get_pkg_info($pkgs = 'all', $only_local = false) {
global $g, $input_errors;
$out = '';
@@ -456,7 +449,7 @@ function get_pkg_info($pkgs = 'all', $info = 'all', $only_local = false) {
function register_all_installed_packages() {
global $g, $config, $pkg_interface;
- $pkg_info = get_pkg_info('all', 'all', true);
+ $pkg_info = get_pkg_info('all', true);
foreach ($pkg_info as $pkg) {
if (!isset($pkg['installed'])) {
@@ -493,7 +486,6 @@ function resync_all_package_configs($show_message = false) {
echo "Syncing packages:";
}
- conf_mount_rw();
foreach ($config['installedpackages']['package'] as $idx => $package) {
if (empty($package['name'])) {
@@ -514,7 +506,6 @@ function resync_all_package_configs($show_message = false) {
}
@unlink("/conf/needs_package_sync");
- conf_mount_ro();
}
function uninstall_package($package_name) {
@@ -673,7 +664,6 @@ function install_package_xml($package_name) {
}
/* safe side. Write config below will send to ro again. */
- conf_mount_rw();
pkg_debug(gettext("Beginning package installation.") . "\n");
log_error(sprintf(gettext('Beginning package installation for %s .'), $pkg_info['name']));
@@ -692,7 +682,6 @@ function install_package_xml($package_name) {
}
unlink_if_exists('/conf/needs_package_sync');
write_config(sprintf(gettext("Intermediate config write during package install for %s."), $pkg_info['name']));
- conf_mount_ro();
update_status($to_output);
if (($pkgid = get_package_id($package_name)) == -1) {
@@ -822,14 +811,12 @@ function install_package_xml($package_name) {
function delete_package_xml($package_name, $when = "post-deinstall") {
global $g, $config, $pkg_interface;
- conf_mount_rw();
$pkgid = get_package_id($package_name);
if ($pkgid == -1) {
update_status(sprintf(gettext("The %s package is not installed.%sDeletion aborted."), $package_name, "\n\n"));
ob_flush();
sleep(1);
- conf_mount_ro();
return;
}
pkg_debug(sprintf(gettext("Removing %s package... "), $package_name));
@@ -952,7 +939,6 @@ function delete_package_xml($package_name, $when = "post-deinstall") {
system_syslogd_start();
}
- conf_mount_ro();
}
/*
@@ -1199,6 +1185,21 @@ function pkg_switch_repo($path) {
@unlink("/usr/local/etc/pkg/repos/{$g['product_name']}.conf");
@symlink($path, "/usr/local/etc/pkg/repos/{$g['product_name']}.conf");
+ $abi_file = str_replace('.conf', '.abi', $path);
+ $altabi_file = str_replace('.conf', '.altabi', $path);
+
+ if (file_exists($abi_file) && file_exists($altabi_file)) {
+ $abi = file_get_contents($abi_file);
+ $altabi = file_get_contents($altabi_file);
+
+ $pkg_conf = array(
+ "ABI={$abi}",
+ "ALTABI={$altabi}"
+ );
+
+ file_put_contents("/usr/local/etc/pkg.conf", $pkg_conf);
+ }
+
return pkg_update(true);
}
diff --git a/src/etc/inc/priv.defs.inc b/src/etc/inc/priv.defs.inc
index 8deb4d7..5d68b2b 100644
--- a/src/etc/inc/priv.defs.inc
+++ b/src/etc/inc/priv.defs.inc
@@ -105,12 +105,6 @@ $priv_list['page-diagnostics-limiter-info']['descr'] = gettext("Allows access to
$priv_list['page-diagnostics-limiter-info']['match'] = array();
$priv_list['page-diagnostics-limiter-info']['match'][] = "diag_limiter_info.php*";
-$priv_list['page-diagnostics-nanobsd'] = array();
-$priv_list['page-diagnostics-nanobsd']['name'] = gettext("WebCfg - Diagnostics: NanoBSD");
-$priv_list['page-diagnostics-nanobsd']['descr'] = gettext("Allow access to the 'Diagnostics: NanoBSD' page.");
-$priv_list['page-diagnostics-nanobsd']['match'] = array();
-$priv_list['page-diagnostics-nanobsd']['match'][] = "diag_nanobsd.php*";
-
$priv_list['page-diagnostics-ndptable'] = array();
$priv_list['page-diagnostics-ndptable']['name'] = gettext("WebCfg - Diagnostics: NDP Table");
$priv_list['page-diagnostics-ndptable']['descr'] = gettext("Allow access to the 'Diagnostics: NDP Table' page.");
@@ -568,12 +562,6 @@ $priv_list['page-system-packagemanager-installed']['descr'] = gettext("Allow acc
$priv_list['page-system-packagemanager-installed']['match'] = array();
$priv_list['page-system-packagemanager-installed']['match'][] = "pkg_mgr_installed.php*";
-$priv_list['page-diagnostics-restart-httpd'] = array();
-$priv_list['page-diagnostics-restart-httpd']['name'] = gettext("WebCfg - Diagnostics: Restart Web Server Daemon");
-$priv_list['page-diagnostics-restart-httpd']['descr'] = gettext("Allow access to the 'Diagnostics: Restart Web Server Daemon' page.");
-$priv_list['page-diagnostics-restart-httpd']['match'] = array();
-$priv_list['page-diagnostics-restart-httpd']['match'][] = "restart_httpd.php*";
-
$priv_list['page-services-captiveportal'] = array();
$priv_list['page-services-captiveportal']['name'] = gettext("WebCfg - Services: Captive portal");
$priv_list['page-services-captiveportal']['descr'] = gettext("Allow access to the 'Services: Captive portal' page.");
diff --git a/src/etc/inc/priv.inc b/src/etc/inc/priv.inc
index 3ce857d..c430ced 100644
--- a/src/etc/inc/priv.inc
+++ b/src/etc/inc/priv.inc
@@ -3,7 +3,7 @@
* priv.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com>
* Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com>.
* Copyright (c) 2008 Shrew Soft Inc
@@ -267,12 +267,14 @@ function getAllowedPages($username, &$attributes = array()) {
$allowed_pages = array();
$allowed_groups = array();
- $authcfg = auth_get_authserver($config['system']['webgui']['authmode']);
- // obtain ldap groups if we are in ldap mode
- if ($authcfg['type'] == "ldap") {
- $allowed_groups = @ldap_get_groups($username, $authcfg);
- } elseif ($authcfg['type'] == "radius") {
- $allowed_groups = @radius_get_groups($attributes);
+ if ($_SESSION['remoteauth']) {
+ $authcfg = auth_get_authserver($config['system']['webgui']['authmode']);
+ // obtain ldap groups if we are in ldap mode
+ if ($authcfg['type'] == "ldap") {
+ $allowed_groups = @ldap_get_groups($username, $authcfg);
+ } elseif ($authcfg['type'] == "radius") {
+ $allowed_groups = @radius_get_groups($attributes);
+ }
}
if (!$allowed_groups) {
// search for a local user by name
diff --git a/src/etc/inc/rrd.inc b/src/etc/inc/rrd.inc
index b324d8c..183f84a 100644
--- a/src/etc/inc/rrd.inc
+++ b/src/etc/inc/rrd.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,7 +42,7 @@ function restore_rrd() {
$rrdrestore = "";
$rrdreturn = "";
- if (file_exists("{$g['cf_conf_path']}/rrd.tgz") && (isset($config['system']['use_mfs_tmpvar']) || $g['platform'] != $g['product_name'])) {
+ if (file_exists("{$g['cf_conf_path']}/rrd.tgz") && isset($config['system']['use_mfs_tmpvar'])) {
foreach (glob("{$rrddbpath}/*.xml") as $xml_file) {
@unlink($xml_file);
}
@@ -74,7 +74,7 @@ function restore_rrd() {
unset($rrdrestore);
@unlink("{$g['tmp_path']}/rrd_restore");
/* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
unlink_if_exists("{$g['cf_conf_path']}/rrd.tgz");
}
return true;
diff --git a/src/etc/inc/service-utils.inc b/src/etc/inc/service-utils.inc
index 654d4c8..94064e9 100644
--- a/src/etc/inc/service-utils.inc
+++ b/src/etc/inc/service-utils.inc
@@ -3,7 +3,7 @@
* service-utils.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2006 Colin Smith (ethethlay@gmail.com)
* All rights reserved.
*
@@ -454,27 +454,50 @@ function get_service_status($service) {
return $running;
}
-function get_service_status_icon($service, $withtext = true, $smallicon = false) {
- global $g;
+function get_service_status_icon($service, $withtext = true, $smallicon = false, $withthumbs = false, $title = "service_state") {
$output = "";
+
if (get_service_status($service)) {
$statustext = gettext("Running");
- $output .= "<a title=\"" . sprintf(gettext("%s Service is"), $service["name"]) . " {$statustext}\" ><i class=\"";
- $output .= ($smallicon) ? "fa fa-play" : "fa fa-lg fa-play";
- $output .= "\" ></i></a>";
- if ($withtext) {
- $output .= "&nbsp;" . $statustext;
- }
+ $text_class = "text-success";
+ $fa_class = "fa fa-check-circle";
+ $fa_class_thumbs = "fa fa-thumbs-o-up";
+ $Thumbs_UpDown = "Thumbs up";
} else {
- $service_enabled = is_service_enabled($service['name']);
- $statustext = ($service_enabled) ? gettext("Stopped") : gettext("Disabled");
- $output .= "<a title=\"" . sprintf(gettext("%s Service is"), $service["name"]) . " {$statustext}\" ><i class=\"";
- $output .= ($smallicon) ? "fa fa-times" : "fa fa-lg fa-times";
- $output .= "\" ></i></a>";
- if ($withtext) {
- $output .= "&nbsp;" . $statustext;
+ if (is_service_enabled($service['name'])) {
+ $statustext = gettext("Stopped");
+ $text_class = "text-danger";
+ $fa_class = "fa fa-times-circle";
+ } else {
+ $statustext = gettext("Disabled");
+ $text_class = "text-warning";
+ $fa_class = "fa fa-ban";
}
+ $fa_class_thumbs = "fa fa-thumbs-o-down";
+ $Thumbs_UpDown = "Thumbs down";
+ }
+ $fa_size = ($smallicon) ? "fa-1x" : "fa-lg";
+
+ $spacer = ($withthumbs || $withtext) ? " " : "";
+ if ($title == "state") {
+ $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"{$statustext}\"></i>{$spacer}";
+ } elseif ($title == "service_state") {
+ $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s Service is %s"), $service["name"], $statustext) . "\"></i>{$spacer}";
+ } elseif ($title == "description_state") {
+ $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s, %s Service is %s"), $service["description"], $statustext) . "\"></i>{$spacer}";
+ } elseif ($title == "description_service_state") {
+ $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s, %s Service is %s"), $service["description"], $service["name"], $statustext) . "\"></i>{$spacer}";
}
+
+ $spacer = ($withtext) ? " " : "";
+ if ($withthumbs) {
+ $output .= "<i class=\"{$text_class} {$fa_class_thumbs} {$fa_size}\" title=\"{$Thumbs_UpDown}\"></i>{$spacer}";
+ }
+
+ if ($withtext) {
+ $output .= "<span class=\"" . $text_class . "\">" . $statustext . "</span>";
+ }
+
return $output;
}
diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc
index a9e1773..b70792a 100644
--- a/src/etc/inc/services.inc
+++ b/src/etc/inc/services.inc
@@ -3,7 +3,7 @@
* services.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -23,8 +23,8 @@
* limitations under the License.
*/
-define('DYNDNS_PROVIDER_VALUES', 'citynetwork cloudflare cloudflare-v6 custom custom-v6 dnsexit dnsimple dnsmadeeasy dnsomatic dyndns dyndns-custom dyndns-static dyns easydns eurodns freedns freedns-v6 glesys googledomains gratisdns he-net he-net-v6 he-net-tunnelbroker loopia namecheap noip noip-free ods opendns ovh-dynhost route53 selfhost spdyn spdyn-v6 zoneedit');
-define('DYNDNS_PROVIDER_DESCRIPTIONS', 'City Network,CloudFlare,CloudFlare (v6),Custom,Custom (v6),DNSexit,DNSimple,DNS Made Easy,DNS-O-Matic,DynDNS (dynamic),DynDNS (custom),DynDNS (static),DyNS,easyDNS,Euro Dns,freeDNS,freeDNS (v6),GleSYS,Google Domains,GratisDNS,HE.net,HE.net (v6),HE.net Tunnelbroker,Loopia,Namecheap,No-IP,No-IP (free),ODS.org,OpenDNS,OVH DynHOST,Route 53,SelfHost,SPDYN,SPDYN (v6),ZoneEdit');
+define('DYNDNS_PROVIDER_VALUES', 'all-inkl citynetwork cloudflare cloudflare-v6 custom custom-v6 dnsexit dnsimple dnsmadeeasy dnsomatic duiadns duiadns-v6 dyndns dyndns-custom dyndns-static dyns easydns eurodns freedns freedns-v6 glesys googledomains gratisdns he-net he-net-v6 he-net-tunnelbroker loopia namecheap noip noip-free ods opendns ovh-dynhost route53 selfhost spdyn spdyn-v6 zoneedit');
+define('DYNDNS_PROVIDER_DESCRIPTIONS', 'All-Inkl.com,City Network,CloudFlare,CloudFlare (v6),Custom,Custom (v6),DNSexit,DNSimple,DNS Made Easy,DNS-O-Matic,DuiaDns.net,DuiaDns.net (v6),DynDNS (dynamic),DynDNS (custom),DynDNS (static),DyNS,easyDNS,Euro Dns,freeDNS,freeDNS (v6),GleSYS,Google Domains,GratisDNS,HE.net,HE.net (v6),HE.net Tunnelbroker,Loopia,Namecheap,No-IP,No-IP (free),ODS.org,OpenDNS,OVH DynHOST,Route 53,SelfHost,SPDYN,SPDYN (v6),ZoneEdit');
/* implement ipv6 route advertising daemon */
function services_radvd_configure($blacklist = array()) {
@@ -395,6 +395,8 @@ function services_radvd_configure($blacklist = array()) {
function services_dhcpd_configure($family = "all", $blacklist = array()) {
global $config, $g;
+ $dhcpdconfigurelck = lock("dhcpdconfigure", LOCK_EX);
+
/* configure DHCPD chroot once */
$fd = fopen("{$g['tmp_path']}/dhcpd.sh", "w");
fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}\n");
@@ -425,6 +427,8 @@ function services_dhcpd_configure($family = "all", $blacklist = array()) {
services_dhcpdv6_configure($blacklist);
services_radvd_configure($blacklist);
}
+
+ unlock($dhcpdconfigurelck);
}
function services_dhcpdv4_configure() {
@@ -476,7 +480,7 @@ function services_dhcpdv4_configure() {
}
}
/* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
unlink_if_exists("{$g['cf_conf_path']}/dhcpleases.tgz");
}
}
@@ -546,7 +550,6 @@ one-lease-per-client true;
deny duplicates;
ping-check true;
update-conflict-detection false;
-dhcp-cache-threshold 0;
EOD;
@@ -1049,6 +1052,9 @@ EOD;
$dhhostname = str_replace(" ", "_", $sm['hostname']);
$dhhostname = str_replace(".", "_", $dhhostname);
$dhcpdconf .= " option host-name \"{$dhhostname}\";\n";
+ if ((isset($dhcpifconf['ddnsupdate']) || isset($sm['ddnsupdate'])) && (isset($dhcpifconf['ddnsforcehostname']) || isset($sm['ddnsforcehostname']))) {
+ $dhcpdconf .= " ddns-hostname \"{$dhhostname}\";\n";
+ }
}
if ($sm['filename']) {
$dhcpdconf .= " filename \"{$sm['filename']}\";\n";
@@ -1254,18 +1260,19 @@ function services_dhcpdv6_configure($blacklist = array()) {
return 0;
}
- if (platform_booting()) {
- if ($g['platform'] != $g['product_name']) {
- /* restore the leases, if we have them */
- if (file_exists("{$g['cf_conf_path']}/dhcp6leases.tgz")) {
- $dhcprestore = "";
- $dhcpreturn = "";
- exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcp6leases.tgz 2>&1", $dhcprestore, $dhcpreturn);
- $dhcprestore = implode(" ", $dhcprestore);
- if ($dhcpreturn <> 0) {
- log_error(sprintf(gettext('DHCP leases v6 restore failed exited with %1$s, the error is: %2$s'), $dhcpreturn, $dhcprestore));
- }
- }
+ /* restore the leases, if we have them */
+ if (platform_booting() &&
+ isset($config['system']['use_mfs_tmpvar']) &&
+ file_exists("{$g['cf_conf_path']}/dhcp6leases.tgz")) {
+ $dhcprestore = "";
+ $dhcpreturn = "";
+ exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcp6leases.tgz 2>&1",
+ $dhcprestore, $dhcpreturn);
+ $dhcprestore = implode(" ", $dhcprestore);
+ if ($dhcpreturn <> 0) {
+ log_error(sprintf(gettext(
+ 'DHCP leases v6 restore failed exited with %1$s, the error is: %2$s'),
+ $dhcpreturn, $dhcprestore));
}
}
@@ -1310,7 +1317,6 @@ one-lease-per-client true;
deny duplicates;
ping-check true;
update-conflict-detection false;
-dhcp-cache-threshold 0;
EOD;
@@ -1342,12 +1348,11 @@ EOD;
}
$ifcfgsnv6 = get_interface_subnetv6($dhcpv6if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
-
- if ($ifcfgv6['ipaddrv6'] == 'track6') {
- $trackifname = $config['interfaces'][$ifname]['track6-interface'];
- $trackcfg = $config['interfaces'][$trackifname];
- $pdlen = 64 - $trackcfg['dhcp6-ia-pd-len'];
- }
+ // We might have some prefix-delegation on WAN (e.g. /48),
+ // but then it is split and given out to individual interfaces
+ // (LAN, OPT1, OPT2...) as multiple /64 subnets. So the size
+ // of each subnet here is always /64.
+ $pdlen = 64;
if ($is_olsr_enabled == true) {
if ($dhcpv6ifconf['netmask']) {
@@ -2094,7 +2099,7 @@ function services_dnsmasq_configure($restart_dhcp = true) {
$args = "";
if (isset($config['dnsmasq']['regdhcp'])) {
- $args .= " --dhcp-hostsfile={$g['varetc_path']}/hosts ";
+ $args .= " --dhcp-hostsfile={$g['etc_path']}/hosts ";
}
/* Setup listen port, if non-default */
@@ -2295,6 +2300,11 @@ function services_snmpd_configure() {
echo gettext("Starting SNMP daemon... ");
}
+ /* Make sure a printcap file exists or else bsnmpd will log errors. See https://redmine.pfsense.org/issues/6838 */
+ if (!file_exists('/etc/printcap')) {
+ @file_put_contents('/etc/printcap', "# Empty file to prevent bsnmpd from logging errors.\n");
+ }
+
/* generate snmpd.conf */
$fd = fopen("{$g['varetc_path']}/snmpd.conf", "w");
if (!$fd) {
@@ -2332,12 +2342,8 @@ trap := "{$config['snmpd']['trapstring']}"
EOD;
}
- $platform = trim(file_get_contents('/etc/platform'));
- if (($platform == "pfSense") && ($g['product_name'] != "pfSense")) {
- $platform = $g['product_name'];
- }
$sysDescr = "{$g['product_name']} " . php_uname("n") .
- " {$g['product_version']} {$platform} " . php_uname("s") .
+ " {$g['product_version']} {$g['platform']} " . php_uname("s") .
" " . php_uname("r") . " " . php_uname("m");
$snmpdconf .= <<<EOD
@@ -2375,24 +2381,34 @@ begemotSnmpdCommunityDisable = 1
EOD;
- $bind_to_ip = "0.0.0.0";
+ $bind_to_ips = array();
if (isset($config['snmpd']['bindip'])) {
- if (is_ipaddr($config['snmpd']['bindip'])) {
- $bind_to_ip = $config['snmpd']['bindip'];
- } else {
- $if = get_real_interface($config['snmpd']['bindip']);
- if (does_interface_exist($if)) {
- $bind_to_ip = get_interface_ip($config['snmpd']['bindip']);
+ foreach (explode(",", $config['snmpd']['bindip']) as $bind_to_ip) {
+ if (is_ipaddr($bind_to_ip)) {
+ $bind_to_ips[] = $bind_to_ip;
+ } else {
+ $if = get_real_interface($bind_to_ip);
+ if (does_interface_exist($if)) {
+ $bindip = get_interface_ip($bind_to_ip);
+ if (is_ipaddr($bindip)) {
+ $bind_to_ips[] = $bindip;
+ }
+ }
}
}
}
+ if (!count($bind_to_ips)) {
+ $bind_to_ips = array("0.0.0.0");
+ }
if (is_port($config['snmpd']['pollport'])) {
- $snmpdconf .= <<<EOD
+ foreach ($bind_to_ips as $bind_to_ip) {
+ $snmpdconf .= <<<EOD
begemotSnmpdPortStatus.{$bind_to_ip}.{$config['snmpd']['pollport']} = 1
EOD;
+ }
}
$snmpdconf .= <<<EOD
@@ -2582,7 +2598,6 @@ EOD;
$maxCacheAgeSecs = 25 * 24 * 60 * 60;
$need_update = false;
- conf_mount_rw();
/* Update IPv4 if we have it. */
if (is_ipaddrv4($wanip) && $dnsupdate['recordtype'] != "AAAA") {
if (($wanip != $cachedipv4) || (($currentTime - $cacheTimev4) > $maxCacheAgeSecs) || $forced) {
@@ -2614,7 +2629,6 @@ EOD;
} else {
@unlink("{$cacheFile}.ipv6");
}
- conf_mount_ro();
$upinst .= "\n"; /* mind that trailing newline! */
@@ -2644,7 +2658,6 @@ EOD;
function configure_cron() {
global $g, $config;
- conf_mount_rw();
/* preserve existing crontab entries */
$crontab_contents = file("/etc/crontab", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
@@ -2700,7 +2713,6 @@ function configure_cron() {
sigkillbypid("{$g['varrun_path']}/cron.pid", "HUP");
}
- conf_mount_ro();
}
function upnp_action ($action) {
diff --git a/src/etc/inc/shaper.inc b/src/etc/inc/shaper.inc
index 6cba885..317ed95 100644
--- a/src/etc/inc/shaper.inc
+++ b/src/etc/inc/shaper.inc
@@ -3,7 +3,7 @@
* shaper.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -1455,28 +1455,28 @@ class priq_queue {
null,
null,
!empty($this->GetRed())
- ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#red">' . gettext('Random Early Detection') . '</a>');
+ ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#red">' . gettext('Random Early Detection') . '</a>');
$group->add(new Form_Checkbox(
'rio',
null,
null,
!empty($this->GetRio())
- ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#rio">' . gettext('Random Early Detection In and Out') . '</a>');
+ ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#rio">' . gettext('Random Early Detection In and Out') . '</a>');
$group->add(new Form_Checkbox(
'ecn',
null,
null,
!empty($this->GetEcn())
- ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Explicit Congestion Notification') . '</a>');
+ ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Explicit Congestion Notification') . '</a>');
$group->add(new Form_Checkbox(
'codel',
null,
null,
!empty($this->GetCodel())
- ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Codel Active Queue') . '</a>');
+ ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Codel Active Queue') . '</a>');
$group->setHelp('Select options for this queue');
@@ -2267,7 +2267,8 @@ EOJS;
'bandwidth',
null,
'number',
- $this->GetBandwidth()
+ $this->GetBandwidth(),
+ ['step' => 'any', 'min' => '0.000']
));
$group->add(new Form_Select(
@@ -3373,7 +3374,7 @@ class dnpipe_class extends dummynet_class {
$q->delete_queue();
}
unset_dn_object_by_reference($this->GetLink());
- @pfSense_pipe_action("pipe delete " . $this->GetNumber());
+ @pfSense_ipfw_pipe("pipe delete " . $this->GetNumber());
}
function GetBandwidth() {
return $this->qbandwidth;
@@ -3987,7 +3988,7 @@ class dnqueue_class extends dummynet_class {
function delete_queue() {
cleanup_dnqueue_from_rules($this->GetQname());
unset_dn_object_by_reference($this->GetLink());
- @pfSense_pipe_action("queue delete " . $this->GetNumber());
+ @pfSense_ipfw_pipe("queue delete " . $this->GetNumber());
}
function validate_input($data, &$input_errors) {
diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc
index 7635182..95205ff 100644
--- a/src/etc/inc/system.inc
+++ b/src/etc/inc/system.inc
@@ -3,7 +3,7 @@
* system.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -30,10 +30,6 @@ function activate_powerd() {
exec("/usr/bin/killall powerd");
}
if (isset($config['system']['powerd_enable'])) {
- if ($g["platform"] == "nanobsd") {
- exec("/sbin/kldload cpufreq");
- }
-
$ac_mode = "hadp";
if (!empty($config['system']['powerd_ac_mode'])) {
$ac_mode = $config['system']['powerd_ac_mode'];
@@ -175,7 +171,7 @@ function system_resolvconf_generate($dynupdate = false) {
$dnslock = lock('resolvconf', LOCK_EX);
- $fd = fopen("{$g['varetc_path']}/resolv.conf", "w");
+ $fd = fopen("{$g['etc_path']}/resolv.conf", "w");
if (!$fd) {
printf("Error: cannot open resolv.conf in system_resolvconf_generate().\n");
unlock($dnslock);
@@ -186,7 +182,7 @@ function system_resolvconf_generate($dynupdate = false) {
fclose($fd);
// Prevent resolvconf(8) from rewriting our resolv.conf
- $fd = fopen("{$g['varetc_path']}/resolvconf.conf", "w");
+ $fd = fopen("{$g['etc_path']}/resolvconf.conf", "w");
if (!$fd) {
printf("Error: cannot open resolvconf.conf in system_resolvconf_generate().\n");
return 1;
@@ -217,17 +213,14 @@ function system_resolvconf_generate($dynupdate = false) {
$dnsserver = $syscfg['dnsserver'][$dnscounter - 1];
if (is_ipaddr($gatewayip)) {
- $cmd = 'change';
+ route_add_or_change("-host {$inet6}{$dnsserver} {$gatewayip}");
} else {
/* Remove old route when disable gw */
- $cmd = 'delete';
- $gatewayip = '';
- }
-
- mwexec("/sbin/route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}");
- if (isset($config['system']['route-debug'])) {
- $mt = microtime();
- log_error("ROUTING debug: $mt - route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}");
+ mwexec("/sbin/route delete -host {$inet6}{$dnsserver}");
+ if (isset($config['system']['route-debug'])) {
+ $mt = microtime();
+ log_error("ROUTING debug: $mt - route delete -host {$inet6}{$dnsserver}");
+ }
}
}
}
@@ -393,10 +386,8 @@ function system_hosts_generate() {
$ipaddrv6 = $host['ipaddrv6'];
if ($ipaddrv6 && $host['hostname']) {
if ($isdelegated) {
- $trackifname = $config['interfaces'][$dhcpif]['track6-interface'];
- $trackcfg = $config['interfaces'][$trackifname];
- $pdlen = 64 - $trackcfg['dhcp6-ia-pd-len'];
- $ipaddrv6 = merge_ipv6_delegated_prefix(get_interface_ipv6($dhcpif), $ipaddrv6, $pdlen);
+ // We are always in an "end-user" subnet here, which all are /64 for IPv6.
+ $ipaddrv6 = merge_ipv6_delegated_prefix(get_interface_ipv6($dhcpif), $ipaddrv6, 64);
}
if ($host['domain']) {
$dhosts .= "{$ipaddrv6} {$host['hostname']}.{$host['domain']}\n";
@@ -426,7 +417,8 @@ function system_hosts_generate() {
sigkillbypid("{$g['varrun_path']}/dhcpleases.pid", "TERM");
@unlink("{$g['varrun_path']}/dhcpleases.pid");
}
- $fd = fopen("{$g['varetc_path']}/hosts", "w");
+
+ $fd = fopen("{$g['etc_path']}/hosts", "w");
if (!$fd) {
log_error(gettext("Error: cannot open hosts file in system_hosts_generate()."));
return 1;
@@ -439,6 +431,11 @@ function system_hosts_generate() {
unbound_hosts_generate();
}
+ /* restart dhcpleases */
+ if (!platform_booting()) {
+ system_dhcpleases_configure();
+ }
+
return 0;
}
@@ -480,7 +477,7 @@ function system_dhcpleases_configure() {
sigkillbyname('dhcpleases', "TERM");
}
@unlink($pidfile);
- mwexec("/usr/local/sbin/dhcpleases -l {$g['dhcpd_chroot_path']}/var/db/dhcpd.leases -d {$config['system']['domain']} -p {$g['varrun_path']}/{$dns_pid} {$unbound_conf} -h {$g['varetc_path']}/hosts");
+ mwexec("/usr/local/sbin/dhcpleases -l {$g['dhcpd_chroot_path']}/var/db/dhcpd.leases -d {$config['system']['domain']} -p {$g['varrun_path']}/{$dns_pid} {$unbound_conf} -h {$g['etc_path']}/hosts");
} elseif (isvalidpid($pidfile)) {
sigkillbypid($pidfile, "TERM");
@unlink($pidfile);
@@ -593,12 +590,8 @@ function system_routing_configure($interface = "") {
$srinterfacegw = $gateway['interface'];
if (is_ipaddr($srgatewayip) && !empty($srinterfacegw)) {
$inet = (!is_ipaddrv4($srgatewayip) ? "-inet6" : "-inet");
- $cmd = "/sbin/route change {$inet} " . escapeshellarg($srgatewayip) . " ";
- mwexec($cmd . "-iface " . escapeshellarg($srinterfacegw));
- if (isset($config['system']['route-debug'])) {
- $mt = microtime();
- log_error("ROUTING debug: $mt - $cmd -iface $srinterfacegw ");
- }
+ route_add_or_change("{$inet} {$srgatewayip} " .
+ "-iface {$srinterfacegw}");
}
}
}
@@ -608,7 +601,7 @@ function system_routing_configure($interface = "") {
;
} else if (is_ipaddrv4($gatewayip)) {
log_error(sprintf(gettext("ROUTING: setting default route to %s"), $gatewayip));
- mwexec("/sbin/route change -inet default " . escapeshellarg($gatewayip));
+ route_add_or_change("-inet default {$gatewayip}");
}
if (!empty($interface) && $interface != $interfacegwv6) {
@@ -619,7 +612,7 @@ function system_routing_configure($interface = "") {
$ifscope = "%{$defaultifv6}";
}
log_error(sprintf(gettext("ROUTING: setting IPv6 default route to %s"), $gatewayipv6 . $ifscope));
- mwexec("/sbin/route change -inet6 default " . escapeshellarg("{$gatewayipv6}{$ifscope}"));
+ route_add_or_change("-inet6 default {$gatewayipv6}{$ifscope}");
}
}
@@ -651,7 +644,7 @@ function system_staticroutes_configure($interface = "", $update_dns = false) {
$interfacegw = $gateway['interface'];
$blackhole = "";
- if (!strcasecmp("Null", substr($rtent['gateway'], 0, 3))) {
+ if (!strcasecmp("Null", substr($rtent['gateway'], 0, 4))) {
$blackhole = "-blackhole";
}
@@ -710,7 +703,7 @@ function system_staticroutes_configure($interface = "", $update_dns = false) {
$inet = (is_subnetv6($ip) ? "-inet6" : "-inet");
- $cmd = "/sbin/route change {$inet} {$blackhole} " . escapeshellarg($ip) . " ";
+ $cmd = "{$inet} {$blackhole} {$ip} ";
if (is_subnet($ip)) {
if (is_ipaddr($gatewayip)) {
@@ -718,17 +711,9 @@ function system_staticroutes_configure($interface = "", $update_dns = false) {
// add interface scope for link local v6 routes
$gatewayip .= "%$interfacegw";
}
- mwexec($cmd . escapeshellarg($gatewayip));
- if (isset($config['system']['route-debug'])) {
- $mt = microtime();
- log_error("ROUTING debug: $mt - $cmd $gatewayip");
- }
+ route_add_or_change($cmd . $gatewayip);
} else if (!empty($interfacegw)) {
- mwexec($cmd . "-iface " . escapeshellarg($interfacegw));
- if (isset($config['system']['route-debug'])) {
- $mt = microtime();
- log_error("ROUTING debug: $mt - $cmd -iface $interfacegw ");
- }
+ route_add_or_change($cmd . "-iface {$interfacegw}");
}
}
}
@@ -829,7 +814,7 @@ function clear_all_log_files($restart = false) {
global $g;
exec("/usr/bin/killall syslogd");
- $log_files = array("system", "filter", "dhcpd", "vpn", "pptps", "poes", "l2tps", "openvpn", "portalauth", "ipsec", "ppp", "relayd", "wireless", "nginx", "ntpd", "gateways", "resolver", "routing");
+ $log_files = array("system", "filter", "dhcpd", "vpn", "poes", "l2tps", "openvpn", "portalauth", "ipsec", "ppp", "relayd", "wireless", "nginx", "ntpd", "gateways", "resolver", "routing");
foreach ($log_files as $lfile) {
clear_log_file("{$g['varlog_path']}/{$lfile}.log", false);
}
@@ -870,11 +855,11 @@ function system_syslogd_start() {
$syslogd_extra = "";
if (isset($syslogcfg)) {
- $separatelogfacilities = array('ntp', 'ntpd', 'ntpdate', 'charon', 'ipsec_starter', 'openvpn', 'pptps', 'poes', 'l2tps', 'relayd', 'hostapd', 'dnsmasq', 'filterdns', 'unbound', 'dhcpd', 'dhcrelay', 'dhclient', 'dhcp6c', 'dpinger', 'radvd', 'routed', 'olsrd', 'zebra', 'ospfd', 'bgpd', 'miniupnpd', 'filterlog');
+ $separatelogfacilities = array('ntp', 'ntpd', 'ntpdate', 'charon', 'ipsec_starter', 'openvpn', 'poes', 'l2tps', 'relayd', 'hostapd', 'dnsmasq', 'filterdns', 'unbound', 'dhcpd', 'dhcrelay', 'dhclient', 'dhcp6c', 'dpinger', 'radvd', 'routed', 'olsrd', 'zebra', 'ospfd', 'bgpd', 'miniupnpd', 'filterlog');
$syslogconf = "";
if ($config['installedpackages']['package']) {
foreach ($config['installedpackages']['package'] as $package) {
- if ($package['logging']) {
+ if (isset($package['logging']['facilityname']) && isset($package['logging']['logfilename'])) {
array_push($separatelogfacilities, $package['logging']['facilityname']);
if (!is_file($g['varlog_path'].'/'.$package['logging']['logfilename'])) {
mwexec("{$log_create_directive} {$log_size} {$g['varlog_path']}/{$package['logging']['logfilename']}");
@@ -888,31 +873,41 @@ function system_syslogd_start() {
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/routing.log\n";
}
+ if (isset($syslogcfg['routing'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
+ }
$syslogconf .= "!ntp,ntpd,ntpdate\n";
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/ntpd.log\n";
}
+ if (isset($syslogcfg['ntpd'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
+ }
$syslogconf .= "!ppp\n";
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/ppp.log\n";
}
-
- $syslogconf .= "!pptps\n";
- if (!isset($syslogcfg['disablelocallogging'])) {
- $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/pptps.log\n";
+ if (isset($syslogcfg['ppp'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
}
$syslogconf .= "!poes\n";
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/poes.log\n";
}
+ if (isset($syslogcfg['vpn'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
+ }
$syslogconf .= "!l2tps\n";
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/l2tps.log\n";
}
+ if (isset($syslogcfg['vpn'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
+ }
$syslogconf .= "!charon,ipsec_starter\n";
if (!isset($syslogcfg['disablelocallogging'])) {
@@ -942,6 +937,9 @@ function system_syslogd_start() {
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/resolver.log\n";
}
+ if (isset($syslogcfg['resolver'])) {
+ $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
+ }
$syslogconf .= "!dhcpd,dhcrelay,dhclient,dhcp6c,dhcpleases,dhcpleases6\n";
if (!isset($syslogcfg['disablelocallogging'])) {
@@ -971,7 +969,6 @@ function system_syslogd_start() {
if (!isset($syslogcfg['disablelocallogging'])) {
$syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/filter.log\n";
}
-
if (isset($syslogcfg['filter'])) {
$syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*");
}
@@ -1014,18 +1011,13 @@ EOD;
EOD;
}
/* write syslog.conf */
- if (!@file_put_contents("{$g['varetc_path']}/syslog.conf", $syslogconf)) {
+ if (!@file_put_contents("{$g['etc_path']}/syslog.conf", $syslogconf)) {
printf(gettext("Error: cannot open syslog.conf in system_syslogd_start().%s"), "\n");
unset($syslogconf);
return 1;
}
unset($syslogconf);
- // Ensure that the log directory exists
- if (!is_dir("{$g['dhcpd_chroot_path']}/var/run")) {
- exec("/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/run");
- }
-
$sourceip = "";
if (!empty($syslogcfg['sourceip'])) {
if ($syslogcfg['ipproto'] == "ipv6") {
@@ -1044,7 +1036,26 @@ EOD;
}
}
- $syslogd_extra = "-f {$g['varetc_path']}/syslog.conf {$sourceip}";
+ $syslogd_extra = "-f {$g['etc_path']}/syslog.conf {$sourceip}";
+ }
+
+ $log_sockets = array("{$g['dhcpd_chroot_path']}/var/run/log");
+
+ if (isset($config['installedpackages']['package'])) {
+ foreach ($config['installedpackages']['package'] as $package) {
+ if (isset($package['logging']['logsocket']) && $package['logging']['logsocket'] != '' &&
+ !in_array($package['logging']['logsocket'], $log_sockets)) {
+ $log_sockets[] = $package['logging']['logsocket'];
+ }
+ }
+ }
+
+ $syslogd_sockets = "";
+ foreach ($log_sockets as $log_socket) {
+ // Ensure that the log directory exists
+ $logpath = dirname($log_socket);
+ safe_mkdir($logpath);
+ $syslogd_sockets .= " -l {$log_socket}";
}
if (isvalidpid("{$g['varrun_path']}/syslog.pid")) {
@@ -1058,8 +1069,7 @@ EOD;
usleep(100000);
}
-
- $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c -l {$g['dhcpd_chroot_path']}/var/run/log -P {$g['varrun_path']}/syslog.pid {$syslogd_extra}");
+ $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c {$syslogd_sockets} -P {$g['varrun_path']}/syslog.pid {$syslogd_extra}");
if (platform_booting()) {
echo gettext("done.") . "\n";
@@ -1458,11 +1468,9 @@ function system_timezone_configure() {
/* extract appropriate timezone file */
$timezone = (isset($syscfg['timezone']) ? $syscfg['timezone'] : $g['default_timezone']);
- conf_mount_rw();
/* DO NOT remove \n otherwise tzsetup will fail */
@file_put_contents("/var/db/zoneinfo", $timezone . "\n");
mwexec("/usr/sbin/tzsetup -r");
- conf_mount_ro();
if (platform_booting()) {
echo gettext("done.") . "\n";
@@ -1478,7 +1486,6 @@ function system_ntp_setup_gps($serialport) {
return false;
}
- conf_mount_rw();
// Create symlink that ntpd requires
unlink_if_exists($gps_device);
@symlink($serialport, $gps_device);
@@ -1523,7 +1530,6 @@ function system_ntp_setup_gps($serialport) {
@file_put_contents("/etc/remote", "gps0:dv={$serialport}:br#{$gpsbaud}:pa=none:\n", FILE_APPEND);
}
- conf_mount_ro();
return true;
}
@@ -1538,12 +1544,10 @@ function system_ntp_setup_pps($serialport) {
return false;
}
- conf_mount_rw();
// Create symlink that ntpd requires
unlink_if_exists($pps_device);
@symlink($serialport, $pps_device);
- conf_mount_ro();
return true;
}
@@ -1691,11 +1695,20 @@ function system_ntp_configure() {
$ntpcfg .= "fudge 127.127.1.0 stratum 12\n";
}
/* End GPS configuration */
-
+ $auto_pool_suffix = "pool.ntp.org";
+ $have_pools = false;
$ntpcfg .= "\n\n# Upstream Servers\n";
/* foreach through ntp servers and write out to ntpd.conf */
foreach (explode(' ', $config['system']['timeservers']) as $ts) {
- $ntpcfg .= "server {$ts} iburst maxpoll 9";
+ if ((substr_compare($ts, $auto_pool_suffix, strlen($ts) - strlen($auto_pool_suffix), strlen($auto_pool_suffix)) === 0)
+ || substr_count($config['ntpd']['ispool'], $ts)) {
+ $ntpcfg .= 'pool ';
+ $have_pools = true;
+ } else {
+ $ntpcfg .= 'server ';
+ }
+
+ $ntpcfg .= "{$ts} iburst maxpoll 9";
if (substr_count($config['ntpd']['prefer'], $ts)) {
$ntpcfg .= ' prefer';
}
@@ -1771,13 +1784,34 @@ function system_ntp_configure() {
if (empty($config['ntpd']['notrap'])) { /*note: this one works backwards */
$ntpcfg .= ' notrap';
}
+
+ /* Pools require "restrict source" and cannot contain "nopeer". */
+ if ($have_pools) {
+ $ntpcfg .= "\nrestrict source";
+ if (empty($config['ntpd']['kod'])) { /*note: this one works backwards */
+ $ntpcfg .= ' kod limited';
+ }
+ if (empty($config['ntpd']['nomodify'])) { /*note: this one works backwards */
+ $ntpcfg .= ' nomodify';
+ }
+ if (!empty($config['ntpd']['noquery'])) {
+ $ntpcfg .= ' noquery';
+ }
+ if (!empty($config['ntpd']['noserve'])) {
+ $ntpcfg .= ' noserve';
+ }
+ if (empty($config['ntpd']['notrap'])) { /*note: this one works backwards */
+ $ntpcfg .= ' notrap';
+ }
+ }
+
/* Custom Access Restrictions */
if (is_array($config['ntpd']['restrictions']) && is_array($config['ntpd']['restrictions']['row'])) {
$networkacl = $config['ntpd']['restrictions']['row'];
foreach ($networkacl as $acl) {
$ntpcfg .= "\nrestrict ";
if (is_ipaddrv6($acl['acl_network'])) {
- $ntpcfg .= "-6 {$acl['acl_network']} mask " . gen_subnet_mask_v6($acl['mask']) . " ";
+ $ntpcfg .= "{$acl['acl_network']} mask " . gen_subnet_mask_v6($acl['mask']) . " ";
} elseif (is_ipaddrv4($acl['acl_network'])) {
$ntpcfg .= "{$acl['acl_network']} mask " . gen_subnet_mask($acl['mask']) . " ";
} else {
@@ -2111,7 +2145,7 @@ EOD;
function system_get_serial() {
unset($output);
- $_gb = exec('/bin/kenv smbios.system.serial 2>/dev/null', $output);
+ $_gb = exec('/bin/kenv -q smbios.system.serial 2>/dev/null', $output);
$serial = $output[0];
$vm_guest = get_single_sysctl('kern.vm_guest');
@@ -2138,8 +2172,8 @@ function system_identify_specific_platform() {
/* Try to guess from smbios strings */
unset($product);
unset($maker);
- $_gb = exec('/bin/kenv smbios.system.product 2>/dev/null', $product);
- $_gb = exec('/bin/kenv smbios.system.maker 2>/dev/null', $maker);
+ $_gb = exec('/bin/kenv -q smbios.system.product 2>/dev/null', $product);
+ $_gb = exec('/bin/kenv -q smbios.system.maker 2>/dev/null', $maker);
switch ($product[0]) {
case 'FW7541':
return (array('name' => 'FW7541', 'descr' => 'Netgate FW7541'));
@@ -2187,11 +2221,6 @@ function system_identify_specific_platform() {
break;
}
- /* the rest of the code only deals with 'embedded' platforms */
- if ($g['platform'] != 'nanobsd') {
- return array('name' => $g['platform'], 'descr' => $g['platform']);
- }
-
if (strpos($hw_model, "PC Engines WRAP") !== false) {
return array('name' => 'wrap', 'descr' => gettext('PC Engines WRAP'));
}
@@ -2220,8 +2249,7 @@ function system_identify_specific_platform() {
}
unset($dmesg_boot);
- /* unknown embedded platform */
- return array('name' => 'embedded', 'descr' => gettext('embedded (unknown)'));
+ return array('name' => $g['platform'], 'descr' => $g['platform']);
}
function system_get_dmesg_boot() {
diff --git a/src/etc/inc/unbound.inc b/src/etc/inc/unbound.inc
index f7198f8..02b2901 100644
--- a/src/etc/inc/unbound.inc
+++ b/src/etc/inc/unbound.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2015 Warren Baker <warren@percol8.co.za>
- * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc
index ffb21af..842ec0e 100644
--- a/src/etc/inc/upgrade_config.inc
+++ b/src/etc/inc/upgrade_config.inc
@@ -3,7 +3,7 @@
* upgrade_config.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -2064,7 +2064,7 @@ function upgrade_054_to_055() {
$rrddbpath = "/var/db/rrd/";
$rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
- if ($g['platform'] != $g['product_name']) {
+ if (isset($config['system']['use_mfs_tmpvar'])) {
/* restore the databases, if we have one */
if (restore_rrd()) {
/* Make sure to move the rrd backup out of the way. We will make a new one after converting. */
@@ -2193,7 +2193,7 @@ function upgrade_054_to_055() {
}
/* Let's save the RRD graphs after we run enable RRD graphing */
/* The function will restore the rrd.tgz so we will save it after */
- exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
+ exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
unlink_if_exists("{$g['vardb_path']}/rrd/*.xml");
if (platform_booting()) {
echo "Updating configuration...";
@@ -2783,7 +2783,7 @@ function upgrade_080_to_081() {
$rrddbpath = "/var/db/rrd/";
$rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
- if ($g['platform'] != $g['product_name']) {
+ if (isset($config['system']['use_mfs_tmpvar'])) {
/* restore the databases, if we have one */
if (restore_rrd()) {
/* Make sure to move the rrd backup out of the way. We will make a new one after converting. */
@@ -2927,7 +2927,7 @@ function upgrade_080_to_081() {
}
/* Let's save the RRD graphs after we run enable RRD graphing */
/* The function will restore the rrd.tgz so we will save it after */
- exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
+ exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
if (platform_booting()) {
echo "Updating configuration...";
}
@@ -3255,7 +3255,7 @@ function upgrade_095_to_096() {
$rrddbpath = "/var/db/rrd";
$rrdtool = "/usr/local/bin/rrdtool";
- if ($g['platform'] != $g['product_name']) {
+ if (isset($config['system']['use_mfs_tmpvar'])) {
/* restore the databases, if we have one */
if (restore_rrd()) {
/* Make sure to move the rrd backup out of the way. We will make a new one after converting. */
@@ -3286,7 +3286,7 @@ function upgrade_095_to_096() {
}
/* Let's save the RRD graphs after we run enable RRD graphing */
/* The function will restore the rrd.tgz so we will save it after */
- exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
+ exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
}
function upgrade_096_to_097() {
@@ -4647,7 +4647,7 @@ function upgrade_145_to_146() {
$awkcmd .= " print;\n";
$awkcmd .= "}'";
- if ($g['platform'] != $g['product_name']) {
+ if (isset($config['system']['use_mfs_tmpvar'])) {
/* restore the databases, if we have one */
if (restore_rrd()) {
/* Make sure to move the rrd backup out of the way. We will make a new one after converting. */
@@ -4673,7 +4673,7 @@ function upgrade_145_to_146() {
}
/* Let's save the RRD graphs after we run enable RRD graphing */
/* The function will restore the rrd.tgz so we will save it after */
- exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
+ exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh");
}
function upgrade_bgpd_146_to_147() {
@@ -4866,7 +4866,7 @@ function upgrade_151_to_152() {
require_once("/etc/inc/services.inc");
// Remove these cron jobs on full install if not using ramdisk.
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
install_cron_job("/etc/rc.backup_rrd.sh", false);
install_cron_job("/etc/rc.backup_dhcpleases.sh", false);
}
@@ -4970,4 +4970,62 @@ function upgrade_154_to_155() {
}
}
}
+
+/* Unset references to glxsb in the config. See #6755 */
+function upgrade_155_to_156() {
+ if ($config['system']['crypto_hardware'] == "glxsb") {
+ unset($config['system']['crypto_hardware']);
+ }
+}
+
+function upgrade_156_to_157() {
+ global $config;
+ /* Convert Cloudflare and GratisDNS type DynDNS entries to the new split hostname and domain format */
+
+ if (!is_array($config['dyndnses'])) {
+ $config['dyndnses'] = array();
+ }
+ if (!is_array($config['dyndnses']['dyndns'])) {
+ $config['dyndnses']['dyndns'] = array();
+ }
+ $a_dyndns = &$config['dyndnses']['dyndns'];
+
+ foreach ($a_dyndns as &$dyndns) {
+ if (($dyndns['type'] == "cloudflare") || ($dyndns['type'] == "cloudflare-v6") || ($dyndns['type'] == "gratisdns")) {
+ /* Use the old style logic to split the host and domain one last time. */
+ $dparts = explode(".", trim($dyndns['host']));
+ $domain_part_count = ($dparts[count($dparts)-1] == "uk") ? 3 : 2;
+ $domain_offset = count($dparts) - $domain_part_count;
+ $dyndns['host'] = implode(".", array_slice($dparts, 0, $domain_offset));
+ $dyndns['domainname'] = implode(".", array_slice($dparts, $domain_offset));
+ }
+ }
+
+ /* unset old pppoerestart cron job if it exists. redmine 1905 */
+ if (is_array($config['cron']['item'])) {
+ foreach ($config['cron']['item'] as $idx => $cronitem) {
+ if ($cronitem['command'] == "/etc/pppoerestart") {
+ unset($config['cron']['item'][$idx]);
+ }
+ }
+ }
+}
+
+function upgrade_157_to_158() {
+ global $config;
+ /* Convert Dynamic DNS passwords to base64 encoding. Redmine #6688 */
+
+ if (!is_array($config['dyndnses'])) {
+ $config['dyndnses'] = array();
+ }
+ if (!is_array($config['dyndnses']['dyndns'])) {
+ $config['dyndnses']['dyndns'] = array();
+ }
+ $a_dyndns = &$config['dyndnses']['dyndns'];
+
+ foreach ($a_dyndns as &$dyndns) {
+ $dyndns['password'] = base64_encode($dyndns['password']);
+ }
+}
+
?>
diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc
index 0eafc3c..5081322 100644
--- a/src/etc/inc/util.inc
+++ b/src/etc/inc/util.inc
@@ -3,7 +3,7 @@
* util.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -55,8 +55,9 @@ function isvalidproc($proc) {
/* sigkill a process by pid file */
/* return 1 for success and 0 for a failure */
function sigkillbypid($pidfile, $sig) {
- if (file_exists($pidfile)) {
- return mwexec("/bin/pkill " . escapeshellarg("-{$sig}") . " -F {$pidfile}", true);
+ if (isvalidpid($pidfile)) {
+ return mwexec("/bin/pkill " . escapeshellarg("-{$sig}") .
+ " -F {$pidfile}", true);
}
return 0;
@@ -228,82 +229,6 @@ function send_multiple_events($cmds) {
}
}
-function refcount_init($reference) {
- $shmid = @shmop_open($reference, "c", 0644, 10);
- @shmop_write($shmid, str_pad("0", 10, "\x0", STR_PAD_RIGHT), 0);
- @shmop_close($shmid);
-}
-
-function refcount_reference($reference) {
- /* Take out a lock across the shared memory read, increment, write sequence to make it atomic. */
- $shm_lck = lock("shm{$reference}", LOCK_EX);
- try {
- /* NOTE: A warning is generated when shared memory does not exist */
- $shmid = @shmop_open($reference, "w", 0, 0);
- if (!$shmid) {
- refcount_init($reference);
- $shmid = @shmop_open($reference, "w", 0, 0);
- if (!$shmid) {
- log_error(sprintf(gettext("Could not open shared memory %s"), $reference));
- unlock($shm_lck);
- return;
- }
- }
- $shm_data = @shmop_read($shmid, 0, 10);
- $shm_data = intval($shm_data) + 1;
- @shmop_write($shmid, str_pad($shm_data, 10, "\x0", STR_PAD_RIGHT), 0);
- @shmop_close($shmid);
- unlock($shm_lck);
- } catch (Exception $e) {
- log_error($e->getMessage());
- unlock($shm_lck);
- }
-
- return $shm_data;
-}
-
-function refcount_unreference($reference) {
- /* Take out a lock across the shared memory read, decrement, write sequence to make it atomic. */
- $shm_lck = lock("shm{$reference}", LOCK_EX);
- try {
- $shmid = @shmop_open($reference, "w", 0, 0);
- if (!$shmid) {
- refcount_init($reference);
- log_error(sprintf(gettext("Could not open shared memory %s"), $reference));
- unlock($shm_lck);
- return;
- }
- $shm_data = @shmop_read($shmid, 0, 10);
- $shm_data = intval($shm_data) - 1;
- if ($shm_data < 0) {
- //debug_backtrace();
- log_error(sprintf(gettext("Reference %s is going negative, not doing unreference."), $reference));
- } else {
- @shmop_write($shmid, str_pad($shm_data, 10, "\x0", STR_PAD_RIGHT), 0);
- }
- @shmop_close($shmid);
- unlock($shm_lck);
- } catch (Exception $e) {
- log_error($e->getMessage());
- unlock($shm_lck);
- }
-
- return $shm_data;
-}
-
-function refcount_read($reference) {
- /* This function just reads the current value of the refcount for information. */
- /* There is no need for locking. */
- $shmid = @shmop_open($reference, "a", 0, 0);
- if (!$shmid) {
- log_error(sprintf(gettext("Could not open shared memory for read %s"), $reference));
- return -1;
- }
- $shm_data = @shmop_read($shmid, 0, 10);
- @shmop_close($shmid);
- return $shm_data;
-}
-
function is_module_loaded($module_name) {
$module_name = str_replace(".ko", "", $module_name);
$running = 0;
@@ -371,8 +296,8 @@ function gen_subnetv4_max($ipaddr, $bits) {
/* same as gen_subnet_max() but validates IPv6 only */
function gen_subnetv6_max($ipaddr, $bits) {
if (is_ipaddrv6($ipaddr) && is_numericint($bits) && $bits <= 128) {
- $endip_bin = substr(Net_IPv6::_ip2Bin($ipaddr), 0, $bits) . str_repeat('1', 128 - $bits);
- return Net_IPv6::compress(Net_IPv6::_bin2Ip($endip_bin));
+ $endip_bin = substr(ip6_to_bin($ipaddr), 0, $bits) . str_repeat('1', 128 - $bits);
+ return bin_to_compressed_ip6($endip_bin);
}
return "";
}
@@ -399,7 +324,7 @@ function gen_subnet_mask_v6($bits) {
/* Pad right with zeroes to reach the full address length */
$bin = str_pad($bin, 128, '0', STR_PAD_RIGHT);
/* Convert back to an IPv6 address style notation */
- return Net_IPv6::_bin2Ip($bin);
+ return bin_to_ip6($bin);
}
/* Convert long int to IPv4 address
@@ -420,6 +345,60 @@ function ip2ulong($ip) {
return sprintf("%u", ip2long32($ip));
}
+/*
+ * Convert IPv6 address to binary
+ *
+ * Obtained from: pear-Net_IPv6
+ */
+function ip6_to_bin($ip) {
+ $binstr = '';
+
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ $ip = Net_IPv6::Uncompress($ip);
+
+ $parts = explode(':', $ip);
+
+ foreach ( $parts as $v ) {
+
+ $str = base_convert($v, 16, 2);
+ $binstr .= str_pad($str, 16, '0', STR_PAD_LEFT);
+
+ }
+
+ return $binstr;
+}
+
+/*
+ * Convert IPv6 binary to uncompressed address
+ *
+ * Obtained from: pear-Net_IPv6
+ */
+function bin_to_ip6($bin) {
+ $ip = "";
+
+ if (strlen($bin) < 128) {
+ $bin = str_pad($bin, 128, '0', STR_PAD_LEFT);
+ }
+
+ $parts = str_split($bin, "16");
+
+ foreach ( $parts as $v ) {
+ $str = base_convert($v, 2, 16);
+ $ip .= $str.":";
+ }
+
+ $ip = substr($ip, 0, -1);
+
+ return $ip;
+}
+
+/*
+ * Convert IPv6 binary to compressed address
+ */
+function bin_to_compressed_ip6($bin) {
+ return Net_IPv6::compress(bin_to_ip6($bin));
+}
+
/* Find out how many IPs are contained within a given IP range
* e.g. 192.168.0.0 to 192.168.0.255 returns 256
*/
@@ -542,8 +521,8 @@ function ip_range_to_subnet_array($ip1, $ip2) {
} elseif (is_ipaddrv6($ip1) && is_ipaddrv6($ip2)) {
$proto = 'ipv6';
$bits = 128;
- $ip1bin = Net_IPv6::_ip2Bin($ip1);
- $ip2bin = Net_IPv6::_ip2Bin($ip2);
+ $ip1bin = ip6_to_bin($ip1);
+ $ip2bin = ip6_to_bin($ip2);
} else {
return array();
}
@@ -622,7 +601,7 @@ function ip_range_to_subnet_array($ip1, $ip2) {
$i = str_split($ip, 8);
$out[] = implode('.', array(bindec($i[0]), bindec($i[1]), bindec($i[2]), bindec($i[3]))) . '/' . $netmask;
} else {
- $out[] = Net_IPv6::compress(Net_IPv6::_bin2Ip($ip)) . '/' . $netmask;
+ $out[] = bin_to_compressed_ip6($ip) . '/' . $netmask;
}
}
@@ -828,10 +807,10 @@ function subnet_size_by_netmask($iptype, $bits, $exact=false) {
return 0;
}
- // 2**N returns an exact result as an INT if possible, and a float/double if not.
+ // 2**N returns an exact result as an INT if possible, and a float/double if not.
// Detect this switch, rather than comparing $result<=PHP_MAX_INT or $bits >=8*PHP_INT_SIZE as it's (probably) easier to get completely reliable
$result = 2 ** $snsize;
-
+
if ($exact && !is_int($result)) {
//exact required but can't represent result exactly as an INT
return 0;
@@ -871,7 +850,7 @@ function check_subnetsv4_overlap($subnet1, $bits1, $subnet2, $bits2) {
$largest_sn = min($bits1, $bits2);
$subnetv4_start1 = gen_subnetv4($subnet1, $largest_sn);
$subnetv4_start2 = gen_subnetv4($subnet2, $largest_sn);
-
+
if ($subnetv4_start1 == '' || $subnetv4_start2 == '') {
// One or both args is not a valid IPv4 subnet
//FIXME: needs to return "bad data" not true/false if bad. For now return false, best we can do until fixed
@@ -886,7 +865,7 @@ function check_subnetsv6_overlap($subnet1, $bits1, $subnet2, $bits2) {
$largest_sn = min($bits1, $bits2);
$subnetv6_start1 = gen_subnetv6($subnet1, $largest_sn);
$subnetv6_start2 = gen_subnetv6($subnet2, $largest_sn);
-
+
if ($subnetv6_start1 == '' || $subnetv6_start2 == '') {
// One or both args is not a valid IPv6 subnet
//FIXME: needs to return "bad data" not true/false if bad. For now return false, best we can do until fixed
@@ -1007,9 +986,19 @@ function is_domain($domain, $allow_wildcard=false) {
}
/* returns true if $macaddr is a valid MAC address */
-function is_macaddr($macaddr, $partial=false) {
- $repeat = ($partial) ? '1,5' : '5';
- return preg_match('/^[0-9A-F]{2}(?:[:][0-9A-F]{2}){'.$repeat.'}$/i', $macaddr) == 1 ? true : false;
+function is_macaddr($macaddr) {
+ $values = explode(":", $macaddr);
+ if (count($values) != 6) {
+ return false;
+ }
+ for ($i = 0; $i < 6; $i++) {
+ if (ctype_xdigit($values[$i]) == false)
+ return false;
+ if (hexdec($values[$i]) < 0 || hexdec($values[$i]) > 255)
+ return false;
+ }
+
+ return true;
}
/*
@@ -1168,20 +1157,30 @@ function is_valid_shaperbw($val) {
/* returns true if $test is in the range between $start and $end */
function is_inrange_v4($test, $start, $end) {
- if ((ip2ulong($test) <= ip2ulong($end)) && (ip2ulong($test) >= ip2ulong($start))) {
- return true;
- } else {
+ if (!is_ipaddrv4($test) || !is_ipaddrv4($start) || !is_ipaddrv4($end)) {
return false;
}
+
+ if (ip2ulong($test) <= ip2ulong($end) &&
+ ip2ulong($test) >= ip2ulong($start)) {
+ return true;
+ }
+
+ return false;
}
/* returns true if $test is in the range between $start and $end */
function is_inrange_v6($test, $start, $end) {
- if ((inet_pton($test) <= inet_pton($end)) && (inet_pton($test) >= inet_pton($start))) {
- return true;
- } else {
+ if (!is_ipaddrv6($test) || !is_ipaddrv6($start) || !is_ipaddrv6($end)) {
return false;
}
+
+ if (inet_pton($test) <= inet_pton($end) &&
+ inet_pton($test) >= inet_pton($start)) {
+ return true;
+ }
+
+ return false;
}
/* returns true if $test is in the range between $start and $end */
@@ -1654,16 +1653,24 @@ function mwexec_bg($command, $clearsigmask = false) {
return mwexec($command, false, $clearsigmask, true);
}
-/* unlink a file, or pattern-match of a file, if it exists
- if the file/path contains glob() compatible wildcards, all matching files will be unlinked
- if no matches, no error occurs */
+/* unlink a file, or pattern-match of a file, if it exists
+ if the file/path contains glob() compatible wildcards, all matching files will be unlinked
+ any warning/errors are suppressed (e.g. no matching files to delete)
+ If there are matching file(s) and they were all unlinked OK, then return true.
+ Otherwise return false (the requested file(s) did not exist, or could not be deleted)
+ This allows the caller to know if they were the one to successfully delete the file(s).
+*/
function unlink_if_exists($fn) {
$to_do = glob($fn);
if (is_array($to_do) && count($to_do) > 0) {
- @array_map("unlink", $to_do);
+ // Returns an array of true/false indicating if each unlink worked
+ $results = @array_map("unlink", $to_do);
+ // If there is no false in the array, then all went well
+ $result = !in_array(false, $results, true);
} else {
- @unlink($fn);
+ $result = @unlink($fn);
}
+ return $result;
}
/* make a global alias table (for faster lookups) */
function alias_make_table($config) {
@@ -1851,15 +1858,19 @@ function format_number($num, $precision = 3) {
$num /= 1000;
$i++;
}
- round($num, $precision);
+ $num = round($num, $precision);
return ("$num {$units[$i]}");
}
-function update_filter_reload_status($text) {
+function update_filter_reload_status($text, $new=false) {
global $g;
- file_put_contents("{$g['varrun_path']}/filter_reload_status", $text);
+ if ($new) {
+ file_put_contents("{$g['varrun_path']}/filter_reload_status", $text . PHP_EOL);
+ } else {
+ file_put_contents("{$g['varrun_path']}/filter_reload_status", $text . PHP_EOL, FILE_APPEND);
+ }
}
/****** util/return_dir_as_array
@@ -2039,11 +2050,7 @@ function get_memory() {
function mute_kernel_msgs() {
global $g, $config;
- // Do not mute serial console. The kernel gets very very cranky
- // and will start dishing you cannot control tty errors.
- if ($g['platform'] == 'nanobsd') {
- return;
- }
+
if ($config['system']['enableserial']) {
return;
}
@@ -2052,11 +2059,7 @@ function mute_kernel_msgs() {
function unmute_kernel_msgs() {
global $g;
- // Do not mute serial console. The kernel gets very very cranky
- // and will start dishing you cannot control tty errors.
- if ($g['platform'] == 'nanobsd') {
- return;
- }
+
exec("/sbin/conscontrol mute off");
}
@@ -2310,6 +2313,36 @@ function explode_assoc($delimiter, $string) {
return $result;
}
+/* Try to change a static route, if it doesn't exist, add it */
+function route_add_or_change($args) {
+ global $config;
+
+ if (empty($args)) {
+ return false;
+ }
+
+ /* First, try to add it */
+ $_gb = exec(escapeshellcmd("/sbin/route add " . $args), $output, $rc);
+
+ if (isset($config['system']['route-debug'])) {
+ $mt = microtime();
+ log_error("ROUTING debug: $mt - ADD RC={$rc} - $args");
+ }
+
+ if ($rc != 0) {
+ /* If it fails, try to change it */
+ $_gb = exec(escapeshellcmd("/sbin/route change " . $args),
+ $output, $rc);
+
+ if (isset($config['system']['route-debug'])) {
+ $mt = microtime();
+ log_error("ROUTING debug: $mt - CHG RC={$rc} - $args");
+ }
+ }
+
+ return ($rc == 0);
+}
+
function get_staticroutes($returnsubnetsonly = false, $returnhostnames = false) {
global $config, $aliastable;
diff --git a/src/etc/inc/voucher.inc b/src/etc/inc/voucher.inc
index 1ed3845..4ceec0a 100644
--- a/src/etc/inc/voucher.inc
+++ b/src/etc/inc/voucher.inc
@@ -3,7 +3,7 @@
* voucher.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
@@ -30,22 +30,9 @@ if (!function_exists('captiveportal_syslog')) {
}
function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $username) {
- global $g, $config, $cpzone;
- require_once("XML/RPC2/Client.php");
-
- $protocol = "http";
- if (is_array($config['system']) &&
- is_array($config['system']['webgui']) &&
- !empty($config['system']['webgui']['protocol']) &&
- $config['system']['webgui']['protocol'] == "https") {
- $protocol = "https";
- }
- if ($protocol == "https" || $port == "443") {
- $url = "https://{$syncip}:{$port}";
- } else {
- $url = "http://{$syncip}:{$port}";
- }
-
+ global $cpzone;
+ require_once("xmlrpc_client.inc");
+
/* Construct code that is run on remote machine */
$execcmd = <<<EOF
global \$cpzone;
@@ -55,67 +42,20 @@ function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $usern
voucher_expire("$vouchers");
EOF;
-
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
-
- log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url));
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url);
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return false;
- }
-
- try {
- $resp = $cli->exec_php($username, $password, $execcmd);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", "");
- return false;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), "");
- return false;
- }
-
- if (!is_array($resp) && trim($resp) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url} (exec_php).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
+ $rpc_client = new pfsense_xmlrpc_client();
+ $rpc_client->setConnectionData($syncip, $port, $username, $password);
+ $resp = $rpc_client->xmlrpc_exec_php($execcmd);
+ if (empty($resp)) {
return false;
}
-
- log_error(sprintf(gettext("CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense.exec_php)."), $url));
-
return $resp;
}
function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $username, $term_cause = 1, $stop_time = null) {
- global $g, $config, $cpzone;
- require_once("XML/RPC2/Client.php");
-
- $protocol = "http";
- if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) &&
- $config['system']['webgui']['protocol'] == "https") {
- $protocol = "https";
- }
- if ($protocol == "https" || $port == "443") {
- $url = "https://{$syncip}:{$port}";
- } else {
- $url = "http://{$syncip}:{$port}";
- }
-
+ global $cpzone;
+ require_once("xmlrpc_client.inc");
/* Construct code that is run on remote machine */
- $dbent_str = serialize($dbent);
+ $dbent_str = addslashes(serialize($dbent));
$tmp_stop_time = (isset($stop_time)) ? $stop_time : "null";
$execcmd = <<<EOF
global \$cpzone;
@@ -127,64 +67,18 @@ function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $user
captiveportal_disconnect(\$dbent, \$radiusservers, $term_cause, $tmp_stop_time);
EOF;
-
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
-
- log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url));
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url);
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
+ $rpc_client = new pfsense_xmlrpc_client();
+ $rpc_client->setConnectionData($syncip, $port, $username, $password);
+ $resp = $rpc_client->xmlrpc_exec_php($execcmd);
+ if (empty($resp)) {
return false;
}
-
- try {
- $resp = $cli->exec_php($username, $password, $execcmd);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", "");
- return false;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), "");
- return false;
- }
-
- if (!is_array($resp) && trim($resp) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url} (exec_php).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return false;
- }
-
- log_error(sprintf(gettext("CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense.exec_php)."), $url));
-
return $resp;
}
function xmlrpc_sync_used_voucher($voucher_received, $syncip, $port, $password, $username) {
- global $g, $config, $cpzone;
- require_once("XML/RPC2/Client.php");
-
- $protocol = "http";
- if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) &&
- $config['system']['webgui']['protocol'] == "https") {
- $protocol = "https";
- }
- if ($protocol == "https" || $port == "443") {
- $url = "https://{$syncip}:{$port}";
- } else {
- $url = "http://{$syncip}:{$port}";
- }
+ global $config, $cpzone;
+ require_once("xmlrpc_client.inc");
/* Construct code that is run on remote machine */
$execcmd = <<<EOF
@@ -198,52 +92,17 @@ function xmlrpc_sync_used_voucher($voucher_received, $syncip, $port, $password,
\$toreturn['voucher']['roll'] = \$config['voucher'][\$cpzone]['roll'];
EOF;
-
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
-
- log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url));
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url);
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return null;
- }
-
- try {
- $resp = $cli->exec_php($username, $password, $execcmd);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", "");
- return null;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), "");
- return null;
- }
-
- if (!is_array($resp) && trim($resp) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url} (exec_php).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return null;
- }
-
+ $rpc_client = new pfsense_xmlrpc_client();
+ $rpc_client->setConnectionData($syncip, $port, $username, $password);
+ $resp = $rpc_client->xmlrpc_exec_php($execcmd);
+
if (!is_array($config['voucher'])) {
$config['voucher'] = array();
}
if (is_array($resp['voucher']['roll'])) {
$config['voucher'][$cpzone]['roll'] = $resp['voucher']['roll'];
- write_config(sprintf(gettext("Captive Portal Voucher database synchronized with %s"), $url));
+ write_config(sprintf(gettext("Captive Portal Voucher database synchronized with %s:%s"), $syncip, $port));
voucher_configure_zone(true);
unset($resp['voucher']);
} else if (!isset($resp['timeleft'])) {
diff --git a/src/etc/inc/vpn.inc b/src/etc/inc/vpn.inc
index 46a1dad..f4fa23d 100644
--- a/src/etc/inc/vpn.inc
+++ b/src/etc/inc/vpn.inc
@@ -3,7 +3,7 @@
* vpn.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -199,17 +199,14 @@ function vpn_ipsec_configure($restart = false) {
if (!file_exists("/usr/local/etc/ipsec.d") ||
!is_link("/usr/local/etc/ipsec.d")) {
- conf_mount_rw();
if (file_exists("/usr/local/etc/ipsec.d")) {
rmdir_recursive("/usr/local/etc/ipsec.d");
}
@symlink("{$g['varetc_path']}/ipsec/ipsec.d",
"/usr/local/etc/ipsec.d");
- conf_mount_ro();
}
if (!file_exists("{$g['varetc_path']}/etc/strongswan.d") ||
!is_link("{$g['varetc_path']}/etc/strongswan.d")) {
- conf_mount_rw();
if (is_link("{$g['varetc_path']}/etc/strongswan.d")) {
@unlink("{$g['varetc_path']}/etc/strongswan.d");
} else {
@@ -217,23 +214,18 @@ function vpn_ipsec_configure($restart = false) {
}
@symlink("/usr/local/etc/strongswan.d",
"{$g['varetc_path']}/ipsec/strongswan.d");
- conf_mount_ro();
}
if (!file_exists("/usr/local/etc/strongswan.conf") ||
!is_link("/usr/local/etc/strongswan.conf")) {
- conf_mount_rw();
@unlink("/usr/local/etc/strongswan.conf");
@symlink("{$g['varetc_path']}/ipsec/strongswan.conf",
"/usr/local/etc/strongswan.conf");
- conf_mount_ro();
}
if (!file_exists("/usr/local/etc/ipsec.conf") ||
!is_link("/usr/local/etc/ipsec.conf")) {
- conf_mount_rw();
@unlink("/usr/local/etc/ipsec.conf");
@symlink("{$g['varetc_path']}/ipsec/ipsec.conf",
"/usr/local/etc/ipsec.conf");
- conf_mount_ro();
}
if (platform_booting()) {
@@ -865,20 +857,23 @@ EOD;
$sourcehost = $rgmap['remote-gateway'];
}
- if ($ph1ent['protocol'] == 'inet') {
- if (substr($ph1ent['interface'], 0, 4) == "_vip") {
- $vpninterface = get_configured_vip_interface($ph1ent['interface']);
+ if (substr($ph1ent['interface'], 0, 4) == "_vip") {
+ $vpninterface = get_configured_vip_interface($ph1ent['interface']);
+ if (substr($vpninterface, 0, 4) == "_vip") {
+ // vips are nested if its a ipalias with a carp parent
+ $vpninterface = get_configured_vip_interface($vpninterface);
+ }
+ $ifacesuse = get_real_interface($vpninterface);
+ } else {
+ $ifacesuse = get_failover_interface($ph1ent['interface']);
+ if (substr($ifacesuse, 0, 4) == "_vip") {
+ $vpninterface = get_configured_vip_interface($ifacesuse);
$ifacesuse = get_real_interface($vpninterface);
} else {
- $ifacesuse = get_failover_interface($ph1ent['interface']);
- if (substr($ifacesuse, 0, 4) == "_vip") {
- $vpninterface = get_configured_vip_interface($ifacesuse);
- $ifacesuse = get_real_interface($vpninterface);
- } else {
- $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse);
- }
+ $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse);
}
-
+ }
+ if ($ph1ent['protocol'] == 'inet') {
if (!empty($ifacesuse) && interface_has_gateway($vpninterface)) {
$gatewayip = get_interface_gateway($vpninterface);
$interfaceip = get_interface_ip($vpninterface);
@@ -888,25 +883,12 @@ EOD;
if (!ip_in_subnet($sourcehost, "{$subnet_ip}/{$subnet_bits}")) {
if (is_ipaddrv4($gatewayip)) {
// log_error("IPSEC interface is not WAN but {$ifacesuse}, adding static route for VPN endpoint {$rgip} via {$gatewayip}");
- mwexec("/sbin/route change -host {$sourcehost} {$gatewayip}", true);
+ route_add_or_change("-host {$sourcehost} {$gatewayip}");
}
}
}
} else if ($ph1ent['protocol'] == 'inet6') {
- if (substr($ph1ent['interface'], 0, 4) == "_vip") {
- $vpninterface = get_configured_vip_interface($ph1ent['interface']);
- $ifacesuse = get_real_interface($vpninterface);
- } else {
- $ifacesuse = get_failover_interface($ph1ent['interface']);
- if (substr($ifacesuse, 0, 4) == "_vip") {
- $vpninterface = get_configured_vip_interface($ifacesuse);
- $ifacesuse = get_real_interface($vpninterface);
- } else {
- $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse);
- }
- }
-
- if (!empty($ifacesuse) && interface_has_gateway($vpninterface)) {
+ if (!empty($ifacesuse) && interface_has_gatewayv6($vpninterface)) {
$gatewayip = get_interface_gateway_v6($vpninterface);
$interfaceip = get_interface_ipv6($vpninterface);
$subnet_bits = get_interface_subnetv6($vpninterface);
@@ -915,7 +897,7 @@ EOD;
if (!ip_in_subnet($sourcehost, "{$subnet_ip}/{$subnet_bits}")) {
if (is_ipaddrv6($gatewayip)) {
// log_error("IPSEC interface is not WAN but {$ifacesuse}, adding static route for VPN endpoint {$rgip} via {$gatewayip}");
- mwexec("/sbin/route change -inet6 -host {$sourcehost} {$gatewayip}", true);
+ route_add_or_change("-inet6 -host {$sourcehost} {$gatewayip}");
}
}
}
@@ -1580,44 +1562,54 @@ function vpn_pppoe_configure(&$pppoecfg) {
printf(gettext("Error: cannot open mpd.conf in vpn_pppoe_configure().") . "\n");
return 1;
}
- $mpdconf = "\n\n";
- $mpdconf .= "poes:\n";
- for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) {
- $mpdconf .= " load poes{$pppoecfg['pppoeid']}{$i}\n";
+ $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 ";
+ if (isset($pppoecfg['radius']['radiusissueips']) && isset($pppoecfg['radius']['server']['enable'])) {
+ $issue_ip_type .= "0.0.0.0/0";
+ } else {
+ $issue_ip_type .= "ippool p0";
}
- for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) {
+ $ippool_p0 = ip_after($pppoecfg['remoteip'], $pppoecfg['n_pppoe_units'] - 1);
- $clientip = ip_after($pppoecfg['remoteip'], $i);
-
- if (isset($pppoecfg['radius']['radiusissueips']) && isset($pppoecfg['radius']['server']['enable'])) {
- $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 0.0.0.0/0";
- } else {
- $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 {$clientip}/32";
- }
-
- $mpdconf .=<<<EOD
-
-poes{$pppoecfg['pppoeid']}{$i}:
- new -i poes{$pppoecfg['pppoeid']}{$i} poes{$pppoecfg['pppoeid']}{$i} poes{$pppoecfg['pppoeid']}{$i}
- {$issue_ip_type}
- load pppoe_standard
-
-EOD;
- }
if (is_numeric($pppoecfg['n_pppoe_maxlogin']) && ($pppoecfg['n_pppoe_maxlogin'] > 0)) {
$pppoemaxlogins = $pppoecfg['n_pppoe_maxlogin'];
} else {
$pppoemaxlogins = 1;
}
- $mpdconf .=<<<EOD
+ $ipcp_dns = '';
+ if (!empty($pppoecfg['dns1'])) {
+ $ipcp_dns = "set ipcp dns " . $pppoecfg['dns1'];
+ if (!empty($pppoecfg['dns2'])) {
+ $ipcp_dns .= " " . $pppoecfg['dns2'];
+ }
+ } elseif (isset($config['dnsmasq']['enable']) ||
+ isset ($config['unbound']['enable'])) {
+ $ipcp_dns = "set ipcp dns " . get_interface_ip("lan");
+ if ($syscfg['dnsserver'][0]) {
+ $ipcp_dns .= " " . $syscfg['dnsserver'][0];
+ }
+ } elseif (is_array($syscfg['dnsserver']) &&
+ ($syscfg['dnsserver'][0])) {
+ $ipcp_dns = "set ipcp dns " . join(" ", $syscfg['dnsserver']);
+ }
-pppoe_standard:
- set bundle no multilink
+ $mpdconf = <<<EOD
+startup:
+
+poes:
+ set ippool add p0 {$pppoecfg['remoteip']} {$ippool_p0}
+
+ create bundle template poes_b
set bundle enable compression
- set auth max-logins {$pppoemaxlogins}
+
+ set ccp yes mppc
+ set mppc yes e40
+ set mppc yes e128
+ set mppc yes stateless
+
+ set iface group pppoe
set iface up-script /usr/local/sbin/vpn-linkup
set iface down-script /usr/local/sbin/vpn-linkdown
set iface idle 0
@@ -1625,45 +1617,29 @@ pppoe_standard:
set iface disable proxy-arp
set iface enable tcpmssfix
set iface mtu 1500
+
+ set ipcp no vjcomp
+ {$issue_ip_type}
+ {$ipcp_dns}
+
+ create link template poes_l pppoe
+ set link action bundle poes_b
+
+ set auth max-logins {$pppoemaxlogins}
+
+ set pppoe iface {$pppoe_interface}
+
+ set link no multilink
set link no pap chap
{$paporchap}
set link keep-alive 60 180
- set ipcp yes vjcomp
- set ipcp no vjcomp
set link max-redial -1
- set link mtu 1492
set link mru 1492
- set ccp yes mpp-e40
- set ccp yes mpp-e128
- set ccp yes mpp-stateless
set link latency 1
- #set ipcp dns 10.10.1.3
- #set bundle accept encryption
+ set link enable incoming
EOD;
- if (!empty($pppoecfg['dns1'])) {
- $mpdconf .= " set ipcp dns " . $pppoecfg['dns1'];
- if (!empty($pppoecfg['dns2'])) {
- $mpdconf .= " " . $pppoecfg['dns2'];
- }
- $mpdconf .= "\n";
- } elseif (isset ($config['dnsmasq']['enable'])) {
- $mpdconf .= " set ipcp dns " . get_interface_ip("lan");
- if ($syscfg['dnsserver'][0]) {
- $mpdconf .= " " . $syscfg['dnsserver'][0];
- }
- $mpdconf .= "\n";
- } elseif (isset ($config['unbound']['enable'])) {
- $mpdconf .= " set ipcp dns " . get_interface_ip("lan");
- if ($syscfg['dnsserver'][0]) {
- $mpdconf .= " " . $syscfg['dnsserver'][0];
- }
- $mpdconf .= "\n";
- } elseif (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) {
- $mpdconf .= " set ipcp dns " . join(" ", $syscfg['dnsserver']) . "\n";
- }
-
if (isset ($pppoecfg['radius']['server']['enable'])) {
$radiusport = "";
$radiusacctport = "";
@@ -1687,7 +1663,7 @@ EOD;
EOD;
}
- if (isset($pppoecfg['radius']['nasip'])) {
+ if (!empty($pppoecfg['radius']['nasip'])) {
$mpdconf .= "\tset radius me {$pppoecfg['radius']['nasip']}\n";
}
}
@@ -1696,32 +1672,6 @@ EOD;
fclose($fd);
unset($mpdconf);
- /* write mpd.links */
- $fd = fopen("{$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn/mpd.links", "w");
- if (!$fd) {
- printf(gettext("Error: cannot open mpd.links in vpn_pppoe_configure().") . "\n");
- return 1;
- }
-
- $mpdlinks = "";
-
- for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) {
- $mpdlinks .=<<<EOD
-
-poes{$pppoecfg['pppoeid']}{$i}:
- set phys type pppoe
- set pppoe iface {$pppoe_interface}
- set pppoe service "*"
- set pppoe disable originate
- set pppoe enable incoming
-
-EOD;
- }
-
- fwrite($fd, $mpdlinks);
- fclose($fd);
- unset($mpdlinks);
-
if ($pppoecfg['username']) {
/* write mpd.secret */
$fd = fopen("{$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn/mpd.secret", "w");
@@ -1754,7 +1704,7 @@ EOD;
/* Get support for netgraph(4) from the nic */
pfSense_ngctl_attach(".", $pppoe_interface);
/* fire up mpd */
- mwexec("/usr/local/sbin/mpd4 -b -d {$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn -p {$g['varrun_path']}/pppoe{$pppoecfg['pppoeid']}-vpn.pid -s poes poes");
+ mwexec("/usr/local/sbin/mpd5 -b -d {$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn -p {$g['varrun_path']}/pppoe{$pppoecfg['pppoeid']}-vpn.pid -s poes poes");
break;
}
@@ -1824,81 +1774,75 @@ function vpn_l2tp_configure() {
printf(gettext("Error: cannot open mpd.conf in vpn_l2tp_configure().") . "\n");
return 1;
}
- $mpdconf = "\n\n";
- $mpdconf .=<<<EOD
-l2tps:
-EOD;
+ $ippool_p0 = ip_after($l2tpcfg['remoteip'], $l2tpcfg['n_l2tp_units'] - 1);
- for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) {
- $mpdconf .= " load l2tp{$i}\n";
+ $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 ";
+ if (isset($l2tpcfg['radius']['radiusissueips']) && isset($l2tpcfg['radius']['server']['enable'])) {
+ $issue_ip_type .= "0.0.0.0/0";
+ } else {
+ $issue_ip_type .= "ippool p0";
}
- for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) {
-
- $clientip = ip_after($l2tpcfg['remoteip'], $i);
+ $ipcp_nbns = '';
+ if (is_ipaddr($l2tpcfg['wins'])) {
+ $ipcp_nbns = "set ipcp nbns {$l2tpcfg['wins']}";
+ }
- if (isset ($l2tpcfg['radius']['radiusissueips']) && isset ($l2tpcfg['radius']['enable'])) {
- $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 0.0.0.0/0";
- } else {
- $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 {$clientip}/32";
+ $ipcp_dns = '';
+ if (is_ipaddr($l2tpcfg['dns1'])) {
+ $ipcp_dns = "set ipcp dns " . $l2tpcfg['dns1'];
+ if (is_ipaddr($l2tpcfg['dns2'])) {
+ $ipcp_dns .= " " . $l2tpcfg['dns2'];
+ }
+ } elseif (isset ($config['dnsmasq']['enable']) ||
+ isset ($config['unbound']['enable'])) {
+ $ipcp_dns = "set ipcp dns " . get_interface_ip("lan");
+ if ($syscfg['dnsserver'][0]) {
+ $ipcp_dns .= " " . $syscfg['dnsserver'][0];
}
+ } elseif (is_array($syscfg['dnsserver']) &&
+ ($syscfg['dnsserver'][0])) {
+ $ipcp_dns = "set ipcp dns " . join(" ", $syscfg['dnsserver']);
+ }
- $mpdconf .=<<<EOD
+ $mpdconf =<<<EOD
-l2tp{$i}:
- new -i l2tp{$i} l2tp{$i} l2tp{$i}
- {$issue_ip_type}
- load l2tp_standard
+startup:
-EOD;
- }
-
- $mpdconf .=<<<EOD
+l2tps:
+ set ippool add p0 {$l2tpcfg['remoteip']} {$ippool_p0}
-l2tp_standard:
- set bundle disable multilink
+ create bundle template l2tp_b
set bundle enable compression
set bundle yes crypt-reqd
- set ipcp yes vjcomp
- # set ipcp ranges 131.188.69.161/32 131.188.69.170/28
+
set ccp yes mppc
- set iface disable on-demand
- set iface enable proxy-arp
+
+ set iface group l2tp
set iface up-script /usr/local/sbin/vpn-linkup
set iface down-script /usr/local/sbin/vpn-linkdown
+ set iface disable on-demand
+ set iface enable proxy-arp
+
+ set ipcp yes vjcomp
+ {$issue_ip_type}
+ {$ipcp_nbns}
+ {$ipcp_dns}
+
+ create link template l2tp_l l2tp
+ set link action bundle l2tp_b
+
set link yes acfcomp protocomp
- set link no pap chap
+ set link enable multilink
+ set link no pap chap chap-msv2
{$paporchap}
{$l2tp_listen}
set link keep-alive 10 180
+ set link enable incoming
EOD;
- if (is_ipaddr($l2tpcfg['wins'])) {
- $mpdconf .= " set ipcp nbns {$l2tpcfg['wins']}\n";
- }
- if (is_ipaddr($l2tpcfg['dns1'])) {
- $mpdconf .= " set ipcp dns " . $l2tpcfg['dns1'];
- if (is_ipaddr($l2tpcfg['dns2'])) {
- $mpdconf .= " " . $l2tpcfg['dns2'];
- }
- $mpdconf .= "\n";
- } elseif (isset ($config['dnsmasq']['enable'])) {
- $mpdconf .= " set ipcp dns " . get_interface_ip("lan");
- if ($syscfg['dnsserver'][0]) {
- $mpdconf .= " " . $syscfg['dnsserver'][0];
- }
- $mpdconf .= "\n";
- } elseif (isset ($config['unbound']['enable'])) {
- $mpdconf .= " set ipcp dns " . get_interface_ip("lan");
- if ($syscfg['dnsserver'][0]) {
- $mpdconf .= " " . $syscfg['dnsserver'][0];
- }
- $mpdconf .= "\n";
- } elseif (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) {
- $mpdconf .= " set ipcp dns " . join(" ", $syscfg['dnsserver']) . "\n";
- }
if (isset ($l2tpcfg['radius']['enable'])) {
$mpdconf .=<<<EOD
@@ -1921,33 +1865,6 @@ EOD;
fclose($fd);
unset($mpdconf);
- /* write mpd.links */
- $fd = fopen("{$g['varetc_path']}/l2tp-vpn/mpd.links", "w");
- if (!$fd) {
- printf(gettext("Error: cannot open mpd.links in vpn_l2tp_configure().") . "\n");
- return 1;
- }
-
- $mpdlinks = "";
-
- for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) {
- $mpdlinks .=<<<EOD
-
-l2tp{$i}:
- set link type l2tp
- set l2tp enable incoming
- set l2tp disable originate
-
-EOD;
- if (!empty($l2tpcfg['secret'])) {
- $mpdlinks .= "set l2tp secret {$l2tpcfg['secret']}\n";
- }
- }
-
- fwrite($fd, $mpdlinks);
- fclose($fd);
- unset($mpdlinks);
-
/* write mpd.secret */
$fd = fopen("{$g['varetc_path']}/l2tp-vpn/mpd.secret", "w");
if (!$fd) {
@@ -1971,7 +1888,7 @@ EOD;
vpn_netgraph_support();
/* fire up mpd */
- mwexec("/usr/local/sbin/mpd4 -b -d {$g['varetc_path']}/l2tp-vpn -p {$g['varrun_path']}/l2tp-vpn.pid -s l2tps l2tps");
+ mwexec("/usr/local/sbin/mpd5 -b -d {$g['varetc_path']}/l2tp-vpn -p {$g['varrun_path']}/l2tp-vpn.pid -s l2tps l2tps");
break;
diff --git a/src/etc/inc/vslb.inc b/src/etc/inc/vslb.inc
index 1d6900f..7d59cb1 100644
--- a/src/etc/inc/vslb.inc
+++ b/src/etc/inc/vslb.inc
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2005-2008 Bill Marquette
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/inc/wizardapp.inc b/src/etc/inc/wizardapp.inc
index c8b3f5c..88143b5 100644
--- a/src/etc/inc/wizardapp.inc
+++ b/src/etc/inc/wizardapp.inc
@@ -3,7 +3,7 @@
* wizardapp.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Bill Marquette - bill.marquette@gmail.com.
* All rights reserved.
*
diff --git a/src/etc/inc/xmlparse.inc b/src/etc/inc/xmlparse.inc
index 7aec616..5632e98 100644
--- a/src/etc/inc/xmlparse.inc
+++ b/src/etc/inc/xmlparse.inc
@@ -3,7 +3,7 @@
* xmlparse.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -226,7 +226,7 @@ function dump_xml_config_sub($arr, $indent) {
if (is_array($cval)) {
if (empty($cval)) {
$xmlconfig .= str_repeat("\t", $indent);
- $xmlconfig .= "<$ent/>\n";
+ $xmlconfig .= "<$ent></$ent>\n";
} else {
$xmlconfig .= str_repeat("\t", $indent);
$xmlconfig .= "<$ent>\n";
@@ -240,7 +240,7 @@ function dump_xml_config_sub($arr, $indent) {
}
$xmlconfig .= str_repeat("\t", $indent);
if ((is_bool($cval) && $cval == true) || ($cval === "")) {
- $xmlconfig .= "<$ent/>\n";
+ $xmlconfig .= "<$ent></$ent>\n";
} else if ((substr($ent, 0, 5) == "descr") ||
(substr($ent, 0, 6) == "detail") ||
(substr($ent, 0, 12) == "login_banner") ||
@@ -257,7 +257,7 @@ function dump_xml_config_sub($arr, $indent) {
}
} else if (empty($val)) {
$xmlconfig .= str_repeat("\t", $indent);
- $xmlconfig .= "<$ent/>\n";
+ $xmlconfig .= "<$ent></$ent>\n";
} else {
/* it's an array */
$xmlconfig .= str_repeat("\t", $indent);
@@ -269,7 +269,7 @@ function dump_xml_config_sub($arr, $indent) {
} else {
if ((is_bool($val) && ($val == true)) || ($val === "")) {
$xmlconfig .= str_repeat("\t", $indent);
- $xmlconfig .= "<$ent/>\n";
+ $xmlconfig .= "<$ent></$ent>\n";
} else if (!is_bool($val)) {
$xmlconfig .= str_repeat("\t", $indent);
if ((substr($ent, 0, 5) == "descr") ||
diff --git a/src/etc/inc/xmlparse_attr.inc b/src/etc/inc/xmlparse_attr.inc
index 4f2779b..cd859c8 100644
--- a/src/etc/inc/xmlparse_attr.inc
+++ b/src/etc/inc/xmlparse_attr.inc
@@ -3,7 +3,7 @@
* xmlparse_attr.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Erik Fonnesbeck
* All rights reserved.
*
diff --git a/src/etc/inc/xmlreader.inc b/src/etc/inc/xmlreader.inc
index ac19a25..ee41796 100644
--- a/src/etc/inc/xmlreader.inc
+++ b/src/etc/inc/xmlreader.inc
@@ -3,7 +3,7 @@
* xmlreader.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -187,7 +187,8 @@ function dump_xml_config_sub(& $writer, $arr) {
foreach ($val as $cval) {
if (is_array($cval)) {
if (empty($cval)) {
- $writer->writeElement($ent);
+ $writer->startElement($ent);
+ $writer->endElement();
} else {
$writer->startElement($ent);
dump_xml_config_sub($writer, $cval);
@@ -198,14 +199,16 @@ function dump_xml_config_sub(& $writer, $arr) {
continue;
}
if ((is_bool($val) && ($val == true)) || ($val === "")) {
- $writer->writeElement($ent);
+ $writer->startElement($ent);
+ $writer->endElement();
} else if (!is_bool($val)) {
$writer->writeElement($ent, $cval);
}
}
}
} else if (empty($val)) {
- $writer->writeElement($ent);
+ $writer->startElement($ent);
+ $writer->endElement();
} else {
/* it's an array */
$writer->startElement($ent);
@@ -214,7 +217,8 @@ function dump_xml_config_sub(& $writer, $arr) {
}
} else {
if ((is_bool($val) && ($val == true)) || ($val === "")) {
- $writer->writeElement($ent);
+ $writer->startElement($ent);
+ $writer->endElement();
} else if (!is_bool($val)) {
$writer->writeElement($ent, $val);
}
@@ -231,6 +235,8 @@ function dump_xml_config($arr, $rootobj) {
$listtags[$tag] = $tag;
}
}
+
+
return dump_xml_config_raw($arr, $rootobj);
}
diff --git a/src/etc/inc/xmlrpc_client.inc b/src/etc/inc/xmlrpc_client.inc
new file mode 100644
index 0000000..26a93be
--- /dev/null
+++ b/src/etc/inc/xmlrpc_client.inc
@@ -0,0 +1,163 @@
+<?php
+/*
+ * xmlrpc_client.php
+ *
+ * part of pfSense (https://www.pfsense.org)
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
+ * All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+require_once("XML/RPC2/Client.php");
+
+class pfsense_xmlrpc_client {
+
+ private $username, $password, $url, $logurl, $filenotice, $error;
+
+ public function __construct() {
+ global $config;
+ $hasync = $config['hasync'];
+
+ if (empty($hasync['username'])) {
+ $username = "admin";
+ } else {
+ $username = $hasync['username'];
+ }
+ /* if port is empty lets rely on the protocol selection */
+ $port = $config['system']['webgui']['port'];
+ if (empty($port)) {
+ if ($config['system']['webgui']['protocol'] == "http") {
+ $port = "80";
+ } else {
+ $port = "443";
+ }
+ }
+ $this->setConnectionData($hasync['synchronizetoip'], $port, $username, $hasync['password']);
+ }
+
+ public function setConnectionData($syncip, $port, $username, $password, $scheme = "") {
+ global $config;
+ $this->username = $username;
+ $this->password = $password;
+ $this->filenotice = "sync_settings";
+ if (empty($scheme)) {
+ $scheme = "http";
+ if ($port == "443") {
+ $scheme = "https";
+ } else if (is_array($config['system']) &&
+ is_array($config['system']['webgui']) &&
+ !empty($config['system']['webgui']['protocol']) &&
+ $config['system']['webgui']['protocol'] == "https") {
+ $scheme = "https";
+ }
+ }
+ if (is_ipaddrv6($syncip)) {
+ $syncip = "[{$syncip}]";
+ }
+ $user = urlencode($this->username);
+ $pass = urlencode($this->password);
+
+ $this->logurl = "{$scheme}://{$syncip}:{$port}/xmlrpc.php";
+ $this->url = "{$scheme}://{$user}:{$pass}@{$syncip}:{$port}/xmlrpc.php";
+ }
+
+ public function set_noticefile($noticefile) {
+ $this->filenotice = $noticefile;
+ }
+
+ private function xmlrpc_internal($method, $parameter, $timeout = 240) {
+ $this->error = null;
+ $options = array(
+ 'prefix' => 'pfsense.',
+ 'sslverify' => false,
+ 'connectionTimeout' => $timeout
+ );
+
+ $numberofruns = 0;
+ while ($numberofruns < 2) {
+ $numberofruns++;
+
+ log_error(sprintf(gettext("Beginning XMLRPC sync data to %s."), $this->logurl));
+ $cli = XML_RPC2_Client::create($this->url, $options);
+ if (!is_object($cli)) {
+ $this->error = sprintf(gettext("A communications error occurred while attempting XMLRPC sync with %s (pfsense.%s)."), $this->log, $method);
+ log_error($this->error);
+ file_notice($this->filenotice, $this->error, "Settings Sync", "");
+ continue;
+ }
+ try {//restore_config_section
+ $REQUEST_URI = $_SERVER['REQUEST_URI'];
+ unset($_SERVER['REQUEST_URI']); // force use of 'toText()' when setting XML_RPC2_CurlException message
+ $resp = $cli->$method($parameter);
+ } catch (XML_RPC2_FaultException $e) {
+ // The XMLRPC server returns a XMLRPC error
+ $this->error = "Exception calling XMLRPC method {$method} #" . $e->getFaultCode() . ' : ' . $e->getFaultString();
+ log_error($this->error);
+ file_notice($this->filenotice, $this->error, "Communications error occurred", "");
+ continue;
+ } catch (XML_RPC2_CurlException $e) {
+ $previouserror = $e->getPrevious();// HTTP_Request2_ConnectionException
+ if ($previouserror == null) {
+ // CurlException doesnt get filled with PreviousError,
+ // however we dont want to show the stacktrace included in the 'message' to non sysadmin users
+ $this->error = "CurlException calling XMLRPC method {$method} #" . $e->getMessage();
+ } else {
+ $this->error = "CurlException calling XMLRPC method {$method} #" . $previouserror->getMessage();
+ }
+ log_error($this->error);
+ file_notice($this->filenotice, $this->error, "Communications error occurred", "");
+ continue;
+ } catch (Exception $e) {
+ // Other errors (HTTP or networking problems...)
+ $this->error = "Exception calling XMLRPC method {$method} # " . $e->getMessage();
+ log_error($this->error);
+ file_notice($this->filenotice, $this->error, gettext("Error code received"), "");
+ continue;
+ } finally {
+ if (isset($REQUEST_URI)) {
+ // restore the unset variable to its previous state.
+ $_SERVER['REQUEST_URI'] = $REQUEST_URI;
+ }
+ }
+
+ if (!is_array($resp) && trim($resp) == "Authentication failed") {
+ $this->error = "An authentication failure occurred while trying to access {$this->logurl} ({$method}).";
+ log_error($this->error);
+ file_notice($this->filenotice, $this->error, "Settings Sync", "");
+ continue;
+ }
+ log_error(sprintf(gettext("XMLRPC reload data success with %s (pfsense.{$method})."), $this->logurl));
+ return $resp;
+ }
+ return null;
+ }
+
+ public function xmlrpc_exec_php($execcmd, $timeout = 240) {
+ $resp = $this->xmlrpc_internal("exec_php", $execcmd, $timeout);
+ return $resp;
+ }
+
+ public function xmlrpc_method($method, $parameter = "", $timeout = 240) {
+ $resp = $this->xmlrpc_internal($method, $parameter, $timeout);
+ return $resp;
+ }
+
+ public function get_error() {
+ return $this->error;
+ }
+
+ public function getUrl() {
+ return $this->logurl;
+ }
+} \ No newline at end of file
diff --git a/src/etc/pfSense-ddb.conf b/src/etc/pfSense-ddb.conf
new file mode 100644
index 0000000..9a6aafd
--- /dev/null
+++ b/src/etc/pfSense-ddb.conf
@@ -0,0 +1,15 @@
+# $FreeBSD$
+#
+# This file is read when going to multi-user and its contents piped thru
+# ``ddb'' to define debugging scripts.
+#
+# see ``man 4 ddb'' and ``man 8 ddb'' for details.
+#
+
+script lockinfo=show locks; show alllocks; show lockedvnods
+
+# kdb.enter.panic panic(9) was called.
+script kdb.enter.default=textdump set; capture on; run lockinfo; show pcpu; bt; ps; alltrace; capture off; textdump dump; reset
+
+# kdb.enter.witness witness(4) detected a locking error.
+script kdb.enter.witness=run lockinfo
diff --git a/src/etc/pfSense-devd.conf b/src/etc/pfSense-devd.conf
index a24a963..7c575b1 100644
--- a/src/etc/pfSense-devd.conf
+++ b/src/etc/pfSense-devd.conf
@@ -2,7 +2,7 @@
# pfSense-devd.conf
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/pfSense-rc b/src/etc/pfSense-rc
index c01dc50..e46ed23 100755
--- a/src/etc/pfSense-rc
+++ b/src/etc/pfSense-rc
@@ -3,7 +3,7 @@
# pfSense-rc
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# originally based on m0n0wall (http://neon1.net/m0n0wall)
@@ -32,9 +32,6 @@ HOME=/
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
export HOME PATH
-# Set our operating platform
-PLATFORM=`/bin/cat /etc/platform`
-
# Set our current version
version=`/bin/cat /etc/version`
@@ -56,100 +53,93 @@ product=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var product_name pfS
# Setup dumpdev/ddb/savecore"
echo "Configuring crash dumps..."
-if [ "$PLATFORM" = "${product}" ]; then
- /etc/rc.dumpon
-fi
+/etc/rc.dumpon
-# Setup ddb on all platforms. On full install it will save the dump, on NanoBSD it will print to console and auto-reboot.
+# Setup ddb on all platforms.
if [ ! -z "`sysctl -Nq debug.ddb.scripting.scripts`" ]; then
- /sbin/ddb /etc/ddb.conf
+ /sbin/ddb /etc/${product}-ddb.conf
fi
-if [ -e /root/force_fsck ]; then
- echo "Forcing filesystem(s) check..."
- /sbin/fsck -y -F -t ufs
+fsck_forced_iterations=`/bin/kenv -q pfsense.fsck.force`
+if [ ! -z "${fsck_forced_iterations}" ]; then
+ echo "Forcing filesystem check (${fsck_forced_iterations} times)..."
+ while [ ${fsck_forced_iterations} -gt 0 ]; do
+ /sbin/fsck -y -F -t ufs
+ fsck_forced_iterations=$((fsck_forced_iterations - 1))
+ done
fi
-if [ "${PLATFORM}" != "cdrom" ]; then
- FSCK_ACTION_NEEDED=0
- /sbin/fsck -p -F
- case $? in
- 0)
- echo "Filesystems are clean, continuing..."
- echo "Mounting filesystems..."
- ;;
- 8)
- echo "Preen mode recommended running a check that will be performed now."
- FSCK_ACTION_NEEDED=1
- ;;
- *)
- echo "Stopping boot is recommended because filesystem manual action is needed, nevertheless automated repair of the filesystem will be attempted."
- FSCK_ACTION_NEEDED=1
- ;;
- esac
-
- if [ ${FSCK_ACTION_NEEDED} = 1 ]; then
- echo "WARNING: Trying to recover filesystem from inconsistency..."
- /sbin/fsck -yF
- fi
-
+if [ -e /root/force_growfs ]; then
+ /etc/rc.d/growfs onestart
+fi
+
+FSCK_ACTION_NEEDED=0
+/sbin/fsck -p -F
+case $? in
+0)
+ echo "Filesystems are clean, continuing..."
+ echo "Mounting filesystems..."
+ ;;
+8)
+ echo "Preen mode recommended running a check that will be performed now."
+ FSCK_ACTION_NEEDED=1
+ ;;
+*)
+ echo "Stopping boot is recommended because filesystem manual action is needed, nevertheless automated repair of the filesystem will be attempted."
+ FSCK_ACTION_NEEDED=1
+ ;;
+esac
+
+if [ ${FSCK_ACTION_NEEDED} = 1 ]; then
+ echo "WARNING: Trying to recover filesystem from inconsistency..."
+ /sbin/fsck -yF
+fi
+
+/sbin/mount -a 2>/dev/null
+mount_rc=$?
+attempts=0
+while [ ${mount_rc} -ne 0 -a ${attempts} -lt 3 ]; do
+ /sbin/fsck -yF
/sbin/mount -a 2>/dev/null
mount_rc=$?
- attempts=0
- while [ ${mount_rc} -ne 0 -a ${attempts} -lt 3 ]; do
- /sbin/fsck -yF
- /sbin/mount -a 2>/dev/null
- mount_rc=$?
- attempts=$((attempts+1))
- done
-
- if [ "${PLATFORM}" = "nanobsd" ]; then
- # XXX This script does need all filesystems rw!!!!
- # Put this workaround for now until better ways are found.
- /sbin/mount -u -w -o sync,noatime /
- /sbin/mount -u -w -o sync,noatime /cf
- fi
+ attempts=$((attempts+1))
+done
- # If /conf is a directory, convert it to a symlink to /cf/conf
- if [ -d "/conf" ]; then
- # If item is not a symlink then rm and recreate
- CONFPOINTSTO=`readlink /conf`
- if ! test "x$CONFPOINTSTO" = "x/cf/conf"; then
- /bin/rm -rf /conf
- /bin/ln -s /cf/conf /conf
- fi
+# If /conf is a directory, convert it to a symlink to /cf/conf
+if [ -d "/conf" ]; then
+ # If item is not a symlink then rm and recreate
+ CONFPOINTSTO=`readlink /conf`
+ if ! test "x$CONFPOINTSTO" = "x/cf/conf"; then
+ /bin/rm -rf /conf
+ /bin/ln -s /cf/conf /conf
fi
+fi
- USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar)
- unset MOVE_PKG_DATA
- if [ "$PLATFORM" = "${product}" ]; then
- # If use MFS var is disabled, move files back to place
- if [ "${USE_MFS_TMPVAR}" != "true" -a -f /root/var/db/pkg/local.sqlite ]; then
- MOVE_PKG_DATA=1
- rm -rf /var/db/pkg 2>/dev/null
- rm -rf /var/cache/pkg 2>/dev/null
- mv /root/var/db/pkg /var/db
- mv /root/var/cache/pkg /var/cache
- # If use MFS var is enabled, move files to a safe place
- elif [ "${USE_MFS_TMPVAR}" = "true" -a -f /var/db/pkg/local.sqlite ]; then
- MOVE_PKG_DATA=1
- /bin/mkdir -p /root/var/db /root/var/cache
- mv /var/db/pkg /root/var/db
- mv /var/cache/pkg /root/var/cache
- fi
- elif [ "${PLATFORM}" = "nanobsd" ]; then
- MOVE_PKG_DATA=1
- fi
+USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar)
+unset MOVE_PKG_DATA
+# If use MFS var is disabled, move files back to place
+if [ "${USE_MFS_TMPVAR}" != "true" -a -f /root/var/db/pkg/local.sqlite ]; then
+ MOVE_PKG_DATA=1
+ rm -rf /var/db/pkg 2>/dev/null
+ rm -rf /var/cache/pkg 2>/dev/null
+ mv /root/var/db/pkg /var/db
+ mv /root/var/cache/pkg /var/cache
+# If use MFS var is enabled, move files to a safe place
+elif [ "${USE_MFS_TMPVAR}" = "true" -a -f /var/db/pkg/local.sqlite ]; then
+ MOVE_PKG_DATA=1
+ /bin/mkdir -p /root/var/db /root/var/cache
+ mv /var/db/pkg /root/var/db
+ mv /var/cache/pkg /root/var/cache
+fi
- if [ "${PLATFORM}" = "nanobsd" ] || [ "${USE_MFS_TMPVAR}" = "true" ]; then
- /etc/rc.embedded
- fi
+if [ "${USE_MFS_TMPVAR}" = "true" ]; then
+ /etc/rc.embedded
+fi
- if [ -n "${MOVE_PKG_DATA}" -o "${USE_MFS_TMPVAR}" = "true" ]; then
- /bin/mkdir -p /var/db /var/cache
- ln -sf ../../root/var/db/pkg /var/db/pkg
- ln -sf ../../root/var/cache/pkg /var/cache/pkg
- fi
+if [ -n "${MOVE_PKG_DATA}" -o "${USE_MFS_TMPVAR}" = "true" ]; then
+ /bin/mkdir -p /var/db /var/cache
+ ln -sf ../../root/var/db/pkg /var/db/pkg
+ ln -sf ../../root/var/cache/pkg /var/cache/pkg
fi
# Make sure /home exists
@@ -160,27 +150,18 @@ fi
/bin/rm -f /root/TRIM_set
/bin/rm -f /root/TRIM_unset
-if [ "${PLATFORM}" = "nanobsd" ]; then
- /sbin/kldstat -qm zfs
- if [ $? -eq 0 ]; then
+# Handle ZFS read-only case
+/sbin/kldstat -qm zfs
+if [ $? -eq 0 ]; then
+ ZFSFSAVAILABLE=$(/sbin/zfs mount 2>/dev/null | wc -l)
+ if [ $ZFSFSAVAILABLE -eq 0 ]; then
/sbin/kldunload zfs
- fi
-elif [ "$PLATFORM" = "${product}" ]; then
- # Handle ZFS read-only case
- /sbin/kldstat -qm zfs
- if [ $? -eq 0 ]; then
- ZFSFSAVAILABLE=$(/sbin/zfs mount 2>/dev/null | wc -l)
- if [ $ZFSFSAVAILABLE -eq 0 ]; then
- /sbin/kldunload zfs
- elif [ -f /usr/bin/grep ]; then
- ZFSROOT=`/sbin/zfs mount | /usr/bin/grep ' /$' | /usr/bin/cut -d ' ' -f 1`
- if [ "$ZFSROOT" != "" ]; then
- /sbin/zfs set readonly=off $ZFSROOT
- fi
+ elif [ -f /usr/bin/grep ]; then
+ ZFSROOT=`/sbin/zfs mount | /usr/bin/grep ' /$' | /usr/bin/cut -d ' ' -f 1`
+ if [ "$ZFSROOT" != "" ]; then
+ /sbin/zfs set readonly=off $ZFSROOT
fi
fi
-elif [ "${PLATFORM}" = "cdrom" ]; then
- /etc/rc.cdrom
fi
# Disable APM on ATA drives. Leaving this on will kill drives long-term, especially laptop drives, by generating excessive Load Cycles.
@@ -198,57 +179,26 @@ fi
# Use php -n here because we are not ready to load extensions yet
varrunpath=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var varrun_path "/var/run")
-if [ "$PLATFORM" = "${product}" ] && [ "${USE_MFS_TMPVAR}" != "true" ]; then
+if [ "${USE_MFS_TMPVAR}" != "true" ]; then
/sbin/mdmfs -S -M -s 4m md $varrunpath
fi
-# Use php -n here because we are not ready to load extensions yet
-hideplatform=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var hideplatform)
-if [ "$hideplatform" = "true" ]; then
- platformbanner="" # hide the platform
-else
- platformbanner=" on the '${PLATFORM}' platform"
-fi
-
echo
cat /usr/local/share/pfSense/ascii-art/pfsense-logo-small.txt
echo
echo
-echo "Welcome to ${product} ${version}${version_patch}${platformbanner}..."
+echo "Welcome to ${product} ${version}${version_patch}..."
echo
/sbin/conscontrol mute off >/dev/null
-if [ "$PLATFORM" = "${product}" ]; then
- SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1`
- /sbin/swapon -a 2>/dev/null >/dev/null
- /etc/rc.savecore
-fi
-
-if [ "$PLATFORM" = "cdrom" ] ; then
- echo -n "Mounting unionfs directories..."
- /bin/mkdir /tmp/unionfs
- /bin/mkdir /tmp/unionfs/usr
- /bin/mkdir /tmp/unionfs/root
- /bin/mkdir /tmp/unionfs/sbin
- /bin/mkdir /tmp/unionfs/bin
- /bin/mkdir /tmp/unionfs/boot
- /bin/mkdir /tmp/unionfs/confdefault
- /sbin/mount_unionfs /tmp/unionfs/usr /usr/
- /sbin/mount_unionfs /tmp/unionfs/root /root/
- /sbin/mount_unionfs /tmp/unionfs/bin /bin/
- /sbin/mount_unionfs /tmp/unionfs/sbin /sbin/
- /sbin/mount_unionfs /tmp/unionfs/boot /boot/
- /sbin/mount_unionfs /tmp/unionfs/confdefault /conf.default/
- echo "done."
-fi
+SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1`
+/sbin/swapon -a 2>/dev/null >/dev/null
+/etc/rc.savecore
# make some directories in /var
-/bin/mkdir -p $varrunpath /var/log /var/etc /var/db/entropy /var/db/rrd /var/at/jobs/ /var/empty 2>/dev/null
+/bin/mkdir -p $varrunpath /var/log /var/etc /var/db/entropy /var/db/rrd /var/at/jobs/ /var/empty /var/log/nginx 2>/dev/null
/bin/rm -rf $varrunpath/*
-if [ "$PLATFORM" != "${product}" ]; then
- /bin/rm /var/log/* 2>/dev/null
-fi
# Cleanup configuration files from previous instance
/bin/rm -rf /var/etc/*
@@ -269,58 +219,19 @@ if [ -L /usr/local/etc/strongswan.conf ]; then
rm -f /usr/local/etc/strongswan.conf
fi
-echo -n "Creating symlinks..."
-# Repair symlinks if they are broken
-if [ -f /etc/newsyslog.conf ]; then
- /bin/rm -f /etc/newsyslog.conf
-fi
-if [ ! -L /etc/syslog.conf ]; then
- /bin/rm -rf /etc/syslog.conf
- if [ ! -f /var/etc/syslog.conf ]; then
- touch /var/etc/syslog.conf
+# Remove deprecated symlinks - #5538
+for f in /etc/hosts \
+ /etc/resolv.conf \
+ /etc/resolvconf.conf \
+ /etc/syslog.conf; do
+ if [ -L "${f}" ]; then
+ rm -f ${f}
fi
- /bin/ln -s /var/etc/syslog.conf /etc/syslog.conf
-fi
-
-# Repair symlinks if they are broken
-if [ ! -L /etc/hosts ]; then
- /bin/rm -rf /etc/hosts
- /bin/ln -s /var/etc/hosts /etc/hosts
-fi
-
-if [ ! -L /etc/resolv.conf ]; then
- /bin/rm -rf /etc/resolv.conf
- /bin/ln -s /var/etc/resolv.conf /etc/resolv.conf
-fi
-
-if [ ! -L /etc/resolvconf.conf ]; then
- /bin/rm -rf /etc/resolvconf.conf
- /bin/ln -s /var/etc/resolvconf.conf /etc/resolvconf.conf
-fi
-
-# Setup compatibility link for packages that
-# have trouble overriding the PREFIX configure
-# argument since we build our packages in a
-# separated PREFIX area
-# Only create if symlink does not exist.
-if [ ! -h /tmp/tmp ]; then
- /bin/ln -hfs / /tmp/tmp
-fi
+done
# Make sure our /tmp is 777 + Sticky
-if [ ! "$PLATFORM" = "cdrom" ] ; then
- /bin/rm -rf /tmp/*
-fi
/bin/chmod 1777 /tmp
-if [ ! "$PLATFORM" = "cdrom" ] ; then
- # Malloc debugging check
- if [ -L /etc/malloc.conf ]; then
- #ln -s aj /etc/malloc.conf
- /bin/rm /etc/malloc.conf
- fi
-fi
-
if [ ! -L /etc/dhclient.conf ]; then
/bin/rm -rf /etc/dhclient.conf
fi
@@ -332,12 +243,9 @@ fi
set -T
trap "echo 'Reboot interrupted'; exit 1" 3
-# Remove old nameserver resolution files
-/bin/rm -f /var/etc/nameserver*
-
echo -n "."
DISABLESYSLOGCLOG=$(/usr/local/sbin/read_xml_tag.sh boolean system/disablesyslogclog)
-LOG_FILES="system filter dhcpd vpn pptps poes l2tps openvpn portalauth ipsec ppp relayd wireless nginx ntpd gateways resolver routing"
+LOG_FILES="system filter dhcpd vpn poes l2tps openvpn portalauth ipsec ppp relayd wireless nginx ntpd gateways resolver routing"
DEFAULT_LOG_FILE_SIZE=$(/usr/local/sbin/read_xml_tag.sh string syslog/logfilesize)
DEFAULT_LOG_FILE_SIZE=${DEFAULT_LOG_FILE_SIZE:-"511488"}
@@ -404,15 +312,8 @@ ln -sf /etc/ssl/openssl.cnf \
/etc/rc.php_ini_setup 2>/tmp/php_errors.txt
/usr/local/sbin/php-fpm -c /usr/local/etc/php.ini -y /usr/local/lib/php-fpm.conf -RD 2>&1 >/dev/null
-# Launch external configuration loader for supported platforms
-if [ "$PLATFORM" = "nanobsd" ]; then
- /usr/local/sbin/fcgicli -f /etc/ecl.php
-fi
-
-# Launch external configuration loader for supported platforms
-if [ "$PLATFORM" = "${product}" ]; then
- /usr/local/sbin/fcgicli -f /etc/ecl.php
-fi
+# Launch external configuration loader
+/usr/local/sbin/fcgicli -f /etc/ecl.php
if [ -f /etc/rc.custom_boot_early ]; then
/bin/echo -n "Launching /etc/rc.custom_boot_early...";
@@ -428,13 +329,6 @@ echo -n "Launching the init system..."
/bin/rm -f /cf/conf/backup/backup.cache
/usr/bin/touch $varrunpath/booting
-if [ "${PLATFORM}" = "nanobsd" ]; then
- # XXX This script does need all filesystems rw!!!!
- # Put this workaround for now until better ways are found.
- /sbin/mount -u -f -r -o sync,noatime /
- /sbin/mount -u -f -r -o sync,noatime /cf
-fi
-
# Copy custom logo over if it's present
if [ -d /usr/local/share/${product}/custom_logos ]; then
cp -f /usr/local/share/${product}/custom_logos/*png \
@@ -483,7 +377,7 @@ fi
# Log product version to syslog
BUILDTIME=`cat /etc/version.buildtime`
ARCH=`uname -m`
-echo "$product ($PLATFORM) ${version}${version_patch} $ARCH $BUILDTIME"
+echo "$product ${version}${version_patch} $ARCH $BUILDTIME"
echo "Bootup complete"
diff --git a/src/etc/pfSense-rc.shutdown b/src/etc/pfSense-rc.shutdown
index 3c72106..dc6221f 100755
--- a/src/etc/pfSense-rc.shutdown
+++ b/src/etc/pfSense-rc.shutdown
@@ -3,7 +3,7 @@
# pfSense-rc.shutdown
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,18 +39,14 @@ HOME=/; export HOME
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
-# If PLATFORM is $product then remove
-# temporary files on shutdown from /tmp/
-PLATFORM=`cat /etc/platform`
-if [ "$PLATFORM" = "${product}" ]; then
- find -x /tmp/* -type f -exec rm -f {} \; >/dev/null 2>&1
-fi
+# Remove temporary files on shutdown from /tmp/
+find -x /tmp/* -type f -exec rm -f {} \; >/dev/null 2>&1
USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar)
DISK_NAME=`/bin/df /var/db/rrd | /usr/bin/tail -1 | /usr/bin/awk '{print $1;}'`
DISK_TYPE=`/usr/bin/basename ${DISK_NAME} | /usr/bin/cut -c1-2`
# If we are not on a full install, or if the full install wants RAM disks, or if the full install _was_ using RAM disks, but isn't for the next boot...
-if [ "${PLATFORM}" != "${product}" ] || [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then
+if [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then
/etc/rc.backup_aliastables.sh
/etc/rc.backup_rrd.sh
/etc/rc.backup_dhcpleases.sh
diff --git a/src/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles
index ff07481..aaf596b 100644
--- a/src/etc/pfSense.obsoletedfiles
+++ b/src/etc/pfSense.obsoletedfiles
@@ -35,7 +35,6 @@
/etc/inc/sysctl.inc
/etc/inc/uuid.php
/etc/inc/xmlrpc.inc
-/etc/inc/xmlrpc_client.inc
/etc/inc/xmlrpc_server.inc
/etc/inc/zeromq.inc
/etc/inetd.conf
@@ -466,7 +465,6 @@
/usr/local/bin/spawn-fcgi
/usr/local/bin/tickadj
/usr/local/bin/verifysig
-/usr/local/etc/php/extensions.ini
/usr/local/etc/pkg.conf
/usr/local/info
/usr/local/lib/engines
@@ -765,6 +763,9 @@
/usr/local/share/nls
/usr/local/share/pbi-keys
/usr/local/share/pfSense/pfSense-repo-devel.conf
+/usr/local/share/pfSense/post_upgrade_command
+/usr/local/share/pfSense/post_upgrade_command.php
+/usr/local/share/pfSense/pre_upgrade_command
/usr/local/share/protocols
/usr/local/share/sgml
/usr/local/share/skel
@@ -1092,7 +1093,11 @@
/var/db/rrd/71
/var/db/rrd/index.html
/var/dhcpd/lib/libc.so.6
+/var/etc/hosts
/var/etc/pppoe-vpn
+/var/etc/resolv.conf
+/var/etc/resolvconf.conf
+/var/etc/syslog.conf
/var/mail/_relayd
/var/mail/unbound
/usr/local/www/d3pie
diff --git a/src/etc/phpshellsessions/changepassword b/src/etc/phpshellsessions/changepassword
index f8ed4f0..287444a 100644
--- a/src/etc/phpshellsessions/changepassword
+++ b/src/etc/phpshellsessions/changepassword
@@ -2,7 +2,7 @@
* changepassword
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/disablecarp b/src/etc/phpshellsessions/disablecarp
index 76991f6..d42181a 100644
--- a/src/etc/phpshellsessions/disablecarp
+++ b/src/etc/phpshellsessions/disablecarp
@@ -2,7 +2,7 @@
* disablecarp
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/disablecarpmaint b/src/etc/phpshellsessions/disablecarpmaint
index ae01818..b14cfe0 100644
--- a/src/etc/phpshellsessions/disablecarpmaint
+++ b/src/etc/phpshellsessions/disablecarpmaint
@@ -2,7 +2,7 @@
* disablecarpmaint
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/disabledhcpd b/src/etc/phpshellsessions/disabledhcpd
index 89aadf2..769c58c 100644
--- a/src/etc/phpshellsessions/disabledhcpd
+++ b/src/etc/phpshellsessions/disabledhcpd
@@ -2,7 +2,7 @@
* disabledhcpd
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/disablereferercheck b/src/etc/phpshellsessions/disablereferercheck
index 8c740cb..0940e10 100644
--- a/src/etc/phpshellsessions/disablereferercheck
+++ b/src/etc/phpshellsessions/disablereferercheck
@@ -2,7 +2,7 @@
* disablereferercheck
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/enableallowallwan b/src/etc/phpshellsessions/enableallowallwan
index 8965db7..5547ea2 100644
--- a/src/etc/phpshellsessions/enableallowallwan
+++ b/src/etc/phpshellsessions/enableallowallwan
@@ -2,7 +2,7 @@
* enableallowallwan
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/enablecarp b/src/etc/phpshellsessions/enablecarp
index e98ca23..274bd41 100644
--- a/src/etc/phpshellsessions/enablecarp
+++ b/src/etc/phpshellsessions/enablecarp
@@ -2,7 +2,7 @@
* enablecarp
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/enablecarpmaint b/src/etc/phpshellsessions/enablecarpmaint
index c0063ca..6f265cb 100644
--- a/src/etc/phpshellsessions/enablecarpmaint
+++ b/src/etc/phpshellsessions/enablecarpmaint
@@ -2,7 +2,7 @@
* enablecarpmaint
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/enablesshd b/src/etc/phpshellsessions/enablesshd
index 65c12eb..5147eaa 100644
--- a/src/etc/phpshellsessions/enablesshd
+++ b/src/etc/phpshellsessions/enablesshd
@@ -2,7 +2,7 @@
* enablesshd
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/externalconfiglocator b/src/etc/phpshellsessions/externalconfiglocator
index 8dccaa6..f6b856a 100644
--- a/src/etc/phpshellsessions/externalconfiglocator
+++ b/src/etc/phpshellsessions/externalconfiglocator
@@ -2,7 +2,7 @@
* externalconfiglocator
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/generateguicert b/src/etc/phpshellsessions/generateguicert
index cc1030e..114c93d 100644
--- a/src/etc/phpshellsessions/generateguicert
+++ b/src/etc/phpshellsessions/generateguicert
@@ -2,7 +2,7 @@
* generateguicert
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/gitsync b/src/etc/phpshellsessions/gitsync
index 2a8fdf2..26874c7 100644
--- a/src/etc/phpshellsessions/gitsync
+++ b/src/etc/phpshellsessions/gitsync
@@ -3,7 +3,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2010-2012 Erik Fonnesbeck
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -49,14 +49,15 @@ if (is_array($command_split)) {
}
$valid_args = array(
- "--minimal" => "\tPerform a minimal copy of only the updated files.\n" .
+ "--minimal" => "\tPerform a copy of only the updated files.\n" .
"\tNot recommended if the system has files modified by any method other\n" .
"\tthan gitsync.\n",
- "--diff" => "\tPerform a copy of only the files that are different or missing.\n" .
+ "--diff" => "\tPerform a copy of only the different and missing files.\n" .
"\tRecommended for SSD if system has files modified by any method other\n" .
"\tthan gitsync.\n",
- "--verbose" => "\tDisplay constructed command. In combination with the --diff\n" .
- "\toption, display the array of different and missing files.\n",
+ "--show-files" => "\tShow the updated, different and missing files.\n" .
+ "\t(when used with --minimal and --diff options)\n",
+ "--show-command" => "\tShow the constructed command.\n",
"--dry-run" => "\tDry-run only. No files copied.\n",
"--help" => "\tDisplay this help list.\n"
);
@@ -152,7 +153,6 @@ function run_cmds($cmds) {
}
unlink_if_exists("/tmp/config.cache");
-conf_mount_rw();
if (!file_exists($GIT_BIN)) {
require_once("pkg-utils.inc");
@@ -257,7 +257,6 @@ if (!$found) {
}
if (!$found) {
echo "\nNo valid branch found. Exiting.\n\n";
- conf_mount_ro();
exit;
}
}
@@ -301,16 +300,14 @@ if (!$args[0] && !$upgrading) {
} while (!empty($merge_repo));
}
-if ($branch == "RESTORE" && $g['platform'] == $g['product_name']) {
+if ($branch == "RESTORE") {
if (!file_exists("/root/cvssync_backup.tgz")) {
echo "Sorry, we could not find a previous CVSSync backup file.\n";
- conf_mount_ro();
exit();
}
echo "===> Restoring previous CVSSync backup... Please wait...\n";
exec("tar Uxpf /root/cvssync_backup.tgz -C /");
post_cvssync_commands();
- conf_mount_ro();
exit();
} else {
$nobackup = true; // do not backup embedded
@@ -369,26 +366,34 @@ foreach ($merge_repos as $merge_repo) {
if ($ret <> 0) {
echo "\nMerge failed. Aborting sync.\n\n";
run_cmds($git_cmd);
- conf_mount_ro();
exit;
}
}
+$updated_files_array[1] = array();
if (isset($args["--minimal"])) {
if (file_exists("/etc/version.gitsync")) {
$old_revision = trim(file_get_contents("/etc/version.gitsync"));
} else if (file_exists("/etc/version.lastcommit")) {
$old_revision = trim(file_get_contents("/etc/version.lastcommit"));
}
- $files_to_copy = strtr(shell_exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} diff --name-only --relative=src " . escapeshellarg($old_revision)), "\n", " ");
- $tar_options = '-C ./src';
-} else {
- $files_to_copy = '.';
- $tar_options = '-C ./src';
+
+ # Find updated files.
+ $updated_files = shell_exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} diff --name-only --relative=src " . escapeshellarg($old_revision));
+
+ # Get the path of each updated file.
+ preg_match_all('@(?:^(.+?)$)@sim', $updated_files, $updated_files_array, PREG_PATTERN_ORDER);
+
+ if(isset($args["--show-files"])) {
+ echo "===> Updated Files: \n";
+ print_r($updated_files_array[1]);
+ }
}
// Save new commit ID for later minimal file copies
-exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} rev-parse -q --verify HEAD > /etc/version.gitsync");
+if(!isset($args["--dry-run"])) {
+ exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} rev-parse -q --verify HEAD > /etc/version.gitsync");
+}
// Remove files that we do not want to overwrite the system with
@unlink("{$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/etc/crontab");
@@ -409,13 +414,15 @@ exec("rm -rf {$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/conf*");
exec("rm -rf {$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/cf 2>/dev/null");
@chmod("{$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/tmp", 01777);
+$different_files_array[1] = array();
+$missing_files_array[1] = array();
if(isset($args["--diff"])) {
# Find different and missing files.
$different_missing_files = shell_exec("/usr/bin/diff -qr / $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/ | /usr/bin/grep -E '^(Files .*? and $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/.*? differ)|(Only in $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/)'");
# Get the path of each different or missing file.
- preg_match_all('@(?:^Files .*? and '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.*?) differ.*?$)@sim', $different_missing_files, $different_files_array, PREG_PATTERN_ORDER);
- preg_match_all('@(?:^Only in '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.*?)$)@sim', $different_missing_files, $missing_files_array, PREG_PATTERN_ORDER);
+ preg_match_all('@(?:^Files .*? and '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.+?) differ.*?$)@sim', $different_missing_files, $different_files_array, PREG_PATTERN_ORDER);
+ preg_match_all('@(?:^Only in '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.+?)$)@sim', $different_missing_files, $missing_files_array, PREG_PATTERN_ORDER);
# Deal with diff's output format of missing files (path: missing_file).
foreach ($missing_files_array[1] as $key => $file) {
@@ -443,18 +450,7 @@ if(isset($args["--diff"])) {
$missing_files_array[1][$key] = $file;
}
- # Convert the list from array to space separated quoted strings. Quoted for white space file name support.
- $different_files = $missing_files = '';
- if (count($different_files_array[1]) > 0)
- $different_files .= '"' . implode('" "', $different_files_array[1]) . '"';
- if (count($missing_files_array[1]) > 0)
- $missing_files .= '"' . implode('" "', $missing_files_array[1]) . '"';
-
- # Files to be copied.
- $files_to_copy = trim($different_files . " " . $missing_files);
- $tar_options = '-C ./src';
-
- if(isset($args["--verbose"])) {
+ if(isset($args["--show-files"])) {
echo "===> Different Files: \n";
print_r($different_files_array[1]);
echo "===> Missing Files: \n";
@@ -462,16 +458,32 @@ if(isset($args["--diff"])) {
}
}
-echo "===> Installing new files...\n";
+# Files to be copied.
+if(isset($args["--minimal"]) || isset($args["--diff"])) {
+ $files_to_copy_array = array_merge($updated_files_array[1], $different_files_array[1], $missing_files_array[1]);
+ $files_to_copy_array = array_unique($files_to_copy_array);
+
+ unset($updated_files_array, $different_files_array, $missing_files_array);
-if ($g['platform'] == $g['product_name']) {
- $command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -Uxpf -)";
+ # Convert the list from an array to a space separated quoted string. Quoted for white space file name support.
+ if (count($files_to_copy_array) > 0) { # Leave the string empty/unset if there is nothing to copy.
+ $files_to_copy = '"' . implode('" "', $files_to_copy_array) . '"';
+ }
+ $qty_files_to_copy = count($files_to_copy_array);
+ unset($files_to_copy_array);
} else {
- $command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -xpf -) 2>/dev/null";
+ $files_to_copy = '.';
+ $qty_files_to_copy = chr(8);
}
+$tar_options = '-C ./src';
+
+echo "===> Installing $qty_files_to_copy new files...\n";
+
+$command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -Uxpf -)";
+
if (!empty($files_to_copy)) {
- if(isset($args["--verbose"])) {
+ if(isset($args["--show-command"])) {
echo "===> Command: \n$command\n";
}
if(!isset($args["--dry-run"])) {
@@ -505,4 +517,3 @@ if (!$upgrading) {
echo "Your system is now sync'd.\n\n";
}
-conf_mount_ro();
diff --git a/src/etc/phpshellsessions/installpkg b/src/etc/phpshellsessions/installpkg
index ceea196..e7fabcf 100644
--- a/src/etc/phpshellsessions/installpkg
+++ b/src/etc/phpshellsessions/installpkg
@@ -2,7 +2,7 @@
* installpkg
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/listpkg b/src/etc/phpshellsessions/listpkg
index cfea22f..55f2255 100644
--- a/src/etc/phpshellsessions/listpkg
+++ b/src/etc/phpshellsessions/listpkg
@@ -2,7 +2,7 @@
* listpkg
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/removepkgconfig b/src/etc/phpshellsessions/removepkgconfig
index 12ae4cb..6bda04f 100644
--- a/src/etc/phpshellsessions/removepkgconfig
+++ b/src/etc/phpshellsessions/removepkgconfig
@@ -2,7 +2,7 @@
* removepkgconfig
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/removeshaper b/src/etc/phpshellsessions/removeshaper
index 365a562..ab35e8e 100644
--- a/src/etc/phpshellsessions/removeshaper
+++ b/src/etc/phpshellsessions/removeshaper
@@ -2,7 +2,7 @@
* removeshaper
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/resetwebgui b/src/etc/phpshellsessions/resetwebgui
index b29b1a3f..15d8044 100644
--- a/src/etc/phpshellsessions/resetwebgui
+++ b/src/etc/phpshellsessions/resetwebgui
@@ -2,7 +2,7 @@
* resetwebgui
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/restartdhcpd b/src/etc/phpshellsessions/restartdhcpd
index b1740fa..0202020 100644
--- a/src/etc/phpshellsessions/restartdhcpd
+++ b/src/etc/phpshellsessions/restartdhcpd
@@ -2,7 +2,7 @@
* restartdhcpd
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/restartipsec b/src/etc/phpshellsessions/restartipsec
index 33cd971..334b95d 100644
--- a/src/etc/phpshellsessions/restartipsec
+++ b/src/etc/phpshellsessions/restartipsec
@@ -2,7 +2,7 @@
* restartipsec
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/svc b/src/etc/phpshellsessions/svc
index ab757a1..c5df36d 100644
--- a/src/etc/phpshellsessions/svc
+++ b/src/etc/phpshellsessions/svc
@@ -2,7 +2,7 @@
* svc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/phpshellsessions/uninstallpkg b/src/etc/phpshellsessions/uninstallpkg
index b484194..f54927a 100644
--- a/src/etc/phpshellsessions/uninstallpkg
+++ b/src/etc/phpshellsessions/uninstallpkg
@@ -2,7 +2,7 @@
* uninstallpkg
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.backup_aliastables.sh b/src/etc/rc.backup_aliastables.sh
index dfc8b72..7999b0a 100755
--- a/src/etc/rc.backup_aliastables.sh
+++ b/src/etc/rc.backup_aliastables.sh
@@ -7,8 +7,6 @@
# Save the alias tables database to the RAM disk store.
if [ -d "${DBPATH}" ]; then
- [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_rw
-
if [ ! -d "${RAM_Disk_Store}" ]; then
mkdir -p "${RAM_Disk_Store}"
fi
@@ -19,6 +17,4 @@ if [ -d "${DBPATH}" ]; then
cd / && /usr/bin/tar -czf "${RAM_Disk_Store}/${filename}.tgz" -C / "${DBPATH}/${filename}"
fi
done
-
- [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_ro
fi
diff --git a/src/etc/rc.backup_dhcpleases.sh b/src/etc/rc.backup_dhcpleases.sh
index 73f83a8..7a8e741 100755
--- a/src/etc/rc.backup_dhcpleases.sh
+++ b/src/etc/rc.backup_dhcpleases.sh
@@ -2,7 +2,5 @@
# Save the DHCP lease database to the config path.
if [ -d "/var/dhcpd/var/db" ]; then
- /etc/rc.conf_mount_rw
cd / && tar -czf /cf/conf/dhcpleases.tgz -C / var/dhcpd/var/db/
- /etc/rc.conf_mount_ro
fi
diff --git a/src/etc/rc.backup_rrd.sh b/src/etc/rc.backup_rrd.sh
index c14ffc7..7914bd1 100755
--- a/src/etc/rc.backup_rrd.sh
+++ b/src/etc/rc.backup_rrd.sh
@@ -5,7 +5,6 @@
# Save the rrd databases to the config path.
if [ -d "${RRDDBPATH}" ]; then
- [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_rw
[ -f "${CF_CONF_PATH}/rrd.tgz" ] && /bin/rm -f "${CF_CONF_PATH}"/rrd.tgz
tgzlist=""
@@ -22,6 +21,5 @@ if [ -d "${RRDDBPATH}" ]; then
cd / && /usr/bin/tar -czf "${CF_CONF_PATH}/rrd.tgz" ${tgzlist}
/bin/rm -f "${RRDDBPATH}"/*.tgz
fi
- [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_ro
fi
diff --git a/src/etc/rc.banner b/src/etc/rc.banner
index 4b741bc..92d9e12 100755
--- a/src/etc/rc.banner
+++ b/src/etc/rc.banner
@@ -5,7 +5,7 @@
*
* part of pfSense
* Copyright (c) 2005 Colin Smith
- * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,18 +29,8 @@ require_once("interfaces.inc");
$hostname = $config['system']['hostname'];
$product = $g['product_name'];
$machine = trim(`uname -m`);
-$hideplatform = $g['hideplatform'];
-if (!$hideplatform) {
- if ($g['platform'] == $g['product_name']) {
- $platform = "full-install";
- } else {
- $platform = $g['platform'];
- }
- $platformbanner = " {$platform}";
-}
-
-print "*** Welcome to {$product} {$g['product_version_string']} ({$machine}{$platformbanner}) on {$hostname} ***\n";
+print "*** Welcome to {$product} {$g['product_version_string']} ({$machine}) on {$hostname} ***\n";
$iflist = get_configured_interface_with_descr(false, true);
foreach ($iflist as $ifname => $friendly) {
diff --git a/src/etc/rc.bootup b/src/etc/rc.bootup
index 438bf68..83ca627 100755
--- a/src/etc/rc.bootup
+++ b/src/etc/rc.bootup
@@ -6,7 +6,7 @@
* originally based on m0n0wall (http://m0n0.ch/wall)
* Copyright (c) 2003-2004 Manuel Kasper <mk@neon1.net>.
* Copyright (c) 2009 Erik Kristensen
- * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC. All rights reserved.
+ * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate). All rights reserved.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,45 +24,6 @@
require_once("pkg-utils.inc");
-function rescue_detect_keypress() {
- // How long do you want the script to wait before moving on (in seconds)
- $timeout=9;
- echo "\n";
- echo "[ Press R to enter recovery mode or ]\n";
- echo "[ press I to launch the installer ]\n\n";
- echo "(R)ecovery mode can assist by rescuing config.xml\n";
- echo "from a broken hard disk installation, etc.\n\n";
- echo "(I)nstaller will be invoked\n\n";
- echo "Timeout before auto boot continues (seconds): {$timeout}";
- $key = null;
- exec("/bin/stty erase " . chr(8));
- while (!in_array($key, array("r", "R", "i", "I"))) {
- echo chr(8) . "{$timeout}";
- `/bin/stty -icanon min 0 time 25`;
- $key = trim(`KEY=\`dd count=1 2>/dev/null\`; echo \$KEY`);
- `/bin/stty icanon`;
- // Decrement our timeout value
- $timeout--;
- // If we have reached 0 exit and continue on
- if ($timeout == 0) {
- break;
- }
- }
- // If R or I was pressed do our logic here
- if (in_array($key, array("r", "R"))) {
- putenv("TERM=xterm");
- echo "\n\nRecovery mode selected...\n";
- passthru("/usr/bin/env TERM=xterm /bin/tcsh");
- } else {
- putenv("TERM=xterm");
- echo "\n\nInstaller mode selected...\n";
- passthru("/usr/bin/env TERM=xterm /bin/tcsh -c /scripts/lua_installer");
- }
-
- passthru("/etc/rc.reboot");
- exit;
-}
-
echo " done.\n";
echo "Initializing...";
@@ -112,7 +73,6 @@ $physmem = $memory[0];
$realmem = $memory[1];
echo " done.\n";
-conf_mount_rw();
/* save dmesg output to file */
system_dmesg_save();
@@ -145,11 +105,6 @@ set_device_perms();
unmute_kernel_msgs();
echo "done.\n";
-// Display rescue configuration option
-if ($g['platform'] == "cdrom") {
- rescue_detect_keypress();
-}
-
echo "Loading configuration...";
parse_config_bootup();
echo "done.\n";
@@ -403,8 +358,7 @@ if (file_exists("/sbin/shutdown.old")) {
}
/* Resync / Reinstall packages if need be */
-if (file_exists('/conf/needs_package_sync') &&
- ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd")) {
+if (file_exists('/conf/needs_package_sync')) {
mark_subsystem_dirty('packagelock');
if (package_reinstall_all()) {
@unlink('/conf/needs_package_sync');
@@ -413,9 +367,7 @@ if (file_exists('/conf/needs_package_sync') &&
}
/* Detect installed binary pkgs that are not registered in the system */
-if ($g['platform'] != "cdrom") {
- register_all_installed_packages();
-}
+register_all_installed_packages();
/* Give syslogd a kick after everything else has been initialized, otherwise it can occasionally
fail to route syslog messages properly on both IPv4 and IPv6 */
@@ -435,6 +387,5 @@ if ($ipsec_dynamic_hosts || !empty($filterdns)) {
led_normalize();
-conf_mount_ro();
?>
diff --git a/src/etc/rc.captiveportal_configure b/src/etc/rc.captiveportal_configure
index 8ca7b2f..ead5f68 100755
--- a/src/etc/rc.captiveportal_configure
+++ b/src/etc/rc.captiveportal_configure
@@ -4,7 +4,7 @@
* rc.captiveportal_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.captiveportal_configure_mac b/src/etc/rc.captiveportal_configure_mac
index fa7a850..8b51904 100755
--- a/src/etc/rc.captiveportal_configure_mac
+++ b/src/etc/rc.captiveportal_configure_mac
@@ -4,7 +4,7 @@
* rc.captiveportal_configure_mac
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2015 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,6 +39,6 @@ $filename = "{$g['tmp_path']}/{$cpzoneidx}_mac_{$startidx}_{$stopidx}";
captiveportal_passthrumac_configure($filename, $startidx, $stopidx);
//log_error("STOPPED: " .time() . " - {$cpzone} : $startidx : {$stopidx} : {$cpzoneidx} : {$filename}");
-mwexec("/sbin/ipfw -x {$cpzoneidx} -q {$filename}");
+mwexec("/sbin/ipfw -q {$filename}");
@unlink($filename);
?>
diff --git a/src/etc/rc.carpbackup b/src/etc/rc.carpbackup
index b537411..8a0c2b7 100755
--- a/src/etc/rc.carpbackup
+++ b/src/etc/rc.carpbackup
@@ -4,7 +4,7 @@
* rc.carpbackup
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.carpmaster b/src/etc/rc.carpmaster
index d536948..d960d9c 100755
--- a/src/etc/rc.carpmaster
+++ b/src/etc/rc.carpmaster
@@ -4,7 +4,7 @@
* rc.carpmaster
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.cdrom b/src/etc/rc.cdrom
deleted file mode 100755
index 0296a12..0000000
--- a/src/etc/rc.cdrom
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-#
-# rc.cdrom
-#
-# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Size of memory file system /cf/conf partition
-partsize="6m"
-
-export VARMFS_COPYDBPKG=yes
-
-for i in tmp varmfs etcmfs; do
- if [ -f /etc/rc.d/$i ]; then
- sh /etc/rc.d/$i start
- fi
-done
-
-# Start PFI
-/bin/sh /scripts/pfi start
-
-# If PFI did not find a config, we should create
-# a tiny mfs under /cf/conf and populate with stock
-# configuration.
-if [ ! -f /conf/config.xml ]; then
- echo -n "Generating a MFS /conf partition... "
- device=$(mdconfig -a -t malloc -s ${partsize})
- newfs /dev/${device} > /dev/null 2>&1
- mount /dev/${device} /cf/conf
- cp /conf.default/* /cf/conf
- echo "done."
-fi
-
-echo -n "Generating a MFS /home partition... "
-device=$(mdconfig -a -t malloc -s ${partsize})
-newfs /dev/${device} > /dev/null 2>&1
-mount /dev/${device} /home
-echo "done."
-
-# Create some needed directories
-/bin/mkdir -p /var/tmp/vi.recover/
diff --git a/src/etc/rc.conf_mount_ro b/src/etc/rc.conf_mount_ro
index be115da..9c8b903 100755
--- a/src/etc/rc.conf_mount_ro
+++ b/src/etc/rc.conf_mount_ro
@@ -4,7 +4,7 @@
* rc.conf_mount_ro
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,8 +20,6 @@
* limitations under the License.
*/
-require_once("config.inc");
-
-conf_mount_ro();
+/* Do nothing */
?>
diff --git a/src/etc/rc.conf_mount_rw b/src/etc/rc.conf_mount_rw
index 2979097..0910720 100755
--- a/src/etc/rc.conf_mount_rw
+++ b/src/etc/rc.conf_mount_rw
@@ -4,7 +4,7 @@
* rc.conf_mount_rw
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,8 +20,6 @@
* limitations under the License.
*/
-require_once("config.inc");
-
-conf_mount_rw();
+/* Do nothing */
?>
diff --git a/src/etc/rc.disable_hdd_apm b/src/etc/rc.disable_hdd_apm
index 8744d7b..d373134 100755
--- a/src/etc/rc.disable_hdd_apm
+++ b/src/etc/rc.disable_hdd_apm
@@ -3,7 +3,7 @@
# rc.disable_hdd_apm
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.dumpon b/src/etc/rc.dumpon
index 977c7fb..e8d3817 100755
--- a/src/etc/rc.dumpon
+++ b/src/etc/rc.dumpon
@@ -3,7 +3,7 @@
# rc.dumpon
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Based on src/etc/rc.d/dumpon from FreeBSD
diff --git a/src/etc/rc.dyndns.update b/src/etc/rc.dyndns.update
index cf0d1b7..4d959f2 100755
--- a/src/etc/rc.dyndns.update
+++ b/src/etc/rc.dyndns.update
@@ -4,7 +4,7 @@
* rc.dyndns.update
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.embedded b/src/etc/rc.embedded
index 11f8b3f..69bee65 100755
--- a/src/etc/rc.embedded
+++ b/src/etc/rc.embedded
@@ -3,7 +3,7 @@
# rc.embedded
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.expireaccounts b/src/etc/rc.expireaccounts
index 6a57ae0..c554d81 100755
--- a/src/etc/rc.expireaccounts
+++ b/src/etc/rc.expireaccounts
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2009 Shrew Soft Inc.
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.filter_configure b/src/etc/rc.filter_configure
index 0342ecf..1f48b30 100755
--- a/src/etc/rc.filter_configure
+++ b/src/etc/rc.filter_configure
@@ -4,7 +4,7 @@
* rc.filter_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.filter_configure_sync b/src/etc/rc.filter_configure_sync
index baea05b..6b9621e 100755
--- a/src/etc/rc.filter_configure_sync
+++ b/src/etc/rc.filter_configure_sync
@@ -4,7 +4,7 @@
* rc.filter_configure_sync
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.filter_synchronize b/src/etc/rc.filter_synchronize
index 88bebab..a6f6aa7 100755
--- a/src/etc/rc.filter_synchronize
+++ b/src/etc/rc.filter_synchronize
@@ -6,7 +6,7 @@
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2005 Bill Marquette
* Copyright (c) 2006 Peter Allgeyer
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -31,8 +31,8 @@ require_once("config.inc");
require_once("functions.inc");
require_once("filter.inc");
require_once("shaper.inc");
-require_once("XML/RPC2/Client.php");
require_once("interfaces.inc");
+require_once("xmlrpc_client.inc");
/*
* backup_vip_config_section($section): returns as an xml file string of
@@ -85,75 +85,35 @@ function remove_special_characters($string) {
return $string;
}
-function carp_check_version($url, $username, $password, $method = 'host_firmware_version') {
+function carp_check_version() {
global $config, $g;
if (file_exists("{$g['varrun_path']}/booting") || platform_booting()) {
return;
}
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
+ $rpc_client = new pfsense_xmlrpc_client();
+ $resp = $rpc_client->xmlrpc_method('host_firmware_version');
- $numberofruns = 0;
- while ($numberofruns < 2) {
- $numberofruns++;
-
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = "A communications error occurred while attempting XMLRPC sync with username {$username} {$url}.";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- }
-
- try {
- $resp = $cli->$method($username, $password);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getMessage();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- }
-
- if (!is_array($resp)) {
- if (trim($resp) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url} ({$method}).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return false;
- }
- } elseif (!isset($resp['config_version']) ||
- ($resp['config_version'] != $config['version'])) {
- update_filter_reload_status("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
- log_error("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
- return false;
- } else {
- return true;
- }
+ log_error(sprintf(gettext("XMLRPC versioncheck:").$resp['config_version'] ." -- ". $config['version']));
+ if (!isset($resp['config_version']) ||
+ ($resp['config_version'] != $config['version'])) {
+ update_filter_reload_status("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
+ log_error("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!");
+ return false;
+ } else {
+ return true;
}
return false;
}
-function carp_sync_xml($url, $username, $password, $sections, $method = 'restore_config_section') {
+function carp_sync_xml($sections) {
global $config, $g;
if (file_exists("{$g['varrun_path']}/booting") || platform_booting()) {
return true;
}
- update_filter_reload_status("Syncing CARP data to {$url}");
-
/* make a copy of config */
$config_copy = $config;
@@ -243,58 +203,19 @@ function carp_sync_xml($url, $username, $password, $sections, $method = 'restore
break;
case 'authserver':
$xml['system'][$section] = $config_copy['system'][$section];
+ break;
default:
$xml[$section] = $config_copy[$section];
}
}
-
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
-
- $numberofruns = 0;
- while ($numberofruns < 2) {
- $numberofruns++;
-
- log_error("Beginning XMLRPC sync to {$url}.");
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = "A communications error occurred while attempting XMLRPC sync with username {$username} {$url}.";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- }
-
- try {
- $resp = $cli->$method($username, $password, $xml);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method ' . $method . '#' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getMessage();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- continue;
- }
-
- if (!is_array($resp) && trim($resp) == "Authentication failed") {
- $error = "An authentication failure occurred while trying to access {$url} ($method).";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return false;
- } else {
- log_error("XMLRPC sync successfully completed with {$url}.");
- update_filter_reload_status("XMLRPC sync successfully completed with {$url}.");
- return true;
- }
+
+ $rpc_client = new pfsense_xmlrpc_client();
+ $resp = $rpc_client->xmlrpc_method('restore_config_section', $xml);
+ if ($resp != null) {
+ $url = $rpc_client->getUrl();
+ update_filter_reload_status("XMLRPC sync successfully completed with {$url}.");
+ return true;
}
-
return false;
}
@@ -311,29 +232,6 @@ if (is_array($config['hasync'])) {
return;
}
- /*
- * XXX: The way we're finding the port right now is really suboptimal -
- * we can't assume that the other machine is setup identically.
- */
- if (!empty($config['system']['webgui']['protocol'])) {
- $synchronizetoip = $config['system']['webgui']['protocol'];
- $synchronizetoip .= "://";
- }
-
- /* if port is empty lets rely on the protocol selection */
- $port = $config['system']['webgui']['port'];
- if (empty($port)) {
- if ($config['system']['webgui']['protocol'] == "http") {
- $port = "80";
- } else {
- $port = "443";
- }
- }
-
- if (is_ipaddrv6($hasync['synchronizetoip'])) {
- $hasync['synchronizetoip'] = "[{$hasync['synchronizetoip']}]";
- }
- $synchronizetoip .= $hasync['synchronizetoip'] . ":{$port}/xmlrpc.php";
if ($hasync['synchronizerules'] != "") {
if (!is_array($config['filter'])) {
$config['filter'] = array();
@@ -425,6 +323,9 @@ if (is_array($config['hasync'])) {
$sections[] = 'group';
}
if ($hasync['synchronizeauthservers'] != "") {
+ if (!is_array($config['system']['authserver'])) {
+ $config['system']['authserver'] = array();
+ }
$sections[] = 'authserver';
}
if ($hasync['synchronizednsforwarder'] != "") {
@@ -452,51 +353,17 @@ if (is_array($config['hasync'])) {
log_error("Nothing has been configured to be synched. Skipping....");
return;
}
-
- if (empty($hasync['username'])) {
- $username = "admin";
- } else {
- $username = $hasync['username'];
- }
-
- if (!carp_check_version($synchronizetoip, $username, $hasync['password'])) {
+
+ if (!carp_check_version()) {
return;
}
update_filter_reload_status("Signaling CARP reload signal...");
- if (!carp_sync_xml($synchronizetoip, $username, $hasync['password'], $sections)) {
+ if (!carp_sync_xml($sections)) {
return;
}
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 900
- );
-
- $cli = XML_RPC2_Client::create($synchronizetoip, $options);
- if (!is_object($cli)) {
- $error = "A communications error occurred while attempting Filter sync with username {$username} {$synchronizetoip}.";
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- } else {
- try {
- $resp = $cli->filter_configure($username, $hasync['password']);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method filter_configure #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method filter_configure #' . $e->getMessage();
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- return;
- }
- log_error("Filter sync successfully completed with {$synchronizetoip}.");
- }
+ $rpc_client = new pfsense_xmlrpc_client();
+ $resp = $rpc_client->xmlrpc_method('filter_configure', "", 900);
+
}
-
-?>
diff --git a/src/etc/rc.gateway_alarm b/src/etc/rc.gateway_alarm
index 8ec4669..2ac516e 100755
--- a/src/etc/rc.gateway_alarm
+++ b/src/etc/rc.gateway_alarm
@@ -2,7 +2,7 @@
#
# rc.gateway_alarm
#
-# Copyright (c) 2015 Electric Sheep Fencing, LLC. All rights reserved.
+# Copyright (c) 2015 Rubicon Communications, LLC (Netgate). All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/src/etc/rc.initial b/src/etc/rc.initial
index 2280310..4dcfcd5 100755
--- a/src/etc/rc.initial
+++ b/src/etc/rc.initial
@@ -3,7 +3,7 @@
# rc.initial
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# originally based on m0n0wall (http://neon1.net/m0n0wall)
@@ -58,9 +58,6 @@ done
CONFIG="/cf/conf/config.xml"
WORD="https"
-# Set our operating platform
-PLATFORM=`cat /etc/platform`
-
# endless loop
while : ; do
@@ -88,10 +85,6 @@ for i in /var/db/pfi/capable_*; do
fi
done
-if [ "$PLATFORM" = "cdrom" ]; then
- option99="99) Install ${product} to a hard drive, etc."
-fi
-
# display a cheap menu
echo ""
echo " 0) Logout (SSH only) 9) pfTop"
@@ -105,10 +98,6 @@ echo " 7) Ping host 16) Restart PHP-FPM"
echo " 8) Shell"
echo " ${option98} "
-if [ "${option99}" != "" ]; then
- /bin/echo "${option99}"
-fi
-
echo
read -p "Enter an option: " opmode
echo
@@ -171,13 +160,6 @@ case ${opmode} in
/etc/rc.initial.store_config_to_removable_device
fi
;;
-99)
- if [ -e /dev/ukbd0 ]; then
- env TERM=xterm /scripts/lua_installer
- else
- /scripts/lua_installer
- fi
- ;;
100)
if grep "$WORD" "$CONFIG"; then
links "https://localhost"
diff --git a/src/etc/rc.initial.defaults b/src/etc/rc.initial.defaults
index afbf947..20a051a 100755
--- a/src/etc/rc.initial.defaults
+++ b/src/etc/rc.initial.defaults
@@ -4,7 +4,7 @@
* rc.initial.defaults
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.halt b/src/etc/rc.initial.halt
index 78ff116..1a42a59 100755
--- a/src/etc/rc.initial.halt
+++ b/src/etc/rc.initial.halt
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2004 Bachman Kharazmi
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.password b/src/etc/rc.initial.password
index 82dc9b5..661e17c 100755
--- a/src/etc/rc.initial.password
+++ b/src/etc/rc.initial.password
@@ -4,7 +4,7 @@
* rc.initial.password
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.ping b/src/etc/rc.initial.ping
index 6f563fd..49ebbda 100755
--- a/src/etc/rc.initial.ping
+++ b/src/etc/rc.initial.ping
@@ -4,7 +4,7 @@
* rc.initial.ping
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.reboot b/src/etc/rc.initial.reboot
index d5bd802..0380f7c 100755
--- a/src/etc/rc.initial.reboot
+++ b/src/etc/rc.initial.reboot
@@ -4,7 +4,7 @@
* rc.initial.reboot
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -33,13 +33,31 @@ require_once("captiveportal.inc");
$fp = fopen('php://stdin', 'r');
echo "\n" . sprintf(gettext("%s will reboot. This may take a few minutes, depending on your hardware."), $g['product_name']) . "\n";
-echo gettext("Do you want to proceed [y|n]?") . " ";
+echo gettext("Do you want to proceed?") . "\n\n";
+echo " " . gettext("Y/y: Reboot normally") . "\n";
+echo " " . gettext("S: Reboot into Single User Mode (requires console access!)") . "\n";
+echo " " . gettext("F: Reboot and run a filesystem check") . "\n\n";
-if (strcasecmp(chop(fgets($fp)), "y") == 0) {
- echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n";
- system_reboot_sync();
+echo gettext("Enter an option:") . " ";
+
+switch (chop(fgets($fp))) {
+ case "S":
+ mwexec('/sbin/nextboot -o "-s" -k kernel');
+ echo "\n" . sprintf(gettext("%s is rebooting into single user mode now."), $g['product_name']) . "\n";
+ system_reboot_sync();
+ break;
+ case "F":
+ mwexec('/sbin/nextboot -e "pfsense.fsck.force=5"');
+ echo "\n" . sprintf(gettext("%s is rebooting for a filesystem check now."), $g['product_name']) . "\n";
+ system_reboot_sync();
+ break;
+ case "Y":
+ case "y":
+ echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n";
+ system_reboot_sync();
+ break;
}
fclose($fp);
-
+echo "\n";
?>
diff --git a/src/etc/rc.initial.setlanip b/src/etc/rc.initial.setlanip
index abcbc43..3b4f875 100755
--- a/src/etc/rc.initial.setlanip
+++ b/src/etc/rc.initial.setlanip
@@ -4,7 +4,7 @@
* rc.initial.setlanip
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.setports b/src/etc/rc.initial.setports
index 75b1170..8a91052 100755
--- a/src/etc/rc.initial.setports
+++ b/src/etc/rc.initial.setports
@@ -4,7 +4,7 @@
* rc.initial.setports
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.store_config_to_removable_device b/src/etc/rc.initial.store_config_to_removable_device
index ab9f343..7f9ec24 100755
--- a/src/etc/rc.initial.store_config_to_removable_device
+++ b/src/etc/rc.initial.store_config_to_removable_device
@@ -4,7 +4,7 @@
* rc.initial.store_config_to_removable_device
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.initial.toggle_sshd b/src/etc/rc.initial.toggle_sshd
index cdd5425..59699c9 100755
--- a/src/etc/rc.initial.toggle_sshd
+++ b/src/etc/rc.initial.toggle_sshd
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2004 Fred Mol <fredmol@xs4all.nl>.
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,7 +25,6 @@ require_once("config.inc");
require_once("functions.inc");
require_once("filter.inc");
-conf_mount_rw();
$fp = fopen('php://stdin', 'r');
@@ -63,4 +62,3 @@ if (isset($config['system']['enablesshd'])) {
fclose($fp);
-conf_mount_ro();
diff --git a/src/etc/rc.interfaces_carp_configure b/src/etc/rc.interfaces_carp_configure
index 4d38d04..b9b3f3e 100755
--- a/src/etc/rc.interfaces_carp_configure
+++ b/src/etc/rc.interfaces_carp_configure
@@ -4,7 +4,7 @@
* rc.interfaces_carp_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.interfaces_lan_configure b/src/etc/rc.interfaces_lan_configure
index 901648b..32038f5 100755
--- a/src/etc/rc.interfaces_lan_configure
+++ b/src/etc/rc.interfaces_lan_configure
@@ -4,7 +4,7 @@
* rc.interfaces_lan_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.interfaces_opt_configure b/src/etc/rc.interfaces_opt_configure
index 91176e2..ab40e2b 100755
--- a/src/etc/rc.interfaces_opt_configure
+++ b/src/etc/rc.interfaces_opt_configure
@@ -4,7 +4,7 @@
* rc.interfaces_opt_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.interfaces_wan_configure b/src/etc/rc.interfaces_wan_configure
index e855eb6..f9c77af 100755
--- a/src/etc/rc.interfaces_wan_configure
+++ b/src/etc/rc.interfaces_wan_configure
@@ -4,7 +4,7 @@
* rc.interfaces_wan_configure
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.kill_states b/src/etc/rc.kill_states
index e434617..12715ac 100755
--- a/src/etc/rc.kill_states
+++ b/src/etc/rc.kill_states
@@ -4,7 +4,7 @@
* rc.kill_states
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.linkup b/src/etc/rc.linkup
index 2a13ec4..e211edd 100755
--- a/src/etc/rc.linkup
+++ b/src/etc/rc.linkup
@@ -4,7 +4,7 @@
* rc.linkup
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.nanobsd_switch_boot_slice b/src/etc/rc.nanobsd_switch_boot_slice
deleted file mode 100755
index 1567e91..0000000
--- a/src/etc/rc.nanobsd_switch_boot_slice
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/local/bin/php-cgi -q
-<?php
-/*
- * rc.nanobsd_switch_boot_slice
- *
- * part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-require_once("globals.inc");
-require_once("config.inc");
-require_once("pfsense-utils.inc");
-
-global $g;
-global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
-global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
-global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
-nanobsd_detect_slice_info();
-
-if ($g['platform'] != "nanobsd") {
- echo "This script can only be used on NanoBSD (embedded) images.\n";
- return 1;
-}
-
-echo "Boot slice : {$BOOTFLASH} ({$BOOT_DEVICE})\n";
-echo "Active slice: {$ACTIVE_SLICE}\n\n";
-
-echo "Switching active slice...";
-nanobsd_switch_boot_slice();
-echo "Done.\n\n";
-nanobsd_detect_slice_info();
-echo "Boot slice : {$BOOTFLASH} ({$BOOT_DEVICE})\n";
-echo "Active slice: {$ACTIVE_SLICE}\n\n";
-?>
diff --git a/src/etc/rc.newipsecdns b/src/etc/rc.newipsecdns
index 11484b6..4670b37 100755
--- a/src/etc/rc.newipsecdns
+++ b/src/etc/rc.newipsecdns
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2009 Seth Mos <seth.mos@dds.nl>.
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.newroutedns b/src/etc/rc.newroutedns
index 48477a7..8485368 100755
--- a/src/etc/rc.newroutedns
+++ b/src/etc/rc.newroutedns
@@ -4,7 +4,7 @@
* rc.newroutedns
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip
index 66da862..920c1e5 100755
--- a/src/etc/rc.newwanip
+++ b/src/etc/rc.newwanip
@@ -4,7 +4,7 @@
* rc.newwanip
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6
index a97f48d..f669f5b 100755
--- a/src/etc/rc.newwanipv6
+++ b/src/etc/rc.newwanipv6
@@ -4,7 +4,7 @@
* rc.newwanipv6
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.notify_message b/src/etc/rc.notify_message
index b6376c2..73dfecd 100755
--- a/src/etc/rc.notify_message
+++ b/src/etc/rc.notify_message
@@ -4,7 +4,7 @@
* rc.notify_message
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.ntpdate b/src/etc/rc.ntpdate
index 8f79980..1f1e9c6 100755
--- a/src/etc/rc.ntpdate
+++ b/src/etc/rc.ntpdate
@@ -4,7 +4,7 @@
* rc.ntpdate
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.openvpn b/src/etc/rc.openvpn
index 8c0267a..7d1644a 100755
--- a/src/etc/rc.openvpn
+++ b/src/etc/rc.openvpn
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2009 Seth Mos <seth.mos@dds.nl>.
- * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.packages b/src/etc/rc.packages
index f2d7acf..b0f37b3 100755
--- a/src/etc/rc.packages
+++ b/src/etc/rc.packages
@@ -4,7 +4,7 @@
* rc.packages
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.php-fpm_restart b/src/etc/rc.php-fpm_restart
index f77a3fa..3af827e 100755
--- a/src/etc/rc.php-fpm_restart
+++ b/src/etc/rc.php-fpm_restart
@@ -3,7 +3,7 @@
# rc.php-fpm-restart
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2014-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2014-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# originally based on m0n0wall (http://neon1.net/m0n0wall)
@@ -28,7 +28,6 @@ sleep 2
# Run the php.ini setup file and populate
# /usr/local/etc/php.ini
-/etc/rc.conf_mount_rw
/etc/rc.php_ini_setup 2>/tmp/php_errors.txt
/bin/rm -f /var/run/php-fpm.pid 2>/dev/null
/bin/rm -f /var/run/php-fpm.socket 2>/dev/null
@@ -37,7 +36,6 @@ if [ -f /tmp/xmlrpc.lock ]; then
echo ">>> Found XMLRPC lock. Removing." | /usr/bin/logger -p daemon.info -i -t rc.php-fpm_restart
rm /tmp/xmlrpc.lock
fi
-/etc/rc.conf_mount_ro
echo ">>> Restarting php-fpm" | /usr/bin/logger -p daemon.info -i -t rc.php-fpm_restart
echo ">>> Starting php-fpm"
/usr/local/sbin/php-fpm -c /usr/local/etc/php.ini -y /usr/local/lib/php-fpm.conf -RD 2>&1 >/dev/null
diff --git a/src/etc/rc.php_ini_setup b/src/etc/rc.php_ini_setup
index d1ea413..f54dcdb 100755
--- a/src/etc/rc.php_ini_setup
+++ b/src/etc/rc.php_ini_setup
@@ -3,7 +3,7 @@
# rc.php_ini_setup
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2014-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2014-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,6 @@
#
# Set our operating platform
-PLATFORM=`/bin/cat /etc/platform`
VERSION=`/bin/cat /etc/version`
MIN_REALMEM_FOR_OPCACHE=512
@@ -70,11 +69,7 @@ else
fi
# Set upload directory
-if [ "$PLATFORM" = "nanobsd" ]; then
- UPLOADTMPDIR=$(/usr/local/sbin/read_global_var upload_path "/root")
-else
- UPLOADTMPDIR="/tmp"
-fi
+UPLOADTMPDIR="/tmp"
# Define php modules. Do not add .so, it will
# be done automatically by the script below.
@@ -266,7 +261,7 @@ suhosin.post.max_value_length = 500000
suhosin.request.max_array_index_length = 256
suhosin.request.max_vars = 5000
suhosin.request.max_value_length = 500000
-suhosin.memory_limit = 536870912
+suhosin.memory_limit = 805306368
EOF
diff --git a/src/etc/rc.prunecaptiveportal b/src/etc/rc.prunecaptiveportal
index b6e67e5..8a5253b 100755
--- a/src/etc/rc.prunecaptiveportal
+++ b/src/etc/rc.prunecaptiveportal
@@ -4,7 +4,7 @@
* rc.prunecaptiveportal
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.reboot b/src/etc/rc.reboot
index 4d21678..f795dec 100755
--- a/src/etc/rc.reboot
+++ b/src/etc/rc.reboot
@@ -3,7 +3,7 @@
# rc.reboot
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,18 +28,14 @@ sleep 1
# Read product_name from $g, defaults to pfSense
product=$(/usr/local/sbin/read_global_var product_name pfSense)
-# If PLATFORM is $product then remove
-# temporary files on shutdown from /tmp/
-PLATFORM=`cat /etc/platform`
-if [ "$PLATFORM" = "${product}" ]; then
- rm -rf /tmp/*
-fi
+# Remove temporary files on shutdown from /tmp/
+rm -rf /tmp/*
USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar)
DISK_NAME=`/bin/df /var/db/rrd | /usr/bin/tail -1 | /usr/bin/awk '{print $1;}'`
DISK_TYPE=`/usr/bin/basename ${DISK_NAME} | /usr/bin/cut -c1-2`
# If we are not on a full install, or if the full install wants RAM disks, or if the full install _was_ using RAM disks, but isn't for the next boot...
-if [ "${PLATFORM}" != "${product}" ] || [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then
+if [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then
/etc/rc.backup_aliastables.sh
/etc/rc.backup_rrd.sh
/etc/rc.backup_dhcpleases.sh
diff --git a/src/etc/rc.reload_all b/src/etc/rc.reload_all
index 127ef85..eea0c40 100755
--- a/src/etc/rc.reload_all
+++ b/src/etc/rc.reload_all
@@ -4,7 +4,7 @@
* rc.reload_all
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.reload_interfaces b/src/etc/rc.reload_interfaces
index 1711e6f..1ec8211 100755
--- a/src/etc/rc.reload_interfaces
+++ b/src/etc/rc.reload_interfaces
@@ -4,7 +4,7 @@
* rc.reload_interfaces
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.resolv_conf_generate b/src/etc/rc.resolv_conf_generate
index 99fae5b..a4b12ef 100755
--- a/src/etc/rc.resolv_conf_generate
+++ b/src/etc/rc.resolv_conf_generate
@@ -4,7 +4,7 @@
* rc.resolv_conf_generate
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.restart_webgui b/src/etc/rc.restart_webgui
index b126f85..4e374cc 100755
--- a/src/etc/rc.restart_webgui
+++ b/src/etc/rc.restart_webgui
@@ -4,7 +4,7 @@
* rc.restart_webgui
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.restore_config_backup b/src/etc/rc.restore_config_backup
index f9ce274..f9237e6 100755
--- a/src/etc/rc.restore_config_backup
+++ b/src/etc/rc.restore_config_backup
@@ -4,7 +4,7 @@
* rc.restore_config_backup
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -91,7 +91,6 @@ function restore_history_backup($number) {
echo gettext("Y/N?") . " : ";
$confirm = strtoupper(chop(fgets($fp)));
if ($confirm == gettext("Y")) {
- conf_mount_rw();
if (config_restore($g['conf_path'] . '/backup/config-' . $thisbackup['time'] . '.xml') == 0) {
echo "\n";
echo sprintf(gettext('Successfully reverted to timestamp %1$s with description "%2$s".'), date(gettext("n/j/y H:i:s"), $thisbackup['time']), $thisbackup['description']);
@@ -99,7 +98,6 @@ function restore_history_backup($number) {
} else {
echo gettext("Unable to revert to the selected configuration.") . "\n";
}
- conf_mount_ro();
} else {
echo gettext("Restore cancelled.") . "\n";
}
diff --git a/src/etc/rc.savecore b/src/etc/rc.savecore
index b3000cb..bb0e1d5 100755
--- a/src/etc/rc.savecore
+++ b/src/etc/rc.savecore
@@ -3,7 +3,7 @@
# rc.savecore
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Based on src/etc/rc.d/savecore from FreeBSD
diff --git a/src/etc/rc.savevoucher b/src/etc/rc.savevoucher
index 1407f77..1d6bc77 100755
--- a/src/etc/rc.savevoucher
+++ b/src/etc/rc.savevoucher
@@ -4,7 +4,7 @@
* rc.savevoucher
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/etc/rc.start_packages b/src/etc/rc.start_packages
index 3492a35..defe814 100755
--- a/src/etc/rc.start_packages
+++ b/src/etc/rc.start_packages
@@ -4,7 +4,7 @@
* rc.start_packages
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.stop_packages b/src/etc/rc.stop_packages
index f279ab7..8563105 100755
--- a/src/etc/rc.stop_packages
+++ b/src/etc/rc.stop_packages
@@ -4,7 +4,7 @@
* rc.stop_packages
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.update_alias_url_data b/src/etc/rc.update_alias_url_data
index f846856..a896584 100755
--- a/src/etc/rc.update_alias_url_data
+++ b/src/etc/rc.update_alias_url_data
@@ -4,7 +4,7 @@
* rc.update_alias_url_data
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/rc.update_bogons.sh b/src/etc/rc.update_bogons.sh
index 466048a..bcb8654 100755
--- a/src/etc/rc.update_bogons.sh
+++ b/src/etc/rc.update_bogons.sh
@@ -3,7 +3,7 @@
# rc.update_bogons.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Based on src/etc/rc.d/savecore from FreeBSD
@@ -106,9 +106,6 @@ BOGON_V6_CKSUM=`/usr/bin/fetch -T 30 -q -o - "${v6urlcksum}" | awk '{ print $4 }
ON_DISK_V6_CKSUM=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then
- # At least one of the downloaded checksums matches, so mount RW
- /etc/rc.conf_mount_rw
-
ENTRIES_MAX=`pfctl -s memory | awk '/table-entries/ { print $4 }'`
if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ]; then
@@ -154,9 +151,6 @@ if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DIS
echo "Could not download ${v6url} (checksum mismatch)" | logger
checksum_error="true"
fi
-
- # We mounted RW, so switch back to RO
- /etc/rc.conf_mount_ro
fi
if [ "$checksum_error" != "" ]; then
diff --git a/src/etc/rc.update_urltables b/src/etc/rc.update_urltables
index 026af60..7ef18a7 100755
--- a/src/etc/rc.update_urltables
+++ b/src/etc/rc.update_urltables
@@ -4,7 +4,7 @@
* rc.update_urltables
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/skel/dot.profile b/src/etc/skel/dot.profile
index 7da5c5e..c3788ad 100644
--- a/src/etc/skel/dot.profile
+++ b/src/etc/skel/dot.profile
@@ -2,7 +2,7 @@
# dot.profile
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/skel/dot.shrc b/src/etc/skel/dot.shrc
index 8777310..3c9dc94 100644
--- a/src/etc/skel/dot.shrc
+++ b/src/etc/skel/dot.shrc
@@ -2,7 +2,7 @@
# dot.shrc
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/etc/skel/dot.tcshrc b/src/etc/skel/dot.tcshrc
index 4be9072..00e0923 100644
--- a/src/etc/skel/dot.tcshrc
+++ b/src/etc/skel/dot.tcshrc
@@ -2,7 +2,7 @@
# dot.tcshrc
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,7 +17,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set prompt="%{\033[0;1;33m%}[%{\033[0;1;37m%}`cat /etc/version`%{\033[0;1;33m%}]%{\033[0;1;33m%}%B[%{\033[0;1;37m%}%n%{\033[0;1;31m%}@%{\033[0;1;37m%}%M%{\033[0;1;33m%}]%{\033[0;1;32m%}%b%/%{\033[0;1;33m%}%{\033[0;1;36m%}%{\033[0;1;31m%}:%{\033[0;0;0m%} "
+set prompt="[%B`cat /etc/version`%b][%B%n%b%{\033[0;1;31m%}@%{\033[0;0;0m%}%B%M%b]%/%{\033[0;1;31m%}:%{\033[0;0;0m%} "
set autologout="0"
set autolist set color set colorcat
setenv CLICOLOR "true"
diff --git a/src/etc/sshd b/src/etc/sshd
index cb84870..64ab8d7 100755
--- a/src/etc/sshd
+++ b/src/etc/sshd
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2004 Fred Mol <fredmol@xs4all.nl>.
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,11 +30,6 @@ if (!isset($config['system']['enablesshd'])) {
return;
}
-/* are we already running? if not, do conf_mount_rw(), otherwise it should already be rw */
-if (!is_subsystem_dirty('sshdkeys')) {
- conf_mount_rw();
-}
-
$sshConfigDir = "/etc/ssh";
$keys = array(
@@ -48,19 +43,6 @@ foreach ($keys as $key) {
$keyfiles[] = "ssh_host_{$key['suffix']}key.pub";
}
-/* restore ssh data for nanobsd platform */
-if ($g['platform'] == "nanobsd" and file_exists("/conf/sshd/ssh_host_key") and !file_exists("{$sshConfigDir}/ssh_host_key.pub")) {
- echo "Restoring SSH from /conf/sshd/";
- exec("/bin/cp -p /conf/sshd/* {$sshConfigDir}/");
-
- /* make sure host private key permissions aren't too open so sshd won't complain */
- foreach ($keyfiles as $f2c) {
- if (file_exists("{$sshConfigDir}/{$f2c}")) {
- chmod("{$sshConfigDir}/{$f2c}", 0600);
- }
- }
-}
-
/* if any of these files are 0 bytes then they are corrupted.
* remove them
*/
@@ -107,6 +89,7 @@ if (isset($config['system']['ssh']['sshdkeyonly'])) {
$sshconf .= "ChallengeResponseAuthentication no\n";
$sshconf .= "PasswordAuthentication no\n";
$sshconf .= "PubkeyAuthentication yes\n";
+ $sshconf .= "UsePAM no\n";
} else {
$sshconf .= "# Login via Key and Password\n";
$sshconf .= "ChallengeResponseAuthentication yes\n";
@@ -114,7 +97,6 @@ if (isset($config['system']['ssh']['sshdkeyonly'])) {
$sshconf .= "PubkeyAuthentication yes\n";
}
$sshconf .= "UseDNS no\n";
-$sshconf .= "UsePAM no\n";
$sshconf .= "LoginGraceTime 30s\n";
/* Hide FreeBSD version */
$sshconf .= "VersionAddendum none\n";
@@ -191,13 +173,5 @@ if ($status <> 0) {
echo "done.\n";
}
-// NanoBSD
-if ($g['platform'] == "nanobsd") {
- if (!is_dir("/conf/sshd")) {
- mkdir("/conf/sshd", 0750);
- }
- $_gb = exec("/bin/cp -p {$sshConfigDir}/ssh_host* /conf/sshd");
-}
-conf_mount_ro();
unset($keys, $keyfiles);
?>
diff --git a/src/etc/version b/src/etc/version
index f011c81..f8fd14e 100644
--- a/src/etc/version
+++ b/src/etc/version
@@ -1 +1 @@
-2.4.0-DEVELOPMENT
+2.4.0-BETA
diff --git a/src/usr/local/bin/3gstats.php b/src/usr/local/bin/3gstats.php
index 9a50fb3..b192865 100755
--- a/src/usr/local/bin/3gstats.php
+++ b/src/usr/local/bin/3gstats.php
@@ -4,7 +4,7 @@
* 3gstats.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/beep.sh b/src/usr/local/bin/beep.sh
index db8b837..0a37d2f 100755
--- a/src/usr/local/bin/beep.sh
+++ b/src/usr/local/bin/beep.sh
@@ -3,7 +3,7 @@
# beep.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/captiveportal_gather_stats.php b/src/usr/local/bin/captiveportal_gather_stats.php
index 94b2a82..c3bfddc 100644
--- a/src/usr/local/bin/captiveportal_gather_stats.php
+++ b/src/usr/local/bin/captiveportal_gather_stats.php
@@ -5,7 +5,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2011 Warren Baker
- * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/dhcpd_gather_stats.php b/src/usr/local/bin/dhcpd_gather_stats.php
index ae84a5d..c58990d 100644
--- a/src/usr/local/bin/dhcpd_gather_stats.php
+++ b/src/usr/local/bin/dhcpd_gather_stats.php
@@ -4,7 +4,7 @@
* dhcpd_gather_stats.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/easyrule b/src/usr/local/bin/easyrule
index a2de79e..37fa9bf 100755
--- a/src/usr/local/bin/easyrule
+++ b/src/usr/local/bin/easyrule
@@ -4,7 +4,7 @@
* easyrule
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/filterparser.php b/src/usr/local/bin/filterparser.php
index 43f90f8..9e8d8b1 100755
--- a/src/usr/local/bin/filterparser.php
+++ b/src/usr/local/bin/filterparser.php
@@ -4,7 +4,7 @@
* filterparser.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/bin/mail.php b/src/usr/local/bin/mail.php
index 9a931b7..55f41e7 100755
--- a/src/usr/local/bin/mail.php
+++ b/src/usr/local/bin/mail.php
@@ -4,7 +4,7 @@
* mail.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/ping_hosts.sh b/src/usr/local/bin/ping_hosts.sh
index a1bf20d..87e30da 100755
--- a/src/usr/local/bin/ping_hosts.sh
+++ b/src/usr/local/bin/ping_hosts.sh
@@ -3,7 +3,7 @@
# ping_hosts.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2006-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/bin/runmsntp.sh b/src/usr/local/bin/runmsntp.sh
index ff5ce40..b7b8e14 100755
--- a/src/usr/local/bin/runmsntp.sh
+++ b/src/usr/local/bin/runmsntp.sh
@@ -3,7 +3,7 @@
# runsntp.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/captiveportal/index.php b/src/usr/local/captiveportal/index.php
index 04c410e..da90963 100644
--- a/src/usr/local/captiveportal/index.php
+++ b/src/usr/local/captiveportal/index.php
@@ -3,7 +3,7 @@
* index.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/sbin/gmirror_status_check.php b/src/usr/local/sbin/gmirror_status_check.php
index 9a81892..30d298f 100755
--- a/src/usr/local/sbin/gmirror_status_check.php
+++ b/src/usr/local/sbin/gmirror_status_check.php
@@ -4,7 +4,7 @@
* gmirror_status_check.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/openvpn.attributes.sh b/src/usr/local/sbin/openvpn.attributes.sh
index 0557894..bb79cbf 100755
--- a/src/usr/local/sbin/openvpn.attributes.sh
+++ b/src/usr/local/sbin/openvpn.attributes.sh
@@ -3,7 +3,7 @@
# openvpn.attributes.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/ovpn-linkdown b/src/usr/local/sbin/ovpn-linkdown
index 724eebf..ede277e 100755
--- a/src/usr/local/sbin/ovpn-linkdown
+++ b/src/usr/local/sbin/ovpn-linkdown
@@ -3,7 +3,7 @@
# ovpn-linkdown
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,5 +21,6 @@
/sbin/pfctl -i $1 -Fs
/bin/rm -f /var/etc/nameserver_$1
/bin/rm -f /tmp/$1_router
+/bin/rm -f /tmp/$1_routerv6
/bin/rm -f /tmp/$1up
/usr/local/sbin/pfSctl -c 'filter reload'
diff --git a/src/usr/local/sbin/ovpn-linkup b/src/usr/local/sbin/ovpn-linkup
index 8f81acf..0551974 100755
--- a/src/usr/local/sbin/ovpn-linkup
+++ b/src/usr/local/sbin/ovpn-linkup
@@ -3,7 +3,7 @@
# ovpn-linkup
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,10 +28,23 @@ if [ "${dev_type}" = "tun" ]; then
else
/bin/echo ${5} > /tmp/${1}_router
fi
+
+ if [ -n "${route_ipv6_gateway_1}" ]; then
+ /bin/echo ${route_ipv6_gateway_1} > /tmp/${1}_routerv6
+ elif [ -n "${ifconfig_ipv6_remote}" ]; then
+ /bin/echo ${ifconfig_ipv6_remote} > /tmp/${1}_routerv6
+ elif [ -n "${ifconfig_ipv6_local}" ]; then
+ /bin/echo ${ifconfig_ipv6_local} > /tmp/${1}_routerv6
+ fi
+
else
if [ -n "${route_vpn_gateway}" ]; then
/bin/echo ${route_vpn_gateway} > /tmp/${1}_router
fi
+
+ if [ -n "${route_ipv6_gateway_1}" ]; then
+ /bin/echo ${route_ipv6_gateway_1} > /tmp/${1}_routerv6
+ fi
fi
/usr/bin/touch /tmp/${1}up
diff --git a/src/usr/local/sbin/ovpn_auth_verify b/src/usr/local/sbin/ovpn_auth_verify
index 1d3f19f..312f844 100755
--- a/src/usr/local/sbin/ovpn_auth_verify
+++ b/src/usr/local/sbin/ovpn_auth_verify
@@ -3,7 +3,7 @@
# ovpn_auth_verify
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/pfSense-upgrade b/src/usr/local/sbin/pfSense-upgrade
deleted file mode 100755
index 22406bf..0000000
--- a/src/usr/local/sbin/pfSense-upgrade
+++ /dev/null
@@ -1,930 +0,0 @@
-#!/bin/sh
-#
-# pfSense-upgrade
-#
-# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-usage() {
- echo "Usage: $(basename ${0}) [-46bdyf] [-u|-i PKG_NAME|-r PKG_NAME]" >&2
- echo " -4 - Force IPv4"
- echo " -6 - Force IPv6"
- echo " -b - Platform is booting" >&2
- echo " -c - Check if upgrade is necessary" >&2
- echo " -d - Turn on debug" >&2
- echo " -f - Force package installation" >&2
- echo " -h - Show this usage help" >&2
- echo " -l - Logfile path (defaults to /cf/conf/upgrade_log.txt)" >&2
- echo " -n - Dry run" >&2
- echo " -p socket - Write pkg progress to socket"
- echo " -R - Do not reboot (this can be dangerous)"
- echo " -y - Assume yes as the answer to any possible interaction" >&2
- echo "" >&2
- echo "The following parameters are mutually exclusive:" >&2
- echo " -i PKG_NAME - Install package PKG_NAME" >&2
- echo " -r PKG_NAME - Remove package PKG_NAME" >&2
- echo " -u - Update repository information" >&2
-}
-
-_echo() {
- local _n=""
- if [ "${1}" = "-n" ]; then
- shift
- _n="-n"
- fi
-
- if [ -z "${logfile}" ]; then
- logfile=/dev/null
- fi
-
- echo ${_n} "${1}" | tee -a ${logfile}
-}
-
-_exec() {
- local _cmd="${1}"
- local _msg="${2}"
- local _mute="${3}"
- local _ignore_result="${4}"
- local _stdout="${stdout}"
-
- if [ -z "${_cmd}" -o -z "${_msg}" ]; then
- return 1
- fi
-
- if [ "${_mute}" != "mute" ]; then
- _stdout=''
- fi
-
- _echo -n ">>> ${_msg}... "
- if [ -z "${_stdout}" ]; then
- _echo ""
- # Ref. http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status
- exec 4>&1
- local _result=$({ { ${_cmd} 2>&1 3>&-; printf $? 1>&3; } 4>&- | \
- tee -a ${logfile} 1>&4; } 3>&1)
- exec 4>&-
- else
- # Ref. http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status
- exec 4>&1
- local _result=$({ { ${_cmd} >${_stdout} 2>&1 3>&-; printf $? 1>&3; } 4>&- | \
- tee -a ${logfile} 1>&4; } 3>&1)
- exec 4>&-
- fi
-
- if [ ${_result} -eq 0 -o -n "${_ignore_result}" ]; then
- [ -n "${_stdout}" ] \
- && _echo "done."
- return 0
- else
- [ -n "${_stdout}" ] \
- && _echo "failed."
- _exit 1
- fi
-}
-
-_exit() {
- trap "-" 1 2 15 EXIT
-
- pkg_lock ${kernel_pkg}
-
- if [ -f "${pid_file}" ]; then
- rm -f ${pid_file}
- fi
-
- if [ -n "${chroot_dir}" ]; then
- umount -f ${chroot_dir} >/dev/null 2>&1
- fi
-
- if [ -z "${booting}" -o "${boot_stage}" != "2" ]; then
- /usr/local/bin/php /etc/rc.conf_mount_ro
- fi
-
- if [ -n "${nc_pid}" ] && ps -p ${nc_pid} >/dev/null 2>&1; then
- kill ${nc_pid}
- fi
-
- if [ -n "${delete_annotation}" ]; then
- pkg ${pkg_chroot} annotate -q -D ${kernel_pkg} next_stage
- fi
-
- if [ -n "${unlock_additional_pkgs}" ]; then
- pkg_unlock "${pkg_prefix}*"
- fi
-
- local _rc=${1:-"0"}
-
- # If EVENT_PIPE is defined, GUI is calling
- if [ -n "${progress_socket}" ]; then
- local _need_reboot_str=""
- [ -n "${need_reboot}" ] \
- && _need_reboot_str=" __REBOOT_AFTER=${reboot_after}"
- _echo "__RC=${_rc}${_need_reboot_str}"
- fi
-
- exit ${_rc}
-}
-
-pkg_with_pb() {
- local _event_pipe=""
-
- if [ -n "${progress_socket}" ]; then
- if [ -e "${chroot_dir}${progress_socket}" ]; then
- rm -f ${chroot_dir}${progress_socket}
- fi
-
- _event_pipe="-o EVENT_PIPE=${progress_socket}"
-
- nc -lU ${chroot_dir}${progress_socket} >> ${progress_file} &
- nc_pid=$!
-
- while [ ! -e "${chroot_dir}${progress_socket}" ]; do
- sleep 0.1
- done
- fi
-
- pkg ${_event_pipe} $@
- local _pkg_result=$?
- nc_pid=""
- return ${_pkg_result}
-}
-
-fetch_upgrade_packages() {
- local _pkgs_to_fetch=""
- if [ "${platform}" = "nanobsd" ]; then
- local _pkg=""
-
- # Check if all non-auto packages installed on 2nd partition are
- # installed on current one, if not, mark them to be deleted by
- # pkg autoremove
- for _pkg in $(pkg ${pkg_chroot} query -e '%a == 0' %n); do
- if ! pkg info -e ${_pkg}; then
- _exec "pkg ${pkg_chroot} set -A 1 ${_pkg}" "Scheduling package ${_pkg} for removal"
- fi
- done
-
- # Check if all non-auto packages installed on current partition are
- # installed on 2nd one, if not, we need to fetch them
- for _pkg in $(pkg query -e '%a == 0' %n); do
- if ! pkg ${pkg_chroot} info -e ${_pkg}; then
- _pkgs_to_fetch="${_pkgs_to_fetch}${_pkgs_to_fetch:+ }${_pkg}"
- fi
- done
-
- fi
-
- _exec "pkg_with_pb ${pkg_chroot} upgrade -F" "Downloading upgrade packages"
-
- if [ -n "${_pkgs_to_fetch}" ]; then
- _exec "pkg_with_pb ${pkg_chroot} fetch -d ${_pkgs_to_fetch}" \
- "Fetching packages not present on upgrade partition"
- fi
-}
-
-pkg_lock() {
- local _pkg="${1}"
-
- if [ -z "${_pkg}" ]; then
- return
- fi
-
- if [ "$(pkg ${pkg_chroot} query %k ${_pkg})" = "0" ]; then
- _exec "pkg ${pkg_chroot} lock ${_pkg}" "Locking package ${_pkg}" mute
- fi
-}
-
-pkg_unlock() {
- local _pkg="${1}"
-
- if [ -z "${_pkg}" ]; then
- return
- fi
-
- if [ "$(pkg ${pkg_chroot} query %k ${_pkg})" = "1" ]; then
- _exec "pkg ${pkg_chroot} unlock ${_pkg}" "Unlocking package ${_pkg}" mute
- fi
-}
-
-pkg_update() {
- local _run_update=1
-
- local _force=""
- if [ "${1}" = "force" ]; then
- _force=" -f"
- fi
-
- _exec "pkg ${pkg_chroot} update${_force}" "Updating repositories metadata"
-}
-
-pkg_upgrade() {
- # figure out which kernel variant is running
- export kernel_pkg=$(pkg query %n $(pkg info ${product}-kernel-\* | grep -v -- -debug-))
-
- if [ -z "${kernel_pkg}" ]; then
- _echo "ERROR: It was not possible to identify which ${product} kernel is installed"
- _exit 1
- fi
-
- export next_stage=$(pkg annotate -q -S ${kernel_pkg} next_stage)
-
- if [ -n "${next_stage}" -a -n "${booting}" -a -n "${boot_stage}" ]; then
- if [ ${boot_stage} != ${next_stage} ]; then
- _exit 0
- fi
- fi
-
- # If it's booting and first stage didn't run, just exit
- if [ -n "${booting}" -a -z "${next_stage}" ]; then
- _exit 0
- fi
-
- unset need_reboot
- # First upgrade stage
- if [ -z "${next_stage}" ]; then
- if [ -f "${logfile}" ]; then
- rm -f ${logfile}
- fi
-
- pkg_update
-
- if [ "$(compare_pkg_version pkg)" = "<" ]; then
- _exec "pkg upgrade pkg" "Upgrading pkg" mute
- pkg_update force
- fi
-
- local _repo_pkg="${product}-repo"
-
- # Deprecated pa
- if is_pkg_installed ${product}-repo-devel; then
- _exec "pkg ${pkg_chroot} set -A 1 ${product}-repo-devel" \
- "Scheduling package ${product}-repo-devel for removal"
- _exec "pkg install ${_repo_pkg}" "Installing ${_repo_pkg}" mute
- _exec "pkg delete ${product}-repo-devel" "Removing ${product}-repo-devel" \
- mute ignore_result
- validate_repo_conf
- pkg_update force
- fi
-
- if [ "$(compare_pkg_version ${_repo_pkg})" = "<" ]; then
- cp /usr/local/etc/pkg/repos/${product}.conf \
- /tmp/${product}.conf.copy
- _exec "pkg upgrade ${_repo_pkg}" "Upgrading ${_repo_pkg}" mute
- # If conf differs, for an update
- if ! cmp -s /usr/local/etc/pkg/repos/${product}.conf /tmp/${product}.conf.copy; then
- pkg_update force
-
- # New repo may contain newer pkg
- if [ "$(compare_pkg_version pkg)" = "<" ]; then
- _exec "pkg upgrade pkg" "Upgrading pkg" mute
- pkg_update force
- fi
- fi
- rm -f /tmp/${product}.conf.copy
- fi
-
- if [ $(pkg upgrade -nq | wc -l) -le 1 ]; then
- _echo "Your packages are up to date"
- _exit 0
- fi
-
- if [ -n "${dry_run}" ]; then
- pkg_unlock ${kernel_pkg}
- pkg ${pkg_chroot} upgrade -nq 2>&1 | tee -a ${logfile}
- pkg_lock ${kernel_pkg}
- _exit 0
- fi
-
- local _meta_pkg=$(get_meta_pkg_name)
- if [ $(pkg upgrade -r ${product}-core -nq | wc -l) -gt 1 ]; then
- if [ "${platform}" = "nanobsd" ]; then
- _echo "**** WARNING ****"
- _echo "Duplicate slice required!!"
- _echo ""
- _echo "Before starting the upgrade process, the currently mounted nanobsd partition"
- _echo "needs to be cloned to the secondary partition, where the update will happen"
- _echo ""
- _echo "After installation a reboot will be required to switch partition."
- _echo ""
- if [ -z "${yes}" ]; then
- _echo -n "Proceed with upgrade? (y/N) "
- read answer
- if [ "${answer}" != "y" ]; then
- _echo "Aborting..."
- _exit 0
- fi
- # Do not make the user have to answer again.
- yes=1
- fi
- setup_nanobsd_env
- fi
- need_reboot=1
- elif pkg upgrade -r ${product} -nq ${_meta_pkg} >/dev/null 2>&1; then
- need_reboot=1
- fi
-
- pkg_unlock ${kernel_pkg}
-
- if [ -z "${yes}" ]; then
- # Show user which packages are going to be upgraded
- pkg ${pkg_chroot} upgrade -nq 2>&1 | tee -a ${logfile}
-
- _echo ""
- if [ -n "${need_reboot}" ]; then
- _echo "**** WARNING ****"
- _echo "Reboot will be required!!"
- fi
- _echo -n "Proceed with upgrade? (y/N) "
- read answer
- if [ "${answer}" != "y" ]; then
- _echo "Aborting..."
- _exit 0
- fi
- fi
-
- # Download all upgrade packages first
- fetch_upgrade_packages
-
- if [ $(pkg ${pkg_chroot} upgrade -nq ${kernel_pkg} | wc -l) -gt 1 ]; then
- _exec "pkg ${pkg_chroot} upgrade ${kernel_pkg}" "Upgrading ${product} kernel"
- fi
-
- pkg ${pkg_chroot} annotate -q -M ${kernel_pkg} next_stage 2
- next_stage=2
-
- if [ -n "${need_reboot}" -a "${platform}" != "nanobsd" ]; then
- do_reboot
- _exit 0
- fi
- fi
-
- if [ "${next_stage}" = "2" ]; then
- pkg_lock "${pkg_prefix}*"
- unlock_additional_pkgs=1
-
- # XXX: Workaround to upgrade strongswan
- # If those symlinks are present, pkg exit because it expects them
- # to be a directory
- if [ $(pkg ${pkg_chroot} upgrade -nq strongswan | wc -l) -gt 1 ]; then
- if [ -L ${chroot_dir}/usr/local/etc/ipsec.d ]; then
- rm -f ${chroot_dir}/usr/local/etc/ipsec.d
- fi
- if [ -L ${chroot_dir}/usr/local/etc/ipsec.conf ]; then
- rm -f ${chroot_dir}/usr/local/etc/ipsec.conf
- fi
- if [ -L ${chroot_dir}/usr/local/etc/strongswan.d ]; then
- rm -f ${chroot_dir}/usr/local/etc/strongswan.d
- fi
- if [ -L ${chroot_dir}/usr/local/etc/strongswan.conf ]; then
- rm -f ${chroot_dir}/usr/local/etc/strongswan.conf
- fi
- fi
-
- if [ $(pkg ${pkg_chroot} upgrade -nq | wc -l) -gt 1 ]; then
- delete_annotation=1
- _exec "pkg ${pkg_chroot} upgrade" "Upgrading necessary packages"
- delete_annotation=""
- fi
-
- pkg ${pkg_chroot} annotate -q -M ${kernel_pkg} next_stage 3
- next_stage=3
-
- pkg_unlock "${pkg_prefix}*"
- unlock_additional_pkgs=""
-
- if [ -n "${need_reboot}" -a "${platform}" = "nanobsd" ]; then
- switch_active_nanobsd_partition
- do_reboot
- _exit 0
- fi
-
- if [ -n "${booting}" ]; then
- _exit 0
- fi
- fi
-
- if [ "${next_stage}" = "3" ]; then
- if [ $(pkg upgrade -nq | wc -l) -gt 1 ]; then
- delete_annotation=1
- _exec "pkg ${pkg_chroot} upgrade" "Upgrading necessary packages"
- delete_annotation=""
- fi
-
- pkg ${pkg_chroot} annotate -q -D ${kernel_pkg} next_stage
-
- # cleanup caches
- _exec "pkg ${pkg_chroot} autoremove" "Removing unnecessary packages" mute ignore_result
- _exec "pkg ${pkg_chroot} clean" "Cleanup pkg cache" mute ignore_result
- fi
-
- gitsync=$(/usr/local/sbin/read_xml_tag.sh boolean system/gitsync/synconupgrade)
- if [ "${gitsync}" = "true" ]; then
- repository_url=$(/usr/local/sbin/read_xml_tag.sh string system/gitsync/repositoryurl)
- branch=$(/usr/local/sbin/read_xml_tag.sh string system/gitsync/branch)
-
- # Repository URL is not mandatory
- if [ -n "${branch}" ]; then
- _exec "/usr/local/sbin/pfSsh.php playback gitsync \
- ${repositoryurl} ${branch} --upgrading" \
- "Running gitsync" mute ignore_result
- fi
- fi
-}
-
-get_meta_pkg_name() {
- # figure out main meta package name
- if is_pkg_installed ${product}-vmware; then
- echo "${product}-vmware"
- elif is_pkg_installed ${product}; then
- echo "${product}"
- else
- _echo "ERROR: It was not possible to identify which ${product} meta package is installed"
- _exit 1
- fi
-}
-
-check_upgrade() {
- local _meta_pkg=$(get_meta_pkg_name)
-
- pkg_update
-
- if [ "$(compare_pkg_version ${_meta_pkg})" = "<" ]; then
- local _new_version=$(pkg rquery %v ${_meta_pkg})
- _echo "${_new_version} version of ${product} is available"
- _exit 2
- else
- for _pkg in $(pkg query -e "%n ~ ${product}-*" %n); do
- # Ignore additional packages
- if echo "${_pkg}" | grep -q "^${pkg_prefix}"; then
- continue
- fi
- if [ "$(compare_pkg_version ${_pkg})" = "<" ]; then
- local _new_version=$(pkg rquery %v ${_pkg})
- _echo "${_new_version} version of ${_pkg} is available"
- _exit 2
- fi
- done
- fi
-
- _echo "Your system is up to date"
- _exit 0
-}
-
-setup_nanobsd_env() {
- if [ "${platform}" != "nanobsd" ]; then
- return;
- fi
-
- chroot_dir=/tmp/nanobsd_upgrade
- mkdir -p ${chroot_dir} 2>/dev/null
- local _cur_partition=$(mount -p / | cut -f1)
- local _update_partition=$(echo ${_cur_partition} | sed -e 's,0$,2,; s,1$,0,; s,2$,1,')
-
- if [ ! -e "${_update_partition}" ]; then
- _echo "Secondary partition (${_update_partition}), used for upgrade not found"
- _exit 1
- fi
-
- # Remove /dev
- _update_partition=$(echo ${_update_partition} | sed 's,^/dev/,,')
- local _update_slice=$(glabel status -s | awk "\$1 == \"${_update_partition}\" { print \$3 }")
-
- if [ -z "${_update_slice}" -o ! -e "/dev/${_update_slice}" ]; then
- _echo "Secondary slice (${_update_slice}), use_update_sliced for upgrade not found"
- _exit 1
- fi
-
- _update_slice="/dev/${_update_slice}"
-
- # Clone slice using same logic from nanobsd_clone_slice()
- sysctl kern.geom.debugflags=16 >/dev/null 2>&1
- _exec "dd if=/dev/zero of=${_update_slice} bs=1m count=1" "Cleaning secondary partition" mute
- _exec "dd if=${_cur_partition} of=${_update_slice} bs=64k" "Duplicating current slice" mute
- _exec "tunefs -L ${_update_partition##*/} ${_update_slice}" "Restoring slice label" mute
- sysctl kern.geom.debugflags=0 >/dev/null 2>&1
-
- _exec "/sbin/fsck -y -t ufs /dev/${_update_partition}" "Testing duplicated partition integrity" mute
- _exec "mount /dev/${_update_partition} ${chroot_dir}" "Mounting second partition to run upgrade" mute
-
- # Make sure resolv.conf is present, otherwise upgrade may fail (bug #6557)
- local _resolv_conf=$(readlink -f /etc/resolv.conf)
- _exec "cp -f ${_resolv_conf} ${chroot_dir}/etc/resolv.conf" \
- "Copying resolv.conf to upgrade partition" mute ignore_result
-
- sed -i '' -e "s,^${_cur_partition},/dev/${_update_partition}," \
- ${chroot_dir}/etc/fstab
-
- pkg_chroot="-c ${chroot_dir}"
-}
-
-switch_active_nanobsd_partition() {
- if [ "${platform}" != "nanobsd" ]; then
- return;
- fi
-
- local _cur_partition=$(mount -p / | cut -f1 | sed 's,^/dev/,,')
- local _disk=$(glabel status -s | \
- awk "\$1 == \"${_cur_partition}\" { print substr(\$3, 0, length(\$3)-3)}")
- local _i=$(echo ${_cur_partition} | cut -c ${#_cur_partition})
-
- if ! echo "${_i}" | egrep -q '^[0-9]$'; then
- _echo "Invalid partition label ${_cur_partition}"
- _exit 1
- fi
-
- # pfsense0 == part 1 / pfsense1 == part 2
- if [ ${_i} -eq 0 ]; then
- _i=2
- else
- _i=1
- fi
-
- _exec "gpart set -a active -i ${_i} ${_disk}" "Setting secondary partition as active" mute
-}
-
-is_pkg_installed() {
- local _pkg_name="${1}"
- shift
- local _pkg_chroot="$@"
-
- pkg ${_pkg_chroot} info -e ${_pkg_name}
- return $?
-}
-
-compare_pkg_version() {
- local _pkg_name="${1}"
-
- if ! is_pkg_installed ${_pkg_name} ${pkg_chroot}; then
- echo '!'
- return 1
- fi
-
- local _lver=$(pkg ${pkg_chroot} query %v ${_pkg_name})
-
- if [ -z "${_lver}" ]; then
- _echo "ERROR: It was not possible to determine ${_pkg_name} local version"
- _exit 1
- fi
-
- local _rver=$(pkg ${pkg_chroot} rquery %v ${_pkg_name})
-
- if [ -z "${_rver}" ]; then
- _echo "ERROR: It was not possible to determine ${_pkg_name} remote version"
- _exit 1
- fi
-
- local _version=$(pkg version -t ${_lver} ${_rver})
-
- if [ $? -ne 0 ]; then
- _echo "ERROR: Error comparing ${_pkg_name} local and remote versions"
- _exit 1
- fi
-
- echo ${_version}
- return 0
-}
-
-pkg_install() {
- local _pkg_name="${1}"
-
- local _force=""
- if [ -n "${2}" ]; then
- _force="-f"
- fi
-
- if [ -z "${_pkg_name}" ]; then
- _echo "ERROR: Blank package name"
- _exit 1
- fi
-
- if is_pkg_installed ${_pkg_name}; then
- local _cversion=$(compare_pkg_version ${_pkg_name})
-
- if [ -z "${_force}" ]; then
- if [ "${_cversion}" = "=" ]; then
- _echo "Package ${_pkg_name} is up to date"
- _exit 0
- elif [ "${_cversion}" = ">" ]; then
- _echo "Installed ${_pkg_name} version is newer than remote"
- _exit 0
- fi
- fi
- local _cmd="upgrade ${_force}"
- local _msg="Upgrading"
- else
- local _cmd="install"
- local _msg="Installing"
- fi
-
- _exec "pkg_with_pb ${_cmd}${dry_run:+ }${dry_run} ${_pkg_name}" "${_msg} ${_pkg_name}"
- _exec "pkg clean" "Cleaning up cache" mute ignore_result
-}
-
-# Reinstall every pfSense-pkg-* package
-pkg_reinstall_all() {
- for _pkg in $(pkg query -e '%a == 0' %n); do
- case ${_pkg} in "${pkg_prefix}"* )
- _echo "Reinstalling ${_pkg}"
- pkg_install ${_pkg} 1
- ;;
- esac
- done
-}
-
-pkg_delete() {
- local _pkg_name="${1}"
-
- if [ -z "${_pkg_name}" ]; then
- _echo "ERROR: Blank package name"
- _exit 1
- fi
-
- if ! is_pkg_installed ${_pkg_name}; then
- _echo "ERROR: Package ${_pkg_name} is not installed"
- _exit 1
- fi
-
- _exec "pkg_with_pb delete${dry_run:+ }${dry_run} ${_pkg_name}" "Removing ${_pkg_name}"
- _exec "pkg autoremove" "Removing stale packages" mute ignore_result
-}
-
-# Delete every pfSense-pkg-* package
-pkg_delete_all() {
- for _pkg in $(pkg query -e '%a == 0' %n); do
- case ${_pkg} in "${pkg_prefix}"* )
- _echo "Removing ${_pkg}"
- pkg_delete ${_pkg}
- ;;
- esac
- done
-}
-
-do_reboot() {
- if [ -z "${dont_reboot}" ]; then
- _echo "Upgrade is complete. Rebooting in ${reboot_after} seconds."
- echo "Upgrade is complete. Rebooting in ${reboot_after} seconds." | wall
- /etc/rc.notify_message -e -g -m "Upgrade is complete. Rebooting in ${reboot_after} seconds." \
- >/dev/null 2>&1
- (sleep ${reboot_after} && /etc/rc.reboot) &
- else
- _echo "Upgrade is complete."
- echo "Upgrade is complete." | wall
- /etc/rc.notify_message -e -g -m "Upgrade is complete." >/dev/null 2>&1
- fi
-}
-
-validate_repo_conf() {
- # Make sure to use default repo conf when it doesn't exist
- pkg_repo_conf="/usr/local/etc/pkg/repos/${product}.conf"
- default_pkg_repo_conf_path="/usr/local/share/${product}/pkg/repos/${product}-repo.conf"
-
- pkg_repo_conf_path=$(/usr/local/sbin/read_xml_tag.sh string system/pkg_repo_conf_path)
-
- if [ -z "${pkg_repo_conf_path}" -o ! -f "${pkg_repo_conf_path}" ]; then
- pkg_repo_conf_path=${default_pkg_repo_conf_path}
- fi
-
- if [ -f "${pkg_repo_conf_path}" ]; then
- if [ -e "${pkg_repo_conf}" -a ! -L "${pkg_repo_conf}" ]; then
- rm -f ${pkg_repo_conf}
- ln -sf ${pkg_repo_conf_path} ${pkg_repo_conf}
- fi
-
- if [ "$(readlink ${pkg_repo_conf})" != "${pkg_repo_conf_path}" ]; then
- mkdir -p /usr/local/etc/pkg/repos
- ln -sf ${pkg_repo_conf_path} ${pkg_repo_conf}
- fi
- fi
-}
-
-export LANG=C
-
-pid_file="/var/run/$(basename $0).pid"
-logfile="/cf/conf/upgrade_log.txt"
-stdout='/dev/null'
-
-# Setup proxy settings
-HTTP_PROXY=$(/usr/local/sbin/read_xml_tag.sh string system/proxyurl)
-if [ "${HTTP_PROXY}" != "" ]; then
- HTTP_PROXY_PORT=$(/usr/local/sbin/read_xml_tag.sh string system/proxyport)
- if [ "${HTTP_PROXY_PORT}" != "" ]; then
- HTTP_PROXY="${HTTP_PROXY}:${HTTP_PROXY_PORT}"
- fi
- export HTTP_PROXY
-fi
-
-# pkg should not ask for confirmations
-export ASSUME_ALWAYS_YES=true
-export FETCH_TIMEOUT=5
-export FETCH_RETRY=2
-
-export product=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var product_name pfSense)
-export pkg_prefix=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var pkg_prefix pfSense-pkg-)
-export platform=$(cat /etc/platform)
-
-USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar)
-if [ "${platform}" = "nanobsd" ] || [ "${USE_MFS_TMPVAR}" = "true" ]; then
- export PKG_DBDIR=/root/var/db/pkg
- export PKG_CACHEDIR=/root/var/cache/pkg
-fi
-
-product_version=$(cat /etc/version)
-do_not_send_host_uuid=$(/usr/local/sbin/read_xml_tag.sh boolean system/do_not_send_host_uuid)
-if [ "${do_not_send_host_uuid}" != "true" ]; then
- hostuuid=$(sysctl kern.hostuuid)
- export HTTP_USER_AGENT="${product}/${product_version}:${hostuuid}"
-else
- export HTTP_USER_AGENT="${product}/${product_version}"
-fi
-
-validate_repo_conf
-
-# Flags used in _exit
-export delete_annotation=""
-export unlock_additional_pkgs=""
-
-# Upgrade process on nanobsd will happen in chroot
-export pkg_chroot=""
-export chroot_dir=""
-
-# Save nc_pid to be able to kill it
-export nc_pid=""
-
-# Reboot after 10 seconds
-export reboot_after=10
-
-unset dry_run
-unset dont_reboot
-unset booting
-unset boot_stage
-unset force
-unset yes
-unset progress_file
-unset progress_socket
-unset action
-unset action_pkg
-unset force_ipv4
-unset force_ipv6
-while getopts 46b:cdfi:hp:l:nr:Ruy opt; do
- case ${opt} in
- 4)
- if [ -n "${force_ipv6}" ]; then
- usage
- _exit 1
- fi
- force_ipv4=1
- ;;
- 6)
- if [ -n "${force_ipv4}" ]; then
- usage
- _exit 1
- fi
- force_ipv6=1
- ;;
- b)
- booting=1
- boot_stage="${OPTARG}"
- ;;
- c)
- action="check"
- ;;
- d)
- stdout=''
- ;;
- f)
- force=1
- ;;
- i)
- if [ -n "${action}" ]; then
- usage
- _exit 1
- fi
- action="install"
- action_pkg="${OPTARG}"
- ;;
- h)
- usage
- _exit 0
- ;;
- l)
- logfile="${OPTARG}"
- if [ -z "${logfile}" ]; then
- usage
- _exit 1
- fi
- ;;
- n)
- dry_run="-n"
- ;;
- p)
- progress_socket="${OPTARG}"
- if [ -z "${progress_socket}" ]; then
- usage
- _exit 1
- fi
- ;;
- r)
- if [ -n "${action}" ]; then
- usage
- _exit 1
- fi
- action="delete"
- action_pkg="${OPTARG}"
- ;;
- R)
- dont_reboot=1
- ;;
- u)
- if [ -n "${action}" ]; then
- usage
- _exit 1
- fi
- action="update"
- ;;
- y)
- yes=1
- ;;
- *)
- usage
- _exit 1
- ;;
- esac
-done
-
-if [ -n "${force_ipv4}" ]; then
- export IP_VERSION="4"
-elif [ -n "${force_ipv6}" ]; then
- export IP_VERSION="6"
-fi
-
-# Set default action when no parameter is set
-: ${action:="upgrade"}
-
-if pgrep -qF ${pid_file} >/dev/null 2>&1; then
- echo "Another instance is already running... Aborting!"
- exit 1
-fi
-
-if [ -z "${booting}" -o "${boot_stage}" != "2" ]; then
- /usr/local/bin/php /etc/rc.conf_mount_rw
-fi
-
-if [ -n "${booting}" ]; then
- export REPO_AUTOUPDATE=false
-fi
-
-echo $$ > ${pid_file}
-
-trap _exit 1 2 15 EXIT
-
-if [ "${action}" != "upgrade" -a -f "${logfile}" ]; then
- rm -f ${logfile}
-fi
-
-progress_file=${logfile%.*}.json
-
-if [ -e "${progress_file}" ]; then
- rm -f ${progress_file}
-fi
-
-case "${action}" in
- check)
- check_upgrade
- ;;
- upgrade)
- pkg_upgrade
- ;;
- update)
- pkg_update force
- ;;
- install)
- if [ ${action_pkg} == "ALL_PACKAGES" ] && [ -n ${force} ]; then
- pkg_reinstall_all
- else
- pkg_install ${action_pkg} ${force}
- fi
- ;;
- delete)
- if [ ${action_pkg} == "ALL_PACKAGES" ] && [ -n ${force} ]; then
- pkg_delete_all
- else
- pkg_delete ${action_pkg}
- fi
- ;;
- *)
- _echo "ERROR: Invalid action!"
- _exit 1
-esac
-
-_exit 0
diff --git a/src/usr/local/sbin/pfSsh.php b/src/usr/local/sbin/pfSsh.php
index 50db82d..c91ab7e 100755
--- a/src/usr/local/sbin/pfSsh.php
+++ b/src/usr/local/sbin/pfSsh.php
@@ -5,7 +5,7 @@
* pfSsh
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -269,7 +269,6 @@ while ($shell_active == true) {
fwrite($recording_fd, $playbackbuffer);
fclose($recording_fd);
$command = "";
- conf_mount_ro();
echo "Recording stopped.\n";
$recording = false;
} else {
@@ -293,7 +292,6 @@ while ($shell_active == true) {
$command = "";
} else {
/* time to record */
- conf_mount_rw();
safe_mkdir("/etc/phpshellsessions");
$recording_fn = basename($command_split[1]);
$recording_fd = fopen("/etc/phpshellsessions/{$recording_fn}","w");
diff --git a/src/usr/local/sbin/ppp-ipv6 b/src/usr/local/sbin/ppp-ipv6
index 8ed731e..53d9bcc 100755
--- a/src/usr/local/sbin/ppp-ipv6
+++ b/src/usr/local/sbin/ppp-ipv6
@@ -4,7 +4,7 @@
* ppp-ipv6
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/ppp-linkdown b/src/usr/local/sbin/ppp-linkdown
index 210a3ce..c4e88d0 100755
--- a/src/usr/local/sbin/ppp-linkdown
+++ b/src/usr/local/sbin/ppp-linkdown
@@ -3,7 +3,7 @@
# ppp-linkdown
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/ppp-linkup b/src/usr/local/sbin/ppp-linkup
index 8abb161..7b41e0a 100755
--- a/src/usr/local/sbin/ppp-linkup
+++ b/src/usr/local/sbin/ppp-linkup
@@ -3,7 +3,7 @@
# ppp-linkup
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -50,12 +50,14 @@ if [ "${PROTOCOL}" == "inet" ]; then
if echo "${DNS1_RAW}" | grep -q dns1; then
DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'`
echo "${DNS1}" >> /var/etc/nameserver_${IF}
- route change "${DNS1}" ${REMOTE_IP}
+ route change "${DNS1}" ${REMOTE_IP} \
+ || route add "${DNS1}" ${REMOTE_IP}
fi
if echo "${DNS2_RAW}" | grep -q dns2; then
DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'`
echo "${DNS2}" >> /var/etc/nameserver_${IF}
- route change "${DNS2}" ${REMOTE_IP}
+ route change "${DNS2}" ${REMOTE_IP} \
+ || route add "${DNS2}" ${REMOTE_IP}
fi
pfSctl -c 'service reload dns'
sleep 1
@@ -75,12 +77,14 @@ elif [ "${PROTOCOL}" == "inet6" ]; then
if echo "${DNS1_RAW}" | grep -q dns1; then
DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'`
echo "${DNS1}" >> /var/etc/nameserver_v6${IF}
- route change -inet6 "${DNS1}" ${REMOTE_IP}
+ route change -inet6 "${DNS1}" ${REMOTE_IP} \
+ || route add -inet6 "${DNS1}" ${REMOTE_IP}
fi
if echo "${DNS2_RAW}" | grep -q dns2; then
DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'`
echo "${DNS2}" >> /var/etc/nameserver_v6${IF}
- route change -inet6 "${DNS2}" ${REMOTE_IP}
+ route change -inet6 "${DNS2}" ${REMOTE_IP} \
+ || route add -inet6 "${DNS2}" ${REMOTE_IP}
fi
pfSctl -c 'service reload dns'
sleep 1
diff --git a/src/usr/local/sbin/ppp-log-uptime.sh b/src/usr/local/sbin/ppp-log-uptime.sh
index 086b4e3..d853675 100755
--- a/src/usr/local/sbin/ppp-log-uptime.sh
+++ b/src/usr/local/sbin/ppp-log-uptime.sh
@@ -3,7 +3,7 @@
# ppp-log-uptime.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,6 +19,4 @@
# limitations under the License.
#write the uptime in seconds to the persistent log in /conf/
-/etc/rc.conf_mount_rw
/bin/echo `date -j +%Y.%m.%d-%H:%M:%S` $1 >> /conf/$2.log
-/etc/rc.conf_mount_ro
diff --git a/src/usr/local/sbin/ppp-uptime.sh b/src/usr/local/sbin/ppp-uptime.sh
index 81df532..9c90dbf 100755
--- a/src/usr/local/sbin/ppp-uptime.sh
+++ b/src/usr/local/sbin/ppp-uptime.sh
@@ -3,7 +3,7 @@
# ppp-uptime.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/prefixes.php b/src/usr/local/sbin/prefixes.php
index 31b3d8c..746de86 100644
--- a/src/usr/local/sbin/prefixes.php
+++ b/src/usr/local/sbin/prefixes.php
@@ -3,7 +3,7 @@
* prefixes.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -98,7 +98,8 @@ foreach ($duid_arr as $entry) {
// echo "add routes\n";
if (count($routes) > 0) {
foreach ($routes as $address => $prefix) {
- echo "/sbin/route change -inet6 {$prefix} {$address}\n";
+ echo "/sbin/route change -inet6 {$prefix} {$address} " .
+ "|| /sbin/route add -inet6 {$prefix} {$address}\n";
}
}
diff --git a/src/usr/local/sbin/read_global_var b/src/usr/local/sbin/read_global_var
index 827e3e9..2c5d23f 100755
--- a/src/usr/local/sbin/read_global_var
+++ b/src/usr/local/sbin/read_global_var
@@ -4,7 +4,7 @@
* read_global_var
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/read_xml_tag.sh b/src/usr/local/sbin/read_xml_tag.sh
index 86e8ae5..fdb75a7 100755
--- a/src/usr/local/sbin/read_xml_tag.sh
+++ b/src/usr/local/sbin/read_xml_tag.sh
@@ -3,7 +3,7 @@
# read_xml_tag.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/show_filter_reload_status.php b/src/usr/local/sbin/show_filter_reload_status.php
index a9f50a2..1d28628 100755
--- a/src/usr/local/sbin/show_filter_reload_status.php
+++ b/src/usr/local/sbin/show_filter_reload_status.php
@@ -4,7 +4,7 @@
* show_filter_reload_status.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/vpn-linkdown b/src/usr/local/sbin/vpn-linkdown
index bb53f98..dc6df9c 100755
--- a/src/usr/local/sbin/vpn-linkdown
+++ b/src/usr/local/sbin/vpn-linkdown
@@ -3,7 +3,7 @@
# vpn-linkdown
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/sbin/vpn-linkup b/src/usr/local/sbin/vpn-linkup
index f4eb9a4..91d77cf 100755
--- a/src/usr/local/sbin/vpn-linkup
+++ b/src/usr/local/sbin/vpn-linkup
@@ -3,7 +3,7 @@
# vpn-linkup
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +20,3 @@
# record login
/usr/bin/logger -p local3.info "login,$1,$4,$5"
-
-case `/bin/echo $1 | /usr/bin/cut -c1-4` in
- pptp)
- /sbin/ifconfig $1 group pptp
- ;;
- poes)
- /sbin/ifconfig $1 group pppoe
- ;;
- l2tp)
- /sbin/ifconfig $1 group l2tp
- ;;
-esac
diff --git a/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
index 15d1d6d..be6140d 100644
--- a/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
+++ b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot
@@ -3,9 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#: src/usr/local/www/diag_traceroute.php:149
-#: src/usr/local/www/diag_traceroute.php:156
-#: src/usr/local/www/interfaces.php:3093 src/usr/local/www/interfaces.php:3103
+#: src/usr/local/www/diag_traceroute.php:155
+#: src/usr/local/www/diag_traceroute.php:162
+#: src/usr/local/www/interfaces.php:3101 src/usr/local/www/interfaces.php:3111
#: src/usr/local/www/system_gateway_groups_edit.php:217
#: src/usr/local/www/system_gateway_groups_edit.php:218
#: src/usr/local/www/system_gateway_groups_edit.php:219
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-07-15 16:42-0300\n"
+"POT-Creation-Date: 2016-10-12 16:21-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -44,143 +44,143 @@ msgstr ""
msgid "Redirecting to the dashboard..."
msgstr ""
-#: src/etc/inc/auth.inc:398 src/etc/inc/auth.inc:422 src/etc/inc/auth.inc:499
-#: src/etc/inc/auth.inc:540 src/etc/inc/auth.inc:610 src/etc/inc/auth.inc:768
-#: src/etc/inc/auth.inc:781
+#: src/etc/inc/auth.inc:397 src/etc/inc/auth.inc:421 src/etc/inc/auth.inc:496
+#: src/etc/inc/auth.inc:537 src/etc/inc/auth.inc:606 src/etc/inc/auth.inc:764
+#: src/etc/inc/auth.inc:777
#, php-format
msgid "Running: %s"
msgstr ""
-#: src/etc/inc/auth.inc:822 src/etc/inc/auth.inc:903 src/etc/inc/auth.inc:983
-#: src/etc/inc/auth.inc:1271
+#: src/etc/inc/auth.inc:818 src/etc/inc/auth.inc:899 src/etc/inc/auth.inc:979
+#: src/etc/inc/auth.inc:1267
#, php-format
msgid "ERROR! Could not connect to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:840
+#: src/etc/inc/auth.inc:836
#, php-format
msgid "LDAP: Could not lookup CA by reference for host %s."
msgstr ""
-#: src/etc/inc/auth.inc:969
+#: src/etc/inc/auth.inc:965
msgid ""
"ERROR! ldap_get_user_ous() backed selected with no LDAP authentication "
"server defined."
msgstr ""
-#: src/etc/inc/auth.inc:999
+#: src/etc/inc/auth.inc:995
#, php-format
msgid "ERROR! ldap_get_user_ous() could not bind anonymously to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1004
+#: src/etc/inc/auth.inc:1000
#, php-format
msgid "ERROR! ldap_get_user_ous() could not bind to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1120
+#: src/etc/inc/auth.inc:1116
#, php-format
msgid "ERROR! ldap_get_groups() Could not connect to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1135
+#: src/etc/inc/auth.inc:1131
#, php-format
msgid "ERROR! ldap_get_groups() could not bind anonymously to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1140
+#: src/etc/inc/auth.inc:1136
#, php-format
msgid "ERROR! ldap_get_groups() could not bind to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1246
+#: src/etc/inc/auth.inc:1242
msgid ""
"ERROR! ldap_backed() called with no LDAP authentication server defined. "
"Defaulting to local user database. Visit System -> User Manager."
msgstr ""
-#: src/etc/inc/auth.inc:1249
+#: src/etc/inc/auth.inc:1245
msgid "ERROR! ldap_backed() called with no LDAP authentication server defined."
msgstr ""
-#: src/etc/inc/auth.inc:1289
+#: src/etc/inc/auth.inc:1285
#, php-format
msgid "ERROR! Could not bind to server %s."
msgstr ""
-#: src/etc/inc/auth.inc:1307
+#: src/etc/inc/auth.inc:1303
#, php-format
msgid "Now Searching for %s in directory."
msgstr ""
-#: src/etc/inc/auth.inc:1316
+#: src/etc/inc/auth.inc:1312
#, php-format
msgid "Now Searching in server %1$s, container %2$s with filter %3$s."
msgstr ""
-#: src/etc/inc/auth.inc:1330
+#: src/etc/inc/auth.inc:1326
#, php-format
msgid "Search resulted in error: %s"
msgstr ""
-#: src/etc/inc/auth.inc:1346
+#: src/etc/inc/auth.inc:1342
msgid "ERROR! Either LDAP search failed, or multiple users were found."
msgstr ""
-#: src/etc/inc/auth.inc:1353
+#: src/etc/inc/auth.inc:1349
#, php-format
msgid "ERROR! Could not login to server %1$s as user %2$s: %3$s"
msgstr ""
-#: src/etc/inc/auth.inc:1360
+#: src/etc/inc/auth.inc:1356
#, php-format
msgid "Logged in successfully as %1$s via LDAP server %2$s with DN = %3$s."
msgstr ""
-#: src/etc/inc/auth.inc:1396
+#: src/etc/inc/auth.inc:1392
#, php-format
msgid "RADIUS start: %s<br />\n"
msgstr ""
-#: src/etc/inc/auth.inc:1408
+#: src/etc/inc/auth.inc:1404
#, php-format
msgid "RADIUS send failed: %s<br />\n"
msgstr ""
-#: src/etc/inc/auth.inc:1416
+#: src/etc/inc/auth.inc:1412
#, php-format
msgid "RADIUS Auth succeeded"
msgstr ""
-#: src/etc/inc/auth.inc:1422
+#: src/etc/inc/auth.inc:1418
#, php-format
msgid "RADIUS Auth rejected"
msgstr ""
-#: src/etc/inc/auth.inc:1537
-#, php-format
-msgid "Widget configuration has been changed for user %s."
+#: src/etc/inc/auth.inc:1535
+msgid "Widget configuration has been changed."
msgstr ""
#: src/etc/inc/auth.inc:1540
-msgid "Widget configuration has been changed."
+#, php-format
+msgid "(User %s)"
msgstr ""
-#: src/etc/inc/auth.inc:1555 src/etc/inc/auth.inc:1571
+#: src/etc/inc/auth.inc:1558 src/etc/inc/auth.inc:1574
msgid "Local Database"
msgstr ""
-#: src/etc/inc/auth.inc:1674
+#: src/etc/inc/auth.inc:1677
#, php-format
msgid "Successful login for user '%1$s' from: %2$s"
msgstr ""
-#: src/etc/inc/auth.inc:1732
+#: src/etc/inc/auth.inc:1735
#, php-format
msgid "Session timed out for user '%1$s' from: %2$s"
msgstr ""
-#: src/etc/inc/auth.inc:1734
+#: src/etc/inc/auth.inc:1737
#, php-format
msgid "User logged out for user '%1$s' from: %2$s"
msgstr ""
@@ -235,22 +235,22 @@ msgid "The browser must support cookies to login."
msgstr ""
#: src/etc/inc/authgui.inc:262 src/usr/local/www/diag_authentication.php:98
-#: src/usr/local/www/interfaces.php:2474 src/usr/local/www/interfaces.php:2541
-#: src/usr/local/www/interfaces.php:2666
-#: src/usr/local/www/interfaces_ppps_edit.php:206
-#: src/usr/local/www/interfaces_ppps_edit.php:209
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
-#: src/usr/local/www/interfaces_ppps_edit.php:601
+#: src/usr/local/www/interfaces.php:2482 src/usr/local/www/interfaces.php:2549
+#: src/usr/local/www/interfaces.php:2674
+#: src/usr/local/www/interfaces_ppps_edit.php:210
+#: src/usr/local/www/interfaces_ppps_edit.php:213
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
+#: src/usr/local/www/interfaces_ppps_edit.php:621
#: src/usr/local/www/services_dyndns_edit.php:98
#: src/usr/local/www/services_dyndns_edit.php:347
#: src/usr/local/www/services_pppoe_edit.php:506
#: src/usr/local/www/status_captiveportal.php:156
-#: src/usr/local/www/system_usermanager.php:180
-#: src/usr/local/www/system_usermanager.php:185
-#: src/usr/local/www/system_usermanager.php:190
-#: src/usr/local/www/system_usermanager.php:570
-#: src/usr/local/www/system_usermanager.php:697
+#: src/usr/local/www/system_usermanager.php:176
+#: src/usr/local/www/system_usermanager.php:181
+#: src/usr/local/www/system_usermanager.php:186
+#: src/usr/local/www/system_usermanager.php:564
+#: src/usr/local/www/system_usermanager.php:691
#: src/usr/local/www/vpn_l2tp_users.php:95
#: src/usr/local/www/vpn_l2tp_users_edit.php:74
#: src/usr/local/www/vpn_l2tp_users_edit.php:77
@@ -266,24 +266,24 @@ msgid "Enter your username"
msgstr ""
#: src/etc/inc/authgui.inc:269 src/usr/local/www/diag_authentication.php:106
-#: src/usr/local/www/diag_backup.php:625 src/usr/local/www/diag_backup.php:672
-#: src/usr/local/www/interfaces.php:2481 src/usr/local/www/interfaces.php:2548
-#: src/usr/local/www/interfaces.php:2673
-#: src/usr/local/www/interfaces_ppps_edit.php:206
-#: src/usr/local/www/interfaces_ppps_edit.php:209
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
-#: src/usr/local/www/interfaces_ppps_edit.php:608
+#: src/usr/local/www/diag_backup.php:580 src/usr/local/www/diag_backup.php:627
+#: src/usr/local/www/interfaces.php:2489 src/usr/local/www/interfaces.php:2556
+#: src/usr/local/www/interfaces.php:2681
+#: src/usr/local/www/interfaces_ppps_edit.php:210
+#: src/usr/local/www/interfaces_ppps_edit.php:213
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
+#: src/usr/local/www/interfaces_ppps_edit.php:628
#: src/usr/local/www/services_checkip_edit.php:151
#: src/usr/local/www/services_dyndns_edit.php:96
#: src/usr/local/www/services_dyndns_edit.php:357
#: src/usr/local/www/services_pppoe_edit.php:513
-#: src/usr/local/www/system_advanced_notifications.php:239
+#: src/usr/local/www/system_advanced_notifications.php:246
#: src/usr/local/www/system_authservers.php:645
-#: src/usr/local/www/system_usermanager.php:186
-#: src/usr/local/www/system_usermanager.php:191
-#: src/usr/local/www/system_usermanager.php:713
-#: src/usr/local/www/system_usermanager.php:716
+#: src/usr/local/www/system_usermanager.php:182
+#: src/usr/local/www/system_usermanager.php:187
+#: src/usr/local/www/system_usermanager.php:707
+#: src/usr/local/www/system_usermanager.php:710
#: src/usr/local/www/system_usermanager_passwordmg.php:40
#: src/usr/local/www/system_usermanager_passwordmg.php:101
#: src/usr/local/www/vpn_l2tp_users_edit.php:77
@@ -335,7 +335,7 @@ msgstr ""
msgid "Click the button below to disconnect"
msgstr ""
-#: src/etc/inc/captiveportal.inc:1557
+#: src/etc/inc/captiveportal.inc:1556
#, php-format
msgid "Error: cannot open '%s' in captiveportal_write_elements()%s"
msgstr ""
@@ -358,15 +358,15 @@ msgstr ""
msgid "Press ENTER to continue."
msgstr ""
-#: src/etc/inc/config.console.inc:66 src/etc/inc/config.console.inc:512
+#: src/etc/inc/config.console.inc:61 src/etc/inc/config.console.inc:436
msgid "No interfaces found!"
msgstr ""
-#: src/etc/inc/config.console.inc:91
+#: src/etc/inc/config.console.inc:79
msgid "Do VLANs need to be set up first?"
msgstr ""
-#: src/etc/inc/config.console.inc:94
+#: src/etc/inc/config.console.inc:82
msgid ""
"If VLANs will not be used, or only for optional interfaces, it is typical "
"to\n"
@@ -374,166 +374,154 @@ msgid ""
"required."
msgstr ""
-#: src/etc/inc/config.console.inc:97
+#: src/etc/inc/config.console.inc:85
msgid "Should VLANs be set up now [y|n]?"
msgstr ""
-#: src/etc/inc/config.console.inc:171
+#: src/etc/inc/config.console.inc:96
msgid "VLAN interfaces:"
msgstr ""
-#: src/etc/inc/config.console.inc:191
+#: src/etc/inc/config.console.inc:116
msgid "Enter the WAN interface name or 'a' for auto-detection"
msgstr ""
-#: src/etc/inc/config.console.inc:192
+#: src/etc/inc/config.console.inc:117
#, php-format
msgid "%s(%s or a): "
msgstr ""
-#: src/etc/inc/config.console.inc:200 src/etc/inc/config.console.inc:226
-#: src/etc/inc/config.console.inc:262 src/etc/inc/config.console.inc:535
+#: src/etc/inc/config.console.inc:125 src/etc/inc/config.console.inc:151
+#: src/etc/inc/config.console.inc:187 src/etc/inc/config.console.inc:459
#, php-format
msgid "%sInvalid interface name '%s'%s"
msgstr ""
-#: src/etc/inc/config.console.inc:208
+#: src/etc/inc/config.console.inc:133
#, php-format
msgid ""
"%sEnter the LAN interface name or 'a' for auto-detection %sNOTE: this "
"enables full Firewalling/NAT mode.%s(%s a or nothing if finished):%s"
msgstr ""
-#: src/etc/inc/config.console.inc:245
+#: src/etc/inc/config.console.inc:170
#, php-format
msgid "%sOptional interface %s description found: %s"
msgstr ""
-#: src/etc/inc/config.console.inc:248
+#: src/etc/inc/config.console.inc:173
#, php-format
msgid ""
"%sEnter the Optional %s interface name or 'a' for auto-detection%s(%s a or "
"nothing if finished):%s"
msgstr ""
-#: src/etc/inc/config.console.inc:255
+#: src/etc/inc/config.console.inc:180
msgid "Optional"
msgstr ""
-#: src/etc/inc/config.console.inc:291
+#: src/etc/inc/config.console.inc:216
msgid "The interfaces will be assigned as follows:"
msgstr ""
-#: src/etc/inc/config.console.inc:301 src/etc/inc/config.console.inc:495
+#: src/etc/inc/config.console.inc:226 src/etc/inc/config.console.inc:419
msgid "Do you want to proceed [y|n]?"
msgstr ""
-#: src/etc/inc/config.console.inc:319
+#: src/etc/inc/config.console.inc:243
msgid "You have chosen to remove the LAN interface."
msgstr ""
-#: src/etc/inc/config.console.inc:320
+#: src/etc/inc/config.console.inc:244
msgid ""
"Would you like to remove the LAN IP address and \n"
"unload the interface now [y|n]?"
msgstr ""
-#: src/etc/inc/config.console.inc:441
+#: src/etc/inc/config.console.inc:365
#, php-format
msgid "%sWriting configuration..."
msgstr ""
-#: src/etc/inc/config.console.inc:442
+#: src/etc/inc/config.console.inc:366
msgid "Console assignment of interfaces"
msgstr ""
-#: src/etc/inc/config.console.inc:443
+#: src/etc/inc/config.console.inc:367
#, php-format
msgid "done.%s"
msgstr ""
-#: src/etc/inc/config.console.inc:451
+#: src/etc/inc/config.console.inc:375
msgid "One moment while the settings are reloading..."
msgstr ""
-#: src/etc/inc/config.console.inc:452
+#: src/etc/inc/config.console.inc:376
msgid " done!"
msgstr ""
-#: src/etc/inc/config.console.inc:472
+#: src/etc/inc/config.console.inc:396
#, php-format
msgid "Detected link-up on interface %s.%s"
msgstr ""
-#: src/etc/inc/config.console.inc:477
+#: src/etc/inc/config.console.inc:401
#, php-format
msgid "No link-up detected.%s"
msgstr ""
-#: src/etc/inc/config.console.inc:494
+#: src/etc/inc/config.console.inc:418
msgid "WARNING: all existing VLANs will be cleared if you proceed!"
msgstr ""
-#: src/etc/inc/config.console.inc:510
+#: src/etc/inc/config.console.inc:434
msgid "VLAN Capable interfaces:"
msgstr ""
-#: src/etc/inc/config.console.inc:525
+#: src/etc/inc/config.console.inc:449
msgid "No VLAN capable interfaces detected."
msgstr ""
-#: src/etc/inc/config.console.inc:529
+#: src/etc/inc/config.console.inc:453
msgid ""
"Enter the parent interface name for the new VLAN (or nothing if finished):"
msgstr ""
-#: src/etc/inc/config.console.inc:542
+#: src/etc/inc/config.console.inc:466
msgid "Enter the VLAN tag (1-4094):"
msgstr ""
-#: src/etc/inc/config.console.inc:546
+#: src/etc/inc/config.console.inc:470
#, php-format
msgid "%sInvalid VLAN tag '%s'%s"
msgstr ""
-#: src/etc/inc/config.console.inc:553
+#: src/etc/inc/config.console.inc:477
#, php-format
msgid "This parent interface and VLAN already created."
msgstr ""
-#: src/etc/inc/config.inc:81
+#: src/etc/inc/config.inc:74
msgid "Upgrading m0n0wall configuration to pfSense... "
msgstr ""
-#: src/etc/inc/config.inc:84
+#: src/etc/inc/config.inc:77
msgid "ERROR! Could not convert m0n0wall -> pfsense in config.xml"
msgstr ""
-#: src/etc/inc/config.inc:114
-msgid "CDROM build"
-msgstr ""
-
-#: src/etc/inc/config.inc:115
-msgid "CFG:"
-msgstr ""
-
-#: src/etc/inc/config.inc:116
-msgid "TYPE:"
-msgstr ""
-
-#: src/etc/inc/config.inc:132 src/etc/inc/config.inc:150
+#: src/etc/inc/config.inc:105 src/etc/inc/config.inc:123
#, php-format
msgid "Found configuration on %s.%s"
msgstr ""
-#: src/etc/inc/config.inc:165 src/etc/inc/config.inc:166
+#: src/etc/inc/config.inc:137 src/etc/inc/config.inc:138
#: src/etc/inc/config.lib.inc:90 src/etc/inc/config.lib.inc:91
-#: src/etc/inc/config.lib.inc:245 src/etc/inc/config.lib.inc:267
-#: src/etc/inc/config.lib.inc:268
+#: src/etc/inc/config.lib.inc:232 src/etc/inc/config.lib.inc:253
+#: src/etc/inc/config.lib.inc:254
msgid "No config.xml found, attempting last known config restore."
msgstr ""
-#: src/etc/inc/config.inc:169
+#: src/etc/inc/config.inc:141
msgid "No config.xml or config backups found, resetting to factory defaults."
msgstr ""
@@ -546,112 +534,92 @@ msgid "Invalid password entered. Please try again."
msgstr ""
#: src/etc/inc/config.lib.inc:95 src/etc/inc/config.lib.inc:129
-#: src/etc/inc/config.lib.inc:272
+#: src/etc/inc/config.lib.inc:258
msgid ""
"Config.xml is corrupted and is 0 bytes. Could not restore a previous backup."
msgstr ""
#: src/etc/inc/config.lib.inc:127 src/etc/inc/config.lib.inc:138
-#: src/etc/inc/config.lib.inc:560
+#: src/etc/inc/config.lib.inc:490
msgid "Could not restore config.xml."
msgstr ""
-#: src/etc/inc/config.lib.inc:209 src/etc/inc/config.lib.inc:210
+#: src/etc/inc/config.lib.inc:208 src/etc/inc/config.lib.inc:209
#, php-format
msgid "%1$s is restoring the configuration %2$s"
msgstr ""
-#: src/etc/inc/config.lib.inc:233
-msgid "Resetting factory defaults..."
-msgstr ""
-
#: src/etc/inc/config.lib.inc:236
-msgid ""
-"No XML configuration file found - using factory defaults.\n"
-"Make sure that the configuration floppy disk with the conf/config.xml\n"
-"file is inserted. If it isn't, the configuration changes will be lost\n"
-"on reboot.\n"
-msgstr ""
-
-#: src/etc/inc/config.lib.inc:249
#, php-format
msgid "XML configuration file not found. %s cannot continue booting."
msgstr ""
-#: src/etc/inc/config.lib.inc:255
+#: src/etc/inc/config.lib.inc:242
msgid ""
"Last known config found and restored. Please double check the configuration "
"file for accuracy."
msgstr ""
-#: src/etc/inc/config.lib.inc:259
+#: src/etc/inc/config.lib.inc:245
msgid "Could not find a usable configuration file! Exiting...."
msgstr ""
-#: src/etc/inc/config.lib.inc:321
-msgid "/cf Filesystem is dirty."
-msgstr ""
-
-#: src/etc/inc/config.lib.inc:332
-msgid "/ File system is dirty."
-msgstr ""
-
-#: src/etc/inc/config.lib.inc:392
+#: src/etc/inc/config.lib.inc:323
#, php-format
msgid "Start Configuration upgrade at %s, set execution timeout to 15 minutes"
msgstr ""
-#: src/etc/inc/config.lib.inc:403 src/etc/inc/config.lib.inc:404
+#: src/etc/inc/config.lib.inc:334 src/etc/inc/config.lib.inc:335
msgid "Updated bogon update frequency to 3am"
msgstr ""
-#: src/etc/inc/config.lib.inc:440
+#: src/etc/inc/config.lib.inc:371
#, php-format
msgid "Ended Configuration upgrade at %s"
msgstr ""
-#: src/etc/inc/config.lib.inc:443
+#: src/etc/inc/config.lib.inc:374
#, php-format
msgid "Upgraded config version level from %1$s to %2$s"
msgstr ""
-#: src/etc/inc/config.lib.inc:537
+#: src/etc/inc/config.lib.inc:467
msgid "WARNING: Config contents could not be saved. Could not open file!"
msgstr ""
-#: src/etc/inc/config.lib.inc:539
+#: src/etc/inc/config.lib.inc:469
#, php-format
msgid "Unable to open %s/config.xml for writing in write_config()%s"
msgstr ""
-#: src/etc/inc/config.lib.inc:668
+#: src/etc/inc/config.lib.inc:589
#, php-format
msgid "Reverted to %s."
msgstr ""
-#: src/etc/inc/config.lib.inc:685
+#: src/etc/inc/config.lib.inc:606
msgid "Installing configuration..."
msgstr ""
-#: src/etc/inc/config.lib.inc:687
+#: src/etc/inc/config.lib.inc:608
msgid "Installing configuration ...."
msgstr ""
-#: src/etc/inc/config.lib.inc:740
+#: src/etc/inc/config.lib.inc:659
msgid "XML error: unable to open file"
msgstr ""
-#: src/etc/inc/config.lib.inc:746
+#: src/etc/inc/config.lib.inc:665
#, php-format
msgid "%1$s at line %2$d"
msgstr ""
-#: src/etc/inc/config.lib.inc:800 src/etc/inc/config.lib.inc:802
+#: src/etc/inc/config.lib.inc:718 src/etc/inc/config.lib.inc:720
#, php-format
msgid "The backup cache file %s is corrupted. Unlinking."
msgstr ""
-#: src/etc/inc/config.lib.inc:959
+#: src/etc/inc/config.lib.inc:870
#, php-format
msgid "%s made unknown change"
msgstr ""
@@ -660,562 +628,562 @@ msgstr ""
msgid "Failed to encrypt/decrypt data!"
msgstr ""
-#: src/etc/inc/dyndns.class:186
+#: src/etc/inc/dyndns.class:188
msgid "Dynamic DNS: updatedns() starting"
msgstr ""
-#: src/etc/inc/dyndns.class:242
+#: src/etc/inc/dyndns.class:245
#, php-format
msgid "Dynamic DNS (%1$s): running get_failover_interface for %2$s. found %3$s"
msgstr ""
-#: src/etc/inc/dyndns.class:251
+#: src/etc/inc/dyndns.class:254
#, php-format
msgid ""
"Dynamic DNS (%1$s) There was an error trying to determine the public IP for "
"interface - %2$s (%3$s %4$s)."
msgstr ""
-#: src/etc/inc/dyndns.class:325
+#: src/etc/inc/dyndns.class:329
#, php-format
msgid "Dynamic DNS %1$s (%2$s): _update() starting."
msgstr ""
-#: src/etc/inc/dyndns.class:423
+#: src/etc/inc/dyndns.class:427
#, php-format
msgid ""
"Dynamic DNS %1$s (%2$s): Processing dummy update on No-IP free account. IP "
"temporarily set to %3$s"
msgstr ""
-#: src/etc/inc/dyndns.class:691
+#: src/etc/inc/dyndns.class:695
#, php-format
msgid "Sending request to: %s"
msgstr ""
-#: src/etc/inc/dyndns.class:845
+#: src/etc/inc/dyndns.class:852
#, php-format
msgid "Dynamic DNS %1$s (%2$s): _checkStatus() starting."
msgstr ""
-#: src/etc/inc/dyndns.class:848 src/usr/local/www/pkg_mgr_install.php:118
+#: src/etc/inc/dyndns.class:855 src/usr/local/www/pkg_mgr_install.php:118
msgid "Success"
msgstr ""
-#: src/etc/inc/dyndns.class:849 src/etc/inc/dyndns.class:1482
+#: src/etc/inc/dyndns.class:856 src/etc/inc/dyndns.class:1488
#: src/usr/local/www/diag_smart.php:472
msgid "Error"
msgstr ""
-#: src/etc/inc/dyndns.class:853
+#: src/etc/inc/dyndns.class:860
msgid "Curl error occurred:"
msgstr ""
-#: src/etc/inc/dyndns.class:862 src/etc/inc/dyndns.class:883
-#: src/etc/inc/dyndns.class:902 src/etc/inc/dyndns.class:920
-#: src/etc/inc/dyndns.class:937 src/etc/inc/dyndns.class:954
-#: src/etc/inc/dyndns.class:1103 src/etc/inc/dyndns.class:1116
-#: src/etc/inc/dyndns.class:1129 src/etc/inc/dyndns.class:1146
-#: src/etc/inc/dyndns.class:1256 src/etc/inc/dyndns.class:1312
-#: src/etc/inc/dyndns.class:1372 src/etc/inc/dyndns.class:1393
-#: src/etc/inc/dyndns.class:1438
+#: src/etc/inc/dyndns.class:869 src/etc/inc/dyndns.class:890
+#: src/etc/inc/dyndns.class:909 src/etc/inc/dyndns.class:927
+#: src/etc/inc/dyndns.class:944 src/etc/inc/dyndns.class:961
+#: src/etc/inc/dyndns.class:1110 src/etc/inc/dyndns.class:1123
+#: src/etc/inc/dyndns.class:1136 src/etc/inc/dyndns.class:1153
+#: src/etc/inc/dyndns.class:1263 src/etc/inc/dyndns.class:1320
+#: src/etc/inc/dyndns.class:1380 src/etc/inc/dyndns.class:1401
+#: src/etc/inc/dyndns.class:1446
msgid "IP Address Changed Successfully!"
msgstr ""
-#: src/etc/inc/dyndns.class:865 src/etc/inc/dyndns.class:888
-#: src/etc/inc/dyndns.class:907 src/etc/inc/dyndns.class:925
-#: src/etc/inc/dyndns.class:942 src/etc/inc/dyndns.class:959
-#: src/etc/inc/dyndns.class:1026 src/etc/inc/dyndns.class:1044
-#: src/etc/inc/dyndns.class:1064 src/etc/inc/dyndns.class:1082
-#: src/etc/inc/dyndns.class:1092 src/etc/inc/dyndns.class:1106
-#: src/etc/inc/dyndns.class:1119 src/etc/inc/dyndns.class:1134
-#: src/etc/inc/dyndns.class:1153 src/etc/inc/dyndns.class:1177
-#: src/etc/inc/dyndns.class:1196 src/etc/inc/dyndns.class:1217
-#: src/etc/inc/dyndns.class:1244 src/etc/inc/dyndns.class:1261
-#: src/etc/inc/dyndns.class:1317 src/etc/inc/dyndns.class:1335
-#: src/etc/inc/dyndns.class:1360 src/etc/inc/dyndns.class:1385
-#: src/etc/inc/dyndns.class:1422 src/etc/inc/dyndns.class:1443
+#: src/etc/inc/dyndns.class:872 src/etc/inc/dyndns.class:895
+#: src/etc/inc/dyndns.class:914 src/etc/inc/dyndns.class:932
+#: src/etc/inc/dyndns.class:949 src/etc/inc/dyndns.class:966
+#: src/etc/inc/dyndns.class:1033 src/etc/inc/dyndns.class:1051
+#: src/etc/inc/dyndns.class:1071 src/etc/inc/dyndns.class:1089
+#: src/etc/inc/dyndns.class:1099 src/etc/inc/dyndns.class:1113
+#: src/etc/inc/dyndns.class:1126 src/etc/inc/dyndns.class:1141
+#: src/etc/inc/dyndns.class:1160 src/etc/inc/dyndns.class:1184
+#: src/etc/inc/dyndns.class:1203 src/etc/inc/dyndns.class:1224
+#: src/etc/inc/dyndns.class:1251 src/etc/inc/dyndns.class:1268
+#: src/etc/inc/dyndns.class:1325 src/etc/inc/dyndns.class:1343
+#: src/etc/inc/dyndns.class:1368 src/etc/inc/dyndns.class:1393
+#: src/etc/inc/dyndns.class:1430 src/etc/inc/dyndns.class:1451
msgid "Unknown Response"
msgstr ""
-#: src/etc/inc/dyndns.class:866 src/etc/inc/dyndns.class:889
-#: src/etc/inc/dyndns.class:908 src/etc/inc/dyndns.class:926
-#: src/etc/inc/dyndns.class:943 src/etc/inc/dyndns.class:960
-#: src/etc/inc/dyndns.class:1045 src/etc/inc/dyndns.class:1065
-#: src/etc/inc/dyndns.class:1083 src/etc/inc/dyndns.class:1093
-#: src/etc/inc/dyndns.class:1107 src/etc/inc/dyndns.class:1120
-#: src/etc/inc/dyndns.class:1135 src/etc/inc/dyndns.class:1154
-#: src/etc/inc/dyndns.class:1178 src/etc/inc/dyndns.class:1197
-#: src/etc/inc/dyndns.class:1218 src/etc/inc/dyndns.class:1245
-#: src/etc/inc/dyndns.class:1262 src/etc/inc/dyndns.class:1302
-#: src/etc/inc/dyndns.class:1318 src/etc/inc/dyndns.class:1336
-#: src/etc/inc/dyndns.class:1361 src/etc/inc/dyndns.class:1386
-#: src/etc/inc/dyndns.class:1423 src/etc/inc/dyndns.class:1444
+#: src/etc/inc/dyndns.class:873 src/etc/inc/dyndns.class:896
+#: src/etc/inc/dyndns.class:915 src/etc/inc/dyndns.class:933
+#: src/etc/inc/dyndns.class:950 src/etc/inc/dyndns.class:967
+#: src/etc/inc/dyndns.class:1052 src/etc/inc/dyndns.class:1072
+#: src/etc/inc/dyndns.class:1090 src/etc/inc/dyndns.class:1100
+#: src/etc/inc/dyndns.class:1114 src/etc/inc/dyndns.class:1127
+#: src/etc/inc/dyndns.class:1142 src/etc/inc/dyndns.class:1161
+#: src/etc/inc/dyndns.class:1185 src/etc/inc/dyndns.class:1204
+#: src/etc/inc/dyndns.class:1225 src/etc/inc/dyndns.class:1252
+#: src/etc/inc/dyndns.class:1269 src/etc/inc/dyndns.class:1310
+#: src/etc/inc/dyndns.class:1326 src/etc/inc/dyndns.class:1344
+#: src/etc/inc/dyndns.class:1369 src/etc/inc/dyndns.class:1394
+#: src/etc/inc/dyndns.class:1431 src/etc/inc/dyndns.class:1452
msgid "PAYLOAD:"
msgstr ""
-#: src/etc/inc/dyndns.class:873
+#: src/etc/inc/dyndns.class:880
msgid ""
"The DNS-O-Matic username or password specified are incorrect. No updates "
"will be distributed to services until this is resolved."
msgstr ""
-#: src/etc/inc/dyndns.class:875
+#: src/etc/inc/dyndns.class:882
msgid ""
"The hostname specified is not a fully-qualified domain name. If no hostnames "
"included, notfqdn will be returned once."
msgstr ""
-#: src/etc/inc/dyndns.class:877
+#: src/etc/inc/dyndns.class:884
msgid ""
"The hostname passed could not be matched to any services configured. The "
"service field will be blank in the return code."
msgstr ""
-#: src/etc/inc/dyndns.class:879
+#: src/etc/inc/dyndns.class:886
msgid ""
"Up to 20 hosts my be updated. numhost is returned if attempting to update "
"more than 20 or update a round-robin."
msgstr ""
-#: src/etc/inc/dyndns.class:881
+#: src/etc/inc/dyndns.class:888
msgid "The hostname is blocked for update abuse."
msgstr ""
-#: src/etc/inc/dyndns.class:886
+#: src/etc/inc/dyndns.class:893
msgid "DNS error encountered. Stop updating for 30 minutes."
msgstr ""
-#: src/etc/inc/dyndns.class:895 src/etc/inc/dyndns.class:915
-#: src/etc/inc/dyndns.class:932 src/etc/inc/dyndns.class:949
-#: src/etc/inc/dyndns.class:1251 src/etc/inc/dyndns.class:1307
-#: src/etc/inc/dyndns.class:1431
+#: src/etc/inc/dyndns.class:902 src/etc/inc/dyndns.class:922
+#: src/etc/inc/dyndns.class:939 src/etc/inc/dyndns.class:956
+#: src/etc/inc/dyndns.class:1258 src/etc/inc/dyndns.class:1315
+#: src/etc/inc/dyndns.class:1439
msgid "Not A FQDN!"
msgstr ""
-#: src/etc/inc/dyndns.class:897 src/etc/inc/dyndns.class:1433
+#: src/etc/inc/dyndns.class:904 src/etc/inc/dyndns.class:1441
msgid "No such host"
msgstr ""
-#: src/etc/inc/dyndns.class:899 src/etc/inc/dyndns.class:917
-#: src/etc/inc/dyndns.class:934 src/etc/inc/dyndns.class:951
-#: src/etc/inc/dyndns.class:1100 src/etc/inc/dyndns.class:1113
-#: src/etc/inc/dyndns.class:1126 src/etc/inc/dyndns.class:1309
-#: src/etc/inc/dyndns.class:1369 src/etc/inc/dyndns.class:1412
-#: src/etc/inc/dyndns.class:1435
+#: src/etc/inc/dyndns.class:906 src/etc/inc/dyndns.class:924
+#: src/etc/inc/dyndns.class:941 src/etc/inc/dyndns.class:958
+#: src/etc/inc/dyndns.class:1107 src/etc/inc/dyndns.class:1120
+#: src/etc/inc/dyndns.class:1133 src/etc/inc/dyndns.class:1317
+#: src/etc/inc/dyndns.class:1377 src/etc/inc/dyndns.class:1420
+#: src/etc/inc/dyndns.class:1443
msgid "No Change In IP Address"
msgstr ""
-#: src/etc/inc/dyndns.class:905 src/etc/inc/dyndns.class:923
-#: src/etc/inc/dyndns.class:940 src/etc/inc/dyndns.class:957
-#: src/etc/inc/dyndns.class:1132 src/etc/inc/dyndns.class:1259
-#: src/etc/inc/dyndns.class:1315 src/etc/inc/dyndns.class:1375
-#: src/etc/inc/dyndns.class:1441
+#: src/etc/inc/dyndns.class:912 src/etc/inc/dyndns.class:930
+#: src/etc/inc/dyndns.class:947 src/etc/inc/dyndns.class:964
+#: src/etc/inc/dyndns.class:1139 src/etc/inc/dyndns.class:1266
+#: src/etc/inc/dyndns.class:1323 src/etc/inc/dyndns.class:1383
+#: src/etc/inc/dyndns.class:1449
msgid "User Authorization Failed"
msgstr ""
-#: src/etc/inc/dyndns.class:971
+#: src/etc/inc/dyndns.class:978
msgid "IP address is current, no update performed."
msgstr ""
-#: src/etc/inc/dyndns.class:975
+#: src/etc/inc/dyndns.class:982
msgid "DNS hostname update successful."
msgstr ""
-#: src/etc/inc/dyndns.class:979
+#: src/etc/inc/dyndns.class:986
msgid "Hostname supplied does not exist."
msgstr ""
-#: src/etc/inc/dyndns.class:982
+#: src/etc/inc/dyndns.class:989
msgid "Invalid Username."
msgstr ""
-#: src/etc/inc/dyndns.class:985
+#: src/etc/inc/dyndns.class:992
msgid "Invalid Password."
msgstr ""
-#: src/etc/inc/dyndns.class:988
+#: src/etc/inc/dyndns.class:995
msgid "Too many updates sent."
msgstr ""
-#: src/etc/inc/dyndns.class:991
+#: src/etc/inc/dyndns.class:998
msgid "Account disabled due to violation of No-IP terms of service."
msgstr ""
-#: src/etc/inc/dyndns.class:994
+#: src/etc/inc/dyndns.class:1001
msgid ""
"Invalid IP. IP Address submitted is improperly formatted or is a private IP "
"address or is on a blacklist."
msgstr ""
-#: src/etc/inc/dyndns.class:997
+#: src/etc/inc/dyndns.class:1004
msgid "Disabled / Locked Hostname."
msgstr ""
-#: src/etc/inc/dyndns.class:1000
+#: src/etc/inc/dyndns.class:1007
msgid ""
"Host updated is configured as a web redirect and no update was performed."
msgstr ""
-#: src/etc/inc/dyndns.class:1003
+#: src/etc/inc/dyndns.class:1010
msgid "Group supplied does not exist."
msgstr ""
-#: src/etc/inc/dyndns.class:1006
+#: src/etc/inc/dyndns.class:1013
msgid "DNS group update is successful."
msgstr ""
-#: src/etc/inc/dyndns.class:1010
+#: src/etc/inc/dyndns.class:1017
msgid "DNS group is current, no update performed."
msgstr ""
-#: src/etc/inc/dyndns.class:1014
+#: src/etc/inc/dyndns.class:1021
msgid "Update client support not available for supplied hostname or group."
msgstr ""
-#: src/etc/inc/dyndns.class:1017
+#: src/etc/inc/dyndns.class:1024
msgid "Hostname supplied does not have offline settings configured."
msgstr ""
-#: src/etc/inc/dyndns.class:1020 src/etc/inc/dyndns.class:1023
+#: src/etc/inc/dyndns.class:1027 src/etc/inc/dyndns.class:1030
msgid ""
"Client disabled. Client should exit and not perform any more updates without "
"user intervention."
msgstr ""
-#: src/etc/inc/dyndns.class:1027
+#: src/etc/inc/dyndns.class:1034
msgid "Unknown Response:"
msgstr ""
-#: src/etc/inc/dyndns.class:1033
+#: src/etc/inc/dyndns.class:1040
msgid "Authentication Failed: Username and/or Password was Incorrect."
msgstr ""
-#: src/etc/inc/dyndns.class:1035
+#: src/etc/inc/dyndns.class:1042
msgid "No Service: Dynamic DNS Service has been disabled for this domain."
msgstr ""
-#: src/etc/inc/dyndns.class:1037
+#: src/etc/inc/dyndns.class:1044
msgid "Illegal Input: Self-Explanatory"
msgstr ""
-#: src/etc/inc/dyndns.class:1039
+#: src/etc/inc/dyndns.class:1046
msgid "Too Soon: Not Enough Time Has Elapsed Since Last Update"
msgstr ""
-#: src/etc/inc/dyndns.class:1041
+#: src/etc/inc/dyndns.class:1048
msgid "IP Updated Successfully!"
msgstr ""
-#: src/etc/inc/dyndns.class:1054
+#: src/etc/inc/dyndns.class:1061
msgid "Error 799"
msgstr ""
-#: src/etc/inc/dyndns.class:1054 src/etc/inc/dyndns.class:1056
+#: src/etc/inc/dyndns.class:1061 src/etc/inc/dyndns.class:1063
msgid "Update Failed!"
msgstr ""
-#: src/etc/inc/dyndns.class:1056
+#: src/etc/inc/dyndns.class:1063
msgid "Error 700"
msgstr ""
-#: src/etc/inc/dyndns.class:1058 src/etc/inc/dyndns.class:1061
-#: src/etc/inc/dyndns.class:1079 src/etc/inc/dyndns.class:1089
-#: src/etc/inc/dyndns.class:1174 src/etc/inc/dyndns.class:1190
-#: src/etc/inc/dyndns.class:1211 src/etc/inc/dyndns.class:1238
-#: src/etc/inc/dyndns.class:1286 src/etc/inc/dyndns.class:1332
-#: src/etc/inc/dyndns.class:1348
+#: src/etc/inc/dyndns.class:1065 src/etc/inc/dyndns.class:1068
+#: src/etc/inc/dyndns.class:1086 src/etc/inc/dyndns.class:1096
+#: src/etc/inc/dyndns.class:1181 src/etc/inc/dyndns.class:1197
+#: src/etc/inc/dyndns.class:1218 src/etc/inc/dyndns.class:1245
+#: src/etc/inc/dyndns.class:1293 src/etc/inc/dyndns.class:1340
+#: src/etc/inc/dyndns.class:1356
msgid "IP Address Updated Successfully!"
msgstr ""
-#: src/etc/inc/dyndns.class:1071
+#: src/etc/inc/dyndns.class:1078
msgid ""
"Bad Request - The URL was malformed. Required parameters were not provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1073
+#: src/etc/inc/dyndns.class:1080
msgid "Update Too Soon - Attempted to update too quickly since last change."
msgstr ""
-#: src/etc/inc/dyndns.class:1075
+#: src/etc/inc/dyndns.class:1082
msgid "Database Error - There was a server-sided database error."
msgstr ""
-#: src/etc/inc/dyndns.class:1077
+#: src/etc/inc/dyndns.class:1084
#, php-format
msgid "Hostname Error - The hostname (%s) doesn't belong to user (%s)."
msgstr ""
-#: src/etc/inc/dyndns.class:1141
+#: src/etc/inc/dyndns.class:1148
msgid "Not a valid username or password!"
msgstr ""
-#: src/etc/inc/dyndns.class:1143
+#: src/etc/inc/dyndns.class:1150
msgid "Hostname specified does not exist."
msgstr ""
-#: src/etc/inc/dyndns.class:1149
+#: src/etc/inc/dyndns.class:1156
msgid "Hostname specified exists, but not under the username specified."
msgstr ""
-#: src/etc/inc/dyndns.class:1151
+#: src/etc/inc/dyndns.class:1158
msgid "Updating too frequently, considered abuse."
msgstr ""
-#: src/etc/inc/dyndns.class:1160 src/etc/inc/dyndns.class:1205
+#: src/etc/inc/dyndns.class:1167 src/etc/inc/dyndns.class:1212
msgid "Bad Request - The IP provided was invalid."
msgstr ""
-#: src/etc/inc/dyndns.class:1162
+#: src/etc/inc/dyndns.class:1169
msgid "Bad Request - Required parameters were not provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1164
+#: src/etc/inc/dyndns.class:1171
msgid ""
"Bad Request - Illegal characters in either the username or the password."
msgstr ""
-#: src/etc/inc/dyndns.class:1166
+#: src/etc/inc/dyndns.class:1173
msgid "Invalid password."
msgstr ""
-#: src/etc/inc/dyndns.class:1168
+#: src/etc/inc/dyndns.class:1175
msgid "This account has been administratively locked."
msgstr ""
-#: src/etc/inc/dyndns.class:1170
+#: src/etc/inc/dyndns.class:1177
msgid "Updating too frequently."
msgstr ""
-#: src/etc/inc/dyndns.class:1172 src/etc/inc/dyndns.class:1186
+#: src/etc/inc/dyndns.class:1179 src/etc/inc/dyndns.class:1193
msgid "Server side error."
msgstr ""
-#: src/etc/inc/dyndns.class:1188
+#: src/etc/inc/dyndns.class:1195
msgid "Badly Formed Request (check the settings)."
msgstr ""
-#: src/etc/inc/dyndns.class:1207
+#: src/etc/inc/dyndns.class:1214
msgid "Bad Request - A hostname was not provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1209 src/etc/inc/dyndns.class:1236
+#: src/etc/inc/dyndns.class:1216 src/etc/inc/dyndns.class:1243
msgid "Invalid username or password."
msgstr ""
-#: src/etc/inc/dyndns.class:1214 src/etc/inc/dyndns.class:1241
-#: src/etc/inc/dyndns.class:1253
+#: src/etc/inc/dyndns.class:1221 src/etc/inc/dyndns.class:1248
+#: src/etc/inc/dyndns.class:1260
msgid "No Change In IP Address."
msgstr ""
-#: src/etc/inc/dyndns.class:1232
+#: src/etc/inc/dyndns.class:1239
msgid "Bad Request - Missing/Invalid Parameters."
msgstr ""
-#: src/etc/inc/dyndns.class:1234
+#: src/etc/inc/dyndns.class:1241
msgid "Bad Request - Invalid Tunnel ID."
msgstr ""
-#: src/etc/inc/dyndns.class:1288
+#: src/etc/inc/dyndns.class:1295
msgid "Result did not match."
msgstr ""
-#: src/etc/inc/dyndns.class:1294
+#: src/etc/inc/dyndns.class:1302
#, php-format
msgid "%1$s updated to %2$s"
msgstr ""
-#: src/etc/inc/dyndns.class:1297
+#: src/etc/inc/dyndns.class:1305
msgid ""
"Invalid Credentials! Don't forget to use API Key for password field with "
"CloudFlare."
msgstr ""
-#: src/etc/inc/dyndns.class:1299
+#: src/etc/inc/dyndns.class:1307
msgid "Zone or Host ID was not found, check the hostname."
msgstr ""
-#: src/etc/inc/dyndns.class:1301
+#: src/etc/inc/dyndns.class:1309
msgid "UNKNOWN ERROR"
msgstr ""
-#: src/etc/inc/dyndns.class:1324
+#: src/etc/inc/dyndns.class:1332
msgid "Wrong values - Update could not be completed."
msgstr ""
-#: src/etc/inc/dyndns.class:1326
+#: src/etc/inc/dyndns.class:1334
msgid "Unknown username - User does not exist."
msgstr ""
-#: src/etc/inc/dyndns.class:1328
+#: src/etc/inc/dyndns.class:1336
msgid "Wrong password - Remember password is case sensitive."
msgstr ""
-#: src/etc/inc/dyndns.class:1330
+#: src/etc/inc/dyndns.class:1338
msgid "User unable to administer the selected domain."
msgstr ""
-#: src/etc/inc/dyndns.class:1367
+#: src/etc/inc/dyndns.class:1375
msgid "Not A FQDN"
msgstr ""
-#: src/etc/inc/dyndns.class:1377
+#: src/etc/inc/dyndns.class:1385
msgid "Hostname does not exist or DynDNS not enabled"
msgstr ""
-#: src/etc/inc/dyndns.class:1379
+#: src/etc/inc/dyndns.class:1387
msgid "Bad request"
msgstr ""
-#: src/etc/inc/dyndns.class:1381
+#: src/etc/inc/dyndns.class:1389
msgid "Dynamic DNS access has been blocked!"
msgstr ""
-#: src/etc/inc/dyndns.class:1383
+#: src/etc/inc/dyndns.class:1391
msgid "Error on Google's end, retry in 5 minutes"
msgstr ""
-#: src/etc/inc/dyndns.class:1397
+#: src/etc/inc/dyndns.class:1405
msgid "Invalid username or password"
msgstr ""
-#: src/etc/inc/dyndns.class:1400
+#: src/etc/inc/dyndns.class:1408
msgid "Account suspended"
msgstr ""
-#: src/etc/inc/dyndns.class:1403
+#: src/etc/inc/dyndns.class:1411
msgid "Account revoked"
msgstr ""
-#: src/etc/inc/dyndns.class:1406
+#: src/etc/inc/dyndns.class:1414
msgid "Record does not exist in the system. Unable to update record"
msgstr ""
-#: src/etc/inc/dyndns.class:1409
+#: src/etc/inc/dyndns.class:1417
msgid "User does not have access to this record"
msgstr ""
-#: src/etc/inc/dyndns.class:1416
+#: src/etc/inc/dyndns.class:1424
msgid "General system error recognized by the system"
msgstr ""
-#: src/etc/inc/dyndns.class:1419
+#: src/etc/inc/dyndns.class:1427
msgid "General system error unrecognized by the system"
msgstr ""
-#: src/etc/inc/dyndns.class:1456
+#: src/etc/inc/dyndns.class:1463
#, php-format
msgid "DynDNS updated IP Address on %1$s (%2$s) to %3$s"
msgstr ""
-#: src/etc/inc/dyndns.class:1457 src/etc/inc/dyndns.class:1465
-#: src/etc/inc/services.inc:2535
+#: src/etc/inc/dyndns.class:1464 src/etc/inc/dyndns.class:1472
+#: src/etc/inc/services.inc:2576
#, php-format
msgid "phpDynDNS: updating cache file %1$s: %2$s"
msgstr ""
-#: src/etc/inc/dyndns.class:1464
+#: src/etc/inc/dyndns.class:1471
#, php-format
msgid "DynDNS updated IPv6 Address on %s (%s) to %s"
msgstr ""
-#: src/etc/inc/dyndns.class:1481
+#: src/etc/inc/dyndns.class:1487
msgid "ERROR!"
msgstr ""
-#: src/etc/inc/dyndns.class:1487
+#: src/etc/inc/dyndns.class:1493
msgid "No Dynamic DNS Service provider was selected."
msgstr ""
-#: src/etc/inc/dyndns.class:1490
+#: src/etc/inc/dyndns.class:1496
msgid "No Username Provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1493
+#: src/etc/inc/dyndns.class:1499
msgid "No Password Provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1496
+#: src/etc/inc/dyndns.class:1502
msgid "No Hostname Provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1499
+#: src/etc/inc/dyndns.class:1505
msgid "The Dynamic DNS Service provided is not yet supported."
msgstr ""
-#: src/etc/inc/dyndns.class:1502
+#: src/etc/inc/dyndns.class:1508
msgid "No Update URL Provided."
msgstr ""
-#: src/etc/inc/dyndns.class:1505
+#: src/etc/inc/dyndns.class:1511
msgid "Invalid ZoneID"
msgstr ""
-#: src/etc/inc/dyndns.class:1508
+#: src/etc/inc/dyndns.class:1514
msgid "Invalid TTL"
msgstr ""
-#: src/etc/inc/dyndns.class:1511
+#: src/etc/inc/dyndns.class:1517
#, php-format
msgid ""
"No change in my IP address and/or %s days has not passed. Not updating "
"dynamic DNS entry."
msgstr ""
-#: src/etc/inc/dyndns.class:1514
+#: src/etc/inc/dyndns.class:1520
msgid "Unknown Response."
msgstr ""
-#: src/etc/inc/dyndns.class:1533
+#: src/etc/inc/dyndns.class:1539
#, php-format
msgid "Dynamic DNS %1$s (%2$s): _detectChange() starting."
msgstr ""
-#: src/etc/inc/dyndns.class:1540
+#: src/etc/inc/dyndns.class:1546
#, php-format
msgid ""
"Dynamic Dns (%s): Current WAN IP could not be determined, skipping update "
"process."
msgstr ""
-#: src/etc/inc/dyndns.class:1543
+#: src/etc/inc/dyndns.class:1549
#, php-format
msgid "Dynamic Dns (%1$s): Current WAN IP: %2$s"
msgstr ""
-#: src/etc/inc/dyndns.class:1551
+#: src/etc/inc/dyndns.class:1557
#, php-format
msgid "Cached IPv6: %s"
msgstr ""
-#: src/etc/inc/dyndns.class:1559
+#: src/etc/inc/dyndns.class:1563
msgid "No Cached IPv6 found."
msgstr ""
-#: src/etc/inc/dyndns.class:1567
+#: src/etc/inc/dyndns.class:1571
#, php-format
msgid "Cached IP: %s"
msgstr ""
-#: src/etc/inc/dyndns.class:1575
+#: src/etc/inc/dyndns.class:1577
msgid "No Cached IP found."
msgstr ""
-#: src/etc/inc/dyndns.class:1589
+#: src/etc/inc/dyndns.class:1591
msgid "Dynamic Dns: cacheIP != wan_ip. Updating."
msgstr ""
-#: src/etc/inc/dyndns.class:1590
+#: src/etc/inc/dyndns.class:1592
#, php-format
msgid "Cached IP: %1$s WAN IP: %2$s"
msgstr ""
-#: src/etc/inc/dyndns.class:1595
+#: src/etc/inc/dyndns.class:1597
#, php-format
msgid "Dynamic Dns: More than %s days. Updating."
msgstr ""
-#: src/etc/inc/dyndns.class:1600
+#: src/etc/inc/dyndns.class:1602
msgid "Initial update."
msgstr ""
@@ -1348,10 +1316,10 @@ msgid "Unknown pass error."
msgstr ""
#: src/etc/inc/filter.inc:48 src/etc/inc/filter.inc:78
-#: src/usr/local/www/firewall_rules_edit.php:1194
-#: src/usr/local/www/firewall_rules_edit.php:1236
-#: src/usr/local/www/firewall_rules_edit.php:1287
-#: src/usr/local/www/firewall_rules_edit.php:1339
+#: src/usr/local/www/firewall_rules_edit.php:1189
+#: src/usr/local/www/firewall_rules_edit.php:1231
+#: src/usr/local/www/firewall_rules_edit.php:1282
+#: src/usr/local/www/firewall_rules_edit.php:1337
msgid "any"
msgstr ""
@@ -1420,10 +1388,10 @@ msgstr ""
msgid "Address mask reply"
msgstr ""
-#: src/etc/inc/filter.inc:65 src/usr/local/www/diag_dns.php:319
+#: src/etc/inc/filter.inc:65 src/usr/local/www/diag_dns.php:308
#: src/usr/local/www/diag_traceroute.php:37
-#: src/usr/local/www/diag_traceroute.php:115
-#: src/usr/local/www/diag_traceroute.php:164 src/usr/local/www/head.inc:365
+#: src/usr/local/www/diag_traceroute.php:121
+#: src/usr/local/www/diag_traceroute.php:170 src/usr/local/www/head.inc:359
msgid "Traceroute"
msgstr ""
@@ -1576,19 +1544,19 @@ msgstr ""
#: src/etc/inc/interfaces.inc:347 src/etc/inc/interfaces.inc:409
#: src/etc/inc/interfaces.inc:717 src/etc/inc/interfaces.inc:1071
#: src/etc/inc/interfaces.inc:1102 src/etc/inc/interfaces.inc:1126
-#: src/etc/inc/interfaces.inc:1147 src/etc/inc/interfaces.inc:2168
-#: src/etc/inc/pkg-utils.inc:538 src/etc/inc/pkg-utils.inc:687
-#: src/etc/inc/pkg-utils.inc:711 src/etc/inc/pkg-utils.inc:747
-#: src/etc/inc/pkg-utils.inc:752 src/etc/inc/pkg-utils.inc:757
-#: src/etc/inc/pkg-utils.inc:775 src/etc/inc/pkg-utils.inc:792
-#: src/etc/inc/pkg-utils.inc:814 src/etc/inc/pkg-utils.inc:857
-#: src/etc/inc/pkg-utils.inc:883 src/etc/inc/pkg-utils.inc:926
-#: src/etc/inc/pkg-utils.inc:945 src/etc/inc/rrd.inc:1030
-#: src/etc/inc/services.inc:1572 src/etc/inc/services.inc:1958
-#: src/etc/inc/services.inc:2175 src/etc/inc/services.inc:2217
-#: src/etc/inc/services.inc:2426 src/etc/inc/system.inc:1064
-#: src/etc/inc/system.inc:1162 src/etc/inc/system.inc:1465
-#: src/etc/inc/system.inc:1999
+#: src/etc/inc/interfaces.inc:1147 src/etc/inc/interfaces.inc:2160
+#: src/etc/inc/pkg-utils.inc:529 src/etc/inc/pkg-utils.inc:677
+#: src/etc/inc/pkg-utils.inc:700 src/etc/inc/pkg-utils.inc:736
+#: src/etc/inc/pkg-utils.inc:741 src/etc/inc/pkg-utils.inc:746
+#: src/etc/inc/pkg-utils.inc:764 src/etc/inc/pkg-utils.inc:781
+#: src/etc/inc/pkg-utils.inc:803 src/etc/inc/pkg-utils.inc:844
+#: src/etc/inc/pkg-utils.inc:870 src/etc/inc/pkg-utils.inc:913
+#: src/etc/inc/pkg-utils.inc:932 src/etc/inc/rrd.inc:1030
+#: src/etc/inc/services.inc:1594 src/etc/inc/services.inc:1992
+#: src/etc/inc/services.inc:2209 src/etc/inc/services.inc:2251
+#: src/etc/inc/services.inc:2456 src/etc/inc/system.inc:1092
+#: src/etc/inc/system.inc:1190 src/etc/inc/system.inc:1493
+#: src/etc/inc/system.inc:2023
msgid "done."
msgstr ""
@@ -1630,235 +1598,232 @@ msgstr ""
msgid "Plugins completed."
msgstr ""
-#: src/etc/inc/filter.inc:540 src/usr/local/www/restart_httpd.php:41
-#: src/usr/local/www/restart_httpd.php:44
-#: src/usr/local/www/restart_httpd.php:47
-#: src/usr/local/www/restart_httpd.php:50
+#: src/etc/inc/filter.inc:540
msgid "Done"
msgstr ""
-#: src/etc/inc/filter.inc:768
+#: src/etc/inc/filter.inc:766
#, php-format
msgid "Aliases with numeric-only names are not valid. Skipping alias %s"
msgstr ""
-#: src/etc/inc/filter.inc:846
+#: src/etc/inc/filter.inc:844
msgid "Creating gateway group item..."
msgstr ""
-#: src/etc/inc/filter.inc:886
+#: src/etc/inc/filter.inc:884
#, php-format
msgid "Setting up route with %1$s on %2$s"
msgstr ""
-#: src/etc/inc/filter.inc:890
+#: src/etc/inc/filter.inc:888
#, php-format
msgid "Too many members in group %s, gateway group truncated in ruleset."
msgstr ""
-#: src/etc/inc/filter.inc:902
+#: src/etc/inc/filter.inc:900
#, php-format
msgid ""
"An error occurred while trying to find the interface got %s . The rule has "
"not been added."
msgstr ""
-#: src/etc/inc/filter.inc:1255
+#: src/etc/inc/filter.inc:1253
#, php-format
msgid "Creating reflection NAT rule for %s..."
msgstr ""
-#: src/etc/inc/filter.inc:1353
+#: src/etc/inc/filter.inc:1351
#, php-format
msgid "Creating reflection rule for %s..."
msgstr ""
-#: src/etc/inc/filter.inc:1474
+#: src/etc/inc/filter.inc:1472
msgid "Not installing NAT reflection rules for a port range > 500"
msgstr ""
-#: src/etc/inc/filter.inc:1480
+#: src/etc/inc/filter.inc:1478
msgid "Installing partial NAT reflection rules. Maximum 1,000 reached."
msgstr ""
-#: src/etc/inc/filter.inc:1561
+#: src/etc/inc/filter.inc:1559
msgid "localhost"
msgstr ""
-#: src/etc/inc/filter.inc:1569
+#: src/etc/inc/filter.inc:1567
msgid "static route"
msgstr ""
-#: src/etc/inc/filter.inc:1581
+#: src/etc/inc/filter.inc:1579
msgid "DHCP alias address"
msgstr ""
-#: src/etc/inc/filter.inc:1615
+#: src/etc/inc/filter.inc:1613
msgid "PPPoE server"
msgstr ""
-#: src/etc/inc/filter.inc:1626
+#: src/etc/inc/filter.inc:1624
msgid "L2TP server"
msgstr ""
-#: src/etc/inc/filter.inc:1635
+#: src/etc/inc/filter.inc:1633
msgid "OpenVPN server"
msgstr ""
-#: src/etc/inc/filter.inc:1644
+#: src/etc/inc/filter.inc:1642
msgid "OpenVPN client"
msgstr ""
-#: src/etc/inc/filter.inc:1654
+#: src/etc/inc/filter.inc:1652
msgid "IPsec client"
msgstr ""
-#: src/etc/inc/filter.inc:1690
+#: src/etc/inc/filter.inc:1688
msgid "Auto created rule for ISAKMP"
msgstr ""
-#: src/etc/inc/filter.inc:1700
+#: src/etc/inc/filter.inc:1698
msgid "Auto created rule"
msgstr ""
-#: src/etc/inc/filter.inc:1833
+#: src/etc/inc/filter.inc:1831
msgid "Creating 1:1 rules..."
msgstr ""
-#: src/etc/inc/filter.inc:2018
+#: src/etc/inc/filter.inc:2016
#, php-format
msgid "Creating advanced outbound rule %s"
msgstr ""
-#: src/etc/inc/filter.inc:2060
+#: src/etc/inc/filter.inc:2063
msgid "Creating outbound NAT rules"
msgstr ""
-#: src/etc/inc/filter.inc:2067
+#: src/etc/inc/filter.inc:2070
msgid "Creating automatic outbound rules"
msgstr ""
-#: src/etc/inc/filter.inc:2097
+#: src/etc/inc/filter.inc:2100
msgid "Setting up TFTP helper"
msgstr ""
-#: src/etc/inc/filter.inc:2139
+#: src/etc/inc/filter.inc:2142
#, php-format
msgid "Creating NAT rule %s"
msgstr ""
-#: src/etc/inc/filter.inc:2367
+#: src/etc/inc/filter.inc:2370
#, php-format
msgid "Creating filter rule %s ..."
msgstr ""
-#: src/etc/inc/filter.inc:2391
+#: src/etc/inc/filter.inc:2394
#, php-format
msgid "filter_generate_port: %1$s is not a valid %2$s port."
msgstr ""
-#: src/etc/inc/filter.inc:2628
+#: src/etc/inc/filter.inc:2631
#, php-format
msgid "Creating filter rules %s ..."
msgstr ""
-#: src/etc/inc/filter.inc:2683
+#: src/etc/inc/filter.inc:2686
#, php-format
msgid "Unresolvable source alias '%1$s' for rule '%2$s'"
msgstr ""
-#: src/etc/inc/filter.inc:2688
+#: src/etc/inc/filter.inc:2691
#, php-format
msgid "Unresolvable destination alias '%1$s' for rule '%2$s'"
msgstr ""
-#: src/etc/inc/filter.inc:2692
+#: src/etc/inc/filter.inc:2695
msgid "Setting up pass/block rules"
msgstr ""
-#: src/etc/inc/filter.inc:2719
+#: src/etc/inc/filter.inc:2722
#, php-format
msgid "Setting up pass/block rules %s"
msgstr ""
-#: src/etc/inc/filter.inc:2743
+#: src/etc/inc/filter.inc:2746
#, php-format
msgid "The gateway: %s is invalid or unknown, not using it."
msgstr ""
-#: src/etc/inc/filter.inc:2762
+#: src/etc/inc/filter.inc:2765
#, php-format
msgid "Creating rule %s"
msgstr ""
-#: src/etc/inc/filter.inc:3005
+#: src/etc/inc/filter.inc:3008
#, php-format
msgid "[TDR DEBUG] status true -- rule type '%s'"
msgstr ""
-#: src/etc/inc/filter.inc:3049
+#: src/etc/inc/filter.inc:3052
msgid "Creating default rules"
msgstr ""
-#: src/etc/inc/filter.inc:3700
+#: src/etc/inc/filter.inc:3703
msgid "Creating IPsec rules..."
msgstr ""
-#: src/etc/inc/filter.inc:3753
+#: src/etc/inc/filter.inc:3756
msgid ""
"Please use filter_tdr_install_cron() function tdr_install_cron will be "
"deprecated!"
msgstr ""
-#: src/etc/inc/filter.inc:3802
+#: src/etc/inc/filter.inc:3805
msgid "Installed 15 minute filter reload for Time Based Rules"
msgstr ""
-#: src/etc/inc/filter.inc:3809
+#: src/etc/inc/filter.inc:3812
msgid "Removed 15 minute filter reload for Time Based Rules"
msgstr ""
-#: src/etc/inc/filter.inc:4174
+#: src/etc/inc/filter.inc:4177
#, php-format
msgid "Checking for %1$s PF hooks in package %2$s"
msgstr ""
-#: src/etc/inc/filter.inc:4181
+#: src/etc/inc/filter.inc:4184
#, php-format
msgid "Processing early %1$s rules for package %2$s"
msgstr ""
-#: src/etc/inc/filter.inc:4186
+#: src/etc/inc/filter.inc:4189
#, php-format
msgid "There was an error while parsing the package filter rules for %s."
msgstr ""
-#: src/etc/inc/filter.inc:4252
+#: src/etc/inc/filter.inc:4255
msgid "delete this separator"
msgstr ""
-#: src/etc/inc/filter_log.inc:226 src/etc/inc/filter_log.inc:248
-#: src/etc/inc/filter_log.inc:271 src/etc/inc/filter_log.inc:294
+#: src/etc/inc/filter_log.inc:227 src/etc/inc/filter_log.inc:249
+#: src/etc/inc/filter_log.inc:272 src/etc/inc/filter_log.inc:295
#, php-format
msgid ""
"There was a error parsing log entry: %s. Please report to mailing list or "
"forum."
msgstr ""
-#: src/etc/inc/filter_log.inc:425
+#: src/etc/inc/filter_log.inc:426
#, php-format
msgid ""
"There was a error parsing rule number: %s. Please report to mailing list or "
"forum."
msgstr ""
-#: src/etc/inc/filter_log.inc:435
+#: src/etc/inc/filter_log.inc:436
#, php-format
msgid ""
"There was a error parsing rule: %s. Please report to mailing list or forum."
msgstr ""
-#: src/etc/inc/filter_log.inc:449
+#: src/etc/inc/filter_log.inc:450
#, php-format
msgid "Service %1$s/%2$s: %3$s"
msgstr ""
@@ -1885,8 +1850,8 @@ msgstr ""
#: src/etc/inc/gmirror.inc:73 src/etc/inc/shaper.inc:805
#: src/etc/inc/shaper.inc:1201 src/etc/inc/shaper.inc:1414
-#: src/etc/inc/shaper.inc:3279 src/etc/inc/shaper.inc:3826
-#: src/etc/inc/shaper.inc:4139 src/usr/local/www/diag_gmirror.php:221
+#: src/etc/inc/shaper.inc:3281 src/etc/inc/shaper.inc:3828
+#: src/etc/inc/shaper.inc:4141 src/usr/local/www/diag_gmirror.php:221
#: src/usr/local/www/diag_gmirror.php:302
#: src/usr/local/www/firewall_aliases.php:196
#: src/usr/local/www/firewall_aliases_edit.php:141
@@ -1905,8 +1870,8 @@ msgstr ""
#: src/usr/local/www/load_balancer_virtual_server_edit.php:75
#: src/usr/local/www/load_balancer_virtual_server_edit.php:176
#: src/usr/local/www/pkg_mgr.php:65 src/usr/local/www/pkg_mgr.php:156
-#: src/usr/local/www/pkg_mgr_installed.php:77
-#: src/usr/local/www/services_captiveportal_filemanager.php:190
+#: src/usr/local/www/pkg_mgr_installed.php:75
+#: src/usr/local/www/services_captiveportal_filemanager.php:188
#: src/usr/local/www/services_checkip.php:87
#: src/usr/local/www/services_checkip_edit.php:63
#: src/usr/local/www/services_checkip_edit.php:130
@@ -1914,26 +1879,26 @@ msgstr ""
#: src/usr/local/www/status_gateways.php:59
#: src/usr/local/www/status_lb_pool.php:129
#: src/usr/local/www/status_lb_vs.php:62
-#: src/usr/local/www/status_openvpn.php:222
-#: src/usr/local/www/status_openvpn.php:278
-#: src/usr/local/www/system_camanager.php:352
-#: src/usr/local/www/system_certmanager.php:928
+#: src/usr/local/www/status_openvpn.php:224
+#: src/usr/local/www/status_openvpn.php:280
+#: src/usr/local/www/system_camanager.php:357
+#: src/usr/local/www/system_certmanager.php:949
#: src/usr/local/www/system_crlmanager.php:576
#: src/usr/local/www/system_gateways.php:242
#: src/usr/local/www/system_gateways_edit.php:108
#: src/usr/local/www/system_gateways_edit.php:604
-#: src/usr/local/www/system_groupmanager.php:236
-#: src/usr/local/www/system_usermanager.php:444
-#: src/usr/local/www/system_usermanager.php:494
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:57
+#: src/usr/local/www/system_groupmanager.php:230
+#: src/usr/local/www/system_usermanager.php:438
+#: src/usr/local/www/system_usermanager.php:488
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:59
#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:50
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:86
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:93
msgid "Name"
msgstr ""
-#: src/etc/inc/gmirror.inc:74 src/usr/local/www/diag_gmirror.php:222
-#: src/usr/local/www/easyrule.php:78 src/usr/local/www/index.php:289
-#: src/usr/local/www/pkg_mgr_install.php:475
+#: src/etc/inc/gmirror.inc:74 src/usr/local/www/diag_arp.php:336
+#: src/usr/local/www/diag_gmirror.php:222 src/usr/local/www/easyrule.php:78
+#: src/usr/local/www/index.php:289 src/usr/local/www/pkg_mgr_install.php:475
#: src/usr/local/www/status_captiveportal.php:92
#: src/usr/local/www/status_captiveportal_expire.php:53
#: src/usr/local/www/status_captiveportal_test.php:53
@@ -1946,7 +1911,7 @@ msgstr ""
#: src/usr/local/www/status_gateway_groups.php:47
#: src/usr/local/www/status_gateways.php:41
#: src/usr/local/www/status_gateways.php:65
-#: src/usr/local/www/status_graph.php:132
+#: src/usr/local/www/status_graph.php:120
#: src/usr/local/www/status_graph_cpu.php:33
#: src/usr/local/www/status_interfaces.php:78
#: src/usr/local/www/status_interfaces.php:94
@@ -1962,12 +1927,13 @@ msgstr ""
#: src/usr/local/www/status_logs_filter.php:102
#: src/usr/local/www/status_logs_filter_dynamic.php:82
#: src/usr/local/www/status_logs_filter_summary.php:67
-#: src/usr/local/www/status_logs_settings.php:180
+#: src/usr/local/www/status_logs_settings.php:188
#: src/usr/local/www/status_logs_vpn.php:84
#: src/usr/local/www/status_ntpd.php:254 src/usr/local/www/status_ntpd.php:266
#: src/usr/local/www/status_openvpn.php:30
-#: src/usr/local/www/status_openvpn.php:223
-#: src/usr/local/www/status_openvpn.php:279
+#: src/usr/local/www/status_openvpn.php:144
+#: src/usr/local/www/status_openvpn.php:225
+#: src/usr/local/www/status_openvpn.php:281
#: src/usr/local/www/status_pkglogs.php:71
#: src/usr/local/www/status_queues.php:110
#: src/usr/local/www/status_services.php:56
@@ -1976,9 +1942,9 @@ msgstr ""
#: src/usr/local/www/status_wireless.php:31
#: src/usr/local/www/status_wireless.php:62
#: src/usr/local/www/widgets/widgets/carp_status.widget.php:39
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:61
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:206
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:222
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:63
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:207
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:223
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:41
msgid "Status"
msgstr ""
@@ -2027,6 +1993,11 @@ msgstr ""
msgid "MONITOR: %1$s has high latency, omitting from routing group %2$s"
msgstr ""
+#: src/etc/inc/gwlb.inc:940
+#, php-format
+msgid "MONITOR: %1$s is available now, adding to routing group %2$s"
+msgstr ""
+
#: src/etc/inc/gwlb.inc:956
#, php-format
msgid ""
@@ -2144,137 +2115,137 @@ msgstr ""
msgid "Wrong parameters used during interface_bring_down"
msgstr ""
-#: src/etc/inc/interfaces.inc:1410
+#: src/etc/inc/interfaces.inc:1406
msgid "Enter CARP maintenance mode"
msgstr ""
-#: src/etc/inc/interfaces.inc:1596
+#: src/etc/inc/interfaces.inc:1592
#, php-format
msgid "Can't find PPP config for %s in interface_ppps_configure()."
msgstr ""
-#: src/etc/inc/interfaces.inc:1654
+#: src/etc/inc/interfaces.inc:1650
#, php-format
msgid ""
"Could not get a Local IP address for PPTP/L2TP link on %s in "
"interfaces_ppps_configure. Using 0.0.0.0 ip!"
msgstr ""
-#: src/etc/inc/interfaces.inc:1658
+#: src/etc/inc/interfaces.inc:1654
#, php-format
msgid ""
"Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in "
"interfaces_ppps_configure."
msgstr ""
-#: src/etc/inc/interfaces.inc:1665
+#: src/etc/inc/interfaces.inc:1661
#, php-format
msgid ""
"Device %s does not exist. PPP link cannot start without the modem device."
msgstr ""
-#: src/etc/inc/interfaces.inc:1670
+#: src/etc/inc/interfaces.inc:1666
#, php-format
msgid "Unknown %s configured as ppp interface."
msgstr ""
-#: src/etc/inc/interfaces.inc:1990
+#: src/etc/inc/interfaces.inc:1986
#, php-format
msgid "Error: cannot open mpd_%1$s.conf in interface_ppps_configure().%2$s"
msgstr ""
-#: src/etc/inc/interfaces.inc:2089
+#: src/etc/inc/interfaces.inc:2081
#, php-format
msgid "Starting 3gstats.php on device '%1$s' for interface '%2$s'"
msgstr ""
-#: src/etc/inc/interfaces.inc:2106
+#: src/etc/inc/interfaces.inc:2098
msgid "Configuring CARP settings..."
msgstr ""
-#: src/etc/inc/interfaces.inc:2147
+#: src/etc/inc/interfaces.inc:2139
msgid "waiting for pfsync..."
msgstr ""
-#: src/etc/inc/interfaces.inc:2153
+#: src/etc/inc/interfaces.inc:2145
#, php-format
msgid "pfsync done in %s seconds."
msgstr ""
-#: src/etc/inc/interfaces.inc:2154
+#: src/etc/inc/interfaces.inc:2146
msgid "Configuring CARP settings finalize..."
msgstr ""
-#: src/etc/inc/interfaces.inc:2377
+#: src/etc/inc/interfaces.inc:2369
#, php-format
msgid ""
"Interface specified for the virtual IP address %s does not exist. Skipping "
"this VIP."
msgstr ""
-#: src/etc/inc/interfaces.inc:2437
+#: src/etc/inc/interfaces.inc:2429
#, php-format
msgid "Interface %s changed to hostap mode"
msgstr ""
-#: src/etc/inc/interfaces.inc:2441
+#: src/etc/inc/interfaces.inc:2433
#, php-format
msgid "Interface %s changed to adhoc mode"
msgstr ""
-#: src/etc/inc/interfaces.inc:2445
+#: src/etc/inc/interfaces.inc:2437
#, php-format
msgid "Interface %s changed to infrastructure mode"
msgstr ""
-#: src/etc/inc/interfaces.inc:2458
+#: src/etc/inc/interfaces.inc:2450
#, php-format
msgid "Cloning new wireless interface %s"
msgstr ""
-#: src/etc/inc/interfaces.inc:2463
+#: src/etc/inc/interfaces.inc:2455
#, php-format
msgid "Failed to clone interface %1$s with error code %2$s, output %3$s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3048
+#: src/etc/inc/interfaces.inc:3047
#, php-format
msgid "OpenVPN: Resync server %s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3061
+#: src/etc/inc/interfaces.inc:3060
#, php-format
msgid "OpenVPN: Resync client %s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3196
+#: src/etc/inc/interfaces.inc:3195
#, php-format
msgid "Deny router advertisements for interface %s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3221
+#: src/etc/inc/interfaces.inc:3220
msgid "Generating new MAC address."
msgstr ""
-#: src/etc/inc/interfaces.inc:3227
+#: src/etc/inc/interfaces.inc:3226
#, php-format
msgid ""
"The INVALID MAC address (ff:ff:ff:ff:ff:ff) on interface %1$s has been "
"automatically replaced with %2$s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3293
+#: src/etc/inc/interfaces.inc:3292
#, php-format
msgid "There is a conflict on MTU between parent %1$s and VLAN(%2$s)"
msgstr ""
-#: src/etc/inc/interfaces.inc:3484 src/etc/inc/interfaces.inc:3553
+#: src/etc/inc/interfaces.inc:3483 src/etc/inc/interfaces.inc:3553
#: src/etc/inc/interfaces.inc:3617
#, php-format
msgid "Interface %1$s tracking non-existent interface %2$s"
msgstr ""
-#: src/etc/inc/interfaces.inc:3491 src/etc/inc/interfaces.inc:3497
+#: src/etc/inc/interfaces.inc:3490 src/etc/inc/interfaces.inc:3496
#, php-format
msgid "Interface %1$s configured via %2$s type %3$s"
msgstr ""
@@ -2304,49 +2275,49 @@ msgstr ""
msgid "sixto4 %1$s with ipv6 address %2$s based on %3$s ipv4 %4$s"
msgstr ""
-#: src/etc/inc/interfaces.inc:4150
+#: src/etc/inc/interfaces.inc:4169
#, php-format
msgid "Error: cannot open %s in DHCP6_Config_File_Override() for reading."
msgstr ""
-#: src/etc/inc/interfaces.inc:4178
+#: src/etc/inc/interfaces.inc:4197
#, php-format
msgid ""
"Error: cannot open dhclient_%s.conf in interface_dhcp_configure() for "
"writing."
msgstr ""
-#: src/etc/inc/interfaces.inc:4191
+#: src/etc/inc/interfaces.inc:4210
#, php-format
msgid "Invalid interface \"%s\" in interface_dhcp_configure()"
msgstr ""
-#: src/etc/inc/interfaces.inc:4247
+#: src/etc/inc/interfaces.inc:4266
#, php-format
msgid "Could not bring up %s interface in interface_dhcp_configure()"
msgstr ""
-#: src/etc/inc/interfaces.inc:4340
+#: src/etc/inc/interfaces.inc:4359
#, php-format
msgid "Error: cannot open %s in DHCP_Config_File_Override() for reading.\n"
msgstr ""
-#: src/etc/inc/interfaces.inc:5345 src/etc/inc/service-utils.inc:358
-#: src/usr/local/www/diag_backup.php:534
+#: src/etc/inc/interfaces.inc:5364 src/etc/inc/service-utils.inc:358
+#: src/usr/local/www/diag_backup.php:489
#: src/usr/local/www/diag_packet_capture.php:109
#: src/usr/local/www/firewall_nat_1to1_edit.php:405
#: src/usr/local/www/firewall_nat_edit.php:671
#: src/usr/local/www/firewall_nat_npt_edit.php:172
#: src/usr/local/www/firewall_rules.php:162
-#: src/usr/local/www/firewall_rules_edit.php:1037
-#: src/usr/local/www/head.inc:289 src/usr/local/www/head.inc:307
-#: src/usr/local/www/status_graph.php:61 src/usr/local/www/status_logs.php:53
+#: src/usr/local/www/firewall_rules_edit.php:1032
+#: src/usr/local/www/head.inc:287 src/usr/local/www/head.inc:305
+#: src/usr/local/www/status_graph.php:49 src/usr/local/www/status_logs.php:53
#: src/usr/local/www/status_logs_common.inc:96
-#: src/usr/local/www/status_logs_settings.php:212
+#: src/usr/local/www/status_logs_settings.php:220
#: src/usr/local/www/status_openvpn.php:30
#: src/usr/local/www/vpn_openvpn_client.php:392
#: src/usr/local/www/vpn_openvpn_csc.php:278
-#: src/usr/local/www/vpn_openvpn_server.php:559
+#: src/usr/local/www/vpn_openvpn_server.php:563
#: src/usr/local/www/widgets/include/openvpn.inc:22
msgid "OpenVPN"
msgstr ""
@@ -2380,12 +2351,12 @@ msgid "Kernel Interface"
msgstr ""
#: src/etc/inc/ipsec.inc:33 src/etc/inc/ipsec.inc:63
-#: src/usr/local/www/system_advanced_admin.php:299
+#: src/usr/local/www/system_advanced_admin.php:297
#: src/usr/local/www/system_advanced_firewall.php:384
-#: src/usr/local/www/system_advanced_misc.php:302
+#: src/usr/local/www/system_advanced_misc.php:301
#: src/usr/local/www/system_advanced_network.php:140
#: src/usr/local/www/system_advanced_network.php:153
-#: src/usr/local/www/system_advanced_notifications.php:195
+#: src/usr/local/www/system_advanced_notifications.php:202
#: src/usr/local/www/system_advanced_sysctl.php:143
msgid "Networking"
msgstr ""
@@ -2451,7 +2422,7 @@ msgid "My IP address"
msgstr ""
#: src/etc/inc/ipsec.inc:77 src/etc/inc/ipsec.inc:89
-#: src/usr/local/www/diag_arp.php:334 src/usr/local/www/services_dhcp.php:1304
+#: src/usr/local/www/diag_arp.php:333 src/usr/local/www/services_dhcp.php:1317
#: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:67
#: src/usr/local/www/services_dnsmasq_edit.php:77
#: src/usr/local/www/services_unbound_domainoverride_edit.php:63
@@ -2459,7 +2430,7 @@ msgstr ""
#: src/usr/local/www/status_captiveportal.php:150
#: src/usr/local/www/status_dhcp_leases.php:346
#: src/usr/local/www/system_advanced_network.php:180
-#: src/usr/local/www/system_certmanager.php:727
+#: src/usr/local/www/system_certmanager.php:740
#: src/usr/local/www/vpn_l2tp_users.php:96
#: src/usr/local/www/widgets/widgets/captive_portal_status.widget.php:82
msgid "IP address"
@@ -2481,12 +2452,12 @@ msgstr ""
msgid "KeyID tag"
msgstr ""
-#: src/etc/inc/ipsec.inc:82 src/usr/local/www/head.inc:269
+#: src/etc/inc/ipsec.inc:82 src/usr/local/www/head.inc:267
#: src/usr/local/www/services_checkip.php:65
#: src/usr/local/www/services_checkip_edit.php:106
-#: src/usr/local/www/services_dhcp.php:977
-#: src/usr/local/www/services_dhcp_edit.php:570
-#: src/usr/local/www/services_dhcpv6.php:735
+#: src/usr/local/www/services_dhcp.php:990
+#: src/usr/local/www/services_dhcp_edit.php:577
+#: src/usr/local/www/services_dhcpv6.php:730
#: src/usr/local/www/services_dyndns.php:66
#: src/usr/local/www/services_dyndns_edit.php:239
#: src/usr/local/www/services_rfc2136.php:58
@@ -2494,16 +2465,16 @@ msgstr ""
msgid "Dynamic DNS"
msgstr ""
-#: src/etc/inc/ipsec.inc:87 src/usr/local/www/diag_traceroute.php:136
+#: src/etc/inc/ipsec.inc:87 src/usr/local/www/diag_traceroute.php:142
#: src/usr/local/www/firewall_nat_1to1_edit.php:254
#: src/usr/local/www/firewall_nat_1to1_edit.php:296
#: src/usr/local/www/firewall_nat_edit.php:518
#: src/usr/local/www/firewall_nat_edit.php:558
#: src/usr/local/www/firewall_nat_edit.php:729
-#: src/usr/local/www/firewall_nat_out_edit.php:480
-#: src/usr/local/www/firewall_nat_out_edit.php:504
-#: src/usr/local/www/firewall_rules_edit.php:1434
-#: src/usr/local/www/interfaces.php:2916
+#: src/usr/local/www/firewall_nat_out_edit.php:495
+#: src/usr/local/www/firewall_nat_out_edit.php:519
+#: src/usr/local/www/firewall_rules_edit.php:1422
+#: src/usr/local/www/interfaces.php:2924
msgid "Any"
msgstr ""
@@ -2511,130 +2482,130 @@ msgstr ""
msgid "Peer IP address"
msgstr ""
-#: src/etc/inc/ipsec.inc:163
+#: src/etc/inc/ipsec.inc:166
msgid "Hybrid RSA + Xauth"
msgstr ""
-#: src/etc/inc/ipsec.inc:164
+#: src/etc/inc/ipsec.inc:167
msgid "Mutual RSA + Xauth"
msgstr ""
-#: src/etc/inc/ipsec.inc:165
+#: src/etc/inc/ipsec.inc:168
msgid "Mutual PSK + Xauth"
msgstr ""
-#: src/etc/inc/ipsec.inc:166
+#: src/etc/inc/ipsec.inc:169
msgid "EAP-TLS"
msgstr ""
-#: src/etc/inc/ipsec.inc:167
+#: src/etc/inc/ipsec.inc:170
msgid "EAP-RADIUS"
msgstr ""
-#: src/etc/inc/ipsec.inc:168
+#: src/etc/inc/ipsec.inc:171
msgid "EAP-MSChapv2"
msgstr ""
-#: src/etc/inc/ipsec.inc:169
+#: src/etc/inc/ipsec.inc:172
msgid "Mutual RSA"
msgstr ""
-#: src/etc/inc/ipsec.inc:170
+#: src/etc/inc/ipsec.inc:173
msgid "Mutual PSK"
msgstr ""
-#: src/etc/inc/ipsec.inc:181
+#: src/etc/inc/ipsec.inc:184
msgid "Tunnel IPv4"
msgstr ""
-#: src/etc/inc/ipsec.inc:182
+#: src/etc/inc/ipsec.inc:185
msgid "Tunnel IPv6"
msgstr ""
-#: src/etc/inc/ipsec.inc:183 src/usr/local/www/system_authservers.php:233
+#: src/etc/inc/ipsec.inc:186 src/usr/local/www/system_authservers.php:233
#: src/usr/local/www/system_authservers.php:524
msgid "Transport"
msgstr ""
-#: src/etc/inc/ipsec.inc:194
+#: src/etc/inc/ipsec.inc:197
msgid "off"
msgstr ""
-#: src/etc/inc/ipsec.inc:195
+#: src/etc/inc/ipsec.inc:198
msgid "1 (768 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:196
+#: src/etc/inc/ipsec.inc:199
msgid "2 (1024 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:197
+#: src/etc/inc/ipsec.inc:200
msgid "5 (1536 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:198
+#: src/etc/inc/ipsec.inc:201
msgid "14 (2048 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:199
+#: src/etc/inc/ipsec.inc:202
msgid "15 (3072 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:200
+#: src/etc/inc/ipsec.inc:203
msgid "16 (4096 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:201
+#: src/etc/inc/ipsec.inc:204
msgid "17 (6144 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:202
+#: src/etc/inc/ipsec.inc:205
msgid "18 (8192 bit)"
msgstr ""
-#: src/etc/inc/ipsec.inc:203
+#: src/etc/inc/ipsec.inc:206
msgid "19 (nist ecp256)"
msgstr ""
-#: src/etc/inc/ipsec.inc:204
+#: src/etc/inc/ipsec.inc:207
msgid "20 (nist ecp384)"
msgstr ""
-#: src/etc/inc/ipsec.inc:205
+#: src/etc/inc/ipsec.inc:208
msgid "21 (nist ecp521)"
msgstr ""
-#: src/etc/inc/ipsec.inc:206
+#: src/etc/inc/ipsec.inc:209
msgid "28 (brainpool ecp256)"
msgstr ""
-#: src/etc/inc/ipsec.inc:207
+#: src/etc/inc/ipsec.inc:210
msgid "29 (brainpool ecp384)"
msgstr ""
-#: src/etc/inc/ipsec.inc:208
+#: src/etc/inc/ipsec.inc:211
msgid "30 (brainpool ecp512)"
msgstr ""
-#: src/etc/inc/ipsec.inc:405 src/usr/local/www/vpn_ipsec.php:318
+#: src/etc/inc/ipsec.inc:408 src/usr/local/www/vpn_ipsec.php:318
msgid "Mobile Client"
msgstr ""
-#: src/etc/inc/ipsec.inc:408 src/etc/inc/pfsense-utils.inc:3149
-#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166
+#: src/etc/inc/ipsec.inc:411 src/etc/inc/pfsense-utils.inc:2984
+#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168
#: src/usr/local/www/diag_pftop.php:116
#: src/usr/local/www/firewall_nat_edit.php:893
-#: src/usr/local/www/firewall_rules_edit.php:1545
-#: src/usr/local/www/interfaces.php:1616 src/usr/local/www/interfaces.php:1617
-#: src/usr/local/www/interfaces.php:1641 src/usr/local/www/interfaces.php:1654
+#: src/usr/local/www/firewall_rules_edit.php:1533
+#: src/usr/local/www/interfaces.php:1619 src/usr/local/www/interfaces.php:1620
+#: src/usr/local/www/interfaces.php:1644 src/usr/local/www/interfaces.php:1657
#: src/usr/local/www/services_ntpd_gps.php:240
#: src/usr/local/www/services_ntpd_pps.php:148
-#: src/usr/local/www/system_advanced_misc.php:438
-#: src/usr/local/www/vpn_ipsec_phase2.php:546
+#: src/usr/local/www/system_advanced_misc.php:437
+#: src/usr/local/www/vpn_ipsec_phase2.php:541
msgid "None"
msgstr ""
-#: src/etc/inc/ipsec.inc:602
+#: src/etc/inc/ipsec.inc:605
msgid ""
"Unable to find IPsec daemon leases file. Could not display mobile user stats!"
msgstr ""
@@ -2679,26 +2650,41 @@ msgstr ""
msgid "New alert found: %s"
msgstr ""
-#: src/etc/inc/notices.inc:365
+#: src/etc/inc/notices.inc:377
#, php-format
-msgid "Message sent to %s OK"
+msgid "Could not send the message to %1$s -- Error: %2$s"
msgstr ""
-#: src/etc/inc/notices.inc:368 src/etc/inc/notices.inc:369
+#: src/etc/inc/notices.inc:383
#, php-format
-msgid "Could not send the message to %1$s -- Error: %2$s"
+msgid "Message sent to %s OK"
msgstr ""
-#: src/etc/inc/notices.inc:409 src/etc/inc/notices.inc:442
+#: src/etc/inc/notices.inc:420 src/etc/inc/notices.inc:476
msgid ""
"Growl IP Address is invalid. Check the setting in System Advanced "
"Notifications."
msgstr ""
-#: src/etc/inc/openvpn.inc:43 src/usr/local/www/firewall_rules.php:747
-#: src/usr/local/www/firewall_rules_edit.php:1584
-#: src/usr/local/www/firewall_rules_edit.php:1625
-#: src/usr/local/www/firewall_rules_edit.php:1632
+#: src/etc/inc/notices.inc:439
+#, php-format
+msgid "%s (%s) - Notification"
+msgstr ""
+
+#: src/etc/inc/notices.inc:443
+#, php-format
+msgid "Could not send Growl notification to %1$s -- Error: %2$s"
+msgstr ""
+
+#: src/etc/inc/notices.inc:501
+#, php-format
+msgid "Could not send register Growl on %1$s -- Error: %2$s"
+msgstr ""
+
+#: src/etc/inc/openvpn.inc:43 src/usr/local/www/firewall_rules.php:746
+#: src/usr/local/www/firewall_rules_edit.php:1572
+#: src/usr/local/www/firewall_rules_edit.php:1613
+#: src/usr/local/www/firewall_rules_edit.php:1620
#: src/usr/local/www/status_ipsec.php:329
#: src/usr/local/www/vpn_ipsec_mobile.php:462
#: src/usr/local/www/vpn_openvpn_client.php:501
@@ -2706,7 +2692,7 @@ msgid "none"
msgstr ""
#: src/etc/inc/openvpn.inc:44 src/usr/local/www/diag_pftop.php:94
-#: src/usr/local/www/firewall_rules_edit.php:1587
+#: src/usr/local/www/firewall_rules_edit.php:1575
#: src/usr/local/www/services_captiveportal.php:976
msgid "default"
msgstr ""
@@ -2760,126 +2746,130 @@ msgid "No Preference"
msgstr ""
#: src/etc/inc/openvpn.inc:103
-msgid "Disabled - No Compression"
+msgid "No Preference and Adaptive Compression Disabled"
msgstr ""
#: src/etc/inc/openvpn.inc:104
-msgid "Enabled with Adaptive Compression"
+msgid "Disabled - No Compression"
msgstr ""
#: src/etc/inc/openvpn.inc:105
+msgid "Enabled with Adaptive Compression"
+msgstr ""
+
+#: src/etc/inc/openvpn.inc:106
msgid "Enabled without Adaptive Compression"
msgstr ""
-#: src/etc/inc/openvpn.inc:109
+#: src/etc/inc/openvpn.inc:110
msgid "Subnet -- One IP address per client in a common subnet"
msgstr ""
-#: src/etc/inc/openvpn.inc:110
+#: src/etc/inc/openvpn.inc:111
msgid "net30 -- Isolated /30 network per client"
msgstr ""
-#: src/etc/inc/openvpn.inc:184
+#: src/etc/inc/openvpn.inc:185
msgid "None (Username and/or Password required)"
msgstr ""
-#: src/etc/inc/openvpn.inc:192
+#: src/etc/inc/openvpn.inc:193
msgid "===== Server Certificates ====="
msgstr ""
-#: src/etc/inc/openvpn.inc:193
+#: src/etc/inc/openvpn.inc:194
msgid "===== Non-Server Certificates ====="
msgstr ""
-#: src/etc/inc/openvpn.inc:203
+#: src/etc/inc/openvpn.inc:204
msgid "Server: Yes"
msgstr ""
-#: src/etc/inc/openvpn.inc:205
+#: src/etc/inc/openvpn.inc:206
msgid "Server: NO"
msgstr ""
-#: src/etc/inc/openvpn.inc:208
+#: src/etc/inc/openvpn.inc:209
#, php-format
msgid "CA: %s"
msgstr ""
-#: src/etc/inc/openvpn.inc:211 src/usr/local/www/system_certmanager.php:931
+#: src/etc/inc/openvpn.inc:212 src/usr/local/www/system_certmanager.php:952
#: src/usr/local/www/system_crlmanager.php:579
msgid "In Use"
msgstr ""
-#: src/etc/inc/openvpn.inc:214 src/usr/local/www/system_certmanager.php:994
+#: src/etc/inc/openvpn.inc:215 src/usr/local/www/system_certmanager.php:1015
msgid "Revoked"
msgstr ""
-#: src/etc/inc/openvpn.inc:377
+#: src/etc/inc/openvpn.inc:378
msgid "None (No Encryption)"
msgstr ""
-#: src/etc/inc/openvpn.inc:391
+#: src/etc/inc/openvpn.inc:392
msgid "None (No Authentication)"
msgstr ""
-#: src/etc/inc/openvpn.inc:396
+#: src/etc/inc/openvpn.inc:397
msgid "No Hardware Crypto Acceleration"
msgstr ""
-#: src/etc/inc/openvpn.inc:440
+#: src/etc/inc/openvpn.inc:441
#, php-format
msgid "The field '%s' must contain a valid IP address or domain name."
msgstr ""
-#: src/etc/inc/openvpn.inc:448
+#: src/etc/inc/openvpn.inc:449
#, php-format
msgid "The field '%s' must contain a valid port, ranging from 0 to 65535."
msgstr ""
-#: src/etc/inc/openvpn.inc:462
+#: src/etc/inc/openvpn.inc:463
#, php-format
msgid "The field '%1$s' must contain a single valid %2$s CIDR range."
msgstr ""
-#: src/etc/inc/openvpn.inc:477
+#: src/etc/inc/openvpn.inc:478
#, php-format
msgid ""
"The field '%1$s' must contain only valid %2$s CIDR range(s) separated by "
"commas."
msgstr ""
-#: src/etc/inc/openvpn.inc:1091
+#: src/etc/inc/openvpn.inc:1099
#, php-format
msgid "OpenVPN ID %1$s PID %2$s still running, killing."
msgstr ""
-#: src/etc/inc/openvpn.inc:1316
+#: src/etc/inc/openvpn.inc:1320
#, php-format
msgid "Resyncing OpenVPN instances for interface %s."
msgstr ""
-#: src/etc/inc/openvpn.inc:1318
+#: src/etc/inc/openvpn.inc:1322
msgid "Resyncing OpenVPN instances."
msgstr ""
-#: src/etc/inc/openvpn.inc:1351
+#: src/etc/inc/openvpn.inc:1355
#, php-format
msgid "Resyncing OpenVPN for gateway group %1$s server %2$s."
msgstr ""
-#: src/etc/inc/openvpn.inc:1360
+#: src/etc/inc/openvpn.inc:1364
#, php-format
msgid "Resyncing OpenVPN for gateway group %1$s client %2$s."
msgstr ""
-#: src/etc/inc/openvpn.inc:1369
+#: src/etc/inc/openvpn.inc:1373
msgid "openvpn_resync_gwgroup called with null gwgroup parameter."
msgstr ""
-#: src/etc/inc/openvpn.inc:1470 src/etc/inc/openvpn.inc:1597
+#: src/etc/inc/openvpn.inc:1474 src/etc/inc/openvpn.inc:1601
msgid "Unable to contact daemon"
msgstr ""
-#: src/etc/inc/openvpn.inc:1471 src/etc/inc/openvpn.inc:1598
+#: src/etc/inc/openvpn.inc:1475 src/etc/inc/openvpn.inc:1602
msgid "Service not running?"
msgstr ""
@@ -3007,132 +2997,132 @@ msgstr ""
msgid "Magic Packet sent (%1$s) to (%2$s) MAC=%3$s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:817 src/etc/inc/pfsense-utils.inc:839
+#: src/etc/inc/pfsense-utils.inc:816 src/etc/inc/pfsense-utils.inc:836
#, php-format
msgid "Restored %s of config file (maybe from CARP partner)"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:974
+#: src/etc/inc/pfsense-utils.inc:970
msgid "reload_interfaces_sync() is starting."
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:983
+#: src/etc/inc/pfsense-utils.inc:979
msgid "Enabling system routing"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:987
+#: src/etc/inc/pfsense-utils.inc:983
msgid "Cleaning up Interfaces"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1380
+#: src/etc/inc/pfsense-utils.inc:1365
msgid "No history data found!"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1512
+#: src/etc/inc/pfsense-utils.inc:1497
msgid "device not present! Is the modem attached to the system?"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1581
+#: src/etc/inc/pfsense-utils.inc:1566
msgid "running"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1582 src/usr/local/www/graph.php:196
+#: src/etc/inc/pfsense-utils.inc:1567 src/usr/local/www/graph.php:196
msgid "up"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1627
+#: src/etc/inc/pfsense-utils.inc:1612
msgid "blocking"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1627
+#: src/etc/inc/pfsense-utils.inc:1612
msgid "check for ethernet loops"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1630
+#: src/etc/inc/pfsense-utils.inc:1615
msgid "learning"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1633
+#: src/etc/inc/pfsense-utils.inc:1618
msgid "forwarding"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1767
+#: src/etc/inc/pfsense-utils.inc:1752
#, php-format
msgid "DNSCACHE: Found old IP %1$s and new IP %2$s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1787
+#: src/etc/inc/pfsense-utils.inc:1772
#, php-format
msgid "Loading %s cryptographic accelerator module."
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1804
+#: src/etc/inc/pfsense-utils.inc:1789
#, php-format
msgid "Loading %s thermal monitor module."
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:1880 src/etc/inc/pfsense-utils.inc:1935
+#: src/etc/inc/pfsense-utils.inc:1865 src/etc/inc/pfsense-utils.inc:1920
#, php-format
msgid "Download file failed with status code %1$s. URL: %2$s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2131
+#: src/etc/inc/pfsense-utils.inc:2116
#, php-format
msgid "Could not process non-existent file from alias: %s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2136
+#: src/etc/inc/pfsense-utils.inc:2121
#, php-format
msgid "Could not process empty file from alias: %s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2141
+#: src/etc/inc/pfsense-utils.inc:2126
#, php-format
msgid "Could not process aliases from alias: %s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2198
+#: src/etc/inc/pfsense-utils.inc:2183
#, php-format
msgid "Failed to download alias %s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2227
+#: src/etc/inc/pfsense-utils.inc:2212
msgid ""
"Alias archive is a .tar/tgz file which cannot be decompressed because "
"utility is missing!"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2237
+#: src/etc/inc/pfsense-utils.inc:2222
#, php-format
msgid "Could not open %s/aliases for writing!"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2243
+#: src/etc/inc/pfsense-utils.inc:2228
#, php-format
msgid "The following file could not be read %1$s from %2$s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2969
+#: src/etc/inc/pfsense-utils.inc:2804
msgid "English"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2970
+#: src/etc/inc/pfsense-utils.inc:2805
msgid "Portuguese (Brazil)"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:2971
+#: src/etc/inc/pfsense-utils.inc:2806
msgid "Turkish"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3157 src/etc/inc/pfsense-utils.inc:3172
-#: src/etc/inc/pfsense-utils.inc:3197
+#: src/etc/inc/pfsense-utils.inc:2992 src/etc/inc/pfsense-utils.inc:3007
+#: src/etc/inc/pfsense-utils.inc:3032
msgid "No Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3167 src/etc/inc/pfsense-utils.inc:3209
+#: src/etc/inc/pfsense-utils.inc:3002 src/etc/inc/pfsense-utils.inc:3044
#: src/usr/local/www/firewall_nat_out.php:229
#: src/usr/local/www/firewall_nat_out.php:233
-#: src/usr/local/www/interfaces.php:840 src/usr/local/www/interfaces.php:2899
+#: src/usr/local/www/interfaces.php:840 src/usr/local/www/interfaces.php:2907
#: src/usr/local/www/interfaces_wireless.php:100
#: src/usr/local/www/interfaces_wireless_edit.php:81
#: src/usr/local/www/interfaces_wireless_edit.php:187
@@ -3143,93 +3133,93 @@ msgstr ""
#: src/usr/local/www/load_balancer_virtual_server_edit.php:75
#: src/usr/local/www/status_lb_pool.php:130 src/usr/local/www/vpn_ipsec.php:251
#: src/usr/local/www/vpn_ipsec.php:393
-#: src/usr/local/www/vpn_ipsec_phase2.php:509
+#: src/usr/local/www/vpn_ipsec_phase2.php:504
msgid "Mode"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3173
+#: src/etc/inc/pfsense-utils.inc:3008
msgid "Restricted Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3174
+#: src/etc/inc/pfsense-utils.inc:3009
msgid "Valid Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3175
+#: src/etc/inc/pfsense-utils.inc:3010
msgid "Restricted Regional Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3176
+#: src/etc/inc/pfsense-utils.inc:3011
msgid "Powersaving Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3182
+#: src/etc/inc/pfsense-utils.inc:3017
msgid "Invalid SIM/locked State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3183
+#: src/etc/inc/pfsense-utils.inc:3018
msgid "Valid SIM State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3184
+#: src/etc/inc/pfsense-utils.inc:3019
msgid "Invalid SIM CS State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3185
+#: src/etc/inc/pfsense-utils.inc:3020
msgid "Invalid SIM PS State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3186
+#: src/etc/inc/pfsense-utils.inc:3021
msgid "Invalid SIM CS/PS State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3187
+#: src/etc/inc/pfsense-utils.inc:3022
msgid "Missing SIM State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3198
+#: src/etc/inc/pfsense-utils.inc:3033
msgid "Limited Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3214
+#: src/etc/inc/pfsense-utils.inc:3049
msgid "Initializing Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3215
+#: src/etc/inc/pfsense-utils.inc:3050
msgid "Network Lock error Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3216
+#: src/etc/inc/pfsense-utils.inc:3051
msgid "Network Locked Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3217
+#: src/etc/inc/pfsense-utils.inc:3052
msgid "Unlocked or correct MCC/MNC Service"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3223
+#: src/etc/inc/pfsense-utils.inc:3058
msgid "No action State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3224
+#: src/etc/inc/pfsense-utils.inc:3059
msgid "Network lock State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3225
+#: src/etc/inc/pfsense-utils.inc:3060
msgid "(U)SIM card lock State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3226
+#: src/etc/inc/pfsense-utils.inc:3061
msgid "Network Lock and (U)SIM card Lock State"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3317
+#: src/etc/inc/pfsense-utils.inc:3152
#, php-format
msgid ""
"Alias table restore failed exited with %1$s, the error is: %2$s %3$s%4$s"
msgstr ""
-#: src/etc/inc/pfsense-utils.inc:3319
+#: src/etc/inc/pfsense-utils.inc:3154
#, php-format
msgid ""
"Alias table restore succeeded exited with %1$s, the result is: %2$s %3$s%4$s"
@@ -3239,406 +3229,414 @@ msgstr ""
msgid "Warning, could not open log for writing."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:187
+#: src/etc/inc/pkg-utils.inc:183
#, php-format
msgid ""
"ERROR!!! An error occurred on pkg execution (rc = %d) with parameters '%s':"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:386 src/etc/inc/pkg-utils.inc:389
+#: src/etc/inc/pkg-utils.inc:379 src/etc/inc/pkg-utils.inc:382
msgid "ERROR: Error trying to get packages list. Aborting..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:421 src/etc/inc/pkg-utils.inc:424
+#: src/etc/inc/pkg-utils.inc:414 src/etc/inc/pkg-utils.inc:417
msgid "ERROR: Error trying to get package version. Aborting..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:473
+#: src/etc/inc/pkg-utils.inc:466
#, php-format
msgid "Running last steps of %s installation."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:486
+#: src/etc/inc/pkg-utils.inc:479
msgid "Resyncing configuration for all packages."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:509
+#: src/etc/inc/pkg-utils.inc:501
msgid "Syncing packages..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:532
+#: src/etc/inc/pkg-utils.inc:523
msgid "Removing package..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:565
+#: src/etc/inc/pkg-utils.inc:556
#, php-format
msgid ""
"The %s package is missing its configuration file and must be reinstalled."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:581
+#: src/etc/inc/pkg-utils.inc:572
#, php-format
msgid "Reinstalling package %1$s because its include file(%2$s) is missing!"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:584
+#: src/etc/inc/pkg-utils.inc:575
#, php-format
msgid "Reinstalling package %s failed. Take appropriate measures!!!"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:678
+#: src/etc/inc/pkg-utils.inc:668
msgid "Beginning package installation."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:679
+#: src/etc/inc/pkg-utils.inc:669
#, php-format
msgid "Beginning package installation for %s ."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:683
+#: src/etc/inc/pkg-utils.inc:673
msgid "Saving updated package information..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:686
+#: src/etc/inc/pkg-utils.inc:676
#, php-format
msgid "Installed %s package."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:690
+#: src/etc/inc/pkg-utils.inc:680
#, php-format
msgid "Overwrote previous installation of %s."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:691
+#: src/etc/inc/pkg-utils.inc:681
msgid "overwrite!"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:694
+#: src/etc/inc/pkg-utils.inc:684
#, php-format
msgid "Intermediate config write during package install for %s."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:699
+#: src/etc/inc/pkg-utils.inc:688
#, php-format
msgid "The %s package is not installed.%sInstallation aborted."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:703 src/etc/inc/pkg-utils.inc:735
-#: src/etc/inc/pkg-utils.inc:801
+#: src/etc/inc/pkg-utils.inc:692 src/etc/inc/pkg-utils.inc:724
+#: src/etc/inc/pkg-utils.inc:790
#, php-format
msgid "Failed to install package: %s."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:704 src/etc/inc/pkg-utils.inc:736
-#: src/etc/inc/pkg-utils.inc:802
+#: src/etc/inc/pkg-utils.inc:693 src/etc/inc/pkg-utils.inc:725
+#: src/etc/inc/pkg-utils.inc:791
msgid "Failed to install package."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:709
+#: src/etc/inc/pkg-utils.inc:698
msgid "Loading package configuration... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:712
+#: src/etc/inc/pkg-utils.inc:701
msgid "Configuring package components..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:724 src/etc/inc/pkg-utils.inc:898
+#: src/etc/inc/pkg-utils.inc:713 src/etc/inc/pkg-utils.inc:885
msgid "Loading package instructions..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:731
+#: src/etc/inc/pkg-utils.inc:720
#, php-format
msgid "Include %s is missing!"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:742
+#: src/etc/inc/pkg-utils.inc:731
msgid "Custom commands..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:745
+#: src/etc/inc/pkg-utils.inc:734
msgid "Executing custom_php_global_functions()..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:750
+#: src/etc/inc/pkg-utils.inc:739
msgid "Executing custom_php_install_command()..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:755
+#: src/etc/inc/pkg-utils.inc:744
msgid "Executing custom_php_resync_config_command()..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:762 src/etc/inc/pkg-utils.inc:846
+#: src/etc/inc/pkg-utils.inc:751 src/etc/inc/pkg-utils.inc:833
msgid "Menu items... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:779 src/etc/inc/pkg-utils.inc:861
+#: src/etc/inc/pkg-utils.inc:768 src/etc/inc/pkg-utils.inc:848
msgid "Services... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:796
+#: src/etc/inc/pkg-utils.inc:785
msgid "Loading package configuration... failed!"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:796
+#: src/etc/inc/pkg-utils.inc:785
msgid "Installation aborted."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:797
+#: src/etc/inc/pkg-utils.inc:786
msgid "Unable to load package configuration. Installation aborted."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:811
+#: src/etc/inc/pkg-utils.inc:800
msgid "Writing configuration... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:813
+#: src/etc/inc/pkg-utils.inc:802
#, php-format
msgid "Successfully installed package: %s."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:829
+#: src/etc/inc/pkg-utils.inc:817
#, php-format
msgid "The %s package is not installed.%sDeletion aborted."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:835
+#: src/etc/inc/pkg-utils.inc:822
#, php-format
msgid "Removing %s package... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:836
+#: src/etc/inc/pkg-utils.inc:823
#, php-format
msgid "Removing %s components..."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:889
+#: src/etc/inc/pkg-utils.inc:876
#, php-format
msgid "Intermediate config write during package removal for %s."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:905
+#: src/etc/inc/pkg-utils.inc:892
#, php-format
msgid "Include file %s could not be found for inclusion."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:923
+#: src/etc/inc/pkg-utils.inc:910
msgid "Deinstall commands... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:928
+#: src/etc/inc/pkg-utils.inc:915
msgid "Not executing custom deinstall hook because an include is missing."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:935
+#: src/etc/inc/pkg-utils.inc:922
msgid "Syslog entries... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:943
+#: src/etc/inc/pkg-utils.inc:930
msgid "Configuration... "
msgstr ""
-#: src/etc/inc/pkg-utils.inc:946
+#: src/etc/inc/pkg-utils.inc:933
#, php-format
msgid "Removed %s package."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:974
+#: src/etc/inc/pkg-utils.inc:960
msgid ""
"Waiting for Internet connection to update pkg metadata and finish package "
"reinstallation"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:987 src/etc/inc/pkg-utils.inc:1023
+#: src/etc/inc/pkg-utils.inc:973 src/etc/inc/pkg-utils.inc:1012
msgid "Package reinstall"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:988
+#: src/etc/inc/pkg-utils.inc:974
msgid ""
"Package reinstall process was ABORTED due to lack of internet connectivity"
msgstr ""
-#: src/etc/inc/pkg-utils.inc:1024
+#: src/etc/inc/pkg-utils.inc:1013
#, php-format
msgid ""
"Package %s does not exist in current %s version and it has been removed."
msgstr ""
-#: src/etc/inc/pkg-utils.inc:1045
+#: src/etc/inc/pkg-utils.inc:1034
msgid "Stopping all packages."
msgstr ""
#: src/etc/inc/priv/user.priv.inc:6
-msgid "User - Services: Captive Portal login"
+msgid "System - HA node sync"
msgstr ""
#: src/etc/inc/priv/user.priv.inc:7
-msgid "Indicates whether the user is able to login on the captive portal."
+msgid "Allow access to authenticate this user for HA sync via XMLRPC"
msgstr ""
#: src/etc/inc/priv/user.priv.inc:10
-msgid "WebCfg - Help pages"
+msgid "User - Services: Captive Portal login"
msgstr ""
#: src/etc/inc/priv/user.priv.inc:11
+msgid "Indicates whether the user is able to login on the captive portal."
+msgstr ""
+
+#: src/etc/inc/priv/user.priv.inc:14
+msgid "WebCfg - Help pages"
+msgstr ""
+
+#: src/etc/inc/priv/user.priv.inc:15
msgid "Show all items on help menu and allow access to Help shortcut links"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:16
+#: src/etc/inc/priv/user.priv.inc:20
msgid "WebCfg - Dashboard (all)"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:17
+#: src/etc/inc/priv/user.priv.inc:21
msgid "Allow access to all pages required for the dashboard."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:28
+#: src/etc/inc/priv/user.priv.inc:32
msgid "WebCfg - Dashboard widgets (direct access)."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:29
+#: src/etc/inc/priv/user.priv.inc:33
msgid ""
"Allow direct access to all Dashboard widget pages, required for some widgets "
"using AJAX."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:34
+#: src/etc/inc/priv/user.priv.inc:38
msgid "User - Config: Deny Config Write"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:35
+#: src/etc/inc/priv/user.priv.inc:39
msgid "If present, ignores requests from this user to write config.xml."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:38
+#: src/etc/inc/priv/user.priv.inc:42
msgid "User - System: Shell account access"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:39
+#: src/etc/inc/priv/user.priv.inc:43
msgid "Indicates whether the user is able to login for example via SSH."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:42
+#: src/etc/inc/priv/user.priv.inc:46
msgid "User - System: Copy files (scp)"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:43
+#: src/etc/inc/priv/user.priv.inc:47
msgid "Indicates whether the user is allowed to copy files "
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:49
+#: src/etc/inc/priv/user.priv.inc:53
msgid "User - System: SSH tunneling"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:50
+#: src/etc/inc/priv/user.priv.inc:54
msgid ""
"Indicates whether the user is able to login for tunneling via SSH when they "
"have no shell access. Note: User - System - Copy files conflicts with this "
"privilege."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:56
+#: src/etc/inc/priv/user.priv.inc:60
msgid "User - VPN: IPsec xauth Dialin"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:57
+#: src/etc/inc/priv/user.priv.inc:61
msgid ""
"Indicates whether the user is allowed to dial in via IPsec xauth (Note: Does "
"not allow shell access, but may allow the user to create SSH tunnels)"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:62
+#: src/etc/inc/priv/user.priv.inc:66
msgid "User - VPN: L2TP Dialin"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:63
+#: src/etc/inc/priv/user.priv.inc:67
msgid "Indicates whether the user is allowed to dial in via L2TP"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:66
+#: src/etc/inc/priv/user.priv.inc:70
msgid "User - VPN: PPPOE Dialin"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:67
+#: src/etc/inc/priv/user.priv.inc:71
msgid "Indicates whether the user is allowed to dial in via PPPOE"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:70
+#: src/etc/inc/priv/user.priv.inc:74
msgid "WebCfg - Status: System Logs: Portal Auth"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:71
+#: src/etc/inc/priv/user.priv.inc:75
msgid "Allow access to the 'Status: System Logs: Portal Auth' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:76
+#: src/etc/inc/priv/user.priv.inc:80
msgid "WebCfg - Status: Logs: DHCP"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:77
+#: src/etc/inc/priv/user.priv.inc:81
msgid "Allow access to the 'Status: Logs: DHCP' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:82
+#: src/etc/inc/priv/user.priv.inc:86
msgid "WebCfg - Status: Logs: Gateways"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:83
+#: src/etc/inc/priv/user.priv.inc:87
msgid "Allow access to the 'Status: Logs: System: Gateways' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:88
+#: src/etc/inc/priv/user.priv.inc:92
msgid "WebCfg - Status: Logs: Resolver"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:89
+#: src/etc/inc/priv/user.priv.inc:93
msgid "Allow access to the 'Status: Logs: System: Resolver' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:94 src/etc/inc/priv/user.priv.inc:112
+#: src/etc/inc/priv/user.priv.inc:98 src/etc/inc/priv/user.priv.inc:116
msgid "WebCfg - Status: System Logs: IPsec VPN"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:95 src/etc/inc/priv/user.priv.inc:113
+#: src/etc/inc/priv/user.priv.inc:99 src/etc/inc/priv/user.priv.inc:117
msgid "Allow access to the 'Status: System Logs: IPsec VPN' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:100
+#: src/etc/inc/priv/user.priv.inc:104
msgid "WebCfg - Status: System Logs: NTP"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:101
+#: src/etc/inc/priv/user.priv.inc:105
msgid "Allow access to the 'Status: System Logs: NTP' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:106
+#: src/etc/inc/priv/user.priv.inc:110
msgid "WebCfg - Status: System Logs: OpenVPN"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:107
+#: src/etc/inc/priv/user.priv.inc:111
msgid "Allow access to the 'Status: System Logs: OpenVPN' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:118
+#: src/etc/inc/priv/user.priv.inc:122
msgid "WebCfg - Status: System Logs: Load Balancer"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:119
+#: src/etc/inc/priv/user.priv.inc:123
msgid "Allow access to the 'Status: System Logs: Load Balancer' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:124
+#: src/etc/inc/priv/user.priv.inc:128
msgid "WebCfg - Status: System Logs: Routing"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:125
+#: src/etc/inc/priv/user.priv.inc:129
msgid "Allow access to the 'Status: System Logs: System: Routing' page."
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:130
+#: src/etc/inc/priv/user.priv.inc:134
msgid "WebCfg - Status: System Logs: Wireless"
msgstr ""
-#: src/etc/inc/priv/user.priv.inc:131
+#: src/etc/inc/priv/user.priv.inc:135
msgid "Allow access to the 'Status: System Logs: System: Wireless' page."
msgstr ""
@@ -3763,1591 +3761,1575 @@ msgid "Allows access to the 'Diagnostics: Limiter Info' page"
msgstr ""
#: src/etc/inc/priv.defs.inc:109
-msgid "WebCfg - Diagnostics: NanoBSD"
-msgstr ""
-
-#: src/etc/inc/priv.defs.inc:110
-msgid "Allow access to the 'Diagnostics: NanoBSD' page."
-msgstr ""
-
-#: src/etc/inc/priv.defs.inc:115
msgid "WebCfg - Diagnostics: NDP Table"
msgstr ""
-#: src/etc/inc/priv.defs.inc:116
+#: src/etc/inc/priv.defs.inc:110
msgid "Allow access to the 'Diagnostics: NDP Table' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:121
+#: src/etc/inc/priv.defs.inc:115
msgid "WebCfg - Diagnostics: Packet Capture"
msgstr ""
-#: src/etc/inc/priv.defs.inc:122
+#: src/etc/inc/priv.defs.inc:116
msgid "Allow access to the 'Diagnostics: Packet Capture' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:127
+#: src/etc/inc/priv.defs.inc:121
msgid "WebCfg - Diagnostics: pfInfo"
msgstr ""
-#: src/etc/inc/priv.defs.inc:128
+#: src/etc/inc/priv.defs.inc:122
msgid "Allows access to the 'Diagnostics: pfInfo' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:133
+#: src/etc/inc/priv.defs.inc:127
msgid "WebCfg - Diagnostics: pfTop"
msgstr ""
-#: src/etc/inc/priv.defs.inc:134
+#: src/etc/inc/priv.defs.inc:128
msgid "Allows access to the 'Diagnostics: pfTop' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:139
+#: src/etc/inc/priv.defs.inc:133
msgid "WebCfg - Diagnostics: Ping"
msgstr ""
-#: src/etc/inc/priv.defs.inc:140
+#: src/etc/inc/priv.defs.inc:134
msgid "Allow access to the 'Diagnostics: Ping' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:145
+#: src/etc/inc/priv.defs.inc:139
msgid "WebCfg - Diagnostics: Reboot System"
msgstr ""
-#: src/etc/inc/priv.defs.inc:146
+#: src/etc/inc/priv.defs.inc:140
msgid "Allow access to the 'Diagnostics: Reboot System' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:151
+#: src/etc/inc/priv.defs.inc:145
msgid "WebCfg - Diagnostics: Reset states"
msgstr ""
-#: src/etc/inc/priv.defs.inc:152
+#: src/etc/inc/priv.defs.inc:146
msgid "Allow access to the 'Diagnostics: Reset states' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:157
+#: src/etc/inc/priv.defs.inc:151
msgid "WebCfg - Diagnostics: Routing tables"
msgstr ""
-#: src/etc/inc/priv.defs.inc:158
+#: src/etc/inc/priv.defs.inc:152
msgid "Allow access to the 'Diagnostics: Routing tables' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:163
+#: src/etc/inc/priv.defs.inc:157
msgid "WebCfg - Diagnostics: S.M.A.R.T. Status"
msgstr ""
-#: src/etc/inc/priv.defs.inc:164
+#: src/etc/inc/priv.defs.inc:158
msgid "Allow access to the 'Diagnostics: S.M.A.R.T. Status' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:169
+#: src/etc/inc/priv.defs.inc:163
msgid "WebCfg - Diagnostics: Sockets"
msgstr ""
-#: src/etc/inc/priv.defs.inc:170
+#: src/etc/inc/priv.defs.inc:164
msgid "Allow access to the 'Diagnostics: Sockets' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:175
+#: src/etc/inc/priv.defs.inc:169
msgid "WebCfg - Diagnostics: States Summary"
msgstr ""
-#: src/etc/inc/priv.defs.inc:176
+#: src/etc/inc/priv.defs.inc:170
msgid "Allow access to the 'Diagnostics: States Summary' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:181
+#: src/etc/inc/priv.defs.inc:175
msgid "WebCfg - Diagnostics: System Activity"
msgstr ""
-#: src/etc/inc/priv.defs.inc:182
+#: src/etc/inc/priv.defs.inc:176
msgid "Allows access to the 'Diagnostics: System Activity' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:187
+#: src/etc/inc/priv.defs.inc:181
msgid "WebCfg - Diagnostics: pf Table IP addresses"
msgstr ""
-#: src/etc/inc/priv.defs.inc:188
+#: src/etc/inc/priv.defs.inc:182
msgid "Allow access to the 'Diagnostics: Tables' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:193
+#: src/etc/inc/priv.defs.inc:187
msgid "WebCfg - Diagnostics: Test Port"
msgstr ""
-#: src/etc/inc/priv.defs.inc:194
+#: src/etc/inc/priv.defs.inc:188
msgid "Allow access to the 'Diagnostics: Test Port' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:199
+#: src/etc/inc/priv.defs.inc:193
msgid "WebCfg - Diagnostics: Traceroute"
msgstr ""
-#: src/etc/inc/priv.defs.inc:200
+#: src/etc/inc/priv.defs.inc:194
msgid "Allow access to the 'Diagnostics: Traceroute' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:205
+#: src/etc/inc/priv.defs.inc:199
msgid "WebCfg - Firewall: Easy Rule add/status"
msgstr ""
-#: src/etc/inc/priv.defs.inc:206
+#: src/etc/inc/priv.defs.inc:200
msgid "Allow access to the 'Firewall: Easy Rule' add/status page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:211
+#: src/etc/inc/priv.defs.inc:205
msgid "WebCfg - Firewall: Aliases"
msgstr ""
-#: src/etc/inc/priv.defs.inc:212
+#: src/etc/inc/priv.defs.inc:206
msgid "Allow access to the 'Firewall: Aliases' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:217
+#: src/etc/inc/priv.defs.inc:211
msgid "WebCfg - Firewall: Alias: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:218
+#: src/etc/inc/priv.defs.inc:212
msgid "Allow access to the 'Firewall: Alias: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:223
+#: src/etc/inc/priv.defs.inc:217
msgid "WebCfg - Firewall: Alias: Import"
msgstr ""
-#: src/etc/inc/priv.defs.inc:224
+#: src/etc/inc/priv.defs.inc:218
msgid "Allow access to the 'Firewall: Alias: Import' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:229
+#: src/etc/inc/priv.defs.inc:223
msgid "WebCfg - Firewall: NAT: Port Forward"
msgstr ""
-#: src/etc/inc/priv.defs.inc:230
+#: src/etc/inc/priv.defs.inc:224
msgid "Allow access to the 'Firewall: NAT: Port Forward' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:235
+#: src/etc/inc/priv.defs.inc:229
msgid "WebCfg - Firewall: NAT: 1:1"
msgstr ""
-#: src/etc/inc/priv.defs.inc:236
+#: src/etc/inc/priv.defs.inc:230
msgid "Allow access to the 'Firewall: NAT: 1:1' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:241
+#: src/etc/inc/priv.defs.inc:235
msgid "WebCfg - Firewall: NAT: 1:1: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:242
+#: src/etc/inc/priv.defs.inc:236
msgid "Allow access to the 'Firewall: NAT: 1:1: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:247
+#: src/etc/inc/priv.defs.inc:241
msgid "WebCfg - Firewall: NAT: Port Forward: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:248
+#: src/etc/inc/priv.defs.inc:242
msgid "Allow access to the 'Firewall: NAT: Port Forward: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:253
+#: src/etc/inc/priv.defs.inc:247
msgid "WebCfg - Firewall: NAT: NPt"
msgstr ""
-#: src/etc/inc/priv.defs.inc:254
+#: src/etc/inc/priv.defs.inc:248
msgid "Allow access to the 'Firewall: NAT: NPt' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:259
+#: src/etc/inc/priv.defs.inc:253
msgid "WebCfg - Firewall: NAT: NPt: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:260
+#: src/etc/inc/priv.defs.inc:254
msgid "Allow access to the 'Firewall: NAT: NPt: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:265
+#: src/etc/inc/priv.defs.inc:259
msgid "WebCfg - Firewall: NAT: Outbound"
msgstr ""
-#: src/etc/inc/priv.defs.inc:266
+#: src/etc/inc/priv.defs.inc:260
msgid "Allow access to the 'Firewall: NAT: Outbound' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:271
+#: src/etc/inc/priv.defs.inc:265
msgid "WebCfg - Firewall: NAT: Outbound: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:272
+#: src/etc/inc/priv.defs.inc:266
msgid "Allow access to the 'Firewall: NAT: Outbound: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:277
+#: src/etc/inc/priv.defs.inc:271
msgid "WebCfg - Firewall: Rules"
msgstr ""
-#: src/etc/inc/priv.defs.inc:278
+#: src/etc/inc/priv.defs.inc:272
msgid "Allow access to the 'Firewall: Rules' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:283
+#: src/etc/inc/priv.defs.inc:277
msgid "WebCfg - Firewall: Rules: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:284
+#: src/etc/inc/priv.defs.inc:278
msgid "Allow access to the 'Firewall: Rules: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:289
+#: src/etc/inc/priv.defs.inc:283
msgid "WebCfg - Firewall: Schedules"
msgstr ""
-#: src/etc/inc/priv.defs.inc:290
+#: src/etc/inc/priv.defs.inc:284
msgid "Allow access to the 'Firewall: Schedules' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:295
+#: src/etc/inc/priv.defs.inc:289
msgid "WebCfg - Firewall: Schedules: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:296
+#: src/etc/inc/priv.defs.inc:290
msgid "Allow access to the 'Firewall: Schedules: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:301
+#: src/etc/inc/priv.defs.inc:295
msgid "WebCfg - Firewall: Traffic Shaper"
msgstr ""
-#: src/etc/inc/priv.defs.inc:302
+#: src/etc/inc/priv.defs.inc:296
msgid "Allow access to the 'Firewall: Traffic Shaper' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:307
+#: src/etc/inc/priv.defs.inc:301
msgid "WebCfg - Firewall: Traffic Shaper: Queues"
msgstr ""
-#: src/etc/inc/priv.defs.inc:308
+#: src/etc/inc/priv.defs.inc:302
msgid "Allow access to the 'Firewall: Traffic Shaper: Queues' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:313
+#: src/etc/inc/priv.defs.inc:307
msgid "WebCfg - Firewall: Traffic Shaper: Limiters"
msgstr ""
-#: src/etc/inc/priv.defs.inc:314
+#: src/etc/inc/priv.defs.inc:308
msgid "Allow access to the 'Firewall: Traffic Shaper: Limiters' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:319
+#: src/etc/inc/priv.defs.inc:313
msgid "WebCfg - Firewall: Traffic Shaper: Wizard"
msgstr ""
-#: src/etc/inc/priv.defs.inc:320
+#: src/etc/inc/priv.defs.inc:314
msgid "Allow access to the 'Firewall: Traffic Shaper: Wizard' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:325
+#: src/etc/inc/priv.defs.inc:319
msgid "WebCfg - Firewall: Virtual IP Addresses"
msgstr ""
-#: src/etc/inc/priv.defs.inc:326
+#: src/etc/inc/priv.defs.inc:320
msgid "Allow access to the 'Firewall: Virtual IP Addresses' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:331
+#: src/etc/inc/priv.defs.inc:325
msgid "WebCfg - Firewall: Virtual IP Address: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:332
+#: src/etc/inc/priv.defs.inc:326
msgid "Allow access to the 'Firewall: Virtual IP Address: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:337
+#: src/etc/inc/priv.defs.inc:331
msgid "WebCfg - AJAX: Get Service Providers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:338
+#: src/etc/inc/priv.defs.inc:332
msgid "Allow access to the 'AJAX: Service Providers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:343
+#: src/etc/inc/priv.defs.inc:337
msgid "WebCfg - AJAX: Get Stats"
msgstr ""
-#: src/etc/inc/priv.defs.inc:344
+#: src/etc/inc/priv.defs.inc:338
msgid "Allow access to the 'AJAX: Get Stats' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:349
+#: src/etc/inc/priv.defs.inc:343
msgid "WebCfg - Diagnostics: Interface Traffic"
msgstr ""
-#: src/etc/inc/priv.defs.inc:350
+#: src/etc/inc/priv.defs.inc:344
msgid "Allow access to the 'Diagnostics: Interface Traffic' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:355
+#: src/etc/inc/priv.defs.inc:349
msgid "WebCfg - Diagnostics: CPU Utilization"
msgstr ""
-#: src/etc/inc/priv.defs.inc:356
+#: src/etc/inc/priv.defs.inc:350
msgid "Allow access to the 'Diagnostics: CPU Utilization' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:362
+#: src/etc/inc/priv.defs.inc:356
msgid "WebCfg - XMLRPC Interface Stats"
msgstr ""
-#: src/etc/inc/priv.defs.inc:363
+#: src/etc/inc/priv.defs.inc:357
msgid "Allow access to the 'XMLRPC Interface Stats' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:368
+#: src/etc/inc/priv.defs.inc:362
msgid "WebCfg - System: Login / Logout / Dashboard"
msgstr ""
-#: src/etc/inc/priv.defs.inc:369
+#: src/etc/inc/priv.defs.inc:363
msgid "Allow access to the 'System: Login / Logout' page and Dashboard."
msgstr ""
-#: src/etc/inc/priv.defs.inc:374
+#: src/etc/inc/priv.defs.inc:368
msgid "WebCfg - Interfaces: WAN"
msgstr ""
-#: src/etc/inc/priv.defs.inc:375
+#: src/etc/inc/priv.defs.inc:369
msgid "Allow access to the 'Interfaces' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:380
+#: src/etc/inc/priv.defs.inc:374
msgid "WebCfg - Interfaces: Interface Assignments"
msgstr ""
-#: src/etc/inc/priv.defs.inc:381
+#: src/etc/inc/priv.defs.inc:375
msgid "Allow access to the 'Interfaces: Interface Assignments' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:386
+#: src/etc/inc/priv.defs.inc:380
msgid "WebCfg - Interfaces: Bridge"
msgstr ""
-#: src/etc/inc/priv.defs.inc:387
+#: src/etc/inc/priv.defs.inc:381
msgid "Allow access to the 'Interfaces: Bridge' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:392
+#: src/etc/inc/priv.defs.inc:386
msgid "WebCfg - Interfaces: Bridge edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:393
+#: src/etc/inc/priv.defs.inc:387
msgid "Allow access to the 'Interfaces: Bridge : Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:398
+#: src/etc/inc/priv.defs.inc:392
msgid "WebCfg - Interfaces: GIF"
msgstr ""
-#: src/etc/inc/priv.defs.inc:399
+#: src/etc/inc/priv.defs.inc:393
msgid "Allow access to the 'Interfaces: GIF' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:404
+#: src/etc/inc/priv.defs.inc:398
msgid "WebCfg - Interfaces: GIF: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:405
+#: src/etc/inc/priv.defs.inc:399
msgid "Allow access to the 'Interfaces: GIF: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:410
+#: src/etc/inc/priv.defs.inc:404
msgid "WebCfg - Interfaces: GRE"
msgstr ""
-#: src/etc/inc/priv.defs.inc:411
+#: src/etc/inc/priv.defs.inc:405
msgid "Allow access to the 'Interfaces: GRE' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:416
+#: src/etc/inc/priv.defs.inc:410
msgid "WebCfg - Interfaces: GRE: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:417
+#: src/etc/inc/priv.defs.inc:411
msgid "Allow access to the 'Interfaces: GRE: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:422
+#: src/etc/inc/priv.defs.inc:416
msgid "WebCfg - Interfaces: Groups"
msgstr ""
-#: src/etc/inc/priv.defs.inc:423
+#: src/etc/inc/priv.defs.inc:417
msgid "Create interface groups"
msgstr ""
-#: src/etc/inc/priv.defs.inc:428
+#: src/etc/inc/priv.defs.inc:422
msgid "WebCfg - Interfaces: Groups: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:429
+#: src/etc/inc/priv.defs.inc:423
msgid "Allow access to the 'Interfaces: Groups: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:434
+#: src/etc/inc/priv.defs.inc:428
msgid "WebCfg - Interfaces: LAGG:"
msgstr ""
-#: src/etc/inc/priv.defs.inc:435
+#: src/etc/inc/priv.defs.inc:429
msgid "Allow access to the 'Interfaces: LAGG' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:440
+#: src/etc/inc/priv.defs.inc:434
msgid "WebCfg - Interfaces: LAGG: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:441
+#: src/etc/inc/priv.defs.inc:435
msgid "Allow access to the 'Interfaces: LAGG: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:446
+#: src/etc/inc/priv.defs.inc:440
msgid "WebCfg - Interfaces: PPPs"
msgstr ""
-#: src/etc/inc/priv.defs.inc:447
+#: src/etc/inc/priv.defs.inc:441
msgid "Allow access to the 'Interfaces: PPPs' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:452
+#: src/etc/inc/priv.defs.inc:446
msgid "WebCfg - Interfaces: PPPs: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:453
+#: src/etc/inc/priv.defs.inc:447
msgid "Allow access to the 'Interfaces: PPPs: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:458
+#: src/etc/inc/priv.defs.inc:452
msgid "WebCfg - Interfaces: QinQ"
msgstr ""
-#: src/etc/inc/priv.defs.inc:459
+#: src/etc/inc/priv.defs.inc:453
msgid "Allow access to the 'Interfaces: QinQ' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:464
+#: src/etc/inc/priv.defs.inc:458
msgid "WebCfg - Interfaces: QinQ: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:465
+#: src/etc/inc/priv.defs.inc:459
msgid "Allow access to 'Interfaces: QinQ: Edit' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:470
+#: src/etc/inc/priv.defs.inc:464
msgid "WebCfg - Interfaces: VLAN"
msgstr ""
-#: src/etc/inc/priv.defs.inc:471
+#: src/etc/inc/priv.defs.inc:465
msgid "Allow access to the 'Interfaces: VLAN' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:476
+#: src/etc/inc/priv.defs.inc:470
msgid "WebCfg - Interfaces: VLAN: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:477
+#: src/etc/inc/priv.defs.inc:471
msgid "Allow access to the 'Interfaces: VLAN: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:482
+#: src/etc/inc/priv.defs.inc:476
msgid "WebCfg - Interfaces: Wireless"
msgstr ""
-#: src/etc/inc/priv.defs.inc:483
+#: src/etc/inc/priv.defs.inc:477
msgid "Allow access to the 'Interfaces: Wireless' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:488
+#: src/etc/inc/priv.defs.inc:482
msgid "WebCfg - Interfaces: Wireless: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:489
+#: src/etc/inc/priv.defs.inc:483
msgid "Allow access to the 'Interfaces: Wireless: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:494
+#: src/etc/inc/priv.defs.inc:488
msgid "WebCfg - System: License"
msgstr ""
-#: src/etc/inc/priv.defs.inc:495
+#: src/etc/inc/priv.defs.inc:489
msgid "Allow access to the 'System: License' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:500
+#: src/etc/inc/priv.defs.inc:494
msgid "WebCfg - Services: Load Balancer: Monitors"
msgstr ""
-#: src/etc/inc/priv.defs.inc:501
+#: src/etc/inc/priv.defs.inc:495
msgid "Allow access to the 'Services: Load Balancer: Monitors' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:506
+#: src/etc/inc/priv.defs.inc:500
msgid "WebCfg - Services: Load Balancer: Monitor: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:507
+#: src/etc/inc/priv.defs.inc:501
msgid "Allow access to the 'Services: Load Balancer: Monitor: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:512
+#: src/etc/inc/priv.defs.inc:506
msgid "WebCfg - Load Balancer: Pool"
msgstr ""
-#: src/etc/inc/priv.defs.inc:513
+#: src/etc/inc/priv.defs.inc:507
msgid "Allow access to the 'Load Balancer: Pool' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:518
+#: src/etc/inc/priv.defs.inc:512
msgid "WebCfg - Load Balancer: Pool: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:519
+#: src/etc/inc/priv.defs.inc:513
msgid "Allow access to the 'Load Balancer: Pool: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:524
+#: src/etc/inc/priv.defs.inc:518
msgid "WebCfg - Services: Load Balancer: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:525
+#: src/etc/inc/priv.defs.inc:519
msgid "Allow access to the 'Settings: Load Balancer: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:530
+#: src/etc/inc/priv.defs.inc:524
msgid "WebCfg - Services: Load Balancer: Virtual Servers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:531
+#: src/etc/inc/priv.defs.inc:525
msgid "Allow access to the 'Services: Load Balancer: Virtual Servers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:536
+#: src/etc/inc/priv.defs.inc:530
msgid "WebCfg - Load Balancer: Virtual Server: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:537
+#: src/etc/inc/priv.defs.inc:531
msgid "Allow access to the 'Load Balancer: Virtual Server: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:542
+#: src/etc/inc/priv.defs.inc:536
msgid "WebCfg - Package: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:543
+#: src/etc/inc/priv.defs.inc:537
msgid "Allow access to the 'Package: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:548
+#: src/etc/inc/priv.defs.inc:542
msgid "WebCfg - Package: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:549
+#: src/etc/inc/priv.defs.inc:543
msgid "Allow access to the 'Package: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:554
+#: src/etc/inc/priv.defs.inc:548
msgid "WebCfg - System: Package Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:555
+#: src/etc/inc/priv.defs.inc:549
msgid "Allow access to the 'System: Package Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:560
+#: src/etc/inc/priv.defs.inc:554
msgid "WebCfg - System: Package Manager: Install Package"
msgstr ""
-#: src/etc/inc/priv.defs.inc:561
+#: src/etc/inc/priv.defs.inc:555
msgid "Allow access to the 'System: Package Manager: Install Package' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:566
+#: src/etc/inc/priv.defs.inc:560
msgid "WebCfg - System: Package Manager: Installed"
msgstr ""
-#: src/etc/inc/priv.defs.inc:567
+#: src/etc/inc/priv.defs.inc:561
msgid "Allow access to the 'System: Package Manager: Installed' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:572
-msgid "WebCfg - Diagnostics: Restart Web Server Daemon"
-msgstr ""
-
-#: src/etc/inc/priv.defs.inc:573
-msgid "Allow access to the 'Diagnostics: Restart Web Server Daemon' page."
-msgstr ""
-
-#: src/etc/inc/priv.defs.inc:578
+#: src/etc/inc/priv.defs.inc:566
msgid "WebCfg - Services: Captive portal"
msgstr ""
-#: src/etc/inc/priv.defs.inc:579
+#: src/etc/inc/priv.defs.inc:567
msgid "Allow access to the 'Services: Captive portal' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:584
+#: src/etc/inc/priv.defs.inc:572
msgid "WebCfg - Services: Captive portal: File Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:585
+#: src/etc/inc/priv.defs.inc:573
msgid "Allow access to the 'Services: Captive portal: File Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:590
+#: src/etc/inc/priv.defs.inc:578
msgid "WebCfg - Services: Captive portal: Allowed Hostnames"
msgstr ""
-#: src/etc/inc/priv.defs.inc:591
+#: src/etc/inc/priv.defs.inc:579
msgid "Allow access to the 'Services: Captive portal: Allowed Hostnames' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:596
+#: src/etc/inc/priv.defs.inc:584
msgid "WebCfg - Services: Captive portal: Edit Allowed Hostnames"
msgstr ""
-#: src/etc/inc/priv.defs.inc:597
+#: src/etc/inc/priv.defs.inc:585
msgid ""
"Allow access to the 'Services: Captive portal: Edit Allowed Hostnames' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:602
+#: src/etc/inc/priv.defs.inc:590
msgid "WebCfg - Services: Captive portal: Allowed IPs"
msgstr ""
-#: src/etc/inc/priv.defs.inc:603
+#: src/etc/inc/priv.defs.inc:591
msgid "Allow access to the 'Services: Captive portal: Allowed IPs' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:608
+#: src/etc/inc/priv.defs.inc:596
msgid "WebCfg - Services: Captive portal: Edit Allowed IPs"
msgstr ""
-#: src/etc/inc/priv.defs.inc:609
+#: src/etc/inc/priv.defs.inc:597
msgid "Allow access to the 'Services: Captive portal: Edit Allowed IPs' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:614
+#: src/etc/inc/priv.defs.inc:602
msgid "WebCfg - Services: Captive portal: Mac Addresses"
msgstr ""
-#: src/etc/inc/priv.defs.inc:615
+#: src/etc/inc/priv.defs.inc:603
msgid "Allow access to the 'Services: Captive portal: Mac Addresses' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:620
+#: src/etc/inc/priv.defs.inc:608
msgid "WebCfg - Services: Captive portal: Edit MAC Addresses"
msgstr ""
-#: src/etc/inc/priv.defs.inc:621
+#: src/etc/inc/priv.defs.inc:609
msgid ""
"Allow access to the 'Services: Captive portal: Edit MAC Addresses' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:626
+#: src/etc/inc/priv.defs.inc:614
msgid "WebCfg - Services: Captive portal Vouchers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:627
+#: src/etc/inc/priv.defs.inc:615
msgid "Allow access to the 'Services: Captive portal Vouchers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:632
+#: src/etc/inc/priv.defs.inc:620
msgid "WebCfg - Services: Captive portal Voucher Rolls"
msgstr ""
-#: src/etc/inc/priv.defs.inc:633
+#: src/etc/inc/priv.defs.inc:621
msgid "Allow access to the 'Services: Captive portal Edit Voucher Rolls' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:638
+#: src/etc/inc/priv.defs.inc:626
msgid "WebCfg - Services: Captive portal Zones"
msgstr ""
-#: src/etc/inc/priv.defs.inc:639
+#: src/etc/inc/priv.defs.inc:627
msgid "Allow access to the 'Services: Captive portal Zones' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:644
+#: src/etc/inc/priv.defs.inc:632
msgid "WebCfg - Services: Captive portal: Edit Zones"
msgstr ""
-#: src/etc/inc/priv.defs.inc:645
+#: src/etc/inc/priv.defs.inc:633
msgid "Allow access to the 'Services: Captive portal: Edit Zones' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:650
+#: src/etc/inc/priv.defs.inc:638
msgid "WebCfg - Services: Check IP Service"
msgstr ""
-#: src/etc/inc/priv.defs.inc:651
+#: src/etc/inc/priv.defs.inc:639
msgid "Allow access to the 'Services: Check IP Service' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:656
+#: src/etc/inc/priv.defs.inc:644
msgid "WebCfg - Services: Check IP Service: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:657
+#: src/etc/inc/priv.defs.inc:645
msgid "Allow access to the 'Services: Check IP Service: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:662
+#: src/etc/inc/priv.defs.inc:650
msgid "WebCfg - Services: DHCP Server"
msgstr ""
-#: src/etc/inc/priv.defs.inc:663
+#: src/etc/inc/priv.defs.inc:651
msgid "Allow access to the 'Services: DHCP Server' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:668
+#: src/etc/inc/priv.defs.inc:656
msgid "WebCfg - Services: DHCP Server: Edit static mapping"
msgstr ""
-#: src/etc/inc/priv.defs.inc:669
+#: src/etc/inc/priv.defs.inc:657
msgid "Allow access to the 'Services: DHCP Server: Edit static mapping' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:674
+#: src/etc/inc/priv.defs.inc:662
msgid "WebCfg - Services: DHCP Relay"
msgstr ""
-#: src/etc/inc/priv.defs.inc:675
+#: src/etc/inc/priv.defs.inc:663
msgid "Allow access to the 'Services: DHCP Relay' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:680
+#: src/etc/inc/priv.defs.inc:668
msgid "WebCfg - Services: DHCPv6 server"
msgstr ""
-#: src/etc/inc/priv.defs.inc:681
+#: src/etc/inc/priv.defs.inc:669
msgid "Allow access to the 'Services: DHCPv6 server' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:686
+#: src/etc/inc/priv.defs.inc:674
msgid "WebCfg - Services: DHCPv6 Server: Edit static mapping"
msgstr ""
-#: src/etc/inc/priv.defs.inc:687
+#: src/etc/inc/priv.defs.inc:675
msgid ""
"Allow access to the 'Services: DHCPv6 Server : Edit static mapping' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:692
+#: src/etc/inc/priv.defs.inc:680
msgid "WebCfg - Services: DHCPv6 Relay"
msgstr ""
-#: src/etc/inc/priv.defs.inc:693
+#: src/etc/inc/priv.defs.inc:681
msgid "Allow access to the 'Services: DHCPv6 Relay' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:698
+#: src/etc/inc/priv.defs.inc:686
msgid "WebCfg - Services: DNS Forwarder"
msgstr ""
-#: src/etc/inc/priv.defs.inc:699
+#: src/etc/inc/priv.defs.inc:687
msgid "Allow access to the 'Services: DNS Forwarder' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:704
+#: src/etc/inc/priv.defs.inc:692
msgid "WebCfg - Services: DNS Forwarder: Edit Domain Override"
msgstr ""
-#: src/etc/inc/priv.defs.inc:705
+#: src/etc/inc/priv.defs.inc:693
msgid ""
"Allow access to the 'Services: DNS Forwarder: Edit Domain Override' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:710
+#: src/etc/inc/priv.defs.inc:698
msgid "WebCfg - Services: DNS Forwarder: Edit host"
msgstr ""
-#: src/etc/inc/priv.defs.inc:711
+#: src/etc/inc/priv.defs.inc:699
msgid "Allow access to the 'Services: DNS Forwarder: Edit host' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:716
+#: src/etc/inc/priv.defs.inc:704
msgid "WebCfg - Services: Dynamic DNS clients"
msgstr ""
-#: src/etc/inc/priv.defs.inc:717
+#: src/etc/inc/priv.defs.inc:705
msgid "Allow access to the 'Services: Dynamic DNS clients' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:722
+#: src/etc/inc/priv.defs.inc:710
msgid "WebCfg - Services: Dynamic DNS client"
msgstr ""
-#: src/etc/inc/priv.defs.inc:723
+#: src/etc/inc/priv.defs.inc:711
msgid "Allow access to the 'Services: Dynamic DNS client' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:728
+#: src/etc/inc/priv.defs.inc:716
msgid "WebCfg - Services: IGMP Proxy"
msgstr ""
-#: src/etc/inc/priv.defs.inc:729
+#: src/etc/inc/priv.defs.inc:717
msgid "Allow access to the 'Services: IGMP Proxy' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:734
+#: src/etc/inc/priv.defs.inc:722
msgid "WebCfg - Services: IGMP Proxy: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:735
+#: src/etc/inc/priv.defs.inc:723
msgid "Allow access to the 'Services: IGMP Proxy: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:740
+#: src/etc/inc/priv.defs.inc:728
msgid "WebCfg - Services: NTP Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:741
+#: src/etc/inc/priv.defs.inc:729
msgid "Allow access to the 'Services: NTP Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:746
+#: src/etc/inc/priv.defs.inc:734
msgid "WebCfg - Services: NTP ACL Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:747
+#: src/etc/inc/priv.defs.inc:735
msgid "Allow access to the 'Services: NTP ACL Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:752
+#: src/etc/inc/priv.defs.inc:740
msgid "WebCfg - Services: NTP Serial GPS"
msgstr ""
-#: src/etc/inc/priv.defs.inc:753
+#: src/etc/inc/priv.defs.inc:741
msgid "Allow access to the 'Services: NTP Serial GPS' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:758
+#: src/etc/inc/priv.defs.inc:746
msgid "WebCfg - Services: NTP PPS"
msgstr ""
-#: src/etc/inc/priv.defs.inc:759
+#: src/etc/inc/priv.defs.inc:747
msgid "Allow access to the 'Services: NTP PPS' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:764
+#: src/etc/inc/priv.defs.inc:752
msgid "WebCfg - Services: PPPoE Server"
msgstr ""
-#: src/etc/inc/priv.defs.inc:765
+#: src/etc/inc/priv.defs.inc:753
msgid "Allow access to the 'Services: PPPoE Server' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:770
+#: src/etc/inc/priv.defs.inc:758
msgid "WebCfg - Services: PPPoE Server: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:771
+#: src/etc/inc/priv.defs.inc:759
msgid "Allow access to the 'Services: PPPoE Server: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:776
+#: src/etc/inc/priv.defs.inc:764
msgid "WebCfg - Services: RFC 2136 Clients"
msgstr ""
-#: src/etc/inc/priv.defs.inc:777
+#: src/etc/inc/priv.defs.inc:765
msgid "Allow access to the 'Services: RFC 2136 Clients' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:782
+#: src/etc/inc/priv.defs.inc:770
msgid "WebCfg - Services: RFC 2136 Client: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:783
+#: src/etc/inc/priv.defs.inc:771
msgid "Allow access to the 'Services: RFC 2136 Client: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:788
+#: src/etc/inc/priv.defs.inc:776
msgid "WebCfg - Services: Router Advertisements"
msgstr ""
-#: src/etc/inc/priv.defs.inc:789
+#: src/etc/inc/priv.defs.inc:777
msgid "Allow access to the 'Services: Router Advertisements' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:794
+#: src/etc/inc/priv.defs.inc:782
msgid "WebCfg - Services: SNMP"
msgstr ""
-#: src/etc/inc/priv.defs.inc:795
+#: src/etc/inc/priv.defs.inc:783
msgid "Allow access to the 'Services: SNMP' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:800
+#: src/etc/inc/priv.defs.inc:788
msgid "WebCfg - Services: DNS Resolver"
msgstr ""
-#: src/etc/inc/priv.defs.inc:801
+#: src/etc/inc/priv.defs.inc:789
msgid "Allow access to the 'Services: DNS Resolver' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:806
+#: src/etc/inc/priv.defs.inc:794
msgid "WebCfg - Services: DNS Resolver: Access Lists"
msgstr ""
-#: src/etc/inc/priv.defs.inc:807
+#: src/etc/inc/priv.defs.inc:795
msgid "Allow access to the 'Services: DNS Resolver: Access Lists' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:812
+#: src/etc/inc/priv.defs.inc:800
msgid "WebCfg - Services: DNS Resolver: Advanced"
msgstr ""
-#: src/etc/inc/priv.defs.inc:813
+#: src/etc/inc/priv.defs.inc:801
msgid "Allow access to the 'Services: DNS Resolver: Advanced' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:818
+#: src/etc/inc/priv.defs.inc:806
msgid "WebCfg - Services: DNS Resolver: Edit Domain Override"
msgstr ""
-#: src/etc/inc/priv.defs.inc:819
+#: src/etc/inc/priv.defs.inc:807
msgid ""
"Allow access to the 'Services: DNS Resolver: Edit Domain Override' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:824
+#: src/etc/inc/priv.defs.inc:812
msgid "WebCfg - Services: DNS Resolver: Edit host"
msgstr ""
-#: src/etc/inc/priv.defs.inc:825
+#: src/etc/inc/priv.defs.inc:813
msgid "Allow access to the 'Services: DNS Resolver: Edit host' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:830
+#: src/etc/inc/priv.defs.inc:818
msgid "WebCfg - Services: Wake-on-LAN"
msgstr ""
-#: src/etc/inc/priv.defs.inc:831
+#: src/etc/inc/priv.defs.inc:819
msgid "Allow access to the 'Services: Wake-on-LAN' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:836
+#: src/etc/inc/priv.defs.inc:824
msgid "WebCfg - Services: Wake-on-LAN: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:837
+#: src/etc/inc/priv.defs.inc:825
msgid "Allow access to the 'Services: Wake-on-LAN: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:842
+#: src/etc/inc/priv.defs.inc:830
msgid "WebCfg - Hidden: Detailed Status"
msgstr ""
-#: src/etc/inc/priv.defs.inc:843
+#: src/etc/inc/priv.defs.inc:831
msgid "Allow access to the 'Hidden: Detailed Status' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:848
+#: src/etc/inc/priv.defs.inc:836
msgid "WebCfg - Status: Captive portal"
msgstr ""
-#: src/etc/inc/priv.defs.inc:849
+#: src/etc/inc/priv.defs.inc:837
msgid "Allow access to the 'Status: Captive portal' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:854
+#: src/etc/inc/priv.defs.inc:842
msgid "WebCfg - Status: Captive Portal: Expire Vouchers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:855
+#: src/etc/inc/priv.defs.inc:843
msgid "Allow access to the 'Status: Captive Portal: Expire Vouchers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:860
+#: src/etc/inc/priv.defs.inc:848
msgid "WebCfg - Status: Captive Portal: Test Vouchers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:861
+#: src/etc/inc/priv.defs.inc:849
msgid "Allow access to the 'Status: Captive Portal: Test Vouchers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:866
+#: src/etc/inc/priv.defs.inc:854
msgid "WebCfg - Status: Captive portal Voucher Rolls"
msgstr ""
-#: src/etc/inc/priv.defs.inc:867
+#: src/etc/inc/priv.defs.inc:855
msgid "Allow access to the 'Status: Captive portal Voucher Rolls' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:872
+#: src/etc/inc/priv.defs.inc:860
msgid "WebCfg - Status: Captive portal Vouchers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:873
+#: src/etc/inc/priv.defs.inc:861
msgid "Allow access to the 'Status: Captive portal Vouchers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:878
+#: src/etc/inc/priv.defs.inc:866
msgid "WebCfg - Status: CARP"
msgstr ""
-#: src/etc/inc/priv.defs.inc:879
+#: src/etc/inc/priv.defs.inc:867
msgid "Allow access to the 'Status: CARP' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:884
+#: src/etc/inc/priv.defs.inc:872
msgid "WebCfg - Status: DHCP leases"
msgstr ""
-#: src/etc/inc/priv.defs.inc:885
+#: src/etc/inc/priv.defs.inc:873
msgid "Allow access to the 'Status: DHCP leases' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:890
+#: src/etc/inc/priv.defs.inc:878
msgid "WebCfg - Status: DHCPv6 leases"
msgstr ""
-#: src/etc/inc/priv.defs.inc:891
+#: src/etc/inc/priv.defs.inc:879
msgid "Allow access to the 'Status: DHCPv6 leases' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:896
+#: src/etc/inc/priv.defs.inc:884
msgid "WebCfg - Status: Filter Reload Status"
msgstr ""
-#: src/etc/inc/priv.defs.inc:897
+#: src/etc/inc/priv.defs.inc:885
msgid "Allow access to the 'Status: Filter Reload Status' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:902
+#: src/etc/inc/priv.defs.inc:890
msgid "WebCfg - Status: Gateway Groups"
msgstr ""
-#: src/etc/inc/priv.defs.inc:903
+#: src/etc/inc/priv.defs.inc:891
msgid "Allow access to the 'Status: Gateway Groups' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:908
+#: src/etc/inc/priv.defs.inc:896
msgid "WebCfg - Status: Gateways"
msgstr ""
-#: src/etc/inc/priv.defs.inc:909
+#: src/etc/inc/priv.defs.inc:897
msgid "Allow access to the 'Status: Gateways' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:914
+#: src/etc/inc/priv.defs.inc:902
msgid "WebCfg - Status: Traffic Graph"
msgstr ""
-#: src/etc/inc/priv.defs.inc:915
+#: src/etc/inc/priv.defs.inc:903
msgid "Allow access to the 'Status: Traffic Graph' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:923
+#: src/etc/inc/priv.defs.inc:911
msgid "WebCfg - Status: CPU load"
msgstr ""
-#: src/etc/inc/priv.defs.inc:924
+#: src/etc/inc/priv.defs.inc:912
msgid "Allow access to the 'Status: CPU load' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:929
+#: src/etc/inc/priv.defs.inc:917
msgid "WebCfg - Status: Interfaces"
msgstr ""
-#: src/etc/inc/priv.defs.inc:930
+#: src/etc/inc/priv.defs.inc:918
msgid "Allow access to the 'Status: Interfaces' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:935
+#: src/etc/inc/priv.defs.inc:923
msgid "WebCfg - Status: IPsec"
msgstr ""
-#: src/etc/inc/priv.defs.inc:936
+#: src/etc/inc/priv.defs.inc:924
msgid "Allow access to the 'Status: IPsec' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:941
+#: src/etc/inc/priv.defs.inc:929
msgid "WebCfg - Status: IPsec: Leases"
msgstr ""
-#: src/etc/inc/priv.defs.inc:942
+#: src/etc/inc/priv.defs.inc:930
msgid "Allow access to the 'Status: IPsec: Leases' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:947
+#: src/etc/inc/priv.defs.inc:935
msgid "WebCfg - Status: IPsec: SADs"
msgstr ""
-#: src/etc/inc/priv.defs.inc:948
+#: src/etc/inc/priv.defs.inc:936
msgid "Allow access to the 'Status: IPsec: SADs' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:953
+#: src/etc/inc/priv.defs.inc:941
msgid "WebCfg - Status: IPsec: SPD"
msgstr ""
-#: src/etc/inc/priv.defs.inc:954
+#: src/etc/inc/priv.defs.inc:942
msgid "Allow access to the 'Status: IPsec: SPD' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:959
+#: src/etc/inc/priv.defs.inc:947
msgid "WebCfg - Status: Load Balancer: Pool"
msgstr ""
-#: src/etc/inc/priv.defs.inc:960
+#: src/etc/inc/priv.defs.inc:948
msgid "Allow access to the 'Status: Load Balancer: Pool' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:965
+#: src/etc/inc/priv.defs.inc:953
msgid "WebCfg - Status: Load Balancer: Virtual Server"
msgstr ""
-#: src/etc/inc/priv.defs.inc:966
+#: src/etc/inc/priv.defs.inc:954
msgid "Allow access to the 'Status: Load Balancer: Virtual Server' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:971
+#: src/etc/inc/priv.defs.inc:959
msgid "WebCfg - Status: Logs: System"
msgstr ""
-#: src/etc/inc/priv.defs.inc:972
+#: src/etc/inc/priv.defs.inc:960
msgid "Allow access to the 'Status: System Logs: General' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:977
+#: src/etc/inc/priv.defs.inc:965
msgid "WebCfg - Status: Logs: Firewall"
msgstr ""
-#: src/etc/inc/priv.defs.inc:978
+#: src/etc/inc/priv.defs.inc:966
msgid "Allow access to the 'Status: Logs: Firewall' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:983
+#: src/etc/inc/priv.defs.inc:971
msgid "WebCfg - Status: System Logs: Firewall (Dynamic View)"
msgstr ""
-#: src/etc/inc/priv.defs.inc:984
+#: src/etc/inc/priv.defs.inc:972
msgid "Allow access to the 'Status: System Logs: Firewall (Dynamic View)' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:989
+#: src/etc/inc/priv.defs.inc:977
msgid "WebCfg - Status: System Logs: Firewall Log Summary"
msgstr ""
-#: src/etc/inc/priv.defs.inc:990
+#: src/etc/inc/priv.defs.inc:978
msgid "Allow access to the 'Status: System Logs: Firewall Log Summary' page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:995
+#: src/etc/inc/priv.defs.inc:983
msgid "WebCfg - Status: Logs: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:996
+#: src/etc/inc/priv.defs.inc:984
msgid "Allow access to the 'Status: Logs: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1001
+#: src/etc/inc/priv.defs.inc:989
msgid "WebCfg - Status: Logs: VPN"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1002
+#: src/etc/inc/priv.defs.inc:990
msgid "Allow access to the 'Status: Logs: VPN' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1007
+#: src/etc/inc/priv.defs.inc:995
msgid "WebCfg - Status: NTP"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1008
+#: src/etc/inc/priv.defs.inc:996
msgid "Allow access to the 'Status: NTP' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1013
+#: src/etc/inc/priv.defs.inc:1001
msgid "WebCfg - Status: OpenVPN"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1014
+#: src/etc/inc/priv.defs.inc:1002
msgid "Allow access to the 'Status: OpenVPN' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1019
+#: src/etc/inc/priv.defs.inc:1007
msgid "WebCfg - Status: Package logs"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1020
+#: src/etc/inc/priv.defs.inc:1008
msgid "Allow access to the 'Status: Package logs' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1025
+#: src/etc/inc/priv.defs.inc:1013
msgid "WebCfg - Status: Traffic shaper: Queues"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1026
+#: src/etc/inc/priv.defs.inc:1014
msgid "Allow access to the 'Status: Traffic shaper: Queues' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1031
+#: src/etc/inc/priv.defs.inc:1019
msgid "WebCfg - Status: Services"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1032
+#: src/etc/inc/priv.defs.inc:1020
msgid "Allow access to the 'Status: Services' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1037
+#: src/etc/inc/priv.defs.inc:1025
msgid "WebCfg - Status: UPnP Status"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1038
+#: src/etc/inc/priv.defs.inc:1026
msgid "Allow access to the 'Status: UPnP Status' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1043
+#: src/etc/inc/priv.defs.inc:1031
msgid "WebCfg - Status: Wireless"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1044
+#: src/etc/inc/priv.defs.inc:1032
msgid "Allow access to the 'Status: Wireless' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1049
+#: src/etc/inc/priv.defs.inc:1037
msgid "WebCfg - System: General Setup"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1050
+#: src/etc/inc/priv.defs.inc:1038
msgid "Allow access to the 'System: General Setup' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1055
+#: src/etc/inc/priv.defs.inc:1043
msgid "WebCfg - System: Advanced: Admin Access Page"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1056
+#: src/etc/inc/priv.defs.inc:1044
msgid "Allow access to the 'System: Advanced: Admin Access' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1061
+#: src/etc/inc/priv.defs.inc:1049
msgid "WebCfg - System: Advanced: Firewall & NAT"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1062
+#: src/etc/inc/priv.defs.inc:1050
msgid "Allow access to the 'System: Advanced: Firewall & NAT' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1067
+#: src/etc/inc/priv.defs.inc:1055
msgid "WebCfg - System: Advanced: Miscellaneous"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1068
+#: src/etc/inc/priv.defs.inc:1056
msgid "Allow access to the 'System: Advanced: Miscellaneous' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1073
+#: src/etc/inc/priv.defs.inc:1061
msgid "WebCfg - System: Advanced: Networking"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1074
+#: src/etc/inc/priv.defs.inc:1062
msgid "Allow access to the 'System: Advanced: Networking' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1079
+#: src/etc/inc/priv.defs.inc:1067
msgid "WebCfg - System: Advanced: Notifications"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1080
+#: src/etc/inc/priv.defs.inc:1068
msgid "Allow access to the 'System: Advanced: Notifications' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1085
+#: src/etc/inc/priv.defs.inc:1073
msgid "WebCfg - System: Advanced: Tunables"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1086
+#: src/etc/inc/priv.defs.inc:1074
msgid "Allow access to the 'System: Advanced: Tunables' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1091
+#: src/etc/inc/priv.defs.inc:1079
msgid "WebCfg - System: Authentication Servers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1092
+#: src/etc/inc/priv.defs.inc:1080
msgid "Allow access to the 'System: Authentication Servers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1097
+#: src/etc/inc/priv.defs.inc:1085
msgid "WebCfg - System: CA Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1098
+#: src/etc/inc/priv.defs.inc:1086
msgid "Allow access to the 'System: CA Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1103
+#: src/etc/inc/priv.defs.inc:1091
msgid "WebCfg - System: Certificate Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1104
+#: src/etc/inc/priv.defs.inc:1092
msgid "Allow access to the 'System: Certificate Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1109
+#: src/etc/inc/priv.defs.inc:1097
msgid "WebCfg - System: CRL Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1110
+#: src/etc/inc/priv.defs.inc:1098
msgid "Allow access to the 'System: CRL Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1115
+#: src/etc/inc/priv.defs.inc:1103
msgid "WebCfg - System: Gateway Groups"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1116
+#: src/etc/inc/priv.defs.inc:1104
msgid "Allow access to the 'System: Gateway Groups' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1121
+#: src/etc/inc/priv.defs.inc:1109
msgid "WebCfg - System: Gateways: Edit Gateway Groups"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1122
+#: src/etc/inc/priv.defs.inc:1110
msgid "Allow access to the 'System: Gateways: Edit Gateway Groups' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1127
+#: src/etc/inc/priv.defs.inc:1115
msgid "WebCfg - System: Gateways"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1128
+#: src/etc/inc/priv.defs.inc:1116
msgid "Allow access to the 'System: Gateways' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1133
+#: src/etc/inc/priv.defs.inc:1121
msgid "WebCfg - System: Gateways: Edit Gateway"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1134
+#: src/etc/inc/priv.defs.inc:1122
msgid "Allow access to the 'System: Gateways: Edit Gateway' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1139
+#: src/etc/inc/priv.defs.inc:1127
msgid "WebCfg - System: Group manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1140
+#: src/etc/inc/priv.defs.inc:1128
msgid "Allow access to the 'System: Group manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1145
+#: src/etc/inc/priv.defs.inc:1133
msgid "WebCfg - System: Group Manager: Add Privileges"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1146
+#: src/etc/inc/priv.defs.inc:1134
msgid "Allow access to the 'System: Group Manager: Add Privileges' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1151
+#: src/etc/inc/priv.defs.inc:1139
msgid "WebCfg - System: High Availability Sync"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1152
+#: src/etc/inc/priv.defs.inc:1140
msgid "Allow access to the 'System: High Availability Sync' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1157
+#: src/etc/inc/priv.defs.inc:1145
msgid "WebCfg - System: Static Routes"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1158
+#: src/etc/inc/priv.defs.inc:1146
msgid "Allow access to the 'System: Static Routes' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1163
+#: src/etc/inc/priv.defs.inc:1151
msgid "WebCfg - System: Static Routes: Edit route"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1164
+#: src/etc/inc/priv.defs.inc:1152
msgid "Allow access to the 'System: Static Routes: Edit route' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1169
+#: src/etc/inc/priv.defs.inc:1157
msgid "WebCfg - System: Update: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1170
+#: src/etc/inc/priv.defs.inc:1158
msgid "Allow access to the 'System: Update: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1175
+#: src/etc/inc/priv.defs.inc:1163
msgid "WebCfg - System: User Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1176
+#: src/etc/inc/priv.defs.inc:1164
msgid "Allow access to the 'System: User Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1181
+#: src/etc/inc/priv.defs.inc:1169
msgid "WebCfg - System: User Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1182
+#: src/etc/inc/priv.defs.inc:1170
msgid "Allow access to the 'System: User Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1187
+#: src/etc/inc/priv.defs.inc:1175
msgid "WebCfg - System: User Manager: Add Privileges"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1188
+#: src/etc/inc/priv.defs.inc:1176
msgid "Allow access to the 'System: User Manager: Add Privileges' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1193
+#: src/etc/inc/priv.defs.inc:1181
msgid "WebCfg - System: User Password Manager"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1194
+#: src/etc/inc/priv.defs.inc:1182
msgid "Allow access to the 'System: User Password Manager' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1199
+#: src/etc/inc/priv.defs.inc:1187
msgid "WebCfg - System: User Manager: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1200
+#: src/etc/inc/priv.defs.inc:1188
msgid "Allow access to the 'System: User Manager: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1205
+#: src/etc/inc/priv.defs.inc:1193
msgid "WebCfg - Hidden: Upload Configuration"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1206
+#: src/etc/inc/priv.defs.inc:1194
msgid "Allow access to the 'Hidden: Upload Configuration' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1211
+#: src/etc/inc/priv.defs.inc:1199
msgid "WebCfg - VPN: IPsec"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1212
+#: src/etc/inc/priv.defs.inc:1200
msgid "Allow access to the 'VPN: IPsec' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1217
+#: src/etc/inc/priv.defs.inc:1205
msgid "WebCfg - VPN: IPsec: Pre-Shared Keys List"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1218
+#: src/etc/inc/priv.defs.inc:1206
msgid "Allow access to the 'VPN: IPsec: Pre-Shared Keys List' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1223
+#: src/etc/inc/priv.defs.inc:1211
msgid "WebCfg - VPN: IPsec: Edit Pre-Shared Keys"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1224
+#: src/etc/inc/priv.defs.inc:1212
msgid "Allow access to the 'VPN: IPsec: Edit Pre-Shared Keys' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1229
+#: src/etc/inc/priv.defs.inc:1217
msgid "WebCfg - VPN: IPsec: Mobile"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1230
+#: src/etc/inc/priv.defs.inc:1218
msgid "Allow access to the 'VPN: IPsec: Mobile' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1235
+#: src/etc/inc/priv.defs.inc:1223
msgid "WebCfg - VPN: IPsec: Edit Phase 1"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1236
+#: src/etc/inc/priv.defs.inc:1224
msgid "Allow access to the 'VPN: IPsec: Edit Phase 1' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1241
+#: src/etc/inc/priv.defs.inc:1229
msgid "WebCfg - VPN: IPsec: Edit Phase 2"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1242
+#: src/etc/inc/priv.defs.inc:1230
msgid "Allow access to the 'VPN: IPsec: Edit Phase 2' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1247
+#: src/etc/inc/priv.defs.inc:1235
msgid "WebCfg - VPN: IPsec: Settings"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1248
+#: src/etc/inc/priv.defs.inc:1236
msgid "Allow access to the 'VPN: IPsec: Settings' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1253
+#: src/etc/inc/priv.defs.inc:1241
msgid "WebCfg - VPN: L2TP"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1254
+#: src/etc/inc/priv.defs.inc:1242
msgid "Allow access to the 'VPN: L2TP' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1259
+#: src/etc/inc/priv.defs.inc:1247
msgid "WebCfg - VPN: L2TP: Users"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1260
+#: src/etc/inc/priv.defs.inc:1248
msgid "Allow access to the 'VPN: L2TP: Users' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1265
+#: src/etc/inc/priv.defs.inc:1253
msgid "WebCfg - VPN: L2TP: Users: Edit"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1266
+#: src/etc/inc/priv.defs.inc:1254
msgid "Allow access to the 'VPN: L2TP: Users: Edit' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1271
+#: src/etc/inc/priv.defs.inc:1259
msgid "WebCfg - OpenVPN: Clients"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1272
+#: src/etc/inc/priv.defs.inc:1260
msgid "Allow access to the 'OpenVPN: Clients' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1277
+#: src/etc/inc/priv.defs.inc:1265
msgid "WebCfg - OpenVPN: Client Specific Override"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1278
+#: src/etc/inc/priv.defs.inc:1266
msgid "Allow access to the 'OpenVPN: Client Specific Override' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1283
+#: src/etc/inc/priv.defs.inc:1271
msgid "WebCfg - OpenVPN: Servers"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1284
+#: src/etc/inc/priv.defs.inc:1272
msgid "Allow access to the 'OpenVPN: Servers' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1289
+#: src/etc/inc/priv.defs.inc:1277
msgid "WebCfg - pfSense wizard subsystem"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1290
+#: src/etc/inc/priv.defs.inc:1278
msgid "Allow access to the 'pfSense wizard subsystem' page."
msgstr ""
-#: src/etc/inc/priv.defs.inc:1295
+#: src/etc/inc/priv.defs.inc:1283
msgid "WebCfg - XMLRPC Library"
msgstr ""
-#: src/etc/inc/priv.defs.inc:1296
+#: src/etc/inc/priv.defs.inc:1284
msgid "Allow access to the 'XMLRPC Library' page."
msgstr ""
@@ -5417,15 +5399,15 @@ msgstr ""
msgid "Router Advertisement Daemon"
msgstr ""
-#: src/etc/inc/service-utils.inc:248 src/usr/local/www/diag_backup.php:526
-#: src/usr/local/www/head.inc:259 src/usr/local/www/services_dnsmasq.php:182
+#: src/etc/inc/service-utils.inc:248 src/usr/local/www/diag_backup.php:481
+#: src/usr/local/www/head.inc:257 src/usr/local/www/services_dnsmasq.php:182
#: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:120
#: src/usr/local/www/services_dnsmasq_edit.php:199
msgid "DNS Forwarder"
msgstr ""
-#: src/etc/inc/service-utils.inc:255 src/usr/local/www/diag_backup.php:527
-#: src/usr/local/www/head.inc:260 src/usr/local/www/services_unbound.php:238
+#: src/etc/inc/service-utils.inc:255 src/usr/local/www/diag_backup.php:482
+#: src/usr/local/www/head.inc:258 src/usr/local/www/services_unbound.php:238
#: src/usr/local/www/services_unbound_acls.php:174
#: src/usr/local/www/services_unbound_advanced.php:187
#: src/usr/local/www/services_unbound_domainoverride_edit.php:112
@@ -5439,8 +5421,8 @@ msgstr ""
msgid "NTP clock sync"
msgstr ""
-#: src/etc/inc/service-utils.inc:270 src/usr/local/www/diag_backup.php:524
-#: src/usr/local/www/head.inc:258 src/usr/local/www/head.inc:296
+#: src/etc/inc/service-utils.inc:270 src/usr/local/www/diag_backup.php:479
+#: src/usr/local/www/head.inc:256 src/usr/local/www/head.inc:294
#: src/usr/local/www/services_captiveportal.php:64
#: src/usr/local/www/services_captiveportal_filemanager.php:67
#: src/usr/local/www/services_captiveportal_hostname.php:62
@@ -5458,16 +5440,16 @@ msgstr ""
#: src/usr/local/www/status_captiveportal_test.php:53
#: src/usr/local/www/status_captiveportal_voucher_rolls.php:52
#: src/usr/local/www/status_captiveportal_vouchers.php:52
-#: src/usr/local/www/system_certmanager.php:1012
+#: src/usr/local/www/system_certmanager.php:1033
msgid "Captive Portal"
msgstr ""
-#: src/etc/inc/service-utils.inc:288 src/usr/local/www/head.inc:261
+#: src/etc/inc/service-utils.inc:288 src/usr/local/www/head.inc:259
#: src/usr/local/www/services_dhcp_relay.php:120
msgid "DHCP Relay"
msgstr ""
-#: src/etc/inc/service-utils.inc:295 src/usr/local/www/head.inc:262
+#: src/etc/inc/service-utils.inc:295 src/usr/local/www/head.inc:260
#: src/usr/local/www/services_dhcpv6_relay.php:118
msgid "DHCPv6 Relay"
msgstr ""
@@ -5508,67 +5490,72 @@ msgstr ""
msgid "Not available."
msgstr ""
-#: src/etc/inc/service-utils.inc:461 src/usr/local/www/status_services.php:124
+#: src/etc/inc/service-utils.inc:461
msgid "Running"
msgstr ""
-#: src/etc/inc/service-utils.inc:462 src/etc/inc/service-utils.inc:471
-#, php-format
-msgid "%s Service is"
-msgstr ""
-
-#: src/etc/inc/service-utils.inc:470 src/usr/local/www/status_services.php:124
+#: src/etc/inc/service-utils.inc:468
msgid "Stopped"
msgstr ""
-#: src/etc/inc/service-utils.inc:470
+#: src/etc/inc/service-utils.inc:472
#: src/usr/local/www/firewall_nat_1to1_edit.php:368
#: src/usr/local/www/firewall_nat_edit.php:634
#: src/usr/local/www/firewall_nat_npt_edit.php:191
-#: src/usr/local/www/firewall_nat_out_edit.php:418
-#: src/usr/local/www/firewall_rules_edit.php:1119
-#: src/usr/local/www/interfaces.php:2581
-#: src/usr/local/www/interfaces_ppps_edit.php:726
+#: src/usr/local/www/firewall_nat_out_edit.php:433
+#: src/usr/local/www/firewall_rules_edit.php:1114
+#: src/usr/local/www/interfaces.php:2589
+#: src/usr/local/www/interfaces_ppps_edit.php:748
#: src/usr/local/www/load_balancer_pool_edit.php:405
-#: src/usr/local/www/services_router_advertisements.php:112
+#: src/usr/local/www/services_router_advertisements.php:107
#: src/usr/local/www/system_gateways_edit.php:579
#: src/usr/local/www/system_routes_edit.php:265
-#: src/usr/local/www/system_usermanager.php:572
-#: src/usr/local/www/system_usermanager.php:690
-#: src/usr/local/www/vpn_ipsec_phase1.php:657
-#: src/usr/local/www/vpn_ipsec_phase2.php:502
+#: src/usr/local/www/system_usermanager.php:566
+#: src/usr/local/www/system_usermanager.php:684
+#: src/usr/local/www/vpn_ipsec_phase1.php:653
+#: src/usr/local/www/vpn_ipsec_phase2.php:497
#: src/usr/local/www/vpn_openvpn_client.php:428
#: src/usr/local/www/vpn_openvpn_csc.php:639
-#: src/usr/local/www/vpn_openvpn_server.php:597
+#: src/usr/local/www/vpn_openvpn_server.php:601
msgid "Disabled"
msgstr ""
-#: src/etc/inc/service-utils.inc:565
+#: src/etc/inc/service-utils.inc:485
+#, php-format
+msgid "%s Service is %s"
+msgstr ""
+
+#: src/etc/inc/service-utils.inc:487 src/etc/inc/service-utils.inc:489
+#, php-format
+msgid "%s, %s Service is %s"
+msgstr ""
+
+#: src/etc/inc/service-utils.inc:588
#, php-format
msgid "Restart %sService"
msgstr ""
-#: src/etc/inc/service-utils.inc:578
+#: src/etc/inc/service-utils.inc:601
#, php-format
msgid "Stop %sService"
msgstr ""
-#: src/etc/inc/service-utils.inc:584
+#: src/etc/inc/service-utils.inc:607
#, php-format
msgid "Start %sService"
msgstr ""
-#: src/etc/inc/service-utils.inc:656
+#: src/etc/inc/service-utils.inc:679
#, php-format
msgid "%s has been started."
msgstr ""
-#: src/etc/inc/service-utils.inc:726
+#: src/etc/inc/service-utils.inc:749
#, php-format
msgid "%s has been stopped."
msgstr ""
-#: src/etc/inc/service-utils.inc:795
+#: src/etc/inc/service-utils.inc:818
#, php-format
msgid "%s has been restarted."
msgstr ""
@@ -5581,146 +5568,141 @@ msgstr ""
msgid "Shutting down Router Advertisment daemon cleanly"
msgstr ""
-#: src/etc/inc/services.inc:475
+#: src/etc/inc/services.inc:479
#, php-format
msgid "DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s"
msgstr ""
-#: src/etc/inc/services.inc:502
+#: src/etc/inc/services.inc:506
msgid "Starting DHCP service..."
msgstr ""
-#: src/etc/inc/services.inc:595
+#: src/etc/inc/services.inc:613
msgid "Warning! DHCP Failover setup and no CARP virtual IPs defined!"
msgstr ""
-#: src/etc/inc/services.inc:762
+#: src/etc/inc/services.inc:780
#, php-format
msgid ""
"Invalid DHCP pool %s - %s for %s subnet %s/%s detected. Please correct the "
"settings in Services, DHCP Server"
msgstr ""
-#: src/etc/inc/services.inc:1106
+#: src/etc/inc/services.inc:1143
#, php-format
msgid "Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s"
msgstr ""
-#: src/etc/inc/services.inc:1233
-#, php-format
-msgid "DHCP leases v6 restore failed exited with %1$s, the error is: %2$s"
-msgstr ""
-
-#: src/etc/inc/services.inc:1625
+#: src/etc/inc/services.inc:1647
msgid "Could not write Igmpproxy configuration file!"
msgstr ""
-#: src/etc/inc/services.inc:1638
+#: src/etc/inc/services.inc:1660
msgid "Started IGMP proxy service."
msgstr ""
-#: src/etc/inc/services.inc:1662
+#: src/etc/inc/services.inc:1684
msgid "Starting DHCP relay service..."
msgstr ""
-#: src/etc/inc/services.inc:1687
+#: src/etc/inc/services.inc:1709
msgid "No destination IP has been configured!"
msgstr ""
-#: src/etc/inc/services.inc:1760
+#: src/etc/inc/services.inc:1782
msgid "No suitable interface found for running dhcrelay!"
msgstr ""
-#: src/etc/inc/services.inc:1796
+#: src/etc/inc/services.inc:1818
msgid "Starting DHCPv6 relay service..."
msgstr ""
-#: src/etc/inc/services.inc:1884
+#: src/etc/inc/services.inc:1906
msgid "No suitable interface found for running dhcrelay -6!"
msgstr ""
-#: src/etc/inc/services.inc:1944
+#: src/etc/inc/services.inc:1966
msgid "Starting DynDNS clients..."
msgstr ""
-#: src/etc/inc/services.inc:2038
+#: src/etc/inc/services.inc:2072
msgid "Starting DNS forwarder..."
msgstr ""
-#: src/etc/inc/services.inc:2204
+#: src/etc/inc/services.inc:2238
msgid "Starting DNS Resolver..."
msgstr ""
-#: src/etc/inc/services.inc:2249
+#: src/etc/inc/services.inc:2283
msgid "Starting SNMP daemon... "
msgstr ""
-#: src/etc/inc/services.inc:2255
+#: src/etc/inc/services.inc:2289
#, php-format
msgid "Error: cannot open snmpd.conf in services_snmpd_configure().%s"
msgstr ""
-#: src/etc/inc/services.inc:2533
+#: src/etc/inc/services.inc:2574
#, php-format
msgid "DynDNS updated IP Address (A) for %1$s on %2$s (%3$s) to %4$s"
msgstr ""
-#: src/etc/inc/services.inc:2538
+#: src/etc/inc/services.inc:2579
#, php-format
msgid ""
"phpDynDNS: Not updating %s A record because the IP address has not changed."
msgstr ""
-#: src/etc/inc/services.inc:2549
+#: src/etc/inc/services.inc:2590
#, php-format
msgid "DynDNS updated IPv6 Address (AAAA) for %1$s on %2$s (%3$s) to %4$s"
msgstr ""
-#: src/etc/inc/services.inc:2551
+#: src/etc/inc/services.inc:2592
#, php-format
msgid "phpDynDNS: updating cache file %1$s.ipv6: %2$s"
msgstr ""
-#: src/etc/inc/services.inc:2554
+#: src/etc/inc/services.inc:2595
#, php-format
msgid ""
"phpDynDNS: Not updating %s AAAA record because the IPv6 address has not "
"changed."
msgstr ""
-#: src/etc/inc/services.inc:2606
+#: src/etc/inc/services.inc:2645
msgid "Created:"
msgstr ""
-#: src/etc/inc/services.inc:2628
+#: src/etc/inc/services.inc:2667
msgid "If possible do not add items to this file manually."
msgstr ""
-#: src/etc/inc/services.inc:2629
+#: src/etc/inc/services.inc:2668
msgid ""
"If done so, this file must be terminated with a blank line (e.g. new line)"
msgstr ""
-#: src/etc/inc/services.inc:2680
+#: src/etc/inc/services.inc:2718
msgid "Starting UPnP service... "
msgstr ""
-#: src/etc/inc/services.inc:2720
+#: src/etc/inc/services.inc:2758
#, php-format
msgid "Installed cron job for %s"
msgstr ""
-#: src/etc/inc/services.inc:2724
+#: src/etc/inc/services.inc:2762
#, php-format
msgid "Checked cron job for %s, no change needed"
msgstr ""
-#: src/etc/inc/services.inc:2727
+#: src/etc/inc/services.inc:2765
#, php-format
msgid "Updated cron job for %s"
msgstr ""
-#: src/etc/inc/services.inc:2733
+#: src/etc/inc/services.inc:2771
#, php-format
msgid "Removed cron job for %s"
msgstr ""
@@ -5738,17 +5720,17 @@ msgstr ""
#: src/etc/inc/shaper.inc:436 src/etc/inc/shaper.inc:1901
#: src/etc/inc/shaper.inc:2264 src/etc/inc/shaper.inc:2648
-#: src/etc/inc/shaper.inc:2776 src/etc/inc/shaper.inc:2928
-#: src/etc/inc/shaper.inc:3047 src/etc/inc/shaper.inc:3273
-#: src/etc/inc/shaper.inc:3851 src/usr/local/www/interfaces_ppps_edit.php:888
+#: src/etc/inc/shaper.inc:2776 src/etc/inc/shaper.inc:2930
+#: src/etc/inc/shaper.inc:3049 src/etc/inc/shaper.inc:3275
+#: src/etc/inc/shaper.inc:3853 src/usr/local/www/interfaces_ppps_edit.php:910
#: src/usr/local/www/status_queues.php:163
#: src/usr/local/www/status_queues.php:167
msgid "Bandwidth"
msgstr ""
#: src/etc/inc/shaper.inc:438 src/etc/inc/shaper.inc:1903
-#: src/etc/inc/shaper.inc:2650 src/etc/inc/shaper.inc:2930
-#: src/etc/inc/shaper.inc:3277
+#: src/etc/inc/shaper.inc:2650 src/etc/inc/shaper.inc:2932
+#: src/etc/inc/shaper.inc:3279
msgid "Bandwidthtype"
msgstr ""
@@ -5830,7 +5812,7 @@ msgstr ""
msgid "The priority must be an integer between 1 and 15."
msgstr ""
-#: src/etc/inc/shaper.inc:1222 src/etc/inc/shaper.inc:3292
+#: src/etc/inc/shaper.inc:1222 src/etc/inc/shaper.inc:3294
msgid "Queue limit must be an integer"
msgstr ""
@@ -5839,7 +5821,7 @@ msgid "Queue limit must be positive"
msgstr ""
#: src/etc/inc/shaper.inc:1228 src/etc/inc/shaper.inc:1231
-#: src/etc/inc/shaper.inc:3295 src/etc/inc/shaper.inc:3298
+#: src/etc/inc/shaper.inc:3297 src/etc/inc/shaper.inc:3300
msgid "Queue names must be alphanumeric and _ or - only."
msgstr ""
@@ -5873,7 +5855,7 @@ msgstr ""
msgid "Scheduler options"
msgstr ""
-#: src/etc/inc/shaper.inc:1450 src/usr/local/www/firewall_rules_edit.php:1667
+#: src/etc/inc/shaper.inc:1450 src/usr/local/www/firewall_rules_edit.php:1655
msgid "Default Queue"
msgstr ""
@@ -5912,12 +5894,12 @@ msgstr ""
msgid "Select options for this queue"
msgstr ""
-#: src/etc/inc/shaper.inc:1487 src/etc/inc/shaper.inc:3887
-#: src/etc/inc/shaper.inc:4191 src/usr/local/www/firewall_aliases.php:198
+#: src/etc/inc/shaper.inc:1487 src/etc/inc/shaper.inc:3889
+#: src/etc/inc/shaper.inc:4193 src/usr/local/www/firewall_aliases.php:198
#: src/usr/local/www/firewall_aliases_edit.php:647
#: src/usr/local/www/firewall_aliases_edit.php:704
#: src/usr/local/www/firewall_aliases_import.php:234
-#: src/usr/local/www/firewall_nat.php:213
+#: src/usr/local/www/firewall_nat.php:215
#: src/usr/local/www/firewall_nat_1to1.php:154
#: src/usr/local/www/firewall_nat_1to1_edit.php:477
#: src/usr/local/www/firewall_nat_edit.php:864
@@ -5925,16 +5907,16 @@ msgstr ""
#: src/usr/local/www/firewall_nat_npt_edit.php:235
#: src/usr/local/www/firewall_nat_out.php:286
#: src/usr/local/www/firewall_nat_out.php:539
-#: src/usr/local/www/firewall_nat_out_edit.php:607
-#: src/usr/local/www/firewall_rules.php:384
-#: src/usr/local/www/firewall_rules_edit.php:1406
+#: src/usr/local/www/firewall_nat_out_edit.php:629
+#: src/usr/local/www/firewall_rules.php:383
+#: src/usr/local/www/firewall_rules_edit.php:1394
#: src/usr/local/www/firewall_schedule.php:95
#: src/usr/local/www/firewall_schedule_edit.php:371
#: src/usr/local/www/firewall_schedule_edit.php:615
#: src/usr/local/www/firewall_virtual_ip.php:265
#: src/usr/local/www/firewall_virtual_ip_edit.php:431
-#: src/usr/local/www/guiconfig.inc:1072 src/usr/local/www/interfaces.php:1695
-#: src/usr/local/www/interfaces.php:1855 src/usr/local/www/interfaces.php:3161
+#: src/usr/local/www/guiconfig.inc:1073 src/usr/local/www/interfaces.php:1698
+#: src/usr/local/www/interfaces.php:1858 src/usr/local/www/interfaces.php:3169
#: src/usr/local/www/interfaces_bridge.php:104
#: src/usr/local/www/interfaces_bridge_edit.php:408
#: src/usr/local/www/interfaces_gif.php:99
@@ -5945,7 +5927,7 @@ msgstr ""
#: src/usr/local/www/interfaces_lagg.php:106
#: src/usr/local/www/interfaces_lagg_edit.php:254
#: src/usr/local/www/interfaces_ppps.php:99
-#: src/usr/local/www/interfaces_ppps_edit.php:573
+#: src/usr/local/www/interfaces_ppps_edit.php:593
#: src/usr/local/www/interfaces_qinq.php:112
#: src/usr/local/www/interfaces_qinq_edit.php:253
#: src/usr/local/www/interfaces_vlan.php:110
@@ -5960,7 +5942,7 @@ msgstr ""
#: src/usr/local/www/load_balancer_virtual_server.php:146
#: src/usr/local/www/load_balancer_virtual_server_edit.php:183
#: src/usr/local/www/pkg_mgr.php:67 src/usr/local/www/pkg_mgr.php:157
-#: src/usr/local/www/pkg_mgr_installed.php:80
+#: src/usr/local/www/pkg_mgr_installed.php:78
#: src/usr/local/www/services_captiveportal_hostname.php:118
#: src/usr/local/www/services_captiveportal_hostname_edit.php:191
#: src/usr/local/www/services_captiveportal_ip.php:113
@@ -5970,10 +5952,10 @@ msgstr ""
#: src/usr/local/www/services_captiveportal_zones.php:81
#: src/usr/local/www/services_checkip.php:90
#: src/usr/local/www/services_checkip_edit.php:165
-#: src/usr/local/www/services_dhcp.php:657
-#: src/usr/local/www/services_dhcp.php:1306
-#: src/usr/local/www/services_dhcp_edit.php:456
-#: src/usr/local/www/services_dhcpv6.php:986
+#: src/usr/local/www/services_dhcp.php:663
+#: src/usr/local/www/services_dhcp.php:1319
+#: src/usr/local/www/services_dhcp_edit.php:463
+#: src/usr/local/www/services_dhcpv6.php:981
#: src/usr/local/www/services_dhcpv6_edit.php:241
#: src/usr/local/www/services_dnsmasq.php:322
#: src/usr/local/www/services_dnsmasq.php:396
@@ -6001,7 +5983,7 @@ msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:349
#: src/usr/local/www/status_gateway_groups.php:65
#: src/usr/local/www/status_gateways.php:66
-#: src/usr/local/www/status_graph.php:178
+#: src/usr/local/www/status_graph.php:166
#: src/usr/local/www/status_ipsec.php:475
#: src/usr/local/www/status_lb_pool.php:133
#: src/usr/local/www/status_lb_vs.php:66
@@ -6014,21 +5996,21 @@ msgstr ""
#: src/usr/local/www/system_gateway_groups_edit.php:337
#: src/usr/local/www/system_gateways.php:246
#: src/usr/local/www/system_gateways_edit.php:664
-#: src/usr/local/www/system_groupmanager.php:237
-#: src/usr/local/www/system_groupmanager.php:296
-#: src/usr/local/www/system_groupmanager.php:401
+#: src/usr/local/www/system_groupmanager.php:231
+#: src/usr/local/www/system_groupmanager.php:290
+#: src/usr/local/www/system_groupmanager.php:395
#: src/usr/local/www/system_routes.php:246
#: src/usr/local/www/system_routes_edit.php:273
-#: src/usr/local/www/system_usermanager.php:445
-#: src/usr/local/www/vpn_ipsec_phase1.php:694
-#: src/usr/local/www/vpn_ipsec_phase2.php:586
+#: src/usr/local/www/system_usermanager.php:439
+#: src/usr/local/www/vpn_ipsec_phase1.php:690
+#: src/usr/local/www/vpn_ipsec_phase2.php:581
#: src/usr/local/www/vpn_openvpn_client.php:528
#: src/usr/local/www/vpn_openvpn_client.php:793
#: src/usr/local/www/vpn_openvpn_csc.php:342
#: src/usr/local/www/vpn_openvpn_csc.php:641
-#: src/usr/local/www/vpn_openvpn_server.php:662
-#: src/usr/local/www/vpn_openvpn_server.php:1175
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:205
+#: src/usr/local/www/vpn_openvpn_server.php:666
+#: src/usr/local/www/vpn_openvpn_server.php:1187
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:206
#: src/usr/local/www/widgets/widgets/load_balancer_status.widget.php:62
#: src/usr/local/www/widgets/widgets/services_status.widget.php:75
msgid "Description"
@@ -6105,7 +6087,7 @@ msgid "Service Curve (sc)"
msgstr ""
#: src/etc/inc/shaper.inc:2284 src/etc/inc/shaper.inc:2796
-#: src/etc/inc/shaper.inc:3067
+#: src/etc/inc/shaper.inc:3069
msgid "Choose the amount of bandwidth for this queue"
msgstr ""
@@ -6140,105 +6122,109 @@ msgstr ""
msgid "Priority must be an integer between 1 and 7."
msgstr ""
+#: src/etc/inc/shaper.inc:2774
+msgid "NOTITLE"
+msgstr ""
+
#: src/etc/inc/shaper.inc:2802
msgid "Scheduler option"
msgstr ""
-#: src/etc/inc/shaper.inc:2925
+#: src/etc/inc/shaper.inc:2927
msgid "Priority must be an integer between 1 and 255."
msgstr ""
-#: src/etc/inc/shaper.inc:3073
+#: src/etc/inc/shaper.inc:3075
msgid "Scheduler specific options"
msgstr ""
-#: src/etc/inc/shaper.inc:3076
+#: src/etc/inc/shaper.inc:3078
msgid "Number of buckets available"
msgstr ""
-#: src/etc/inc/shaper.inc:3083
+#: src/etc/inc/shaper.inc:3085
msgid "Bandwidth limit for hosts to not saturate link"
msgstr ""
-#: src/etc/inc/shaper.inc:3285
+#: src/etc/inc/shaper.inc:3287
msgid "Packet Loss Rate must be a value between 0 and 1."
msgstr ""
-#: src/etc/inc/shaper.inc:3289
+#: src/etc/inc/shaper.inc:3291
msgid "Buckets must be an integer between 16 and 65535."
msgstr ""
-#: src/etc/inc/shaper.inc:3302
+#: src/etc/inc/shaper.inc:3304
msgid "IPv4 bit mask must be blank or numeric value between 1 and 32."
msgstr ""
-#: src/etc/inc/shaper.inc:3307
+#: src/etc/inc/shaper.inc:3309
msgid "IPv6 bit mask must be blank or numeric value between 1 and 128."
msgstr ""
-#: src/etc/inc/shaper.inc:3403
+#: src/etc/inc/shaper.inc:3405
#, php-format
msgid "SHAPER: Could not create queue %1$s on interface %2$s because: %3$s"
msgstr ""
-#: src/etc/inc/shaper.inc:3461
+#: src/etc/inc/shaper.inc:3463
#, php-format
msgid "Bandwidth for schedule %s must be an integer."
msgstr ""
-#: src/etc/inc/shaper.inc:3463
+#: src/etc/inc/shaper.inc:3465
#, php-format
msgid "Burst for schedule %s must be an integer."
msgstr ""
-#: src/etc/inc/shaper.inc:3470
+#: src/etc/inc/shaper.inc:3472
msgid "A schedule needs to be specified for every additional entry."
msgstr ""
-#: src/etc/inc/shaper.inc:3473
+#: src/etc/inc/shaper.inc:3475
msgid ""
"If more than one bandwidth configured all schedules need to be selected."
msgstr ""
-#: src/etc/inc/shaper.inc:3476
+#: src/etc/inc/shaper.inc:3478
msgid "At least one bw specification is necessary."
msgstr ""
-#: src/etc/inc/shaper.inc:3479
+#: src/etc/inc/shaper.inc:3481
msgid "Delay must be an integer."
msgstr ""
-#: src/etc/inc/shaper.inc:3783 src/usr/local/www/firewall_aliases_edit.php:711
-#: src/usr/local/www/firewall_nat.php:450
+#: src/etc/inc/shaper.inc:3785 src/usr/local/www/firewall_aliases_edit.php:711
+#: src/usr/local/www/firewall_nat.php:452
#: src/usr/local/www/firewall_nat_1to1.php:245
#: src/usr/local/www/firewall_nat_npt.php:234
#: src/usr/local/www/firewall_nat_out.php:503
-#: src/usr/local/www/firewall_rules.php:816
+#: src/usr/local/www/firewall_rules.php:815
#: src/usr/local/www/firewall_schedule_edit.php:619
#: src/usr/local/www/firewall_schedule_edit.php:1116
#: src/usr/local/www/interfaces_assign.php:542
#: src/usr/local/www/interfaces_qinq_edit.php:298
#: src/usr/local/www/interfaces_vlan.php:133
-#: src/usr/local/www/pkg_edit.php:1430 src/usr/local/www/services_dhcp.php:1245
-#: src/usr/local/www/services_dhcpv6.php:927
+#: src/usr/local/www/pkg_edit.php:1430 src/usr/local/www/services_dhcp.php:1258
+#: src/usr/local/www/services_dhcpv6.php:922
#: src/usr/local/www/services_dnsmasq_edit.php:289
#: src/usr/local/www/services_igmpproxy_edit.php:231
#: src/usr/local/www/services_ntpd.php:249
#: src/usr/local/www/services_ntpd_acls.php:286
#: src/usr/local/www/services_pppoe_edit.php:523
-#: src/usr/local/www/services_router_advertisements.php:411
+#: src/usr/local/www/services_router_advertisements.php:406
#: src/usr/local/www/services_unbound_acls.php:266
#: src/usr/local/www/services_unbound_host_edit.php:290
-#: src/usr/local/www/system_certmanager.php:742
-#: src/usr/local/www/system_usermanager.php:620
+#: src/usr/local/www/system_certmanager.php:755
+#: src/usr/local/www/system_usermanager.php:614
msgid "Delete"
msgstr ""
-#: src/etc/inc/shaper.inc:3791
+#: src/etc/inc/shaper.inc:3793
msgid "Add Schedule"
msgstr ""
-#: src/etc/inc/shaper.inc:3814 src/etc/inc/shaper.inc:4127
+#: src/etc/inc/shaper.inc:3816 src/etc/inc/shaper.inc:4129
#: src/usr/local/www/firewall_shaper.php:383
#: src/usr/local/www/firewall_shaper_queues.php:212
#: src/usr/local/www/firewall_shaper_vinterface.php:39
@@ -6247,15 +6233,15 @@ msgstr ""
msgid "Limiters"
msgstr ""
-#: src/etc/inc/shaper.inc:3818 src/etc/inc/shaper.inc:4131
+#: src/etc/inc/shaper.inc:3820 src/etc/inc/shaper.inc:4133
#: src/usr/local/www/firewall_nat_1to1_edit.php:488
-#: src/usr/local/www/firewall_rules.php:767
-#: src/usr/local/www/interfaces.php:1687 src/usr/local/www/interfaces.php:2959
+#: src/usr/local/www/firewall_rules.php:766
+#: src/usr/local/www/interfaces.php:1690 src/usr/local/www/interfaces.php:2967
#: src/usr/local/www/services_captiveportal.php:545
-#: src/usr/local/www/services_captiveportal_vouchers.php:481
+#: src/usr/local/www/services_captiveportal_vouchers.php:450
#: src/usr/local/www/services_checkip_edit.php:123
-#: src/usr/local/www/services_dhcp.php:757
-#: src/usr/local/www/services_dhcp.php:1132
+#: src/usr/local/www/services_dhcp.php:763
+#: src/usr/local/www/services_dhcp.php:1145
#: src/usr/local/www/services_dhcp_relay.php:144
#: src/usr/local/www/services_dhcpv6_relay.php:142
#: src/usr/local/www/services_dnsmasq.php:204
@@ -6264,25 +6250,25 @@ msgstr ""
#: src/usr/local/www/services_snmp.php:196
#: src/usr/local/www/services_snmp.php:239
#: src/usr/local/www/services_unbound.php:267
-#: src/usr/local/www/vpn_ipsec_phase1.php:859
+#: src/usr/local/www/vpn_ipsec_phase1.php:855
#: src/usr/local/www/vpn_l2tp.php:196 src/usr/local/www/vpn_l2tp.php:282
-#: src/usr/local/www/diag_routes.php:81
+#: src/usr/local/www/diag_routes.php:82
msgid "Enable"
msgstr ""
-#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166
+#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168
msgid "Source addresses"
msgstr ""
-#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166
+#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168
msgid "Destination addresses"
msgstr ""
-#: src/etc/inc/shaper.inc:3860 src/etc/inc/shaper.inc:4164
+#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166
msgid "Mask"
msgstr ""
-#: src/etc/inc/shaper.inc:3863 src/etc/inc/shaper.inc:4167
+#: src/etc/inc/shaper.inc:3865 src/etc/inc/shaper.inc:4169
msgid ""
"If \"source\" or \"destination\" slots is chosen a dynamic pipe with the "
"bandwidth, delay, packet loss and queue size given above will be created for "
@@ -6290,23 +6276,23 @@ msgid ""
"possible to easily specify bandwidth limits per host."
msgstr ""
-#: src/etc/inc/shaper.inc:3874 src/etc/inc/shaper.inc:4178
+#: src/etc/inc/shaper.inc:3876 src/etc/inc/shaper.inc:4180
msgid "IPv4 mask bits<br />255.255.255.255/?"
msgstr ""
-#: src/etc/inc/shaper.inc:3881 src/etc/inc/shaper.inc:4185
+#: src/etc/inc/shaper.inc:3883 src/etc/inc/shaper.inc:4187
msgid ""
"IPv6 mask bits<br /><span style=\"font-family:consolas\">ffff:ffff:ffff:ffff:"
"ffff:ffff:ffff:ffff/?</span>"
msgstr ""
-#: src/etc/inc/shaper.inc:3890 src/etc/inc/shaper.inc:4194
+#: src/etc/inc/shaper.inc:3892 src/etc/inc/shaper.inc:4196
#: src/usr/local/www/firewall_aliases_edit.php:650
#: src/usr/local/www/firewall_aliases_import.php:237
#: src/usr/local/www/firewall_nat_1to1_edit.php:480
#: src/usr/local/www/firewall_nat_edit.php:867
#: src/usr/local/www/firewall_nat_npt_edit.php:238
-#: src/usr/local/www/firewall_nat_out_edit.php:610
+#: src/usr/local/www/firewall_nat_out_edit.php:632
#: src/usr/local/www/firewall_virtual_ip_edit.php:434
#: src/usr/local/www/interfaces_gif_edit.php:228
#: src/usr/local/www/interfaces_gre_edit.php:211
@@ -6315,7 +6301,7 @@ msgstr ""
#: src/usr/local/www/services_captiveportal_hostname_edit.php:194
#: src/usr/local/www/services_captiveportal_zones_edit.php:95
#: src/usr/local/www/services_checkip_edit.php:168
-#: src/usr/local/www/services_dhcp_edit.php:459
+#: src/usr/local/www/services_dhcp_edit.php:466
#: src/usr/local/www/services_dhcpv6_edit.php:244
#: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:161
#: src/usr/local/www/services_dnsmasq_edit.php:239
@@ -6327,46 +6313,46 @@ msgstr ""
#: src/usr/local/www/services_wol_edit.php:143
#: src/usr/local/www/system_gateway_groups_edit.php:340
#: src/usr/local/www/system_routes_edit.php:276
-#: src/usr/local/www/vpn_ipsec_phase1.php:697
-#: src/usr/local/www/vpn_ipsec_phase2.php:589
+#: src/usr/local/www/vpn_ipsec_phase1.php:693
+#: src/usr/local/www/vpn_ipsec_phase2.php:584
#: src/usr/local/www/vpn_openvpn_client.php:531
-#: src/usr/local/www/vpn_openvpn_server.php:665
+#: src/usr/local/www/vpn_openvpn_server.php:669
msgid ""
"A description may be entered here for administrative reference (not parsed)."
msgstr ""
-#: src/etc/inc/shaper.inc:3894 src/etc/inc/shaper.inc:4198
-#: src/usr/local/www/firewall_rules_edit.php:1421
-#: src/usr/local/www/firewall_rules_edit.php:1427
+#: src/etc/inc/shaper.inc:3896 src/etc/inc/shaper.inc:4200
+#: src/usr/local/www/firewall_rules_edit.php:1409
+#: src/usr/local/www/firewall_rules_edit.php:1415
#: src/usr/local/www/interfaces_bridge_edit.php:424
-#: src/usr/local/www/vpn_ipsec_phase1.php:824
+#: src/usr/local/www/vpn_ipsec_phase1.php:820
msgid "Advanced Options"
msgstr ""
-#: src/etc/inc/shaper.inc:3898
+#: src/etc/inc/shaper.inc:3900
msgid "Delay (ms)"
msgstr ""
-#: src/etc/inc/shaper.inc:3901
+#: src/etc/inc/shaper.inc:3903
msgid ""
"In most cases, zero (0) should specified here (or leave the field empty)."
msgstr ""
-#: src/etc/inc/shaper.inc:3905 src/etc/inc/shaper.inc:4211
+#: src/etc/inc/shaper.inc:3907 src/etc/inc/shaper.inc:4213
msgid "Packet Loss Rate"
msgstr ""
-#: src/etc/inc/shaper.inc:3909
+#: src/etc/inc/shaper.inc:3911
msgid ""
"In most cases, zero (0) should be specified here (or leave the field empty). "
"A value of 0.001 means one packet in 1000 gets dropped."
msgstr ""
-#: src/etc/inc/shaper.inc:3914 src/etc/inc/shaper.inc:4220
+#: src/etc/inc/shaper.inc:3916 src/etc/inc/shaper.inc:4222
msgid "Queue size (slots)"
msgstr ""
-#: src/etc/inc/shaper.inc:3917 src/etc/inc/shaper.inc:4223
+#: src/etc/inc/shaper.inc:3919 src/etc/inc/shaper.inc:4225
msgid ""
"In most cases, the field should be left empty. All packets in this pipe are "
"placed into a fixed-size queue first, then they are delayed by value "
@@ -6374,184 +6360,180 @@ msgid ""
"destination."
msgstr ""
-#: src/etc/inc/shaper.inc:3922 src/etc/inc/shaper.inc:4228
+#: src/etc/inc/shaper.inc:3924 src/etc/inc/shaper.inc:4230
msgid "Bucket size (slots)"
msgstr ""
-#: src/etc/inc/shaper.inc:3925
+#: src/etc/inc/shaper.inc:3927
msgid ""
"In most cases, this field should be left empty. It increases the hash size "
"set."
msgstr ""
-#: src/etc/inc/shaper.inc:3996
+#: src/etc/inc/shaper.inc:3998
msgid "Weight must be an integer between 1 and 100."
msgstr ""
-#: src/etc/inc/shaper.inc:4202 src/usr/local/www/system_gateways_edit.php:691
+#: src/etc/inc/shaper.inc:4204 src/usr/local/www/system_gateways_edit.php:691
msgid "Weight"
msgstr ""
-#: src/etc/inc/shaper.inc:4206
+#: src/etc/inc/shaper.inc:4208
msgid ""
"For queues under the same parent this specifies the share that a queue "
"gets(values range from 1 to 100), it can be left blank otherwise."
msgstr ""
-#: src/etc/inc/shaper.inc:4215
+#: src/etc/inc/shaper.inc:4217
msgid ""
"In most cases, zero (0) should be specified here (or leave the field empty). "
"A value of 0.001 means one packet in 1000 gets dropped"
msgstr ""
-#: src/etc/inc/shaper.inc:4231
+#: src/etc/inc/shaper.inc:4233
msgid ""
"In most cases, this field should be left empty. It increases the hash size "
"set"
msgstr ""
-#: src/etc/inc/shaper.inc:4626
+#: src/etc/inc/shaper.inc:4628
msgid "Clone Shaper to this Interface"
msgstr ""
-#: src/etc/inc/shaper.inc:4635
+#: src/etc/inc/shaper.inc:4637
#, php-format
msgid "Welcome to the %s Traffic Shaper."
msgstr ""
-#: src/etc/inc/shaper.inc:4638
+#: src/etc/inc/shaper.inc:4640
#, php-format
msgid "The tree on the left navigates through the %s."
msgstr ""
-#: src/etc/inc/shaper.inc:4639
+#: src/etc/inc/shaper.inc:4641
msgid "queues"
msgstr ""
-#: src/etc/inc/shaper.inc:4640
+#: src/etc/inc/shaper.inc:4642
msgid "limiters"
msgstr ""
-#: src/etc/inc/shaper.inc:4642
+#: src/etc/inc/shaper.inc:4644
#, php-format
msgid ""
"Buttons at the bottom represent %s actions and are activated accordingly."
msgstr ""
-#: src/etc/inc/shaper.inc:4643 src/usr/local/www/diag_pftop.php:97
+#: src/etc/inc/shaper.inc:4645 src/usr/local/www/diag_pftop.php:97
msgid "queue"
msgstr ""
-#: src/etc/inc/shaper.inc:4644
+#: src/etc/inc/shaper.inc:4646
msgid "limiter"
msgstr ""
-#: src/etc/inc/system.inc:431
+#: src/etc/inc/system.inc:426
msgid "Error: cannot open hosts file in system_hosts_generate()."
msgstr ""
-#: src/etc/inc/system.inc:581
+#: src/etc/inc/system.inc:582
msgid "Not adding default route because OLSR dynamic gateway is enabled."
msgstr ""
-#: src/etc/inc/system.inc:609
+#: src/etc/inc/system.inc:610
#, php-format
msgid "ROUTING: setting default route to %s"
msgstr ""
-#: src/etc/inc/system.inc:620
+#: src/etc/inc/system.inc:621
#, php-format
msgid "ROUTING: setting IPv6 default route to %s"
msgstr ""
-#: src/etc/inc/system.inc:641
+#: src/etc/inc/system.inc:642
#, php-format
msgid "Static Routes: Gateway IP could not be found for %s"
msgstr ""
-#: src/etc/inc/system.inc:856
+#: src/etc/inc/system.inc:857
msgid "Starting syslog..."
msgstr ""
-#: src/etc/inc/system.inc:1017
+#: src/etc/inc/system.inc:1030
#, php-format
msgid "Error: cannot open syslog.conf in system_syslogd_start().%s"
msgstr ""
-#: src/etc/inc/system.inc:1081
+#: src/etc/inc/system.inc:1109
msgid "Creating SSL Certificate for this host"
msgstr ""
-#: src/etc/inc/system.inc:1085
+#: src/etc/inc/system.inc:1113
#, php-format
msgid "webConfigurator default (%s)"
msgstr ""
-#: src/etc/inc/system.inc:1097
+#: src/etc/inc/system.inc:1125
#, php-format
msgid "Error creating WebGUI Certificate: openssl library returns: %s"
msgstr ""
-#: src/etc/inc/system.inc:1106
+#: src/etc/inc/system.inc:1134
#, php-format
msgid "Generated new self-signed HTTPS certificate (%s)"
msgstr ""
-#: src/etc/inc/system.inc:1114
+#: src/etc/inc/system.inc:1142
msgid "Starting webConfigurator..."
msgstr ""
-#: src/etc/inc/system.inc:1164 src/etc/inc/system.inc:2002
-#: src/etc/inc/system.inc:2005
+#: src/etc/inc/system.inc:1192 src/etc/inc/system.inc:2026
+#: src/etc/inc/system.inc:2029
msgid "failed!"
msgstr ""
-#: src/etc/inc/system.inc:1364
+#: src/etc/inc/system.inc:1394
#, php-format
msgid "Error: cannot open certificate file in system_webgui_start().%s"
msgstr ""
-#: src/etc/inc/system.inc:1377
+#: src/etc/inc/system.inc:1407
#, php-format
msgid "Error: cannot open certificate key file in system_webgui_start().%s"
msgstr ""
-#: src/etc/inc/system.inc:1404
+#: src/etc/inc/system.inc:1434
#, php-format
msgid "Error: cannot open %s in system_generate_nginx_config().%s"
msgstr ""
-#: src/etc/inc/system.inc:1453
+#: src/etc/inc/system.inc:1483
msgid "Setting timezone..."
msgstr ""
-#: src/etc/inc/system.inc:1841
+#: src/etc/inc/system.inc:1865
#, php-format
msgid "Could not open %s/ntpd.conf for writing"
msgstr ""
-#: src/etc/inc/system.inc:1954
+#: src/etc/inc/system.inc:1978
#, php-format
msgid "Error: cannot open dmesg.boot in system_dmesg_save().%s"
msgstr ""
-#: src/etc/inc/system.inc:1981
+#: src/etc/inc/system.inc:2005
msgid "Setting hard disk standby... "
msgstr ""
-#: src/etc/inc/system.inc:2193
+#: src/etc/inc/system.inc:2212
msgid "PC Engines WRAP"
msgstr ""
-#: src/etc/inc/system.inc:2197 src/etc/inc/system.inc:2216
+#: src/etc/inc/system.inc:2216 src/etc/inc/system.inc:2235
msgid "PC Engines ALIX"
msgstr ""
-#: src/etc/inc/system.inc:2221
-msgid "embedded (unknown)"
-msgstr ""
-
-#: src/etc/inc/unbound.inc:766 src/usr/local/www/services_dhcpv6.php:779
+#: src/etc/inc/unbound.inc:766 src/usr/local/www/services_dhcpv6.php:774
#: src/usr/local/www/services_unbound_acls.php:231
msgid "Deny"
msgstr ""
@@ -6816,22 +6798,7 @@ msgstr ""
msgid "WARNING: A name must be given as parameter to try_lock() function."
msgstr ""
-#: src/etc/inc/util.inc:247 src/etc/inc/util.inc:272
-#, php-format
-msgid "Could not open shared memory %s"
-msgstr ""
-
-#: src/etc/inc/util.inc:280
-#, php-format
-msgid "Reference %s is going negative, not doing unreference."
-msgstr ""
-
-#: src/etc/inc/util.inc:299
-#, php-format
-msgid "Could not open shared memory for read %s"
-msgstr ""
-
-#: src/etc/inc/util.inc:1034
+#: src/etc/inc/util.inc:1012
#, php-format
msgid ""
"The %1$s name must be less than 32 characters long, may not consist of only "
@@ -6839,240 +6806,200 @@ msgid ""
"following characters: %2$s"
msgstr ""
-#: src/etc/inc/util.inc:1041
+#: src/etc/inc/util.inc:1019
#, php-format
msgid "The %1$s name must not be either of the reserved words %2$s or %3$s."
msgstr ""
-#: src/etc/inc/util.inc:1048
+#: src/etc/inc/util.inc:1026
#, php-format
msgid ""
"The %1$s name must not be a well-known IP protocol name such as TCP, UDP, "
"ICMP etc."
msgstr ""
-#: src/etc/inc/util.inc:1055
+#: src/etc/inc/util.inc:1033
#, php-format
msgid ""
"The %1$s name must not be a well-known TCP or UDP port name such as ssh, "
"smtp, pop3, tftp, http, openvpn etc."
msgstr ""
-#: src/etc/inc/util.inc:1641
+#: src/etc/inc/util.inc:1619
#, php-format
msgid "The command '%1$s' returned exit code '%2$d', the output was '%3$s' "
msgstr ""
-#: src/etc/inc/voucher.inc:64 src/etc/inc/voucher.inc:124
-#: src/etc/inc/voucher.inc:183
+#: src/etc/inc/voucher.inc:105
#, php-format
-msgid "Captive Portal Voucher XMLRPC sync data %s."
+msgid "Captive Portal Voucher database synchronized with %s:%s"
msgstr ""
-#: src/etc/inc/voucher.inc:70 src/etc/inc/voucher.inc:130
-#: src/etc/inc/voucher.inc:189
-#, php-format
-msgid ""
-"A communications error occurred while attempting CaptivePortalVoucherSync "
-"XMLRPC sync with %s (pfsense.exec_php)."
-msgstr ""
-
-#: src/etc/inc/voucher.inc:75 src/etc/inc/voucher.inc:135
-#: src/etc/inc/voucher.inc:194
-#, php-format
-msgid ""
-"An error code was received while attempting CaptivePortalVoucherSync XMLRPC "
-"sync with %1$s - Code %2$s"
-msgstr ""
-
-#: src/etc/inc/voucher.inc:80 src/etc/inc/voucher.inc:140
-#: src/etc/inc/voucher.inc:199
-#, php-format
-msgid ""
-"CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense."
-"exec_php)."
-msgstr ""
-
-#: src/etc/inc/voucher.inc:208
-#, php-format
-msgid "Captive Portal Voucher database synchronized with %s"
-msgstr ""
-
-#: src/etc/inc/voucher.inc:295 src/etc/inc/voucher.inc:437
+#: src/etc/inc/voucher.inc:192 src/etc/inc/voucher.inc:334
#, php-format
msgid "%1$s (%2$s/%3$s): not found on any registered Roll"
msgstr ""
-#: src/etc/inc/voucher.inc:299
+#: src/etc/inc/voucher.inc:196
#, php-format
msgid "%1$s invalid: %2$s!!"
msgstr ""
-#: src/etc/inc/voucher.inc:386
+#: src/etc/inc/voucher.inc:283
#, php-format
msgid "%s invalid: Too short!"
msgstr ""
-#: src/etc/inc/voucher.inc:412
+#: src/etc/inc/voucher.inc:309
#, php-format
msgid "%1$s (%2$s/%3$s) active and good for %4$d Minutes"
msgstr ""
-#: src/etc/inc/voucher.inc:424
+#: src/etc/inc/voucher.inc:321
#, php-format
msgid "%1$s (%2$s/%3$s) already used and expired"
msgstr ""
-#: src/etc/inc/voucher.inc:432
+#: src/etc/inc/voucher.inc:329
#, php-format
msgid "%1$s (%2$s/%3$s) good for %4$s Minutes"
msgstr ""
-#: src/etc/inc/voucher.inc:443
+#: src/etc/inc/voucher.inc:340
#, php-format
msgid "%1$s invalid: %2$s !!"
msgstr ""
-#: src/etc/inc/voucher.inc:453
+#: src/etc/inc/voucher.inc:350
msgid "Access denied!"
msgstr ""
-#: src/etc/inc/voucher.inc:455
+#: src/etc/inc/voucher.inc:352
#, php-format
msgid "Access granted for %d Minutes in total."
msgstr ""
-#: src/etc/inc/voucher.inc:524
+#: src/etc/inc/voucher.inc:421
msgid "Enabling voucher support... "
msgstr ""
-#: src/etc/inc/voucher.inc:567
+#: src/etc/inc/voucher.inc:464
#, php-format
msgid "Error: cannot write voucher.cfg"
msgstr ""
-#: src/etc/inc/voucher.inc:622
+#: src/etc/inc/voucher.inc:519
#, php-format
msgid "cant write %1$s/voucher_%2$s_used_%3$s.db"
msgstr ""
-#: src/etc/inc/voucher.inc:708
+#: src/etc/inc/voucher.inc:605
#, php-format
msgid "cant read %1$s/voucher_%2$s_used_%3$s.db"
msgstr ""
-#: src/etc/inc/voucher.inc:725
+#: src/etc/inc/voucher.inc:622
#, php-format
msgid "Voucher: %s"
msgstr ""
-#: src/etc/inc/voucher.inc:780
+#: src/etc/inc/voucher.inc:677
msgid "Syncing vouchers"
msgstr ""
-#: src/etc/inc/vpn.inc:240
+#: src/etc/inc/vpn.inc:232
msgid "Configuring IPsec VPN... "
msgstr ""
-#: src/etc/inc/vpn.inc:281
+#: src/etc/inc/vpn.inc:273
#, php-format
msgid ""
"IPsec ERROR: Could not find phase 1 source for connection %s. Omitting from "
"configuration file."
msgstr ""
-#: src/etc/inc/vpn.inc:310
+#: src/etc/inc/vpn.inc:302
#, php-format
msgid "The remote gateway %s already exists on another phase 1 entry"
msgstr ""
-#: src/etc/inc/vpn.inc:627
+#: src/etc/inc/vpn.inc:619
#, php-format
msgid "Warning: Missing CRL data for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:632
+#: src/etc/inc/vpn.inc:624
#, php-format
msgid "Error: Cannot write IPsec CRL file for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:656
+#: src/etc/inc/vpn.inc:648
#, php-format
msgid "Error: Invalid phase1 certificate reference for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:674
+#: src/etc/inc/vpn.inc:666
#, php-format
msgid "Error: Cannot write phase1 key file for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:681
+#: src/etc/inc/vpn.inc:673
#, php-format
msgid "Error: Cannot write phase1 certificate file for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:746
+#: src/etc/inc/vpn.inc:738
#, php-format
msgid "Error: Invalid certificate hash info for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:751
+#: src/etc/inc/vpn.inc:743
#, php-format
msgid "Error: Cannot write IPsec CA file for %s"
msgstr ""
-#: src/etc/inc/vpn.inc:1380
+#: src/etc/inc/vpn.inc:1372
#, php-format
msgid "No phase2 specifications for tunnel with REQID = %s"
msgstr ""
-#: src/etc/inc/vpn.inc:1499
+#: src/etc/inc/vpn.inc:1491
#, php-format
msgid "Ignoring IPsec reload since there are no tunnels on interface %s"
msgstr ""
-#: src/etc/inc/vpn.inc:1505
+#: src/etc/inc/vpn.inc:1497
msgid "Forcefully reloading IPsec"
msgstr ""
-#: src/etc/inc/vpn.inc:1555
+#: src/etc/inc/vpn.inc:1547
msgid "Configuring PPPoE Server service... "
msgstr ""
-#: src/etc/inc/vpn.inc:1580
+#: src/etc/inc/vpn.inc:1572
#, php-format
msgid "Error: cannot open mpd.conf in vpn_pppoe_configure()."
msgstr ""
-#: src/etc/inc/vpn.inc:1702
-#, php-format
-msgid "Error: cannot open mpd.links in vpn_pppoe_configure()."
-msgstr ""
-
-#: src/etc/inc/vpn.inc:1729
+#: src/etc/inc/vpn.inc:1689
#, php-format
msgid "Error: cannot open mpd.secret in vpn_pppoe_configure()."
msgstr ""
-#: src/etc/inc/vpn.inc:1763
+#: src/etc/inc/vpn.inc:1723
msgid "done"
msgstr ""
-#: src/etc/inc/vpn.inc:1785
+#: src/etc/inc/vpn.inc:1745
msgid "Configuring l2tp VPN service... "
msgstr ""
-#: src/etc/inc/vpn.inc:1824
+#: src/etc/inc/vpn.inc:1784
#, php-format
msgid "Error: cannot open mpd.conf in vpn_l2tp_configure()."
msgstr ""
-#: src/etc/inc/vpn.inc:1927
-#, php-format
-msgid "Error: cannot open mpd.links in vpn_l2tp_configure()."
-msgstr ""
-
-#: src/etc/inc/vpn.inc:1954
+#: src/etc/inc/vpn.inc:1881
#, php-format
msgid "Error: cannot open mpd.secret in vpn_l2tp_configure()."
msgstr ""
@@ -7106,117 +7033,20 @@ msgstr ""
msgid "Error returned while trying to parse %s"
msgstr ""
-#: src/etc/inc/xmlrpc.inc:90
+#: src/etc/inc/xmlrpc_client.inc:89
#, php-format
-msgid ""
-"webConfigurator authentication error for 'admin' from %s during sync "
-"settings."
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:152
-msgid "Unknown method"
+msgid "Beginning XMLRPC sync data to %s."
msgstr ""
-#: src/etc/inc/xmlrpc_client.inc:153
-msgid "Invalid return payload: enable debugging to examine incoming payload"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:154
-msgid "Incorrect parameters passed to method"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:155
-msgid "Can't introspect: method unknown"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:156
-msgid "Didn't receive 200 OK from remote server."
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:157
-msgid "The requested method didn't return an XML_RPC_Response object."
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:158
-msgid "Invalid request payload"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:260
-msgid "missing top level xmlrpc element"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:268
-#, php-format
-msgid "xmlrpc element %1$s cannot be child of %2$s"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:431
-msgid "Non-numeric value received in INT or DOUBLE"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:864
-#, php-format
-msgid "send()'s %s parameter must be an XML_RPC_Message object."
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:945
+#: src/etc/inc/xmlrpc_client.inc:92
#, php-format
msgid ""
-"Connection to proxy server \n"
-" %1$s:%2$s failed. %3$s"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:951
-#, php-format
-msgid ""
-"Connection to RPC server \n"
-" %1$s:%2$s failed. %3$s"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:1316
-msgid "The submitted request did not contain this parameter"
+"A communications error occurred while attempting XMLRPC sync with %s "
+"(pfsense.%s)."
msgstr ""
-#: src/etc/inc/xmlrpc_client.inc:1347
-msgid "mb_convert_encoding() is not available"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:1456
-#, php-format
-msgid "HTTP error, got response: %s"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:1579
-msgid "Scalar can have only one value"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:1586
-#, php-format
-msgid "Not a scalar type (%s)"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_client.inc:1622 src/etc/inc/xmlrpc_client.inc:1638
-#, php-format
-msgid "Already initialized as a [%s]"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_server.inc:48
-msgid ""
-"This method lists all the methods that the XML-RPC server knows how to "
-"dispatch"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_server.inc:66
-msgid ""
-"Returns an array of known signatures (an array of arrays) for the method "
-"name passed. If no signatures are known, returns a none-array (test for "
-"type != array to detect missing signature)"
-msgstr ""
-
-#: src/etc/inc/xmlrpc_server.inc:86
-msgid ""
-"Returns help text if defined for the method passed, otherwise returns an "
-"empty string"
+#: src/etc/inc/xmlrpc_client.inc:123
+msgid "Error code received"
msgstr ""
#: src/usr/local/bin/dhcpd_gather_stats.php:102
@@ -7263,14 +7093,14 @@ msgid "Confirm"
msgstr ""
#: src/usr/local/www/classes/Form.class.php:38
-#: src/usr/local/www/diag_confbak.php:173 src/usr/local/www/diag_edit.php:123
-#: src/usr/local/www/diag_edit.php:125 src/usr/local/www/firewall_nat.php:454
-#: src/usr/local/www/firewall_nat.php:468
+#: src/usr/local/www/diag_confbak.php:171 src/usr/local/www/diag_edit.php:121
+#: src/usr/local/www/diag_edit.php:123 src/usr/local/www/firewall_nat.php:456
+#: src/usr/local/www/firewall_nat.php:470
#: src/usr/local/www/firewall_nat_1to1.php:249
#: src/usr/local/www/firewall_nat_npt.php:238
#: src/usr/local/www/firewall_nat_out.php:507
-#: src/usr/local/www/firewall_rules.php:820
-#: src/usr/local/www/firewall_rules.php:871
+#: src/usr/local/www/firewall_rules.php:819
+#: src/usr/local/www/firewall_rules.php:870
#: src/usr/local/www/interfaces_assign.php:575 src/usr/local/www/pkg.php:593
#: src/usr/local/www/pkg_edit.php:589
#: src/usr/local/www/services_igmpproxy.php:139
@@ -7280,42 +7110,40 @@ msgstr ""
#: src/usr/local/www/status_logs_common.inc:940
#: src/usr/local/www/system_advanced_sysctl.php:94
#: src/usr/local/www/system_authservers.php:80
-#: src/usr/local/www/system_camanager.php:313
-#: src/usr/local/www/system_camanager.php:343
+#: src/usr/local/www/system_camanager.php:318
+#: src/usr/local/www/system_camanager.php:348
#: src/usr/local/www/system_certmanager.php:219
-#: src/usr/local/www/system_certmanager.php:515
-#: src/usr/local/www/system_certmanager.php:545
+#: src/usr/local/www/system_certmanager.php:520
+#: src/usr/local/www/system_certmanager.php:550
#: src/usr/local/www/system_crlmanager.php:255
#: src/usr/local/www/system_crlmanager.php:339
#: src/usr/local/www/widgets/widgets/log.widget.php:262
#: src/usr/local/www/widgets/widgets/rss.widget.php:156
#: src/usr/local/www/widgets/widgets/services_status.widget.php:135
#: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:239
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:165
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:438
msgid "Save"
msgstr ""
-#: src/usr/local/www/crash_reporter.php:56 src/usr/local/www/diag_arp.php:270
+#: src/usr/local/www/crash_reporter.php:56 src/usr/local/www/diag_arp.php:269
#: src/usr/local/www/diag_authentication.php:69
-#: src/usr/local/www/diag_backup.php:563 src/usr/local/www/diag_command.php:91
-#: src/usr/local/www/diag_confbak.php:101
-#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/diag_dns.php:29
-#: src/usr/local/www/diag_dump_states.php:75
+#: src/usr/local/www/diag_backup.php:518 src/usr/local/www/diag_command.php:90
+#: src/usr/local/www/diag_confbak.php:99 src/usr/local/www/diag_defaults.php:40
+#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dump_states.php:75
#: src/usr/local/www/diag_dump_states_sources.php:53
#: src/usr/local/www/diag_edit.php:31 src/usr/local/www/diag_gmirror.php:33
#: src/usr/local/www/diag_halt.php:45
-#: src/usr/local/www/diag_limiter_info.php:31
-#: src/usr/local/www/diag_nanobsd.php:40 src/usr/local/www/diag_ndp.php:96
+#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/diag_ndp.php:96
#: src/usr/local/www/diag_packet_capture.php:84
#: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/diag_pftop.php:31
#: src/usr/local/www/diag_ping.php:35 src/usr/local/www/diag_reboot.php:43
#: src/usr/local/www/diag_resetstate.php:56
-#: src/usr/local/www/diag_routes.php:64 src/usr/local/www/diag_smart.php:36
+#: src/usr/local/www/diag_routes.php:65 src/usr/local/www/diag_smart.php:36
#: src/usr/local/www/diag_sockets.php:31
-#: src/usr/local/www/diag_states_summary.php:187
+#: src/usr/local/www/diag_states_summary.php:192
#: src/usr/local/www/diag_system_activity.php:31
#: src/usr/local/www/diag_tables.php:29 src/usr/local/www/diag_testport.php:38
-#: src/usr/local/www/diag_traceroute.php:37 src/usr/local/www/head.inc:595
+#: src/usr/local/www/diag_traceroute.php:37 src/usr/local/www/head.inc:580
msgid "Diagnostics"
msgstr ""
@@ -7390,21 +7218,21 @@ msgstr ""
msgid "The ARP cache entry for %s has been deleted."
msgstr ""
-#: src/usr/local/www/diag_arp.php:270 src/usr/local/www/diag_arp.php:326
-#: src/usr/local/www/head.inc:338
+#: src/usr/local/www/diag_arp.php:269 src/usr/local/www/diag_arp.php:325
+#: src/usr/local/www/head.inc:332
msgid "ARP Table"
msgstr ""
-#: src/usr/local/www/diag_arp.php:281
+#: src/usr/local/www/diag_arp.php:280
msgid " Loading, please wait..."
msgstr ""
-#: src/usr/local/www/diag_arp.php:333
+#: src/usr/local/www/diag_arp.php:332
#: src/usr/local/www/diag_dump_states.php:130
#: src/usr/local/www/diag_dump_states.php:179
#: src/usr/local/www/diag_ndp.php:111
-#: src/usr/local/www/diag_packet_capture.php:279
-#: src/usr/local/www/firewall_nat.php:205
+#: src/usr/local/www/diag_packet_capture.php:278
+#: src/usr/local/www/firewall_nat.php:207
#: src/usr/local/www/firewall_nat_1to1.php:150
#: src/usr/local/www/firewall_nat_1to1_edit.php:119
#: src/usr/local/www/firewall_nat_1to1_edit.php:122
@@ -7417,10 +7245,10 @@ msgstr ""
#: src/usr/local/www/firewall_nat_npt_edit.php:198
#: src/usr/local/www/firewall_nat_out.php:278
#: src/usr/local/www/firewall_nat_out.php:531
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_nat_out_edit.php:460
-#: src/usr/local/www/firewall_rules_edit.php:1174
-#: src/usr/local/www/firewall_rules_edit.php:1182
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_nat_out_edit.php:475
+#: src/usr/local/www/firewall_rules_edit.php:1169
+#: src/usr/local/www/firewall_rules_edit.php:1177
#: src/usr/local/www/firewall_virtual_ip.php:263
#: src/usr/local/www/firewall_virtual_ip_edit.php:368
#: src/usr/local/www/interfaces_assign.php:513
@@ -7447,7 +7275,7 @@ msgstr ""
#: src/usr/local/www/services_wol_edit.php:73
#: src/usr/local/www/services_wol_edit.php:126
#: src/usr/local/www/status_dhcp_leases.php:464
-#: src/usr/local/www/status_graph.php:148
+#: src/usr/local/www/status_graph.php:136
#: src/usr/local/www/status_logs_common.inc:470
#: src/usr/local/www/status_logs_common.inc:502
#: src/usr/local/www/status_logs_common.inc:505
@@ -7457,39 +7285,39 @@ msgstr ""
#: src/usr/local/www/system_gateways_edit.php:108
#: src/usr/local/www/system_gateways_edit.php:587
#: src/usr/local/www/system_routes.php:245
-#: src/usr/local/www/vpn_ipsec_phase1.php:678
+#: src/usr/local/www/vpn_ipsec_phase1.php:674
#: src/usr/local/www/vpn_l2tp.php:215
#: src/usr/local/www/vpn_openvpn_client.php:456
-#: src/usr/local/www/vpn_openvpn_server.php:647
+#: src/usr/local/www/vpn_openvpn_server.php:651
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:40
msgid "Interface"
msgstr ""
-#: src/usr/local/www/diag_arp.php:335 src/usr/local/www/diag_ndp.php:109
+#: src/usr/local/www/diag_arp.php:334 src/usr/local/www/diag_ndp.php:109
#: src/usr/local/www/services_captiveportal_mac.php:177
#: src/usr/local/www/services_captiveportal_mac_edit.php:99
-#: src/usr/local/www/services_dhcp.php:1303
+#: src/usr/local/www/services_dhcp.php:1316
#: src/usr/local/www/services_wol.php:147
#: src/usr/local/www/services_wol.php:176
#: src/usr/local/www/services_wol_edit.php:73
#: src/usr/local/www/services_wol_edit.php:133
#: src/usr/local/www/status_captiveportal.php:153
#: src/usr/local/www/status_dhcp_leases.php:347
-#: src/usr/local/www/status_dhcpv6_leases.php:436
+#: src/usr/local/www/status_dhcpv6_leases.php:433
#: src/usr/local/www/widgets/widgets/captive_portal_status.widget.php:83
msgid "MAC address"
msgstr ""
-#: src/usr/local/www/diag_arp.php:336 src/usr/local/www/diag_dns.php:233
+#: src/usr/local/www/diag_arp.php:335 src/usr/local/www/diag_dns.php:222
#: src/usr/local/www/diag_ndp.php:110 src/usr/local/www/diag_ping.php:131
#: src/usr/local/www/diag_testport.php:221
-#: src/usr/local/www/diag_traceroute.php:119
-#: src/usr/local/www/interfaces.php:1909
+#: src/usr/local/www/diag_traceroute.php:125
+#: src/usr/local/www/interfaces.php:1912
#: src/usr/local/www/services_captiveportal_hostname.php:117
#: src/usr/local/www/services_captiveportal_hostname_edit.php:184
-#: src/usr/local/www/services_dhcp.php:1305
-#: src/usr/local/www/services_dhcp_edit.php:433
-#: src/usr/local/www/services_dhcpv6.php:985
+#: src/usr/local/www/services_dhcp.php:1318
+#: src/usr/local/www/services_dhcp_edit.php:440
+#: src/usr/local/www/services_dhcpv6.php:980
#: src/usr/local/www/services_dhcpv6_edit.php:234
#: src/usr/local/www/services_dyndns.php:89
#: src/usr/local/www/services_dyndns_edit.php:94
@@ -7499,19 +7327,24 @@ msgstr ""
#: src/usr/local/www/services_rfc2136_edit.php:78
#: src/usr/local/www/services_rfc2136_edit.php:183
#: src/usr/local/www/status_dhcp_leases.php:348
-#: src/usr/local/www/status_dhcpv6_leases.php:437
-#: src/usr/local/www/system.php:112 src/usr/local/www/system.php:354
+#: src/usr/local/www/status_dhcpv6_leases.php:434
+#: src/usr/local/www/system.php:113 src/usr/local/www/system.php:359
#: src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php:96
msgid "Hostname"
msgstr ""
-#: src/usr/local/www/diag_arp.php:337 src/usr/local/www/diag_confbak.php:216
+#: src/usr/local/www/diag_arp.php:337
+#: src/usr/local/www/interfaces_ppps_edit.php:576
+msgid "Link Type"
+msgstr ""
+
+#: src/usr/local/www/diag_arp.php:338 src/usr/local/www/diag_confbak.php:214
#: src/usr/local/www/firewall_aliases.php:199
-#: src/usr/local/www/firewall_nat.php:214
+#: src/usr/local/www/firewall_nat.php:216
#: src/usr/local/www/firewall_nat_1to1.php:155
#: src/usr/local/www/firewall_nat_npt.php:154
#: src/usr/local/www/firewall_nat_out.php:287
-#: src/usr/local/www/firewall_rules.php:385
+#: src/usr/local/www/firewall_rules.php:384
#: src/usr/local/www/firewall_schedule.php:96
#: src/usr/local/www/firewall_virtual_ip.php:266
#: src/usr/local/www/interfaces_bridge.php:105
@@ -7526,15 +7359,15 @@ msgstr ""
#: src/usr/local/www/load_balancer_monitor.php:109
#: src/usr/local/www/load_balancer_pool.php:126
#: src/usr/local/www/load_balancer_virtual_server.php:147
-#: src/usr/local/www/pkg_mgr_installed.php:81
-#: src/usr/local/www/services_captiveportal_filemanager.php:192
+#: src/usr/local/www/pkg_mgr_installed.php:79
+#: src/usr/local/www/services_captiveportal_filemanager.php:190
#: src/usr/local/www/services_captiveportal_hostname.php:119
#: src/usr/local/www/services_captiveportal_ip.php:114
#: src/usr/local/www/services_captiveportal_mac.php:179
-#: src/usr/local/www/services_captiveportal_vouchers.php:426
+#: src/usr/local/www/services_captiveportal_vouchers.php:395
#: src/usr/local/www/services_captiveportal_zones.php:82
#: src/usr/local/www/services_checkip.php:91
-#: src/usr/local/www/services_dhcp.php:658
+#: src/usr/local/www/services_dhcp.php:664
#: src/usr/local/www/services_dnsmasq.php:323
#: src/usr/local/www/services_dnsmasq.php:397
#: src/usr/local/www/services_dyndns.php:92
@@ -7547,43 +7380,61 @@ msgstr ""
#: src/usr/local/www/services_wol.php:178
#: src/usr/local/www/status_captiveportal.php:171
#: src/usr/local/www/status_dhcp_leases.php:354
-#: src/usr/local/www/status_dhcpv6_leases.php:442
+#: src/usr/local/www/status_dhcpv6_leases.php:439
#: src/usr/local/www/status_logs_filter_summary.php:83
+#: src/usr/local/www/status_openvpn.php:147
#: src/usr/local/www/status_services.php:89
#: src/usr/local/www/system_authservers.php:438
-#: src/usr/local/www/system_camanager.php:357
-#: src/usr/local/www/system_certmanager.php:933
+#: src/usr/local/www/system_camanager.php:362
+#: src/usr/local/www/system_certmanager.php:954
#: src/usr/local/www/system_crlmanager.php:580
#: src/usr/local/www/system_gateway_groups.php:134
#: src/usr/local/www/system_gateways.php:247
-#: src/usr/local/www/system_groupmanager.php:298
+#: src/usr/local/www/system_groupmanager.php:292
#: src/usr/local/www/system_routes.php:247
-#: src/usr/local/www/system_usermanager.php:574
+#: src/usr/local/www/system_usermanager.php:568
#: src/usr/local/www/vpn_ipsec.php:255 src/usr/local/www/vpn_ipsec_keys.php:103
#: src/usr/local/www/vpn_l2tp_users.php:97
#: src/usr/local/www/vpn_openvpn_client.php:794
#: src/usr/local/www/vpn_openvpn_csc.php:642
-#: src/usr/local/www/vpn_openvpn_server.php:1176
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:53
+#: src/usr/local/www/vpn_openvpn_server.php:1188
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:52
msgid "Actions"
msgstr ""
-#: src/usr/local/www/diag_arp.php:360
+#: src/usr/local/www/diag_arp.php:363
msgid "Delete arp cache entry"
msgstr ""
-#: src/usr/local/www/diag_arp.php:382
+#: src/usr/local/www/diag_arp.php:385
msgid "Local IPv6 peers use "
msgstr ""
-#: src/usr/local/www/diag_arp.php:382
+#: src/usr/local/www/diag_arp.php:385
msgid "NDP"
msgstr ""
-#: src/usr/local/www/diag_arp.php:382
+#: src/usr/local/www/diag_arp.php:385
msgid " instead of ARP."
msgstr ""
+#: src/usr/local/www/diag_arp.php:386
+msgid ""
+"Permanent ARP entries are shown for local interfaces or static ARP entries."
+msgstr ""
+
+#: src/usr/local/www/diag_arp.php:387
+msgid ""
+"Normal dynamic ARP entries show a countdown timer until they will expire and "
+"then be re-checked."
+msgstr ""
+
+#: src/usr/local/www/diag_arp.php:388
+msgid ""
+"Incomplete ARP entries indicate that the target host has not yet replied to "
+"an ARP request."
+msgstr ""
+
#: src/usr/local/www/diag_authentication.php:38
msgid "is not a valid authentication server"
msgstr ""
@@ -7596,7 +7447,7 @@ msgstr ""
#: src/usr/local/www/status_logs_vpn.php:139
#: src/usr/local/www/status_logs_vpn.php:384
#: src/usr/local/www/vpn_l2tp_users_edit.php:145
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:220
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:221
#: src/usr/local/www/services_rfc2136_edit.php:223
msgid "User"
msgstr ""
@@ -7614,7 +7465,7 @@ msgid "Authentication failed."
msgstr ""
#: src/usr/local/www/diag_authentication.php:69
-#: src/usr/local/www/guiconfig.inc:156 src/usr/local/www/head.inc:339
+#: src/usr/local/www/guiconfig.inc:157 src/usr/local/www/head.inc:333
#: src/usr/local/www/services_captiveportal.php:695
msgid "Authentication"
msgstr ""
@@ -7657,130 +7508,130 @@ msgstr ""
msgid "Restored base_package menus after configuration restore."
msgstr ""
-#: src/usr/local/www/diag_backup.php:175
+#: src/usr/local/www/diag_backup.php:173
msgid "Restore configuration"
msgstr ""
-#: src/usr/local/www/diag_backup.php:177
-#: src/usr/local/www/pkg_mgr_installed.php:199
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:124
+#: src/usr/local/www/diag_backup.php:175
+#: src/usr/local/www/pkg_mgr_installed.php:195
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:122
msgid "Reinstall"
msgstr ""
-#: src/usr/local/www/diag_backup.php:179 src/usr/local/www/diag_backup.php:712
+#: src/usr/local/www/diag_backup.php:177 src/usr/local/www/diag_backup.php:667
msgid "Clear Package Lock"
msgstr ""
-#: src/usr/local/www/diag_backup.php:181 src/usr/local/www/diag_command.php:246
+#: src/usr/local/www/diag_backup.php:179 src/usr/local/www/diag_command.php:245
#: src/usr/local/www/services_captiveportal.php:1092
#: src/usr/local/www/services_captiveportal.php:1126
#: src/usr/local/www/services_captiveportal.php:1158
msgid "Download"
msgstr ""
-#: src/usr/local/www/diag_backup.php:183
+#: src/usr/local/www/diag_backup.php:181
msgid "Restore version"
msgstr ""
-#: src/usr/local/www/diag_backup.php:196
+#: src/usr/local/www/diag_backup.php:194
msgid "A password for encryption must be supplied and confirmed."
msgstr ""
-#: src/usr/local/www/diag_backup.php:271
+#: src/usr/local/www/diag_backup.php:269
msgid "A password for decryption must be supplied and confirmed."
msgstr ""
-#: src/usr/local/www/diag_backup.php:281
+#: src/usr/local/www/diag_backup.php:279
#, php-format
msgid "Warning, could not read file %s"
msgstr ""
-#: src/usr/local/www/diag_backup.php:287
+#: src/usr/local/www/diag_backup.php:285
msgid ""
"The uploaded file does not appear to contain an encrypted pfsense "
"configuration."
msgstr ""
-#: src/usr/local/www/diag_backup.php:294
+#: src/usr/local/www/diag_backup.php:292
msgid "Upgrading m0n0wall configuration to pfsense."
msgstr ""
-#: src/usr/local/www/diag_backup.php:302 src/usr/local/www/diag_backup.php:305
+#: src/usr/local/www/diag_backup.php:300 src/usr/local/www/diag_backup.php:303
msgid ""
"An area to restore was selected but the correct xml tag could not be located."
msgstr ""
-#: src/usr/local/www/diag_backup.php:317
+#: src/usr/local/www/diag_backup.php:314
msgid ""
"The configuration area has been restored. The firewall may need to be "
"rebooted."
msgstr ""
-#: src/usr/local/www/diag_backup.php:322
+#: src/usr/local/www/diag_backup.php:319
#, php-format
msgid ""
"A full configuration restore was selected but a %s tag could not be located."
msgstr ""
-#: src/usr/local/www/diag_backup.php:340
+#: src/usr/local/www/diag_backup.php:336
msgid "Restore serial console enabling in configuration."
msgstr ""
-#: src/usr/local/www/diag_backup.php:454
+#: src/usr/local/www/diag_backup.php:409
msgid "The m0n0wall configuration has been restored and upgraded to pfSense."
msgstr ""
-#: src/usr/local/www/diag_backup.php:482 src/usr/local/www/diag_backup.php:505
+#: src/usr/local/www/diag_backup.php:437 src/usr/local/www/diag_backup.php:460
msgid "The configuration could not be restored."
msgstr ""
-#: src/usr/local/www/diag_backup.php:487
+#: src/usr/local/www/diag_backup.php:442
msgid "The configuration could not be restored (file upload error)."
msgstr ""
-#: src/usr/local/www/diag_backup.php:499
+#: src/usr/local/www/diag_backup.php:454
msgid ""
"XXX - this feature may hose the config (do NOT backrev configs!) - billm"
msgstr ""
-#: src/usr/local/www/diag_backup.php:508
+#: src/usr/local/www/diag_backup.php:463
msgid "No version selected."
msgstr ""
-#: src/usr/local/www/diag_backup.php:523
+#: src/usr/local/www/diag_backup.php:478
#: src/usr/local/www/firewall_aliases.php:171
#: src/usr/local/www/firewall_aliases_edit.php:38
#: src/usr/local/www/firewall_aliases_import.php:38
#: src/usr/local/www/firewall_aliases_import.php:64
-#: src/usr/local/www/head.inc:248
+#: src/usr/local/www/head.inc:246
msgid "Aliases"
msgstr ""
-#: src/usr/local/www/diag_backup.php:525
+#: src/usr/local/www/diag_backup.php:480
msgid "Captive Portal Vouchers"
msgstr ""
-#: src/usr/local/www/diag_backup.php:528 src/usr/local/www/head.inc:265
-#: src/usr/local/www/services_dhcp.php:693
-#: src/usr/local/www/services_dhcp_edit.php:381
+#: src/usr/local/www/diag_backup.php:483 src/usr/local/www/head.inc:263
+#: src/usr/local/www/services_dhcp.php:699
+#: src/usr/local/www/services_dhcp_edit.php:388
msgid "DHCP Server"
msgstr ""
-#: src/usr/local/www/diag_backup.php:529
-#: src/usr/local/www/services_dhcpv6.php:476
-#: src/usr/local/www/services_dhcpv6.php:554
-#: src/usr/local/www/services_dhcpv6.php:569
+#: src/usr/local/www/diag_backup.php:484
+#: src/usr/local/www/services_dhcpv6.php:471
+#: src/usr/local/www/services_dhcpv6.php:549
+#: src/usr/local/www/services_dhcpv6.php:564
#: src/usr/local/www/services_dhcpv6_edit.php:201
-#: src/usr/local/www/services_router_advertisements.php:288
+#: src/usr/local/www/services_router_advertisements.php:283
msgid "DHCPv6 Server"
msgstr ""
-#: src/usr/local/www/diag_backup.php:530
+#: src/usr/local/www/diag_backup.php:485
msgid "Firewall Rules"
msgstr ""
-#: src/usr/local/www/diag_backup.php:531 src/usr/local/www/head.inc:303
-#: src/usr/local/www/interfaces.php:1613
+#: src/usr/local/www/diag_backup.php:486 src/usr/local/www/head.inc:301
+#: src/usr/local/www/interfaces.php:1616
#: src/usr/local/www/interfaces_assign.php:34
#: src/usr/local/www/interfaces_bridge.php:75
#: src/usr/local/www/interfaces_bridge_edit.php:384
@@ -7793,7 +7644,7 @@ msgstr ""
#: src/usr/local/www/interfaces_lagg.php:76
#: src/usr/local/www/interfaces_lagg_edit.php:223
#: src/usr/local/www/interfaces_ppps.php:73
-#: src/usr/local/www/interfaces_ppps_edit.php:440
+#: src/usr/local/www/interfaces_ppps_edit.php:460
#: src/usr/local/www/interfaces_qinq.php:80
#: src/usr/local/www/interfaces_qinq_edit.php:29
#: src/usr/local/www/interfaces_vlan.php:76
@@ -7809,209 +7660,209 @@ msgstr ""
msgid "Interfaces"
msgstr ""
-#: src/usr/local/www/diag_backup.php:532
+#: src/usr/local/www/diag_backup.php:487
msgid "IPSEC"
msgstr ""
-#: src/usr/local/www/diag_backup.php:533 src/usr/local/www/firewall_nat.php:173
+#: src/usr/local/www/diag_backup.php:488 src/usr/local/www/firewall_nat.php:175
#: src/usr/local/www/firewall_nat_1to1.php:122
#: src/usr/local/www/firewall_nat_1to1_edit.php:248
#: src/usr/local/www/firewall_nat_edit.php:621
#: src/usr/local/www/firewall_nat_npt.php:122
#: src/usr/local/www/firewall_nat_npt_edit.php:178
#: src/usr/local/www/firewall_nat_out.php:206
-#: src/usr/local/www/firewall_nat_out_edit.php:363
-#: src/usr/local/www/head.inc:249
+#: src/usr/local/www/firewall_nat_out_edit.php:378
+#: src/usr/local/www/head.inc:247
msgid "NAT"
msgstr ""
-#: src/usr/local/www/diag_backup.php:535 src/usr/local/www/head.inc:216
-#: src/usr/local/www/head.inc:593 src/usr/local/www/pkg_mgr.php:38
+#: src/usr/local/www/diag_backup.php:490 src/usr/local/www/head.inc:215
+#: src/usr/local/www/head.inc:578 src/usr/local/www/pkg_mgr.php:38
#: src/usr/local/www/pkg_mgr.php:129 src/usr/local/www/pkg_mgr_install.php:242
#: src/usr/local/www/pkg_mgr_installed.php:34
-#: src/usr/local/www/pkg_mgr_installed.php:208
+#: src/usr/local/www/pkg_mgr_installed.php:203
msgid "Package Manager"
msgstr ""
-#: src/usr/local/www/diag_backup.php:536
+#: src/usr/local/www/diag_backup.php:491
msgid "RRD Data"
msgstr ""
-#: src/usr/local/www/diag_backup.php:537
+#: src/usr/local/www/diag_backup.php:492
msgid "Scheduled Tasks"
msgstr ""
-#: src/usr/local/www/diag_backup.php:538
+#: src/usr/local/www/diag_backup.php:493
msgid "Syslog"
msgstr ""
-#: src/usr/local/www/diag_backup.php:539 src/usr/local/www/head.inc:593
+#: src/usr/local/www/diag_backup.php:494 src/usr/local/www/head.inc:578
#: src/usr/local/www/pkg_mgr.php:38 src/usr/local/www/pkg_mgr.php:129
#: src/usr/local/www/pkg_mgr_install.php:238
#: src/usr/local/www/pkg_mgr_install.php:242
#: src/usr/local/www/pkg_mgr_installed.php:34
-#: src/usr/local/www/pkg_mgr_installed.php:208
+#: src/usr/local/www/pkg_mgr_installed.php:203
#: src/usr/local/www/status_logs.php:96
#: src/usr/local/www/status_logs_common.inc:88
-#: src/usr/local/www/status_logs_settings.php:204
-#: src/usr/local/www/system.php:82 src/usr/local/www/system.php:336
-#: src/usr/local/www/system.php:351
-#: src/usr/local/www/system_advanced_admin.php:285
+#: src/usr/local/www/status_logs_settings.php:212
+#: src/usr/local/www/system.php:83 src/usr/local/www/system.php:341
+#: src/usr/local/www/system.php:356
+#: src/usr/local/www/system_advanced_admin.php:283
#: src/usr/local/www/system_advanced_firewall.php:371
-#: src/usr/local/www/system_advanced_misc.php:287
+#: src/usr/local/www/system_advanced_misc.php:286
#: src/usr/local/www/system_advanced_network.php:140
-#: src/usr/local/www/system_advanced_notifications.php:181
+#: src/usr/local/www/system_advanced_notifications.php:188
#: src/usr/local/www/system_advanced_sysctl.php:121
#: src/usr/local/www/system_authservers.php:403
-#: src/usr/local/www/system_camanager.php:311
-#: src/usr/local/www/system_certmanager.php:513
+#: src/usr/local/www/system_camanager.php:316
+#: src/usr/local/www/system_certmanager.php:518
#: src/usr/local/www/system_crlmanager.php:253
#: src/usr/local/www/system_gateway_groups.php:104
#: src/usr/local/www/system_gateway_groups_edit.php:147
#: src/usr/local/www/system_gateways.php:211
#: src/usr/local/www/system_gateways_edit.php:538
-#: src/usr/local/www/system_groupmanager.php:263
+#: src/usr/local/www/system_groupmanager.php:257
#: src/usr/local/www/system_groupmanager_addprivs.php:36
#: src/usr/local/www/system_hasync.php:102
#: src/usr/local/www/system_routes.php:213
#: src/usr/local/www/system_routes_edit.php:224
#: src/usr/local/www/system_update_settings.php:77
#: src/usr/local/www/system_user_settings.php:32
-#: src/usr/local/www/system_usermanager.php:533
+#: src/usr/local/www/system_usermanager.php:527
#: src/usr/local/www/system_usermanager_addprivs.php:36
#: src/usr/local/www/system_usermanager_passwordmg.php:33
#: src/usr/local/www/system_usermanager_settings.php:106
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:97
#: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246
msgid "System"
msgstr ""
-#: src/usr/local/www/diag_backup.php:540
+#: src/usr/local/www/diag_backup.php:495
msgid "Static routes"
msgstr ""
-#: src/usr/local/www/diag_backup.php:541
+#: src/usr/local/www/diag_backup.php:496
msgid "System tunables"
msgstr ""
-#: src/usr/local/www/diag_backup.php:542
+#: src/usr/local/www/diag_backup.php:497
msgid "SNMP Server"
msgstr ""
-#: src/usr/local/www/diag_backup.php:543
+#: src/usr/local/www/diag_backup.php:498
#: src/usr/local/www/firewall_shaper.php:41
#: src/usr/local/www/firewall_shaper_queues.php:188
#: src/usr/local/www/firewall_shaper_vinterface.php:39
#: src/usr/local/www/firewall_shaper_wizards.php:62
-#: src/usr/local/www/head.inc:252
+#: src/usr/local/www/head.inc:250
msgid "Traffic Shaper"
msgstr ""
-#: src/usr/local/www/diag_backup.php:544
+#: src/usr/local/www/diag_backup.php:499
msgid "VLANS"
msgstr ""
-#: src/usr/local/www/diag_backup.php:545 src/usr/local/www/head.inc:283
+#: src/usr/local/www/diag_backup.php:500 src/usr/local/www/head.inc:281
#: src/usr/local/www/services_wol.php:113
#: src/usr/local/www/services_wol.php:136
#: src/usr/local/www/services_wol_edit.php:104
msgid "Wake-on-LAN"
msgstr ""
-#: src/usr/local/www/diag_backup.php:548
+#: src/usr/local/www/diag_backup.php:503
#: src/usr/local/www/firewall_aliases.php:162
#: src/usr/local/www/pkg_edit.php:1180
#: src/usr/local/www/services_ntpd_gps.php:171
#: src/usr/local/www/services_unbound.php:220
-#: src/usr/local/www/status_graph.php:167 src/usr/local/www/diag_smart.php:351
+#: src/usr/local/www/status_graph.php:155 src/usr/local/www/diag_smart.php:351
msgid "All"
msgstr ""
-#: src/usr/local/www/diag_backup.php:563 src/usr/local/www/diag_backup.php:586
-#: src/usr/local/www/diag_confbak.php:101
-#: src/usr/local/www/diag_confbak.php:109 src/usr/local/www/head.inc:340
-#: src/usr/local/www/head.inc:595
+#: src/usr/local/www/diag_backup.php:518 src/usr/local/www/diag_backup.php:541
+#: src/usr/local/www/diag_confbak.php:99 src/usr/local/www/diag_confbak.php:107
+#: src/usr/local/www/head.inc:334 src/usr/local/www/head.inc:580
msgid "Backup & Restore"
msgstr ""
-#: src/usr/local/www/diag_backup.php:579
+#: src/usr/local/www/diag_backup.php:534
msgid "The firewall configuration has been changed."
msgstr ""
-#: src/usr/local/www/diag_backup.php:579
+#: src/usr/local/www/diag_backup.php:534
msgid "The firewall is now rebooting."
msgstr ""
-#: src/usr/local/www/diag_backup.php:587 src/usr/local/www/diag_confbak.php:101
-#: src/usr/local/www/diag_confbak.php:110
+#: src/usr/local/www/diag_backup.php:542 src/usr/local/www/diag_confbak.php:99
+#: src/usr/local/www/diag_confbak.php:108
msgid "Config History"
msgstr ""
-#: src/usr/local/www/diag_backup.php:593
+#: src/usr/local/www/diag_backup.php:548
msgid "Backup Configuration"
msgstr ""
-#: src/usr/local/www/diag_backup.php:597
+#: src/usr/local/www/diag_backup.php:552
msgid "Backup area"
msgstr ""
-#: src/usr/local/www/diag_backup.php:604
+#: src/usr/local/www/diag_backup.php:559
msgid "Skip packages"
msgstr ""
-#: src/usr/local/www/diag_backup.php:611
+#: src/usr/local/www/diag_backup.php:566
msgid "Skip RRD data"
msgstr ""
-#: src/usr/local/www/diag_backup.php:618 src/usr/local/www/diag_backup.php:665
+#: src/usr/local/www/diag_backup.php:573 src/usr/local/www/diag_backup.php:620
msgid "Encryption"
msgstr ""
-#: src/usr/local/www/diag_backup.php:634
+#: src/usr/local/www/diag_backup.php:589
msgid "Download configuration as XML"
msgstr ""
-#: src/usr/local/www/diag_backup.php:642
+#: src/usr/local/www/diag_backup.php:597
msgid "Restore Backup"
msgstr ""
-#: src/usr/local/www/diag_backup.php:646
+#: src/usr/local/www/diag_backup.php:601
#, php-format
msgid ""
"Open a %s configuration XML file and click the button below to restore the "
"configuration."
msgstr ""
-#: src/usr/local/www/diag_backup.php:651
+#: src/usr/local/www/diag_backup.php:606
msgid "Restore area"
msgstr ""
-#: src/usr/local/www/diag_backup.php:658
+#: src/usr/local/www/diag_backup.php:613
msgid "Configuration file"
msgstr ""
-#: src/usr/local/www/diag_backup.php:682
+#: src/usr/local/www/diag_backup.php:637
msgid "Restore Configuration"
msgstr ""
-#: src/usr/local/www/diag_backup.php:685
+#: src/usr/local/www/diag_backup.php:640
msgid "The firewall will reboot after restoring the configuration."
msgstr ""
-#: src/usr/local/www/diag_backup.php:692
+#: src/usr/local/www/diag_backup.php:647
msgid "Package Functions"
msgstr ""
-#: src/usr/local/www/diag_backup.php:699
+#: src/usr/local/www/diag_backup.php:654
msgid "Reinstall Packages"
msgstr ""
-#: src/usr/local/www/diag_backup.php:702
+#: src/usr/local/www/diag_backup.php:657
msgid ""
"Click this button to reinstall all system packages. This may take a while."
msgstr ""
-#: src/usr/local/www/diag_backup.php:715
+#: src/usr/local/www/diag_backup.php:670
msgid ""
"Click this button to clear the package lock if a package fails to reinstall "
"properly after an upgrade."
@@ -8022,85 +7873,85 @@ msgstr ""
msgid "Uploaded file to /tmp/%s."
msgstr ""
-#: src/usr/local/www/diag_command.php:91 src/usr/local/www/head.inc:341
+#: src/usr/local/www/diag_command.php:90 src/usr/local/www/head.inc:335
msgid "Command Prompt"
msgstr ""
-#: src/usr/local/www/diag_command.php:152
+#: src/usr/local/www/diag_command.php:151
msgid "Nothing to recall"
msgstr ""
-#: src/usr/local/www/diag_command.php:187 src/usr/local/www/diag_edit.php:99
+#: src/usr/local/www/diag_command.php:186 src/usr/local/www/diag_edit.php:97
msgid ""
"The capabilities offered here can be dangerous. No support is available. Use "
"them at your own risk!"
msgstr ""
-#: src/usr/local/www/diag_command.php:187 src/usr/local/www/diag_edit.php:99
+#: src/usr/local/www/diag_command.php:186 src/usr/local/www/diag_edit.php:97
msgid "Advanced Users Only"
msgstr ""
-#: src/usr/local/www/diag_command.php:192
+#: src/usr/local/www/diag_command.php:191
#, php-format
msgid "Shell Output - %s"
msgstr ""
-#: src/usr/local/www/diag_command.php:211
+#: src/usr/local/www/diag_command.php:210
msgid "Execute Shell Command"
msgstr ""
-#: src/usr/local/www/diag_command.php:219
+#: src/usr/local/www/diag_command.php:218
msgid "Recall Previous Command"
msgstr ""
-#: src/usr/local/www/diag_command.php:222
+#: src/usr/local/www/diag_command.php:221
msgid "Execute the entered command"
msgstr ""
-#: src/usr/local/www/diag_command.php:224
-#: src/usr/local/www/diag_command.php:315
+#: src/usr/local/www/diag_command.php:223
+#: src/usr/local/www/diag_command.php:314
msgid "Execute"
msgstr ""
-#: src/usr/local/www/diag_command.php:226
+#: src/usr/local/www/diag_command.php:225
msgid "Recall Next Command"
msgstr ""
-#: src/usr/local/www/diag_command.php:229
+#: src/usr/local/www/diag_command.php:228
msgid "Clear command entry"
msgstr ""
-#: src/usr/local/www/diag_command.php:231 src/usr/local/www/pkg_mgr.php:163
+#: src/usr/local/www/diag_command.php:230 src/usr/local/www/pkg_mgr.php:163
#: src/usr/local/www/system_groupmanager_addprivs.php:187
-#: src/usr/local/www/system_usermanager_addprivs.php:180
+#: src/usr/local/www/system_usermanager_addprivs.php:177
#: src/usr/local/www/widgets/widgets/services_status.widget.php:136
-#: src/usr/local/www/interfaces.php:1990
+#: src/usr/local/www/interfaces.php:1993
msgid "Clear"
msgstr ""
-#: src/usr/local/www/diag_command.php:239
+#: src/usr/local/www/diag_command.php:238
msgid "Download File"
msgstr ""
-#: src/usr/local/www/diag_command.php:258
+#: src/usr/local/www/diag_command.php:257
msgid "Upload File"
msgstr ""
-#: src/usr/local/www/diag_command.php:265
-#: src/usr/local/www/services_captiveportal_filemanager.php:173
+#: src/usr/local/www/diag_command.php:264
+#: src/usr/local/www/services_captiveportal_filemanager.php:171
#: src/usr/local/www/widgets/widgets/picture.widget.php:77
msgid "Upload"
msgstr ""
-#: src/usr/local/www/diag_command.php:308
+#: src/usr/local/www/diag_command.php:307
msgid "Execute PHP Commands"
msgstr ""
-#: src/usr/local/www/diag_command.php:313
+#: src/usr/local/www/diag_command.php:312
msgid "Execute this PHP Code"
msgstr ""
-#: src/usr/local/www/diag_command.php:317
+#: src/usr/local/www/diag_command.php:316
msgid "Example"
msgstr ""
@@ -8113,55 +7964,55 @@ msgstr ""
msgid "Changed backup revision count to %s"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:52
+#: src/usr/local/www/diag_confbak.php:51
#, php-format
msgid "Successfully reverted to timestamp %1$s with description \"%2$s\"."
msgstr ""
-#: src/usr/local/www/diag_confbak.php:52 src/usr/local/www/diag_confbak.php:59
-#: src/usr/local/www/diag_confbak.php:118
-#: src/usr/local/www/diag_confbak.php:226
-#: src/usr/local/www/diag_confbak.php:237
+#: src/usr/local/www/diag_confbak.php:51 src/usr/local/www/diag_confbak.php:58
+#: src/usr/local/www/diag_confbak.php:116
+#: src/usr/local/www/diag_confbak.php:224
+#: src/usr/local/www/diag_confbak.php:235
#: src/usr/local/www/firewall_nat_edit.php:944
#: src/usr/local/www/firewall_nat_edit.php:951
-#: src/usr/local/www/firewall_nat_out_edit.php:639
-#: src/usr/local/www/firewall_nat_out_edit.php:646
+#: src/usr/local/www/firewall_nat_out_edit.php:661
+#: src/usr/local/www/firewall_nat_out_edit.php:668
msgid "n/j/y H:i:s"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:54
+#: src/usr/local/www/diag_confbak.php:53
msgid "Unable to revert to the selected configuration."
msgstr ""
-#: src/usr/local/www/diag_confbak.php:59
+#: src/usr/local/www/diag_confbak.php:58
#, php-format
msgid "Deleted backup with timestamp %1$s and description \"%2$s\"."
msgstr ""
-#: src/usr/local/www/diag_confbak.php:118
+#: src/usr/local/www/diag_confbak.php:116
#, php-format
msgid "Configuration Diff from %1$s to %2$s"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:155
+#: src/usr/local/www/diag_confbak.php:153
msgid "Configuration Backup Cache Settings"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:159
+#: src/usr/local/www/diag_confbak.php:157
msgid "Backup Count"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:162
+#: src/usr/local/www/diag_confbak.php:160
msgid ""
"Maximum number of old configurations to keep in the cache, 0 for no backups, "
"or leave blank for the default value ("
msgstr ""
-#: src/usr/local/www/diag_confbak.php:167
+#: src/usr/local/www/diag_confbak.php:165
msgid "Current space used by backups"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:188
+#: src/usr/local/www/diag_confbak.php:186
msgid ""
"To view the differences between an older configuration and a newer "
"configuration, select the older configuration using the left column of radio "
@@ -8169,41 +8020,41 @@ msgid ""
"the \"Diff\" button."
msgstr ""
+#: src/usr/local/www/diag_confbak.php:205
#: src/usr/local/www/diag_confbak.php:207
-#: src/usr/local/www/diag_confbak.php:209
+#: src/usr/local/www/diag_confbak.php:269
#: src/usr/local/www/diag_confbak.php:271
-#: src/usr/local/www/diag_confbak.php:273
msgid "Diff"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:212
+#: src/usr/local/www/diag_confbak.php:210
#: src/usr/local/www/firewall_schedule_edit.php:384
msgid "Date"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:213 src/usr/local/www/pkg_mgr.php:66
-#: src/usr/local/www/pkg_mgr_installed.php:79
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:52
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:90
+#: src/usr/local/www/diag_confbak.php:211 src/usr/local/www/pkg_mgr.php:66
+#: src/usr/local/www/pkg_mgr_installed.php:77
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:51
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:112
msgid "Version"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:214
+#: src/usr/local/www/diag_confbak.php:212
#: src/usr/local/www/diag_gmirror.php:303 src/usr/local/www/diag_pftop.php:125
-#: src/usr/local/www/services_captiveportal_filemanager.php:191
+#: src/usr/local/www/services_captiveportal_filemanager.php:189
msgid "Size"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:215
+#: src/usr/local/www/diag_confbak.php:213
msgid "Configuration Change"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:230
+#: src/usr/local/www/diag_confbak.php:228
msgid "Current configuration"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:239
-#: src/usr/local/www/pkg_mgr_installed.php:122
+#: src/usr/local/www/diag_confbak.php:237
+#: src/usr/local/www/pkg_mgr_installed.php:120
#: src/usr/local/www/status_ipsec.php:113
#: src/usr/local/www/status_ipsec.php:122
#: src/usr/local/www/status_ipsec.php:155
@@ -8214,34 +8065,34 @@ msgstr ""
#: src/usr/local/www/status_ipsec.php:395
#: src/usr/local/www/status_ipsec.php:406
#: src/usr/local/www/status_ipsec.php:415
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:237
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:97
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:241
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:96
#: src/usr/local/www/widgets/widgets/smart_status.widget.php:63
msgid "Unknown"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:261
+#: src/usr/local/www/diag_confbak.php:259
msgid "Revert config"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:261
+#: src/usr/local/www/diag_confbak.php:259
msgid ""
"Confirmation Required to replace the current configuration with this backup."
msgstr ""
-#: src/usr/local/www/diag_confbak.php:262
+#: src/usr/local/www/diag_confbak.php:260
msgid "Download config"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:263
+#: src/usr/local/www/diag_confbak.php:261
msgid "Delete config"
msgstr ""
-#: src/usr/local/www/diag_confbak.php:280
+#: src/usr/local/www/diag_confbak.php:278
msgid "No backups found."
msgstr ""
-#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/head.inc:344
+#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/head.inc:338
msgid "Factory Defaults"
msgstr ""
@@ -8312,37 +8163,32 @@ msgstr ""
msgid "Keep Configuration"
msgstr ""
-#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dns.php:229
-#: src/usr/local/www/head.inc:342
+#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dns.php:218
+#: src/usr/local/www/head.inc:336
msgid "DNS Lookup"
msgstr ""
-#: src/usr/local/www/diag_dns.php:115
+#: src/usr/local/www/diag_dns.php:114
msgid "Created from Diagnostics-> DNS Lookup"
msgstr ""
-#: src/usr/local/www/diag_dns.php:135
+#: src/usr/local/www/diag_dns.php:134
msgid "Host must be a valid hostname or IP address."
msgstr ""
-#: src/usr/local/www/diag_dns.php:144
+#: src/usr/local/www/diag_dns.php:143
msgid "No response"
msgstr ""
-#: src/usr/local/www/diag_dns.php:182
-msgid "No record found"
-msgstr ""
-
-#: src/usr/local/www/diag_dns.php:195 src/usr/local/www/diag_tables.php:259
-#: src/usr/local/www/interfaces.php:3033 src/usr/local/www/interfaces.php:3057
-#: src/usr/local/www/interfaces_ppps_edit.php:624
+#: src/usr/local/www/diag_dns.php:184 src/usr/local/www/diag_tables.php:261
+#: src/usr/local/www/interfaces.php:3041 src/usr/local/www/interfaces.php:3065
#: src/usr/local/www/load_balancer_pool_edit.php:370
#: src/usr/local/www/load_balancer_virtual_server.php:142
#: src/usr/local/www/load_balancer_virtual_server_edit.php:70
#: src/usr/local/www/load_balancer_virtual_server_edit.php:75
#: src/usr/local/www/load_balancer_virtual_server_edit.php:190
#: src/usr/local/www/services_captiveportal_ip_edit.php:220
-#: src/usr/local/www/services_dhcp_edit.php:426
+#: src/usr/local/www/services_dhcp_edit.php:433
#: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:142
#: src/usr/local/www/services_dnsmasq_edit.php:229
#: src/usr/local/www/services_pppoe_edit.php:415
@@ -8350,107 +8196,107 @@ msgstr ""
#: src/usr/local/www/services_pppoe_edit.php:519
#: src/usr/local/www/services_unbound_domainoverride_edit.php:133
#: src/usr/local/www/services_unbound_host_edit.php:230
-#: src/usr/local/www/status_graph.php:176
+#: src/usr/local/www/status_graph.php:164
#: src/usr/local/www/status_logs_vpn.php:140
#: src/usr/local/www/status_logs_vpn.php:391
-#: src/usr/local/www/system_advanced_notifications.php:232
-#: src/usr/local/www/vpn_ipsec_phase2.php:683
+#: src/usr/local/www/system_advanced_notifications.php:239
+#: src/usr/local/www/vpn_ipsec_phase2.php:678
#: src/usr/local/www/vpn_l2tp_users_edit.php:169
#: src/usr/local/www/widgets/widgets/carp_status.widget.php:38
msgid "IP Address"
msgstr ""
-#: src/usr/local/www/diag_dns.php:196 src/usr/local/www/status_graph.php:177
+#: src/usr/local/www/diag_dns.php:185 src/usr/local/www/status_graph.php:165
#: src/usr/local/www/system_authservers.php:437
msgid "Host Name"
msgstr ""
-#: src/usr/local/www/diag_dns.php:199 src/usr/local/www/services_rfc2136.php:81
+#: src/usr/local/www/diag_dns.php:188 src/usr/local/www/services_rfc2136.php:81
#: src/usr/local/www/services_rfc2136_edit.php:239
#: src/usr/local/www/status_ntpd.php:267
-#: src/usr/local/www/system_certmanager.php:979
+#: src/usr/local/www/system_certmanager.php:1000
#: src/usr/local/www/vpn_l2tp.php:296
#: src/usr/local/www/vpn_openvpn_client.php:792
#: src/usr/local/www/widgets/widgets/load_balancer_status.widget.php:60
msgid "Server"
msgstr ""
-#: src/usr/local/www/diag_dns.php:199
+#: src/usr/local/www/diag_dns.php:188
msgid "Query Time"
msgstr ""
-#: src/usr/local/www/diag_dns.php:217
+#: src/usr/local/www/diag_dns.php:206
#, php-format
msgid "Host \"%s\" could not be resolved."
msgstr ""
-#: src/usr/local/www/diag_dns.php:222
+#: src/usr/local/www/diag_dns.php:211
msgid "Alias was updated successfully."
msgstr ""
-#: src/usr/local/www/diag_dns.php:224
+#: src/usr/local/www/diag_dns.php:213
msgid "Alias was created successfully."
msgstr ""
-#: src/usr/local/www/diag_dns.php:243
+#: src/usr/local/www/diag_dns.php:232
#: src/usr/local/www/status_logs_filter_summary.php:176
msgid "Lookup"
msgstr ""
-#: src/usr/local/www/diag_dns.php:250
+#: src/usr/local/www/diag_dns.php:239
msgid "Update alias"
msgstr ""
-#: src/usr/local/www/diag_dns.php:252
+#: src/usr/local/www/diag_dns.php:241
msgid "Add alias"
msgstr ""
-#: src/usr/local/www/diag_dns.php:268 src/usr/local/www/diag_ping.php:173
-#: src/usr/local/www/diag_traceroute.php:175
+#: src/usr/local/www/diag_dns.php:257 src/usr/local/www/diag_ping.php:173
+#: src/usr/local/www/diag_traceroute.php:181
msgid "Results"
msgstr ""
-#: src/usr/local/www/diag_dns.php:274
+#: src/usr/local/www/diag_dns.php:263
msgid "Result"
msgstr ""
-#: src/usr/local/www/diag_dns.php:275
+#: src/usr/local/www/diag_dns.php:264
msgid "Record type"
msgstr ""
-#: src/usr/local/www/diag_dns.php:292
+#: src/usr/local/www/diag_dns.php:281
msgid "Timings"
msgstr ""
-#: src/usr/local/www/diag_dns.php:297
+#: src/usr/local/www/diag_dns.php:286
msgid "Name server"
msgstr ""
-#: src/usr/local/www/diag_dns.php:298
+#: src/usr/local/www/diag_dns.php:287
msgid "Query time"
msgstr ""
-#: src/usr/local/www/diag_dns.php:315
+#: src/usr/local/www/diag_dns.php:304
msgid "More Information"
msgstr ""
-#: src/usr/local/www/diag_dns.php:318 src/usr/local/www/diag_ping.php:35
+#: src/usr/local/www/diag_dns.php:307 src/usr/local/www/diag_ping.php:35
#: src/usr/local/www/diag_ping.php:127 src/usr/local/www/diag_ping.php:162
-#: src/usr/local/www/head.inc:354
+#: src/usr/local/www/head.inc:348
msgid "Ping"
msgstr ""
-#: src/usr/local/www/diag_dns.php:321
+#: src/usr/local/www/diag_dns.php:310
msgid ""
"NOTE: The following links are to external services, so their reliability "
"cannot be guaranteed."
msgstr ""
-#: src/usr/local/www/diag_dns.php:323
+#: src/usr/local/www/diag_dns.php:312
msgid "IP WHOIS @ DNS Stuff"
msgstr ""
-#: src/usr/local/www/diag_dns.php:324
+#: src/usr/local/www/diag_dns.php:313
msgid "IP Info @ DNS Stuff"
msgstr ""
@@ -8468,9 +8314,9 @@ msgstr ""
#: src/usr/local/www/diag_dump_states_sources.php:57
#: src/usr/local/www/diag_resetstate.php:56
#: src/usr/local/www/diag_resetstate.php:80
-#: src/usr/local/www/diag_states_summary.php:147
-#: src/usr/local/www/diag_states_summary.php:149
-#: src/usr/local/www/firewall_rules.php:375 src/usr/local/www/head.inc:362
+#: src/usr/local/www/diag_states_summary.php:152
+#: src/usr/local/www/diag_states_summary.php:154
+#: src/usr/local/www/firewall_rules.php:374 src/usr/local/www/head.inc:356
msgid "States"
msgstr ""
@@ -8500,12 +8346,12 @@ msgstr ""
#: src/usr/local/www/diag_dump_states.php:145
#: src/usr/local/www/diag_dump_states_sources.php:105
-#: src/usr/local/www/diag_routes.php:96 src/usr/local/www/pkg.php:347
-#: src/usr/local/www/status_graph.php:169
+#: src/usr/local/www/diag_routes.php:97 src/usr/local/www/pkg.php:347
+#: src/usr/local/www/status_graph.php:157
#: src/usr/local/www/system_groupmanager_addprivs.php:169
#: src/usr/local/www/system_groupmanager_addprivs.php:176
-#: src/usr/local/www/system_usermanager_addprivs.php:162
-#: src/usr/local/www/system_usermanager_addprivs.php:169
+#: src/usr/local/www/system_usermanager_addprivs.php:159
+#: src/usr/local/www/system_usermanager_addprivs.php:166
msgid "Filter"
msgstr ""
@@ -8522,17 +8368,17 @@ msgid "Remove all states to and from the filtered address"
msgstr ""
#: src/usr/local/www/diag_dump_states.php:180
-#: src/usr/local/www/diag_packet_capture.php:306
-#: src/usr/local/www/diag_states_summary.php:148
-#: src/usr/local/www/firewall_nat.php:206
+#: src/usr/local/www/diag_packet_capture.php:305
+#: src/usr/local/www/diag_states_summary.php:153
+#: src/usr/local/www/firewall_nat.php:208
#: src/usr/local/www/firewall_nat_edit.php:212
#: src/usr/local/www/firewall_nat_edit.php:215
#: src/usr/local/www/firewall_nat_edit.php:685
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_nat_out_edit.php:469
-#: src/usr/local/www/firewall_rules.php:376
-#: src/usr/local/www/firewall_rules_edit.php:416
-#: src/usr/local/www/firewall_rules_edit.php:1221
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_nat_out_edit.php:484
+#: src/usr/local/www/firewall_rules.php:375
+#: src/usr/local/www/firewall_rules_edit.php:411
+#: src/usr/local/www/firewall_rules_edit.php:1216
#: src/usr/local/www/interfaces_bridge_edit.php:539
#: src/usr/local/www/load_balancer_virtual_server.php:141
#: src/usr/local/www/services_rfc2136_edit.php:246
@@ -8542,13 +8388,13 @@ msgstr ""
#: src/usr/local/www/status_logs_filter.php:163
#: src/usr/local/www/status_logs_filter_dynamic.php:394
#: src/usr/local/www/status_upnp.php:70
-#: src/usr/local/www/system_advanced_admin.php:309
-#: src/usr/local/www/system_advanced_admin.php:313
-#: src/usr/local/www/system_advanced_admin.php:321
-#: src/usr/local/www/vpn_ipsec_phase2.php:597
+#: src/usr/local/www/system_advanced_admin.php:307
+#: src/usr/local/www/system_advanced_admin.php:311
+#: src/usr/local/www/system_advanced_admin.php:319
+#: src/usr/local/www/vpn_ipsec_phase2.php:592
#: src/usr/local/www/vpn_openvpn_client.php:442
#: src/usr/local/www/vpn_openvpn_client.php:791
-#: src/usr/local/www/vpn_openvpn_server.php:633
+#: src/usr/local/www/vpn_openvpn_server.php:637
msgid "Protocol"
msgstr ""
@@ -8557,7 +8403,7 @@ msgid "Source (Original Source) -> Destination (Original Destination)"
msgstr ""
#: src/usr/local/www/diag_dump_states.php:182
-#: src/usr/local/www/status_dhcpv6_leases.php:535
+#: src/usr/local/www/status_dhcpv6_leases.php:532
msgid "State"
msgstr ""
@@ -8619,8 +8465,8 @@ msgstr ""
#: src/usr/local/www/diag_gmirror.php:268
#: src/usr/local/www/load_balancer_pool_edit.php:421
#: src/usr/local/www/load_balancer_pool_edit.php:428
-#: src/usr/local/www/pkg_mgr_installed.php:197
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:119
+#: src/usr/local/www/pkg_mgr_installed.php:193
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:117
msgid "Remove"
msgstr ""
@@ -8628,7 +8474,7 @@ msgstr ""
msgid "No source tracking entries were found."
msgstr ""
-#: src/usr/local/www/diag_edit.php:31 src/usr/local/www/head.inc:343
+#: src/usr/local/www/diag_edit.php:31 src/usr/local/www/head.inc:337
msgid "Edit File"
msgstr ""
@@ -8648,35 +8494,39 @@ msgstr ""
msgid "Failed to read file."
msgstr ""
-#: src/usr/local/www/diag_edit.php:80
+#: src/usr/local/www/diag_edit.php:78
msgid "Failed to write file."
msgstr ""
-#: src/usr/local/www/diag_edit.php:84
+#: src/usr/local/www/diag_edit.php:82
msgid "Error while writing file."
msgstr ""
-#: src/usr/local/www/diag_edit.php:88
+#: src/usr/local/www/diag_edit.php:86
msgid "File saved successfully."
msgstr ""
-#: src/usr/local/www/diag_edit.php:108
+#: src/usr/local/www/diag_edit.php:106
msgid "Save / Load a File from the Filesystem"
msgstr ""
-#: src/usr/local/www/diag_edit.php:115 src/usr/local/www/diag_edit.php:117
+#: src/usr/local/www/diag_edit.php:110
+msgid "Path to file to be edited"
+msgstr ""
+
+#: src/usr/local/www/diag_edit.php:113 src/usr/local/www/diag_edit.php:115
msgid "Load"
msgstr ""
-#: src/usr/local/www/diag_edit.php:119 src/usr/local/www/diag_edit.php:121
+#: src/usr/local/www/diag_edit.php:117 src/usr/local/www/diag_edit.php:119
msgid "Browse"
msgstr ""
-#: src/usr/local/www/diag_edit.php:130
+#: src/usr/local/www/diag_edit.php:128
msgid "GoTo Line #"
msgstr ""
-#: src/usr/local/www/diag_gmirror.php:33 src/usr/local/www/head.inc:347
+#: src/usr/local/www/diag_gmirror.php:33 src/usr/local/www/head.inc:341
msgid "GEOM Mirrors"
msgstr ""
@@ -8842,7 +8692,7 @@ msgid ""
"followed by an 'insert' action on the new consumer."
msgstr ""
-#: src/usr/local/www/diag_halt.php:45 src/usr/local/www/head.inc:350
+#: src/usr/local/www/diag_halt.php:45 src/usr/local/www/head.inc:344
msgid "Halt System"
msgstr ""
@@ -8874,13 +8724,13 @@ msgid "Halt the system and power off"
msgstr ""
#: src/usr/local/www/diag_halt.php:78 src/usr/local/www/diag_reboot.php:119
-#: src/usr/local/www/firewall_nat.php:467
-#: src/usr/local/www/firewall_rules.php:870
-#: src/usr/local/www/interfaces.php:1870 src/usr/local/www/interfaces.php:3176
+#: src/usr/local/www/firewall_nat.php:469
+#: src/usr/local/www/firewall_rules.php:869
+#: src/usr/local/www/interfaces.php:1873 src/usr/local/www/interfaces.php:3184
msgid "Cancel"
msgstr ""
-#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/head.inc:351
+#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/head.inc:345
msgid "Limiter Info"
msgstr ""
@@ -8892,7 +8742,7 @@ msgstr ""
msgid "Limiters:"
msgstr ""
-#: src/usr/local/www/diag_limiter_info.php:43 src/usr/local/www/head.inc:313
+#: src/usr/local/www/diag_limiter_info.php:43 src/usr/local/www/head.inc:307
#: src/usr/local/www/status_queues.php:110
msgid "Queues"
msgstr ""
@@ -8905,145 +8755,25 @@ msgstr ""
msgid "Gathering Limiter information, please wait..."
msgstr ""
-#: src/usr/local/www/diag_nanobsd.php:40 src/usr/local/www/head.inc:369
-msgid "NanoBSD"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:59
-#, php-format
-msgid "The boot slice has been set to %s."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:66
-msgid "Duplicating slice. Please wait, this will take a moment..."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:69
-msgid "The slice has been duplicated."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:69
-msgid ""
-"To boot from this newly duplicated slice set it using the bootup information "
-"area."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:72
-msgid "There was an error while duplicating the slice. Operation aborted."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:91
-msgid "Permanent read/write has been set successfully."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:95
-msgid "Permanent read/write has been cleared successfully."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:100
-msgid "Changed Permanent Read/Write Setting"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:103
-msgid "Saved read/write permanently."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:108
-#: src/usr/local/www/system_advanced_sysctl.php:157
-msgid "The options on this page are intended for use by advanced users only."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:116
-msgid "NanoBSD Options"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:119
-msgid "Image Size"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:125
-msgid "Switch Slice"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:132
-msgid "Bootup slice"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:150
-msgid "Read/Write"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:151
-msgid "Switch to Read-Only"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:153
-msgid "Read-Only"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:154
-msgid "Switch to Read/Write"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:172
-msgid "Read/Write status"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:174
-msgid ""
-"NanoBSD is now always read-write to avoid read-write to read-only mount "
-"problems."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:208
-msgid "Duplicate "
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:215
-msgid "Duplicate boot slice"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:217
-msgid ""
-"This will duplicate the bootup slice to the alternate slice. Use this to "
-"duplicate the known good working boot partition to the alternate."
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:220
-msgid "RRD/DHCP Backup"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:227
-msgid "View log"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:234
-msgid "View previous upgrade log"
-msgstr ""
-
-#: src/usr/local/www/diag_nanobsd.php:244
-msgid "Previous Upgrade Log"
-msgstr ""
-
#: src/usr/local/www/diag_ndp.php:96 src/usr/local/www/diag_ndp.php:101
-#: src/usr/local/www/head.inc:352
+#: src/usr/local/www/head.inc:346
msgid "NDP Table"
msgstr ""
#: src/usr/local/www/diag_ndp.php:108 src/usr/local/www/interfaces.php:578
-#: src/usr/local/www/interfaces.php:1804
-#: src/usr/local/www/services_dhcpv6.php:984
+#: src/usr/local/www/interfaces.php:1807
+#: src/usr/local/www/services_dhcpv6.php:979
#: src/usr/local/www/services_dhcpv6_edit.php:226
-#: src/usr/local/www/status_dhcpv6_leases.php:433
+#: src/usr/local/www/status_dhcpv6_leases.php:430
msgid "IPv6 address"
msgstr ""
#: src/usr/local/www/diag_packet_capture.php:80
-#: src/usr/local/www/diag_packet_capture.php:398
+#: src/usr/local/www/diag_packet_capture.php:397
msgid "Download Capture"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:84 src/usr/local/www/head.inc:366
+#: src/usr/local/www/diag_packet_capture.php:84 src/usr/local/www/head.inc:360
msgid "Packet Capture"
msgstr ""
@@ -9088,38 +8818,38 @@ msgstr ""
msgid "Invalid value specified for packet count."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:210
-#: src/usr/local/www/diag_packet_capture.php:375
-#: src/usr/local/www/diag_packet_capture.php:451
+#: src/usr/local/www/diag_packet_capture.php:209
+#: src/usr/local/www/diag_packet_capture.php:374
+#: src/usr/local/www/diag_packet_capture.php:450
#: src/usr/local/www/status_dhcp_leases.php:350
-#: src/usr/local/www/status_dhcpv6_leases.php:438
-#: src/usr/local/www/status_dhcpv6_leases.php:533
+#: src/usr/local/www/status_dhcpv6_leases.php:435
+#: src/usr/local/www/status_dhcpv6_leases.php:530
msgid "Start"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:218
-#: src/usr/local/www/diag_packet_capture.php:372
-#: src/usr/local/www/diag_packet_capture.php:382
+#: src/usr/local/www/diag_packet_capture.php:217
+#: src/usr/local/www/diag_packet_capture.php:371
+#: src/usr/local/www/diag_packet_capture.php:381
msgid "Stop"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:245
+#: src/usr/local/www/diag_packet_capture.php:244
msgid "Exclude"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:275
+#: src/usr/local/www/diag_packet_capture.php:274
msgid "Packet Capture Options"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:282
+#: src/usr/local/www/diag_packet_capture.php:281
msgid "Select the interface on which to capture traffic. "
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:286
+#: src/usr/local/www/diag_packet_capture.php:285
msgid "Promiscuous"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:289
+#: src/usr/local/www/diag_packet_capture.php:288
msgid ""
"The packet capture will be performed using promiscuous mode.<br />Note: Some "
"network adapters do not support or work well in promiscuous mode.<br />More: "
@@ -9128,33 +8858,33 @@ msgid ""
"arch=default&amp;format=html\">Packet capture</a>"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:299
+#: src/usr/local/www/diag_packet_capture.php:298
msgid "IPv4 Only"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:300
+#: src/usr/local/www/diag_packet_capture.php:299
msgid "IPv6 Only"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:296
-#: src/usr/local/www/firewall_rules_edit.php:1210
+#: src/usr/local/www/diag_packet_capture.php:295
+#: src/usr/local/www/firewall_rules_edit.php:1205
#: src/usr/local/www/system_gateways_edit.php:594
msgid "Address Family"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:302
+#: src/usr/local/www/diag_packet_capture.php:301
msgid "Select the type of traffic to be captured."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:309
+#: src/usr/local/www/diag_packet_capture.php:308
msgid "Select the protocol to capture, or \"Any\". "
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:313
+#: src/usr/local/www/diag_packet_capture.php:312
msgid "Host Address"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:316
+#: src/usr/local/www/diag_packet_capture.php:315
msgid ""
"This value is either the Source or Destination IP address or subnet in CIDR "
"notation. The packet capture will look for this address in either field.<br /"
@@ -9165,17 +8895,17 @@ msgid ""
"interface will be captured."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:323
+#: src/usr/local/www/diag_packet_capture.php:322
#: src/usr/local/www/diag_testport.php:52
#: src/usr/local/www/diag_testport.php:229
#: src/usr/local/www/firewall_aliases_edit.php:549
#: src/usr/local/www/firewall_nat_edit.php:847
-#: src/usr/local/www/firewall_nat_out_edit.php:494
-#: src/usr/local/www/firewall_nat_out_edit.php:518
-#: src/usr/local/www/firewall_nat_out_edit.php:574
-#: src/usr/local/www/firewall_rules.php:378
-#: src/usr/local/www/firewall_rules.php:380
-#: src/usr/local/www/interfaces.php:3039 src/usr/local/www/interfaces.php:3063
+#: src/usr/local/www/firewall_nat_out_edit.php:509
+#: src/usr/local/www/firewall_nat_out_edit.php:533
+#: src/usr/local/www/firewall_nat_out_edit.php:596
+#: src/usr/local/www/firewall_rules.php:377
+#: src/usr/local/www/firewall_rules.php:379
+#: src/usr/local/www/interfaces.php:3047 src/usr/local/www/interfaces.php:3071
#: src/usr/local/www/load_balancer_pool.php:123
#: src/usr/local/www/load_balancer_pool_edit.php:73
#: src/usr/local/www/load_balancer_pool_edit.php:329
@@ -9185,93 +8915,93 @@ msgstr ""
msgid "Port"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:326
+#: src/usr/local/www/diag_packet_capture.php:325
msgid ""
"The port can be either the source or destination port. The packet capture "
"will look for this port in either field. Leave blank if not filtering by "
"port."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:331
+#: src/usr/local/www/diag_packet_capture.php:330
msgid "Packet Length"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:334
+#: src/usr/local/www/diag_packet_capture.php:333
msgid ""
"The Packet length is the number of bytes of each packet that will be "
"captured. Default value is 0, which will capture the entire frame regardless "
"of its size."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:339
+#: src/usr/local/www/diag_packet_capture.php:338
#: src/usr/local/www/diag_ping.php:50
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:91
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:202
msgid "Count"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:342
+#: src/usr/local/www/diag_packet_capture.php:341
msgid ""
"This is the number of packets the packet capture will grab. Default value is "
"100.<br />Enter 0 (zero) for no count limit."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:349
-#: src/usr/local/www/services_router_advertisements.php:120
+#: src/usr/local/www/diag_packet_capture.php:348
+#: src/usr/local/www/services_router_advertisements.php:115
msgid "Normal"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:350
+#: src/usr/local/www/diag_packet_capture.php:349
msgid "Medium"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:351
-#: src/usr/local/www/services_router_advertisements.php:121
+#: src/usr/local/www/diag_packet_capture.php:350
+#: src/usr/local/www/services_router_advertisements.php:116
msgid "High"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:352
+#: src/usr/local/www/diag_packet_capture.php:351
msgid "Full"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:347
+#: src/usr/local/www/diag_packet_capture.php:346
msgid "Level of detail"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:354
+#: src/usr/local/www/diag_packet_capture.php:353
msgid ""
"This is the level of detail that will be displayed after hitting \"Stop\" "
"when the packets have been captured.<br />This option does not affect the "
"level of detail when downloading the packet capture. "
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:359
+#: src/usr/local/www/diag_packet_capture.php:358
msgid "Reverse DNS Lookup"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:362
+#: src/usr/local/www/diag_packet_capture.php:361
msgid ""
"The packet capture will perform a reverse DNS lookup associated with all IP "
"addresses.<br />This option can cause delays for large packet captures."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:391
+#: src/usr/local/www/diag_packet_capture.php:390
msgid "View Capture"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:404
+#: src/usr/local/www/diag_packet_capture.php:403
msgid "Last capture"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:454
+#: src/usr/local/www/diag_packet_capture.php:453
msgid "Packet capture is running."
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:464
+#: src/usr/local/www/diag_packet_capture.php:463
msgid "Packets Captured"
msgstr ""
-#: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/head.inc:356
+#: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/head.inc:350
msgid "pfInfo"
msgstr ""
@@ -9291,7 +9021,7 @@ msgstr ""
msgid "Gathering PF information, please wait..."
msgstr ""
-#: src/usr/local/www/diag_pftop.php:31 src/usr/local/www/head.inc:357
+#: src/usr/local/www/diag_pftop.php:31 src/usr/local/www/head.inc:351
msgid "pfTop"
msgstr ""
@@ -9370,13 +9100,13 @@ msgid "Source Port"
msgstr ""
#: src/usr/local/www/diag_pftop.php:127 src/usr/local/www/diag_testport.php:252
-#: src/usr/local/www/diag_traceroute.php:134
-#: src/usr/local/www/firewall_nat.php:207
-#: src/usr/local/www/status_logs_settings.php:332
+#: src/usr/local/www/diag_traceroute.php:140
+#: src/usr/local/www/firewall_nat.php:209
+#: src/usr/local/www/status_logs_settings.php:340
msgid "Source Address"
msgstr ""
-#: src/usr/local/www/diag_pftop.php:113 src/usr/local/www/status_graph.php:158
+#: src/usr/local/www/diag_pftop.php:113 src/usr/local/www/status_graph.php:146
msgid "Sort by"
msgstr ""
@@ -9389,7 +9119,7 @@ msgid "Gathering pfTOP activity, please wait..."
msgstr ""
#: src/usr/local/www/diag_ping.php:50 src/usr/local/www/diag_testport.php:52
-#: src/usr/local/www/diag_traceroute.php:55
+#: src/usr/local/www/diag_traceroute.php:58
#: src/usr/local/www/load_balancer_monitor_edit.php:303
#: src/usr/local/www/load_balancer_monitor_edit.php:329
#: src/usr/local/www/services_dnsmasq.php:319
@@ -9406,11 +9136,11 @@ msgstr ""
msgid "Count must be between 1 and %s"
msgstr ""
-#: src/usr/local/www/diag_ping.php:60 src/usr/local/www/diag_traceroute.php:64
+#: src/usr/local/www/diag_ping.php:60 src/usr/local/www/diag_traceroute.php:67
msgid "When using IPv4, the target host must be an IPv4 address or hostname."
msgstr ""
-#: src/usr/local/www/diag_ping.php:63 src/usr/local/www/diag_traceroute.php:67
+#: src/usr/local/www/diag_ping.php:63 src/usr/local/www/diag_traceroute.php:70
msgid "When using IPv6, the target host must be an IPv6 address or hostname."
msgstr ""
@@ -9420,8 +9150,8 @@ msgid "Host \"%s\" did not respond or could not be resolved."
msgstr ""
#: src/usr/local/www/diag_ping.php:139 src/usr/local/www/diag_testport.php:259
-#: src/usr/local/www/diag_traceroute.php:127
-#: src/usr/local/www/status_logs_settings.php:339
+#: src/usr/local/www/diag_traceroute.php:133
+#: src/usr/local/www/status_logs_settings.php:347
msgid "IP Protocol"
msgstr ""
@@ -9448,8 +9178,8 @@ msgid "Select the maximum number of pings."
msgstr ""
#: src/usr/local/www/diag_reboot.php:43 src/usr/local/www/diag_reboot.php:113
-#: src/usr/local/www/diag_reboot.php:115 src/usr/local/www/head.inc:358
-#: src/usr/local/www/interfaces.php:1958
+#: src/usr/local/www/diag_reboot.php:115 src/usr/local/www/head.inc:352
+#: src/usr/local/www/interfaces.php:1961
msgid "Reboot"
msgstr ""
@@ -9515,7 +9245,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/diag_resetstate.php:91
-msgid "Select States to Reset"
+msgid "State reset options"
msgstr ""
#: src/usr/local/www/diag_resetstate.php:95
@@ -9528,57 +9258,65 @@ msgstr ""
msgid "Reset"
msgstr ""
-#: src/usr/local/www/diag_routes.php:64 src/usr/local/www/head.inc:359
+#: src/usr/local/www/diag_resetstate.php:120
+msgid "Please select at least one reset option"
+msgstr ""
+
+#: src/usr/local/www/diag_resetstate.php:121
+msgid "Do you really want to reset the selected states?"
+msgstr ""
+
+#: src/usr/local/www/diag_routes.php:65 src/usr/local/www/head.inc:353
msgid "Routes"
msgstr ""
-#: src/usr/local/www/diag_routes.php:76
+#: src/usr/local/www/diag_routes.php:77
msgid "Routing Table Display Options"
msgstr ""
-#: src/usr/local/www/diag_routes.php:80
+#: src/usr/local/www/diag_routes.php:81
msgid "Resolve names"
msgstr ""
-#: src/usr/local/www/diag_routes.php:83
+#: src/usr/local/www/diag_routes.php:84
msgid ""
"Enabling name resolution may cause the query to take longer. It can be "
"stopped at any time by clicking the Stop button in the browser."
msgstr ""
-#: src/usr/local/www/diag_routes.php:89
+#: src/usr/local/www/diag_routes.php:90
msgid "Rows to display"
msgstr ""
-#: src/usr/local/www/diag_routes.php:99
-msgid "Use a regular expression to filter IP address or hostnames."
+#: src/usr/local/www/diag_routes.php:100
+msgid "Use a regular expression to filter the tables."
msgstr ""
-#: src/usr/local/www/diag_routes.php:105 src/usr/local/www/diag_tables.php:145
+#: src/usr/local/www/diag_routes.php:106 src/usr/local/www/diag_tables.php:147
#: src/usr/local/www/head.inc:212 src/usr/local/www/pkg_mgr_install.php:238
-#: src/usr/local/www/pkg_mgr_installed.php:193
-#: src/usr/local/www/system_certmanager.php:459
-#: src/usr/local/www/system_certmanager.php:515
-#: src/usr/local/www/system_certmanager.php:865
-#: src/usr/local/www/system_certmanager.php:913
+#: src/usr/local/www/pkg_mgr_installed.php:189
+#: src/usr/local/www/system_certmanager.php:464
+#: src/usr/local/www/system_certmanager.php:520
+#: src/usr/local/www/system_certmanager.php:886
+#: src/usr/local/www/system_certmanager.php:934
#: src/usr/local/www/system_update_settings.php:77
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:122
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:120
msgid "Update"
msgstr ""
-#: src/usr/local/www/diag_routes.php:190
+#: src/usr/local/www/diag_routes.php:191
msgid "IPv4 Routes"
msgstr ""
-#: src/usr/local/www/diag_routes.php:200 src/usr/local/www/diag_routes.php:218
+#: src/usr/local/www/diag_routes.php:201 src/usr/local/www/diag_routes.php:219
msgid "Gathering data, please wait..."
msgstr ""
-#: src/usr/local/www/diag_routes.php:208
+#: src/usr/local/www/diag_routes.php:209
msgid "IPv6 Routes"
msgstr ""
-#: src/usr/local/www/diag_smart.php:36 src/usr/local/www/head.inc:360
+#: src/usr/local/www/diag_smart.php:36 src/usr/local/www/head.inc:354
#: src/usr/local/www/widgets/include/smart_status.inc:23
#: src/usr/local/www/widgets/widgets/smart_status.widget.php:40
msgid "S.M.A.R.T. Status"
@@ -9639,7 +9377,7 @@ msgid "Invalid info type, bailing."
msgstr ""
#: src/usr/local/www/diag_smart.php:161 src/usr/local/www/diag_smart.php:305
-#: src/usr/local/www/pkg_mgr_installed.php:198
+#: src/usr/local/www/pkg_mgr_installed.php:194
msgid "Information"
msgstr ""
@@ -9659,20 +9397,20 @@ msgstr ""
#: src/usr/local/www/diag_smart.php:264
#: src/usr/local/www/services_captiveportal.php:64
#: src/usr/local/www/services_captiveportal.php:530
-#: src/usr/local/www/services_captiveportal_filemanager.php:140
+#: src/usr/local/www/services_captiveportal_filemanager.php:138
#: src/usr/local/www/services_captiveportal_hostname.php:105
#: src/usr/local/www/services_captiveportal_ip.php:99
#: src/usr/local/www/services_captiveportal_mac.php:164
-#: src/usr/local/www/services_captiveportal_vouchers.php:405
+#: src/usr/local/www/services_captiveportal_vouchers.php:374
#: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp.php:186
#: src/usr/local/www/vpn_l2tp.php:210 src/usr/local/www/vpn_l2tp_users.php:84
msgid "Configuration"
msgstr ""
#: src/usr/local/www/diag_smart.php:268
-#: src/usr/local/www/system_camanager.php:576
-#: src/usr/local/www/system_certmanager.php:694
-#: src/usr/local/www/system_certmanager.php:813
+#: src/usr/local/www/system_camanager.php:589
+#: src/usr/local/www/system_certmanager.php:707
+#: src/usr/local/www/system_certmanager.php:834
msgid "Email Address"
msgstr ""
@@ -9709,7 +9447,7 @@ msgstr ""
msgid "Log type"
msgstr ""
-#: src/usr/local/www/diag_sockets.php:31 src/usr/local/www/head.inc:361
+#: src/usr/local/www/diag_sockets.php:31 src/usr/local/www/head.inc:355
msgid "Sockets"
msgstr ""
@@ -9726,72 +9464,70 @@ msgid "System Socket Information"
msgstr ""
#: src/usr/local/www/diag_sockets.php:107
-msgid "Socket information - explanation."
+msgid "Socket Information"
msgstr ""
#: src/usr/local/www/diag_sockets.php:108
msgid ""
-"This page shows the output for the commands: \"sockstat -4lL\" and "
-"\"sockstat -6lL\".<br />Or in case of showing all sockets the output for: "
-"\"sockstat -4\" and \"sockstat -6\".<br /><br />The information listed for "
-"each socket is:<br /><br /> <dl class=\"dl-horizontal responsive\"><dt>USER</"
-"dt>\t\t\t<dd>The user who owns the socket.</dd><dt>COMMAND</dt>\t\t<dd>The "
-"command which holds the socket.</dd><dt>PID</dt>\t\t\t<dd>The process ID of "
-"the command which holds the socket.</dd><dt>FD</dt>\t\t\t\t<dd>The file "
-"descriptor number of the socket.</dd><dt>PROTO</dt>\t\t\t<dd>The transport "
-"protocol associated with the socket for Internet sockets, or the type of "
-"socket (stream or data-gram) for UNIX sockets.</dd><dt>ADDRESS</dt>\t"
-"\t<dd>(UNIX sockets only) For bound sockets, this is the file-name of the "
-"socket. For other sockets, it is the name, PID and file descriptor number of "
-"the peer, or \"(none)\" if the socket is neither bound nor connected.</"
-"dd><dt>LOCAL ADDRESS</dt> <dd>(Internet sockets only) The address the local "
-"end of the socket is bound to (see getsockname(2)).</dd><dt>FOREIGN ADDRESS</"
-"dt><dd>(Internet sockets only) The address the foreign end of the socket is "
-"bound to (see getpeername(2)).</dd></dl>"
-msgstr ""
-
-#: src/usr/local/www/diag_states_summary.php:146
+"This page shows all listening sockets by default, and shows both listening "
+"and outbound connection sockets when <strong>Show all socket connections</"
+"strong> is clicked.<br /><br />The information listed for each socket is:"
+"<br /><br /><dl class=\"dl-horizontal responsive\"><dt>USER</dt>\t\t"
+"\t<dd>The user who owns the socket.</dd><dt>COMMAND</dt>\t\t<dd>The command "
+"which holds the socket.</dd><dt>PID</dt>\t\t\t<dd>The process ID of the "
+"command which holds the socket.</dd><dt>FD</dt>\t\t\t<dd>The file descriptor "
+"number of the socket.</dd><dt>PROTO</dt>\t\t\t<dd>The transport protocol "
+"associated with the socket.</dd><dt>LOCAL ADDRESS</dt>\t\t<dd>The address "
+"the local end of the socket is bound to.</dd><dt>FOREIGN ADDRESS</dt>"
+"\t<dd>The address the foreign end of the socket is bound to.</dd></dl>"
+msgstr ""
+
+#: src/usr/local/www/diag_states_summary.php:147
+msgid "Protocol counts"
+msgstr ""
+
+#: src/usr/local/www/diag_states_summary.php:151
#: src/usr/local/www/firewall_aliases.php:159
#: src/usr/local/www/services_dnsmasq.php:321
#: src/usr/local/www/services_dnsmasq.php:395
#: src/usr/local/www/services_unbound.php:435
#: src/usr/local/www/services_unbound.php:511
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:221
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:222
msgid "IP"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:150
-#: src/usr/local/www/firewall_nat.php:208
+#: src/usr/local/www/diag_states_summary.php:155
+#: src/usr/local/www/firewall_nat.php:210
#: src/usr/local/www/status_logs_filter_summary.php:88
msgid "Source Ports"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:151
-#: src/usr/local/www/firewall_nat.php:210
+#: src/usr/local/www/diag_states_summary.php:156
+#: src/usr/local/www/firewall_nat.php:212
msgid "Dest. Ports"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:187 src/usr/local/www/head.inc:363
+#: src/usr/local/www/diag_states_summary.php:192 src/usr/local/www/head.inc:357
msgid "States Summary"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:191
+#: src/usr/local/www/diag_states_summary.php:196
msgid "By Source IP"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:192
+#: src/usr/local/www/diag_states_summary.php:197
msgid "By Destination IP"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:193
+#: src/usr/local/www/diag_states_summary.php:198
msgid "Total per IP"
msgstr ""
-#: src/usr/local/www/diag_states_summary.php:194
+#: src/usr/local/www/diag_states_summary.php:199
msgid "By IP Pair"
msgstr ""
-#: src/usr/local/www/diag_system_activity.php:31 src/usr/local/www/head.inc:364
+#: src/usr/local/www/diag_system_activity.php:31 src/usr/local/www/head.inc:358
msgid "System Activity"
msgstr ""
@@ -9803,13 +9539,13 @@ msgstr ""
msgid "Gathering CPU activity, please wait..."
msgstr ""
-#: src/usr/local/www/diag_tables.php:29 src/usr/local/www/head.inc:353
+#: src/usr/local/www/diag_tables.php:29 src/usr/local/www/head.inc:347
msgid "Tables"
msgstr ""
#: src/usr/local/www/diag_tables.php:110
#, php-format
-msgid "The %s database has been updated."
+msgid "The %s file contents have been updated."
msgstr ""
#: src/usr/local/www/diag_tables.php:124
@@ -9829,50 +9565,58 @@ msgstr ""
msgid "Table"
msgstr ""
-#: src/usr/local/www/diag_tables.php:152
+#: src/usr/local/www/diag_tables.php:139
+msgid ""
+"Select a user-defined alias name or system table name to view its contents. "
+"<br/><br/>Aliases become Tables when loaded into the active firewall "
+"ruleset. The contents displayed on this page reflect the current addresses "
+"inside tables used by the firewall."
+msgstr ""
+
+#: src/usr/local/www/diag_tables.php:154
msgid "Empty Table"
msgstr ""
-#: src/usr/local/www/diag_tables.php:182
+#: src/usr/local/www/diag_tables.php:184
#, php-format
msgid "Table last updated on %s."
msgstr ""
-#: src/usr/local/www/diag_tables.php:184
+#: src/usr/local/www/diag_tables.php:186
msgid "Date of last update of table is unknown."
msgstr ""
-#: src/usr/local/www/diag_tables.php:187
+#: src/usr/local/www/diag_tables.php:189
#, php-format
msgid "%s records."
msgstr ""
-#: src/usr/local/www/diag_tables.php:187
+#: src/usr/local/www/diag_tables.php:189
msgid "."
msgstr ""
-#: src/usr/local/www/diag_tables.php:187
+#: src/usr/local/www/diag_tables.php:189
msgid ","
msgstr ""
-#: src/usr/local/www/diag_tables.php:199
+#: src/usr/local/www/diag_tables.php:201
msgid "Hide table comments."
msgstr ""
-#: src/usr/local/www/diag_tables.php:200
+#: src/usr/local/www/diag_tables.php:202
msgid "Show table comments."
msgstr ""
-#: src/usr/local/www/diag_tables.php:249
+#: src/usr/local/www/diag_tables.php:251
msgid "No entries exist in this table."
msgstr ""
-#: src/usr/local/www/diag_tables.php:286
+#: src/usr/local/www/diag_tables.php:288
msgid "Remove this entry"
msgstr ""
#: src/usr/local/www/diag_testport.php:38
-#: src/usr/local/www/diag_testport.php:217 src/usr/local/www/head.inc:355
+#: src/usr/local/www/diag_testport.php:217 src/usr/local/www/head.inc:349
msgid "Test Port"
msgstr ""
@@ -9938,7 +9682,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/diag_testport.php:255
-#: src/usr/local/www/diag_traceroute.php:137
+#: src/usr/local/www/diag_traceroute.php:143
msgid "Select source address for the trace."
msgstr ""
@@ -9954,48 +9698,48 @@ msgstr ""
msgid "Received Remote Text"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:55
+#: src/usr/local/www/diag_traceroute.php:58
msgid "ttl"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:59
+#: src/usr/local/www/diag_traceroute.php:62
#, php-format
msgid "Maximum number of hops must be between 1 and %s"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:109
+#: src/usr/local/www/diag_traceroute.php:115
#, php-format
msgid "Error: %s could not be traced/resolved"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:130
+#: src/usr/local/www/diag_traceroute.php:136
msgid "Select the protocol to use."
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:141
+#: src/usr/local/www/diag_traceroute.php:147
msgid "Maximum number of hops"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:144
+#: src/usr/local/www/diag_traceroute.php:150
msgid "Select the maximum number of network hops to trace."
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:148
+#: src/usr/local/www/diag_traceroute.php:154
msgid "Reverse Address Lookup"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:151
+#: src/usr/local/www/diag_traceroute.php:157
msgid ""
"When checked, traceroute will attempt to perform a PTR lookup to locate "
"hostnames for hops along the path. This will slow down the process as it has "
"to wait for DNS replies."
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:155
+#: src/usr/local/www/diag_traceroute.php:161
msgid "Use ICMP"
msgstr ""
-#: src/usr/local/www/diag_traceroute.php:158
+#: src/usr/local/www/diag_traceroute.php:164
msgid ""
"By default, traceroute uses UDP but that may be blocked by some routers. "
"Check this box to use ICMP instead, which may succeed. "
@@ -10030,12 +9774,12 @@ msgid ""
"Logs page"
msgstr ""
-#: src/usr/local/www/easyrule.php:78 src/usr/local/www/head.inc:315
+#: src/usr/local/www/easyrule.php:78 src/usr/local/www/head.inc:309
#: src/usr/local/www/status_logs.php:96 src/usr/local/www/status_logs.php:98
#: src/usr/local/www/status_logs_filter.php:102
#: src/usr/local/www/status_logs_filter_dynamic.php:82
#: src/usr/local/www/status_logs_filter_summary.php:67
-#: src/usr/local/www/status_logs_settings.php:180
+#: src/usr/local/www/status_logs_settings.php:188
#: src/usr/local/www/status_logs_vpn.php:84
msgid "System Logs"
msgstr ""
@@ -10060,17 +9804,17 @@ msgstr ""
#: src/usr/local/www/firewall_aliases.php:171
#: src/usr/local/www/firewall_aliases_edit.php:38
#: src/usr/local/www/firewall_aliases_import.php:38
-#: src/usr/local/www/firewall_nat.php:173
+#: src/usr/local/www/firewall_nat.php:175
#: src/usr/local/www/firewall_nat_1to1.php:122
#: src/usr/local/www/firewall_nat_1to1_edit.php:248
#: src/usr/local/www/firewall_nat_edit.php:621
#: src/usr/local/www/firewall_nat_npt.php:122
#: src/usr/local/www/firewall_nat_npt_edit.php:178
#: src/usr/local/www/firewall_nat_out.php:206
-#: src/usr/local/www/firewall_nat_out_edit.php:363
+#: src/usr/local/www/firewall_nat_out_edit.php:378
#: src/usr/local/www/firewall_rules.php:42
-#: src/usr/local/www/firewall_rules.php:325
-#: src/usr/local/www/firewall_rules_edit.php:1043
+#: src/usr/local/www/firewall_rules.php:324
+#: src/usr/local/www/firewall_rules_edit.php:1038
#: src/usr/local/www/firewall_schedule.php:42
#: src/usr/local/www/firewall_schedule_edit.php:52
#: src/usr/local/www/firewall_shaper.php:41
@@ -10080,7 +9824,7 @@ msgstr ""
#: src/usr/local/www/firewall_virtual_ip.php:238
#: src/usr/local/www/firewall_virtual_ip_edit.php:296
#: src/usr/local/www/status_logs_common.inc:89
-#: src/usr/local/www/status_logs_settings.php:205
+#: src/usr/local/www/status_logs_settings.php:213
msgid "Firewall"
msgstr ""
@@ -10089,11 +9833,11 @@ msgid "The alias list has been changed."
msgstr ""
#: src/usr/local/www/firewall_aliases.php:181
-#: src/usr/local/www/firewall_nat.php:182
+#: src/usr/local/www/firewall_nat.php:184
#: src/usr/local/www/firewall_nat_1to1.php:131
#: src/usr/local/www/firewall_nat_npt.php:131
#: src/usr/local/www/firewall_nat_out.php:215
-#: src/usr/local/www/firewall_rules.php:336
+#: src/usr/local/www/firewall_rules.php:335
#: src/usr/local/www/firewall_shaper.php:377
#: src/usr/local/www/firewall_shaper_queues.php:206
#: src/usr/local/www/firewall_shaper_vinterface.php:377
@@ -10106,8 +9850,8 @@ msgstr ""
#: src/usr/local/www/load_balancer_virtual_server.php:121
#: src/usr/local/www/services_captiveportal_mac.php:160
#: src/usr/local/www/services_captiveportal_zones.php:68
-#: src/usr/local/www/services_dhcp.php:717
-#: src/usr/local/www/services_dhcpv6.php:495
+#: src/usr/local/www/services_dhcp.php:723
+#: src/usr/local/www/services_dhcpv6.php:490
#: src/usr/local/www/services_dnsmasq.php:195
#: src/usr/local/www/services_igmpproxy.php:76
#: src/usr/local/www/services_pppoe.php:91
@@ -10143,19 +9887,19 @@ msgid "Delete alias"
msgstr ""
#: src/usr/local/www/firewall_aliases.php:277
-#: src/usr/local/www/firewall_nat.php:442
-#: src/usr/local/www/firewall_nat.php:446
+#: src/usr/local/www/firewall_nat.php:444
+#: src/usr/local/www/firewall_nat.php:448
#: src/usr/local/www/firewall_nat_1to1.php:237
#: src/usr/local/www/firewall_nat_1to1.php:241
#: src/usr/local/www/firewall_nat_npt.php:226
#: src/usr/local/www/firewall_nat_npt.php:230
#: src/usr/local/www/firewall_nat_out.php:495
#: src/usr/local/www/firewall_nat_out.php:499
-#: src/usr/local/www/firewall_rules.php:808
-#: src/usr/local/www/firewall_rules.php:812
+#: src/usr/local/www/firewall_rules.php:807
+#: src/usr/local/www/firewall_rules.php:811
#: src/usr/local/www/firewall_schedule.php:245
#: src/usr/local/www/firewall_virtual_ip.php:338
-#: src/usr/local/www/interfaces.php:1861 src/usr/local/www/interfaces.php:3167
+#: src/usr/local/www/interfaces.php:1864 src/usr/local/www/interfaces.php:3175
#: src/usr/local/www/interfaces_assign.php:566
#: src/usr/local/www/interfaces_bridge.php:156
#: src/usr/local/www/interfaces_gif.php:130
@@ -10170,17 +9914,17 @@ msgstr ""
#: src/usr/local/www/load_balancer_pool.php:181
#: src/usr/local/www/load_balancer_virtual_server.php:203
#: src/usr/local/www/pkg.php:575 src/usr/local/www/pkg_edit.php:1442
-#: src/usr/local/www/services_captiveportal_filemanager.php:236
+#: src/usr/local/www/services_captiveportal_filemanager.php:234
#: src/usr/local/www/services_captiveportal_hostname.php:162
#: src/usr/local/www/services_captiveportal_ip.php:159
#: src/usr/local/www/services_captiveportal_mac.php:222
-#: src/usr/local/www/services_captiveportal_vouchers.php:469
+#: src/usr/local/www/services_captiveportal_vouchers.php:438
#: src/usr/local/www/services_captiveportal_zones.php:122
#: src/usr/local/www/services_checkip.php:155
-#: src/usr/local/www/services_dhcp.php:859
-#: src/usr/local/www/services_dhcp.php:1257
-#: src/usr/local/www/services_dhcp.php:1356
-#: src/usr/local/www/services_dhcpv6.php:1029
+#: src/usr/local/www/services_dhcp.php:872
+#: src/usr/local/www/services_dhcp.php:1270
+#: src/usr/local/www/services_dhcp.php:1369
+#: src/usr/local/www/services_dhcpv6.php:1024
#: src/usr/local/www/services_dnsmasq.php:384
#: src/usr/local/www/services_dnsmasq.php:431
#: src/usr/local/www/services_dyndns.php:212
@@ -10189,29 +9933,29 @@ msgstr ""
#: src/usr/local/www/services_ntpd_acls.php:299
#: src/usr/local/www/services_pppoe.php:147
#: src/usr/local/www/services_rfc2136.php:201
-#: src/usr/local/www/services_router_advertisements.php:425
+#: src/usr/local/www/services_router_advertisements.php:420
#: src/usr/local/www/services_unbound.php:500
#: src/usr/local/www/services_unbound.php:549
#: src/usr/local/www/services_unbound_acls.php:335
#: src/usr/local/www/services_wol.php:207
#: src/usr/local/www/system_authservers.php:464
-#: src/usr/local/www/system_camanager.php:424
-#: src/usr/local/www/system_certmanager.php:756
-#: src/usr/local/www/system_certmanager.php:1061
+#: src/usr/local/www/system_camanager.php:429
+#: src/usr/local/www/system_certmanager.php:769
+#: src/usr/local/www/system_certmanager.php:1082
#: src/usr/local/www/system_crlmanager.php:535
#: src/usr/local/www/system_gateway_groups.php:188
#: src/usr/local/www/system_gateways.php:317
-#: src/usr/local/www/system_groupmanager.php:257
-#: src/usr/local/www/system_groupmanager.php:339
+#: src/usr/local/www/system_groupmanager.php:251
+#: src/usr/local/www/system_groupmanager.php:333
#: src/usr/local/www/system_routes.php:299
-#: src/usr/local/www/system_usermanager.php:481
-#: src/usr/local/www/system_usermanager.php:527
-#: src/usr/local/www/system_usermanager.php:615
+#: src/usr/local/www/system_usermanager.php:475
+#: src/usr/local/www/system_usermanager.php:521
+#: src/usr/local/www/system_usermanager.php:609
#: src/usr/local/www/vpn_ipsec_keys.php:168
#: src/usr/local/www/vpn_l2tp_users.php:124
#: src/usr/local/www/vpn_openvpn_client.php:831
#: src/usr/local/www/vpn_openvpn_csc.php:678
-#: src/usr/local/www/vpn_openvpn_server.php:1213
+#: src/usr/local/www/vpn_openvpn_server.php:1228
msgid "Add"
msgstr ""
@@ -10234,9 +9978,9 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:248
#: src/usr/local/www/firewall_nat_edit.php:621
#: src/usr/local/www/firewall_nat_npt_edit.php:178
-#: src/usr/local/www/firewall_nat_out_edit.php:363
-#: src/usr/local/www/firewall_rules.php:763
-#: src/usr/local/www/firewall_rules_edit.php:1048
+#: src/usr/local/www/firewall_nat_out_edit.php:378
+#: src/usr/local/www/firewall_rules.php:762
+#: src/usr/local/www/firewall_rules_edit.php:1043
#: src/usr/local/www/firewall_schedule_edit.php:52
#: src/usr/local/www/firewall_virtual_ip_edit.php:296
#: src/usr/local/www/interfaces_bridge_edit.php:384
@@ -10244,7 +9988,7 @@ msgstr ""
#: src/usr/local/www/interfaces_gre_edit.php:155
#: src/usr/local/www/interfaces_groups_edit.php:33
#: src/usr/local/www/interfaces_lagg_edit.php:223
-#: src/usr/local/www/interfaces_ppps_edit.php:440
+#: src/usr/local/www/interfaces_ppps_edit.php:460
#: src/usr/local/www/interfaces_qinq_edit.php:29
#: src/usr/local/www/interfaces_vlan_edit.php:172
#: src/usr/local/www/interfaces_wireless_edit.php:167
@@ -10264,21 +10008,21 @@ msgstr ""
#: src/usr/local/www/services_wol_edit.php:104
#: src/usr/local/www/system_advanced_sysctl.php:124
#: src/usr/local/www/system_authservers.php:406
-#: src/usr/local/www/system_camanager.php:314
-#: src/usr/local/www/system_certmanager.php:516
+#: src/usr/local/www/system_camanager.php:319
+#: src/usr/local/www/system_certmanager.php:521
#: src/usr/local/www/system_crlmanager.php:256
#: src/usr/local/www/system_gateway_groups_edit.php:147
#: src/usr/local/www/system_gateways_edit.php:538
-#: src/usr/local/www/system_groupmanager.php:266
+#: src/usr/local/www/system_groupmanager.php:260
#: src/usr/local/www/system_groupmanager_addprivs.php:36
#: src/usr/local/www/system_routes_edit.php:224
-#: src/usr/local/www/system_usermanager.php:536
+#: src/usr/local/www/system_usermanager.php:530
#: src/usr/local/www/system_usermanager_addprivs.php:36
#: src/usr/local/www/vpn_ipsec_keys_edit.php:122
#: src/usr/local/www/vpn_l2tp_users_edit.php:29
#: src/usr/local/www/vpn_openvpn_client.php:395
#: src/usr/local/www/vpn_openvpn_csc.php:281
-#: src/usr/local/www/vpn_openvpn_server.php:562
+#: src/usr/local/www/vpn_openvpn_server.php:566
msgid "Edit"
msgstr ""
@@ -10555,9 +10299,9 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:463
#: src/usr/local/www/firewall_nat_edit.php:719
#: src/usr/local/www/firewall_nat_edit.php:786
-#: src/usr/local/www/firewall_nat_out_edit.php:481
-#: src/usr/local/www/firewall_nat_out_edit.php:505
-#: src/usr/local/www/firewall_rules_edit.php:416
+#: src/usr/local/www/firewall_nat_out_edit.php:496
+#: src/usr/local/www/firewall_nat_out_edit.php:520
+#: src/usr/local/www/firewall_rules_edit.php:411
#: src/usr/local/www/firewall_virtual_ip.php:264
#: src/usr/local/www/firewall_virtual_ip_edit.php:96
#: src/usr/local/www/firewall_virtual_ip_edit.php:330
@@ -10565,7 +10309,7 @@ msgstr ""
#: src/usr/local/www/load_balancer_monitor_edit.php:86
#: src/usr/local/www/load_balancer_monitor_edit.php:284
#: src/usr/local/www/services_captiveportal.php:974
-#: src/usr/local/www/services_dhcp.php:1234
+#: src/usr/local/www/services_dhcp.php:1247
#: src/usr/local/www/services_igmpproxy.php:89
#: src/usr/local/www/services_igmpproxy_edit.php:169
#: src/usr/local/www/status_logs_vpn.php:177
@@ -10575,12 +10319,12 @@ msgstr ""
#: src/usr/local/www/system_authservers.php:253
#: src/usr/local/www/system_authservers.php:436
#: src/usr/local/www/system_authservers.php:493
-#: src/usr/local/www/system_certmanager.php:723
-#: src/usr/local/www/system_certmanager.php:731
+#: src/usr/local/www/system_certmanager.php:736
+#: src/usr/local/www/system_certmanager.php:744
#: src/usr/local/www/vpn_ipsec_keys.php:101
-#: src/usr/local/www/vpn_ipsec_phase2.php:527
-#: src/usr/local/www/vpn_ipsec_phase2.php:553
-#: src/usr/local/www/vpn_ipsec_phase2.php:573
+#: src/usr/local/www/vpn_ipsec_phase2.php:522
+#: src/usr/local/www/vpn_ipsec_phase2.php:548
+#: src/usr/local/www/vpn_ipsec_phase2.php:568
msgid "Type"
msgstr ""
@@ -10649,12 +10393,12 @@ msgstr ""
msgid "Aliases to import"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:165
+#: src/usr/local/www/firewall_nat.php:167
msgid "Firewall: NAT: Port forward, enable/disable NAT rule"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:173
-#: src/usr/local/www/firewall_nat.php:186
+#: src/usr/local/www/firewall_nat.php:175
+#: src/usr/local/www/firewall_nat.php:188
#: src/usr/local/www/firewall_nat_1to1.php:135
#: src/usr/local/www/firewall_nat_edit.php:621
#: src/usr/local/www/firewall_nat_npt.php:135
@@ -10662,14 +10406,14 @@ msgstr ""
msgid "Port Forward"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:181
+#: src/usr/local/www/firewall_nat.php:183
#: src/usr/local/www/firewall_nat_1to1.php:130
#: src/usr/local/www/firewall_nat_npt.php:130
#: src/usr/local/www/firewall_nat_out.php:214
msgid "The NAT configuration has been changed."
msgstr ""
-#: src/usr/local/www/firewall_nat.php:187
+#: src/usr/local/www/firewall_nat.php:189
#: src/usr/local/www/firewall_nat_1to1.php:122
#: src/usr/local/www/firewall_nat_1to1.php:136
#: src/usr/local/www/firewall_nat_1to1_edit.php:248
@@ -10678,16 +10422,16 @@ msgstr ""
msgid "1:1"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:188
+#: src/usr/local/www/firewall_nat.php:190
#: src/usr/local/www/firewall_nat_1to1.php:137
#: src/usr/local/www/firewall_nat_npt.php:137
#: src/usr/local/www/firewall_nat_out.php:206
#: src/usr/local/www/firewall_nat_out.php:221
-#: src/usr/local/www/firewall_nat_out_edit.php:363
+#: src/usr/local/www/firewall_nat_out_edit.php:378
msgid "Outbound"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:189
+#: src/usr/local/www/firewall_nat.php:191
#: src/usr/local/www/firewall_nat_1to1.php:138
#: src/usr/local/www/firewall_nat_npt.php:122
#: src/usr/local/www/firewall_nat_npt.php:138
@@ -10696,123 +10440,123 @@ msgstr ""
msgid "NPt"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:197
+#: src/usr/local/www/firewall_nat.php:199
#: src/usr/local/www/firewall_rules.php:42
-#: src/usr/local/www/firewall_rules.php:325
-#: src/usr/local/www/firewall_rules_edit.php:1043
-#: src/usr/local/www/head.inc:250
+#: src/usr/local/www/firewall_rules.php:324
+#: src/usr/local/www/firewall_rules_edit.php:1038
+#: src/usr/local/www/head.inc:248
msgid "Rules"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:209
+#: src/usr/local/www/firewall_nat.php:211
msgid "Dest. Address"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:211
+#: src/usr/local/www/firewall_nat.php:213
msgid "NAT IP"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:212
+#: src/usr/local/www/firewall_nat.php:214
msgid "NAT Ports"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:272
+#: src/usr/local/www/firewall_nat.php:274
#: src/usr/local/www/firewall_nat_1to1.php:178
#: src/usr/local/www/firewall_nat_npt.php:179
-#: src/usr/local/www/firewall_rules.php:495 src/usr/local/www/vpn_ipsec.php:275
+#: src/usr/local/www/firewall_rules.php:494 src/usr/local/www/vpn_ipsec.php:275
#: src/usr/local/www/vpn_ipsec.php:425
msgid "click to toggle enabled/disabled status"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:274
+#: src/usr/local/www/firewall_nat.php:276
#: src/usr/local/www/firewall_nat_1to1.php:180
msgid "Negated: This rule excludes NAT from a later rule"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:282
+#: src/usr/local/www/firewall_nat.php:284
msgid "All traffic matching this NAT entry is passed"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:286
+#: src/usr/local/www/firewall_nat.php:288
#, php-format
msgid "Firewall rule ID %s is managed by this rule"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:313
-#: src/usr/local/www/firewall_nat.php:330
-#: src/usr/local/www/firewall_nat.php:348
-#: src/usr/local/www/firewall_nat.php:365
-#: src/usr/local/www/firewall_nat.php:382
-#: src/usr/local/www/firewall_nat.php:400
-#: src/usr/local/www/firewall_rules.php:695
-#: src/usr/local/www/firewall_rules.php:704
-#: src/usr/local/www/firewall_rules.php:713
-#: src/usr/local/www/firewall_rules.php:722
+#: src/usr/local/www/firewall_nat.php:315
+#: src/usr/local/www/firewall_nat.php:332
+#: src/usr/local/www/firewall_nat.php:350
+#: src/usr/local/www/firewall_nat.php:367
+#: src/usr/local/www/firewall_nat.php:384
+#: src/usr/local/www/firewall_nat.php:402
+#: src/usr/local/www/firewall_rules.php:694
+#: src/usr/local/www/firewall_rules.php:703
+#: src/usr/local/www/firewall_rules.php:712
+#: src/usr/local/www/firewall_rules.php:721
msgid "Alias details"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:418
+#: src/usr/local/www/firewall_nat.php:420
msgid "Edit rule"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:419
+#: src/usr/local/www/firewall_nat.php:421
msgid "Add a new NAT based on this one"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:420
+#: src/usr/local/www/firewall_nat.php:422
msgid "Delete rule"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:440
-#: src/usr/local/www/firewall_rules.php:806
+#: src/usr/local/www/firewall_nat.php:442
+#: src/usr/local/www/firewall_rules.php:805
msgid "Add rule to the top of the list"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:444
-#: src/usr/local/www/firewall_rules.php:810
+#: src/usr/local/www/firewall_nat.php:446
+#: src/usr/local/www/firewall_rules.php:809
msgid "Add rule to the end of the list"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:448
-#: src/usr/local/www/firewall_rules.php:814
+#: src/usr/local/www/firewall_nat.php:450
+#: src/usr/local/www/firewall_rules.php:813
msgid "Delete selected rules"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:452
-#: src/usr/local/www/firewall_rules.php:818
+#: src/usr/local/www/firewall_nat.php:454
+#: src/usr/local/www/firewall_rules.php:817
msgid "Save rule order"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:456
-#: src/usr/local/www/firewall_rules.php:822
+#: src/usr/local/www/firewall_nat.php:458
+#: src/usr/local/www/firewall_rules.php:821
msgid "Add separator"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:458
-#: src/usr/local/www/firewall_rules.php:824
+#: src/usr/local/www/firewall_nat.php:460
+#: src/usr/local/www/firewall_rules.php:823
msgid "Separator"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:469
-#: src/usr/local/www/firewall_rules.php:872
+#: src/usr/local/www/firewall_nat.php:471
+#: src/usr/local/www/firewall_rules.php:871
msgid "Enter a description, Save, then drag to final location."
msgstr ""
-#: src/usr/local/www/firewall_nat.php:505
+#: src/usr/local/www/firewall_nat.php:507
msgid ""
"One or more Port Forward rules have been moved but have not yet been saved"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:520
-#: src/usr/local/www/firewall_rules.php:833
+#: src/usr/local/www/firewall_nat.php:522
+#: src/usr/local/www/firewall_rules.php:832
msgid "Legend"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:521
+#: src/usr/local/www/firewall_nat.php:523
#: src/usr/local/www/firewall_nat_edit.php:893
#: src/usr/local/www/firewall_nat_edit.php:928
-#: src/usr/local/www/firewall_rules.php:834
-#: src/usr/local/www/firewall_rules_edit.php:1097
+#: src/usr/local/www/firewall_rules.php:833
+#: src/usr/local/www/firewall_rules_edit.php:1092
#: src/usr/local/www/services_captiveportal_mac.php:62
#: src/usr/local/www/services_captiveportal_mac_edit.php:204
#: src/usr/local/www/status_logs_common.inc:418
@@ -10821,7 +10565,7 @@ msgstr ""
msgid "Pass"
msgstr ""
-#: src/usr/local/www/firewall_nat.php:522
+#: src/usr/local/www/firewall_nat.php:524
msgid "Linked rule"
msgstr ""
@@ -10892,7 +10636,7 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1.php:256
#: src/usr/local/www/firewall_nat_out.php:643
-#: src/usr/local/www/firewall_nat_out_edit.php:549
+#: src/usr/local/www/firewall_nat_out_edit.php:564
#: src/usr/local/www/status_carp.php:173
#: src/usr/local/www/system_gateway_groups_edit.php:287
#: src/usr/local/www/system_gateway_groups_edit.php:307
@@ -10914,7 +10658,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:112
-#: src/usr/local/www/firewall_nat_out_edit.php:145
+#: src/usr/local/www/firewall_nat_out_edit.php:146
#, php-format
msgid ""
"Invalid characters detected (%s). Please remove invalid characters and save "
@@ -10950,15 +10694,15 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:189
#: src/usr/local/www/firewall_nat_edit.php:300
-#: src/usr/local/www/firewall_rules_edit.php:523
+#: src/usr/local/www/firewall_rules_edit.php:518
#, php-format
msgid "%s is not a valid destination IP address or alias."
msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:193
#: src/usr/local/www/firewall_nat_edit.php:306
-#: src/usr/local/www/firewall_nat_out_edit.php:205
-#: src/usr/local/www/firewall_rules_edit.php:526
+#: src/usr/local/www/firewall_nat_out_edit.php:206
+#: src/usr/local/www/firewall_rules_edit.php:521
msgid "A valid destination bit count must be specified."
msgstr ""
@@ -10970,15 +10714,15 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:296
#: src/usr/local/www/firewall_nat_edit.php:518
#: src/usr/local/www/firewall_nat_edit.php:558
-#: src/usr/local/www/firewall_nat_out_edit.php:480
-#: src/usr/local/www/firewall_nat_out_edit.php:504
-#: src/usr/local/www/firewall_rules_edit.php:1289
+#: src/usr/local/www/firewall_nat_out_edit.php:495
+#: src/usr/local/www/firewall_nat_out_edit.php:519
+#: src/usr/local/www/firewall_rules_edit.php:1284
#: src/usr/local/www/firewall_virtual_ip_edit.php:379
#: src/usr/local/www/system_routes.php:243
#: src/usr/local/www/vpn_ipsec_mobile.php:488
-#: src/usr/local/www/vpn_ipsec_phase2.php:526
-#: src/usr/local/www/vpn_ipsec_phase2.php:546
-#: src/usr/local/www/vpn_ipsec_phase2.php:572
+#: src/usr/local/www/vpn_ipsec_phase2.php:521
+#: src/usr/local/www/vpn_ipsec_phase2.php:541
+#: src/usr/local/www/vpn_ipsec_phase2.php:567
msgid "Network"
msgstr ""
@@ -10986,8 +10730,8 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:299
#: src/usr/local/www/firewall_nat_edit.php:521
#: src/usr/local/www/firewall_nat_edit.php:561
-#: src/usr/local/www/firewall_rules_edit.php:1300
-#: src/usr/local/www/guiconfig.inc:218
+#: src/usr/local/www/firewall_rules_edit.php:1295
+#: src/usr/local/www/guiconfig.inc:219
msgid "PPPoE clients"
msgstr ""
@@ -10995,22 +10739,22 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:303
#: src/usr/local/www/firewall_nat_edit.php:525
#: src/usr/local/www/firewall_nat_edit.php:565
-#: src/usr/local/www/firewall_rules_edit.php:1303
-#: src/usr/local/www/guiconfig.inc:219
+#: src/usr/local/www/firewall_rules_edit.php:1298
+#: src/usr/local/www/guiconfig.inc:220
msgid "L2TP clients"
msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:296
#: src/usr/local/www/firewall_nat_edit.php:518
#: src/usr/local/www/firewall_nat_edit.php:558
-#: src/usr/local/www/firewall_rules_edit.php:1288
+#: src/usr/local/www/firewall_rules_edit.php:1283
msgid "Single host or alias"
msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:296
#: src/usr/local/www/firewall_nat_edit.php:558
-#: src/usr/local/www/firewall_nat_out_edit.php:480
-#: src/usr/local/www/firewall_rules_edit.php:1297
+#: src/usr/local/www/firewall_nat_out_edit.php:495
+#: src/usr/local/www/firewall_rules_edit.php:1292
msgid "This Firewall (self)"
msgstr ""
@@ -11034,7 +10778,7 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:656
#: src/usr/local/www/firewall_nat_npt_edit.php:155
#: src/usr/local/www/firewall_rules.php:143
-#: src/usr/local/www/firewall_rules_edit.php:1023
+#: src/usr/local/www/firewall_rules_edit.php:1018
msgid "L2TP VPN"
msgstr ""
@@ -11042,8 +10786,8 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:661
#: src/usr/local/www/firewall_nat_npt_edit.php:161
#: src/usr/local/www/firewall_rules.php:150
-#: src/usr/local/www/firewall_rules_edit.php:1027
-#: src/usr/local/www/head.inc:273 src/usr/local/www/services_pppoe.php:82
+#: src/usr/local/www/firewall_rules_edit.php:1022
+#: src/usr/local/www/head.inc:271 src/usr/local/www/services_pppoe.php:82
#: src/usr/local/www/services_pppoe.php:96
#: src/usr/local/www/services_pppoe_edit.php:280
msgid "PPPoE Server"
@@ -11053,23 +10797,23 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:666
#: src/usr/local/www/firewall_nat_npt_edit.php:167
#: src/usr/local/www/firewall_rules.php:157
-#: src/usr/local/www/firewall_rules_edit.php:1032
-#: src/usr/local/www/head.inc:288 src/usr/local/www/head.inc:304
-#: src/usr/local/www/status_graph.php:54 src/usr/local/www/status_graph.php:234
+#: src/usr/local/www/firewall_rules_edit.php:1027
+#: src/usr/local/www/head.inc:286 src/usr/local/www/head.inc:302
+#: src/usr/local/www/status_graph.php:42 src/usr/local/www/status_graph.php:442
#: src/usr/local/www/status_ipsec.php:456
#: src/usr/local/www/status_ipsec_leases.php:32
#: src/usr/local/www/status_ipsec_sad.php:36
#: src/usr/local/www/status_ipsec_spd.php:39
#: src/usr/local/www/status_logs.php:47
#: src/usr/local/www/status_logs_common.inc:92
-#: src/usr/local/www/status_logs_settings.php:208
+#: src/usr/local/www/status_logs_settings.php:216
#: src/usr/local/www/vpn_ipsec.php:219 src/usr/local/www/vpn_ipsec_keys.php:72
#: src/usr/local/www/vpn_ipsec_keys_edit.php:122
#: src/usr/local/www/vpn_ipsec_mobile.php:306
-#: src/usr/local/www/vpn_ipsec_phase1.php:631
-#: src/usr/local/www/vpn_ipsec_phase1.php:633
-#: src/usr/local/www/vpn_ipsec_phase2.php:408
-#: src/usr/local/www/vpn_ipsec_phase2.php:411
+#: src/usr/local/www/vpn_ipsec_phase1.php:627
+#: src/usr/local/www/vpn_ipsec_phase1.php:629
+#: src/usr/local/www/vpn_ipsec_phase2.php:403
+#: src/usr/local/www/vpn_ipsec_phase2.php:406
#: src/usr/local/www/vpn_ipsec_settings.php:202
#: src/usr/local/www/widgets/include/ipsec.inc:22
msgid "IPsec"
@@ -11077,7 +10821,7 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:413
#: src/usr/local/www/firewall_nat_edit.php:679
-#: src/usr/local/www/firewall_nat_out_edit.php:463
+#: src/usr/local/www/firewall_nat_out_edit.php:478
msgid ""
"Choose which interface this rule applies to. In most cases \"WAN\" is "
"specified."
@@ -11116,15 +10860,15 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:772
#: src/usr/local/www/firewall_nat_out.php:281
#: src/usr/local/www/firewall_nat_out.php:534
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_nat_out_edit.php:498
-#: src/usr/local/www/firewall_rules.php:379
-#: src/usr/local/www/firewall_rules_edit.php:419
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_nat_out_edit.php:513
+#: src/usr/local/www/firewall_rules.php:378
+#: src/usr/local/www/firewall_rules_edit.php:414
#: src/usr/local/www/status_ipsec_sad.php:66
#: src/usr/local/www/status_ipsec_spd.php:59
#: src/usr/local/www/status_logs_filter.php:162
#: src/usr/local/www/status_logs_filter_dynamic.php:393
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:204
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:205
#: src/usr/local/www/widgets/widgets/log.widget.php:105
msgid "Destination"
msgstr ""
@@ -11142,9 +10886,9 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:489
#: src/usr/local/www/firewall_nat_edit.php:886
-#: src/usr/local/www/firewall_rules.php:770
+#: src/usr/local/www/firewall_rules.php:769
#: src/usr/local/www/services_dyndns_edit.php:258
-#: src/usr/local/www/vpn_ipsec_phase1.php:859
+#: src/usr/local/www/vpn_ipsec_phase1.php:855
#: src/usr/local/www/vpn_openvpn_csc.php:328
msgid "Disable"
msgstr ""
@@ -11185,7 +10929,7 @@ msgid "Redirect target IP must be IPv4."
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:264
-#: src/usr/local/www/firewall_rules_edit.php:454
+#: src/usr/local/www/firewall_rules_edit.php:449
#, php-format
msgid ""
"%s is not a valid start source port. It must be a port alias or integer "
@@ -11193,7 +10937,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:267
-#: src/usr/local/www/firewall_rules_edit.php:457
+#: src/usr/local/www/firewall_rules_edit.php:452
#, php-format
msgid ""
"%s is not a valid end source port. It must be a port alias or integer "
@@ -11201,7 +10945,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:270
-#: src/usr/local/www/firewall_rules_edit.php:460
+#: src/usr/local/www/firewall_rules_edit.php:455
#, php-format
msgid ""
"%s is not a valid start destination port. It must be a port alias or integer "
@@ -11209,7 +10953,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:273
-#: src/usr/local/www/firewall_rules_edit.php:463
+#: src/usr/local/www/firewall_rules_edit.php:458
#, php-format
msgid ""
"%s is not a valid end destination port. It must be a port alias or integer "
@@ -11224,7 +10968,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:288
-#: src/usr/local/www/firewall_rules_edit.php:515
+#: src/usr/local/www/firewall_rules_edit.php:510
#, php-format
msgid "%s is not a valid source IP address or alias."
msgstr ""
@@ -11235,8 +10979,8 @@ msgid "Source must be IPv4."
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:294
-#: src/usr/local/www/firewall_nat_out_edit.php:195
-#: src/usr/local/www/firewall_rules_edit.php:518
+#: src/usr/local/www/firewall_nat_out_edit.php:196
+#: src/usr/local/www/firewall_rules_edit.php:513
msgid "A valid source bit count must be specified."
msgstr ""
@@ -11279,44 +11023,43 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:692
#: src/usr/local/www/firewall_nat_edit.php:1178
-#: src/usr/local/www/firewall_rules_edit.php:1333
-#: src/usr/local/www/firewall_rules_edit.php:1413
-#: src/usr/local/www/firewall_rules_edit.php:1732
-#: src/usr/local/www/firewall_rules_edit.php:1804
+#: src/usr/local/www/firewall_rules_edit.php:1401
+#: src/usr/local/www/firewall_rules_edit.php:1720
+#: src/usr/local/www/firewall_rules_edit.php:1792
#: src/usr/local/www/interfaces_bridge_edit.php:416
#: src/usr/local/www/interfaces_bridge_edit.php:661
-#: src/usr/local/www/interfaces_ppps_edit.php:800
-#: src/usr/local/www/interfaces_ppps_edit.php:1015
-#: src/usr/local/www/services_dhcp.php:969
-#: src/usr/local/www/services_dhcp.php:1019
-#: src/usr/local/www/services_dhcp.php:1048
-#: src/usr/local/www/services_dhcp.php:1075
-#: src/usr/local/www/services_dhcp.php:1096
-#: src/usr/local/www/services_dhcp.php:1118
-#: src/usr/local/www/services_dhcp.php:1175
-#: src/usr/local/www/services_dhcp.php:1397
-#: src/usr/local/www/services_dhcp.php:1432
-#: src/usr/local/www/services_dhcp.php:1467
-#: src/usr/local/www/services_dhcp.php:1501
-#: src/usr/local/www/services_dhcp.php:1535
-#: src/usr/local/www/services_dhcp.php:1570
-#: src/usr/local/www/services_dhcp.php:1609
-#: src/usr/local/www/services_dhcp_edit.php:562
-#: src/usr/local/www/services_dhcp_edit.php:610
-#: src/usr/local/www/services_dhcp_edit.php:646
-#: src/usr/local/www/services_dhcp_edit.php:703
-#: src/usr/local/www/services_dhcp_edit.php:738
-#: src/usr/local/www/services_dhcp_edit.php:772
-#: src/usr/local/www/services_dhcpv6.php:727
-#: src/usr/local/www/services_dhcpv6.php:795
-#: src/usr/local/www/services_dhcpv6.php:831
-#: src/usr/local/www/services_dhcpv6.php:852
-#: src/usr/local/www/services_dhcpv6.php:880
-#: src/usr/local/www/services_dhcpv6.php:1074
-#: src/usr/local/www/services_dhcpv6.php:1109
-#: src/usr/local/www/services_dhcpv6.php:1143
-#: src/usr/local/www/services_dhcpv6.php:1178
-#: src/usr/local/www/services_dhcpv6.php:1214
+#: src/usr/local/www/interfaces_ppps_edit.php:822
+#: src/usr/local/www/interfaces_ppps_edit.php:1037
+#: src/usr/local/www/services_dhcp.php:982
+#: src/usr/local/www/services_dhcp.php:1032
+#: src/usr/local/www/services_dhcp.php:1061
+#: src/usr/local/www/services_dhcp.php:1088
+#: src/usr/local/www/services_dhcp.php:1109
+#: src/usr/local/www/services_dhcp.php:1131
+#: src/usr/local/www/services_dhcp.php:1188
+#: src/usr/local/www/services_dhcp.php:1410
+#: src/usr/local/www/services_dhcp.php:1445
+#: src/usr/local/www/services_dhcp.php:1480
+#: src/usr/local/www/services_dhcp.php:1514
+#: src/usr/local/www/services_dhcp.php:1548
+#: src/usr/local/www/services_dhcp.php:1583
+#: src/usr/local/www/services_dhcp.php:1622
+#: src/usr/local/www/services_dhcp_edit.php:569
+#: src/usr/local/www/services_dhcp_edit.php:617
+#: src/usr/local/www/services_dhcp_edit.php:653
+#: src/usr/local/www/services_dhcp_edit.php:710
+#: src/usr/local/www/services_dhcp_edit.php:745
+#: src/usr/local/www/services_dhcp_edit.php:779
+#: src/usr/local/www/services_dhcpv6.php:722
+#: src/usr/local/www/services_dhcpv6.php:790
+#: src/usr/local/www/services_dhcpv6.php:826
+#: src/usr/local/www/services_dhcpv6.php:847
+#: src/usr/local/www/services_dhcpv6.php:875
+#: src/usr/local/www/services_dhcpv6.php:1069
+#: src/usr/local/www/services_dhcpv6.php:1104
+#: src/usr/local/www/services_dhcpv6.php:1138
+#: src/usr/local/www/services_dhcpv6.php:1173
+#: src/usr/local/www/services_dhcpv6.php:1209
#: src/usr/local/www/services_ntpd.php:305
#: src/usr/local/www/services_ntpd.php:341
#: src/usr/local/www/services_ntpd.php:410
@@ -11332,17 +11075,17 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:704
#: src/usr/local/www/firewall_nat_out.php:279
#: src/usr/local/www/firewall_nat_out.php:532
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_nat_out_edit.php:474
-#: src/usr/local/www/firewall_rules.php:377
-#: src/usr/local/www/firewall_rules_edit.php:418
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_nat_out_edit.php:489
+#: src/usr/local/www/firewall_rules.php:376
+#: src/usr/local/www/firewall_rules_edit.php:413
#: src/usr/local/www/status_ipsec_sad.php:65
#: src/usr/local/www/status_ipsec_spd.php:58
#: src/usr/local/www/status_logs_filter.php:161
#: src/usr/local/www/status_logs_filter_dynamic.php:392
#: src/usr/local/www/vpn_ipsec_mobile.php:455
#: src/usr/local/www/vpn_ipsec_mobile.php:465
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:203
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:204
#: src/usr/local/www/widgets/widgets/log.widget.php:104
msgid "Source"
msgstr ""
@@ -11371,10 +11114,10 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:811
#: src/usr/local/www/firewall_nat_edit.php:825
#: src/usr/local/www/firewall_nat_edit.php:858
-#: src/usr/local/www/firewall_rules_edit.php:1361
-#: src/usr/local/www/firewall_rules_edit.php:1375
-#: src/usr/local/www/interfaces.php:2581
-#: src/usr/local/www/interfaces_ppps_edit.php:727
+#: src/usr/local/www/firewall_rules_edit.php:1358
+#: src/usr/local/www/firewall_rules_edit.php:1372
+#: src/usr/local/www/interfaces.php:2589
+#: src/usr/local/www/interfaces_ppps_edit.php:749
#: src/usr/local/www/services_ntpd_gps.php:215
msgid "Custom"
msgstr ""
@@ -11424,8 +11167,8 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:872
-#: src/usr/local/www/firewall_nat_out_edit.php:598
-#: src/usr/local/www/firewall_rules_edit.php:1552
+#: src/usr/local/www/firewall_nat_out_edit.php:620
+#: src/usr/local/www/firewall_rules_edit.php:1540
msgid "No XMLRPC Sync"
msgstr ""
@@ -11476,52 +11219,52 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:939
-#: src/usr/local/www/firewall_nat_out_edit.php:634
-#: src/usr/local/www/firewall_rules_edit.php:1682
+#: src/usr/local/www/firewall_nat_out_edit.php:656
+#: src/usr/local/www/firewall_rules_edit.php:1670
msgid "Rule Information"
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:944
#: src/usr/local/www/firewall_nat_edit.php:951
-#: src/usr/local/www/firewall_nat_out_edit.php:639
-#: src/usr/local/www/firewall_nat_out_edit.php:646
-#: src/usr/local/www/firewall_rules_edit.php:1687
-#: src/usr/local/www/firewall_rules_edit.php:1694
+#: src/usr/local/www/firewall_nat_out_edit.php:661
+#: src/usr/local/www/firewall_nat_out_edit.php:668
+#: src/usr/local/www/firewall_rules_edit.php:1675
+#: src/usr/local/www/firewall_rules_edit.php:1682
msgid " by "
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:943
-#: src/usr/local/www/firewall_nat_out_edit.php:638
-#: src/usr/local/www/firewall_rules_edit.php:1686
+#: src/usr/local/www/firewall_nat_out_edit.php:660
+#: src/usr/local/www/firewall_rules_edit.php:1674
msgid "Created"
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:950
-#: src/usr/local/www/firewall_nat_out_edit.php:645
-#: src/usr/local/www/firewall_rules_edit.php:1693
+#: src/usr/local/www/firewall_nat_out_edit.php:667
+#: src/usr/local/www/firewall_rules_edit.php:1681
msgid "Updated"
msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:1180
-#: src/usr/local/www/firewall_rules_edit.php:1730
-#: src/usr/local/www/firewall_rules_edit.php:1802
+#: src/usr/local/www/firewall_rules_edit.php:1718
+#: src/usr/local/www/firewall_rules_edit.php:1790
#: src/usr/local/www/interfaces_bridge_edit.php:659
-#: src/usr/local/www/interfaces_ppps_edit.php:1013
-#: src/usr/local/www/services_dhcp.php:1395
-#: src/usr/local/www/services_dhcp.php:1430
-#: src/usr/local/www/services_dhcp.php:1465
-#: src/usr/local/www/services_dhcp.php:1499
-#: src/usr/local/www/services_dhcp.php:1533
-#: src/usr/local/www/services_dhcp.php:1568
-#: src/usr/local/www/services_dhcp.php:1607
-#: src/usr/local/www/services_dhcp_edit.php:701
-#: src/usr/local/www/services_dhcp_edit.php:736
-#: src/usr/local/www/services_dhcp_edit.php:770
-#: src/usr/local/www/services_dhcpv6.php:1072
-#: src/usr/local/www/services_dhcpv6.php:1107
-#: src/usr/local/www/services_dhcpv6.php:1141
-#: src/usr/local/www/services_dhcpv6.php:1176
-#: src/usr/local/www/services_dhcpv6.php:1212
+#: src/usr/local/www/interfaces_ppps_edit.php:1035
+#: src/usr/local/www/services_dhcp.php:1408
+#: src/usr/local/www/services_dhcp.php:1443
+#: src/usr/local/www/services_dhcp.php:1478
+#: src/usr/local/www/services_dhcp.php:1512
+#: src/usr/local/www/services_dhcp.php:1546
+#: src/usr/local/www/services_dhcp.php:1581
+#: src/usr/local/www/services_dhcp.php:1620
+#: src/usr/local/www/services_dhcp_edit.php:708
+#: src/usr/local/www/services_dhcp_edit.php:743
+#: src/usr/local/www/services_dhcp_edit.php:777
+#: src/usr/local/www/services_dhcpv6.php:1067
+#: src/usr/local/www/services_dhcpv6.php:1102
+#: src/usr/local/www/services_dhcpv6.php:1136
+#: src/usr/local/www/services_dhcpv6.php:1171
+#: src/usr/local/www/services_dhcpv6.php:1207
#: src/usr/local/www/services_ntpd.php:408
#: src/usr/local/www/services_ntpd.php:445
#: src/usr/local/www/services_ntpd_gps.php:532
@@ -11578,14 +11321,14 @@ msgstr ""
#: src/usr/local/www/firewall_nat_npt_edit.php:213
#: src/usr/local/www/firewall_nat_npt_edit.php:228
-#: src/usr/local/www/firewall_nat_out_edit.php:536
-#: src/usr/local/www/status_lb_vs.php:63 src/usr/local/www/system.php:383
-#: src/usr/local/www/vpn_ipsec_phase2.php:526
-#: src/usr/local/www/vpn_ipsec_phase2.php:533
-#: src/usr/local/www/vpn_ipsec_phase2.php:546
-#: src/usr/local/www/vpn_ipsec_phase2.php:559
-#: src/usr/local/www/vpn_ipsec_phase2.php:572
-#: src/usr/local/www/vpn_ipsec_phase2.php:579
+#: src/usr/local/www/firewall_nat_out_edit.php:551
+#: src/usr/local/www/status_lb_vs.php:63 src/usr/local/www/system.php:390
+#: src/usr/local/www/vpn_ipsec_phase2.php:521
+#: src/usr/local/www/vpn_ipsec_phase2.php:528
+#: src/usr/local/www/vpn_ipsec_phase2.php:541
+#: src/usr/local/www/vpn_ipsec_phase2.php:554
+#: src/usr/local/www/vpn_ipsec_phase2.php:567
+#: src/usr/local/www/vpn_ipsec_phase2.php:574
msgid "Address"
msgstr ""
@@ -11618,8 +11361,7 @@ msgid "Default rules for each interface have been created."
msgstr ""
#: src/usr/local/www/firewall_nat_out.php:227
-#: src/usr/local/www/status_logs_settings.php:219
-msgid "General Logging Options"
+msgid "Outbound NAT Mode"
msgstr ""
#: src/usr/local/www/firewall_nat_out.php:237
@@ -11719,154 +11461,160 @@ msgid ""
"One or more NAT outbound mappings have been moved but have not yet been saved"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_rules_edit.php:434
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_rules_edit.php:429
msgid "Source bit count"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:151
-#: src/usr/local/www/firewall_rules_edit.php:439
+#: src/usr/local/www/firewall_nat_out_edit.php:152
+#: src/usr/local/www/firewall_rules_edit.php:434
msgid "Destination bit count"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:177
+#: src/usr/local/www/firewall_nat_out_edit.php:178
msgid "A valid port or port alias must be supplied for the source port entry."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:181
+#: src/usr/local/www/firewall_nat_out_edit.php:182
msgid ""
"A valid port or port alias must be supplied for the destination port entry."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:185
+#: src/usr/local/www/firewall_nat_out_edit.php:186
msgid "A valid port must be supplied for the NAT port entry."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:190
+#: src/usr/local/www/firewall_nat_out_edit.php:191
msgid "A valid source must be specified."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:200
+#: src/usr/local/www/firewall_nat_out_edit.php:201
msgid "A valid destination must be specified."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:210
+#: src/usr/local/www/firewall_nat_out_edit.php:211
msgid "Negating destination address of \"any\" is invalid."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:215
+#: src/usr/local/www/firewall_nat_out_edit.php:216
msgid "A valid target IP address must be specified."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:220
+#: src/usr/local/www/firewall_nat_out_edit.php:221
msgid "A valid target IP must be specified when using the 'Other Subnet' type."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:224
+#: src/usr/local/www/firewall_nat_out_edit.php:225
msgid ""
"A valid target bit count must be specified when using the 'Other Subnet' "
"type."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:237
+#: src/usr/local/www/firewall_nat_out_edit.php:239
msgid "Only Round Robin pool options may be chosen when selecting an alias."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:370
+#: src/usr/local/www/firewall_nat_out_edit.php:248
+msgid ""
+"Incorrect format for source-hash key, \"0x\" must be followed by exactly 32 "
+"hexadecimal characters."
+msgstr ""
+
+#: src/usr/local/www/firewall_nat_out_edit.php:385
#: src/usr/local/www/system_gateway_groups_edit.php:162
msgid "Interface Address"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:400
+#: src/usr/local/www/firewall_nat_out_edit.php:415
msgid "Host Alias: "
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:403
+#: src/usr/local/www/firewall_nat_out_edit.php:418
msgid "Other Subnet (Enter Below)"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:414
+#: src/usr/local/www/firewall_nat_out_edit.php:429
msgid "Edit Advanced Outbound NAT Entry"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:425
+#: src/usr/local/www/firewall_nat_out_edit.php:440
msgid "Do not NAT"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:428
+#: src/usr/local/www/firewall_nat_out_edit.php:443
msgid "In most cases this option is not required."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:472
+#: src/usr/local/www/firewall_nat_out_edit.php:487
msgid ""
"Choose which protocol this rule should match. In most cases \"any\" is "
"specified."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:487
+#: src/usr/local/www/firewall_nat_out_edit.php:502
msgid "Source network for the outbound NAT mapping."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:511
+#: src/usr/local/www/firewall_nat_out_edit.php:526
msgid "Destination network for the outbound NAT mapping."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:527
+#: src/usr/local/www/firewall_nat_out_edit.php:542
msgid "Invert the sense of the destination match."
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:531
+#: src/usr/local/www/firewall_nat_out_edit.php:546
msgid "Translation"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:543
+#: src/usr/local/www/firewall_nat_out_edit.php:558
msgid "Other subnet"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:546
+#: src/usr/local/www/firewall_nat_out_edit.php:561
msgid ""
"Packets matching this rule will be mapped to the IP address given here.<br /"
">To apply this rule to a different IP address than the IP address of the "
"interface chosen above, select it here (<a href=\"firewall_virtual_ip.php\">"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:557
-#: src/usr/local/www/interfaces.php:1835 src/usr/local/www/interfaces.php:2810
-#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828
-#: src/usr/local/www/interfaces.php:2886 src/usr/local/www/interfaces.php:3141
+#: src/usr/local/www/firewall_nat_out_edit.php:572
+#: src/usr/local/www/interfaces.php:1838 src/usr/local/www/interfaces.php:2818
+#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836
+#: src/usr/local/www/interfaces.php:2894 src/usr/local/www/interfaces.php:3149
#: src/usr/local/www/services_ntpd_gps.php:215
msgid "Default"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:558
+#: src/usr/local/www/firewall_nat_out_edit.php:573
msgid "Round Robin"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:559
+#: src/usr/local/www/firewall_nat_out_edit.php:574
msgid "Round Robin with Sticky Address"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:560
+#: src/usr/local/www/firewall_nat_out_edit.php:575
msgid "Random"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:561
+#: src/usr/local/www/firewall_nat_out_edit.php:576
msgid "Random with Sticky Address"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:562
+#: src/usr/local/www/firewall_nat_out_edit.php:577
msgid "Source hash"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:563
+#: src/usr/local/www/firewall_nat_out_edit.php:578
msgid "Bit mask"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:554
+#: src/usr/local/www/firewall_nat_out_edit.php:569
msgid "Pool options"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:565
+#: src/usr/local/www/firewall_nat_out_edit.php:580
msgid ""
"Only Round Robin types work with Host Aliases. Any type can be used with a "
"Subnet.<br /></span><ul class=\"help-block\"><li>Round Robin: Loops through "
@@ -11881,15 +11629,26 @@ msgid ""
"ul><span class=\"help-block\">"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:582
-msgid "Enter the source port or range for the outbound NAT mapping."
+#: src/usr/local/www/firewall_nat_out_edit.php:591
+msgid "Source Hash Key"
msgstr ""
#: src/usr/local/www/firewall_nat_out_edit.php:594
+msgid ""
+"The key that is fed to the hashing algorithm in hex format, preceeded by \"0x"
+"\", or any string. A non-hex string is hashed using md5 to a hexadecimal "
+"key. Defaults to a randomly generated value."
+msgstr ""
+
+#: src/usr/local/www/firewall_nat_out_edit.php:604
+msgid "Enter the source port or range for the outbound NAT mapping."
+msgstr ""
+
+#: src/usr/local/www/firewall_nat_out_edit.php:616
msgid "Misc"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:602
+#: src/usr/local/www/firewall_nat_out_edit.php:624
msgid ""
"Prevents the rule on Master from automatically syncing to other CARP "
"members. This does NOT prevent the rule from being overwritten on Slave."
@@ -11909,34 +11668,34 @@ msgstr ""
msgid "States details"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:186
+#: src/usr/local/www/firewall_rules.php:182
#, php-format
msgid ""
"The settings have been applied. The firewall rules are now reloading in the "
"background.<br />%s Monitor %s the reload progress."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:312
-#: src/usr/local/www/firewall_rules_edit.php:1046
-#: src/usr/local/www/firewall_rules_edit.php:1202
+#: src/usr/local/www/firewall_rules.php:311
+#: src/usr/local/www/firewall_rules_edit.php:1041
+#: src/usr/local/www/firewall_rules_edit.php:1197
msgid "Floating"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:336
+#: src/usr/local/www/firewall_rules.php:335
msgid "The firewall rule configuration has been changed."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:368
+#: src/usr/local/www/firewall_rules.php:367
msgid "Rules (Drag to Change Order)"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:381
-#: src/usr/local/www/firewall_rules_edit.php:1613
+#: src/usr/local/www/firewall_rules.php:380
+#: src/usr/local/www/firewall_rules_edit.php:1601
#: src/usr/local/www/interfaces.php:527 src/usr/local/www/interfaces.php:578
-#: src/usr/local/www/services_dhcp.php:901
-#: src/usr/local/www/services_dhcp_edit.php:527
-#: src/usr/local/www/status_gateways.php:60 src/usr/local/www/system.php:405
-#: src/usr/local/www/system.php:408
+#: src/usr/local/www/services_dhcp.php:914
+#: src/usr/local/www/services_dhcp_edit.php:534
+#: src/usr/local/www/status_gateways.php:60 src/usr/local/www/system.php:412
+#: src/usr/local/www/system.php:415
#: src/usr/local/www/system_gateway_groups_edit.php:305
#: src/usr/local/www/system_gateways.php:244
#: src/usr/local/www/system_gateways_edit.php:611
@@ -11946,28 +11705,28 @@ msgstr ""
msgid "Gateway"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:382
+#: src/usr/local/www/firewall_rules.php:381
#: src/usr/local/www/status_queues.php:159
msgid "Queue"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:383
-#: src/usr/local/www/firewall_rules_edit.php:1582
+#: src/usr/local/www/firewall_rules.php:382
+#: src/usr/local/www/firewall_rules_edit.php:1570
msgid "Schedule"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:399
-#: src/usr/local/www/firewall_rules.php:490
+#: src/usr/local/www/firewall_rules.php:398
+#: src/usr/local/www/firewall_rules.php:489
msgid "traffic is passed"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:409
+#: src/usr/local/www/firewall_rules.php:408
msgid "Anti-Lockout Rule"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:411
-#: src/usr/local/www/firewall_rules.php:430
-#: src/usr/local/www/firewall_rules.php:449 src/usr/local/www/head.inc:532
+#: src/usr/local/www/firewall_rules.php:410
+#: src/usr/local/www/firewall_rules.php:429
+#: src/usr/local/www/firewall_rules.php:448 src/usr/local/www/head.inc:517
#: src/usr/local/www/load_balancer_monitor.php:95
#: src/usr/local/www/load_balancer_pool.php:109
#: src/usr/local/www/load_balancer_setting.php:86
@@ -11978,235 +11737,235 @@ msgstr ""
#: src/usr/local/www/services_ntpd_acls.php:173
#: src/usr/local/www/services_ntpd_gps.php:196
#: src/usr/local/www/services_ntpd_pps.php:115
-#: src/usr/local/www/services_router_advertisements.php:451
+#: src/usr/local/www/services_router_advertisements.php:446
#: src/usr/local/www/status_logs_common.inc:98
-#: src/usr/local/www/status_logs_settings.php:180
-#: src/usr/local/www/status_logs_settings.php:214
+#: src/usr/local/www/status_logs_settings.php:188
+#: src/usr/local/www/status_logs_settings.php:222
#: src/usr/local/www/system_authservers.php:422
-#: src/usr/local/www/system_groupmanager.php:282
+#: src/usr/local/www/system_groupmanager.php:276
#: src/usr/local/www/system_groupmanager_addprivs.php:133
-#: src/usr/local/www/system_usermanager.php:555
-#: src/usr/local/www/system_usermanager_addprivs.php:134
+#: src/usr/local/www/system_usermanager.php:549
+#: src/usr/local/www/system_usermanager_addprivs.php:131
#: src/usr/local/www/system_usermanager_settings.php:106
#: src/usr/local/www/system_usermanager_settings.php:167
#: src/usr/local/www/system_usermanager_settings.php:178
msgid "Settings"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:418
-#: src/usr/local/www/firewall_rules.php:437
-#: src/usr/local/www/firewall_rules.php:481
+#: src/usr/local/www/firewall_rules.php:417
+#: src/usr/local/www/firewall_rules.php:436
+#: src/usr/local/www/firewall_rules.php:480
msgid "traffic is blocked"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:421
+#: src/usr/local/www/firewall_rules.php:420
msgid "RFC 1918 networks"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:428
+#: src/usr/local/www/firewall_rules.php:427
msgid "Block private networks"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:440
+#: src/usr/local/www/firewall_rules.php:439
#, php-format
msgid "Reserved%sNot assigned by IANA"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:447
-#: src/usr/local/www/interfaces.php:3102
+#: src/usr/local/www/firewall_rules.php:446
+#: src/usr/local/www/interfaces.php:3110
msgid "Block bogon networks"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:484
+#: src/usr/local/www/firewall_rules.php:483
msgid "traffic is rejected"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:487
+#: src/usr/local/www/firewall_rules.php:486
msgid "traffic is matched"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:499
-#: src/usr/local/www/firewall_rules.php:840
+#: src/usr/local/www/firewall_rules.php:498
+#: src/usr/local/www/firewall_rules.php:839
msgid "&quot;Quick&quot; rule. Applied immediately on match."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:504
+#: src/usr/local/www/firewall_rules.php:503
msgid "advanced setting"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:508
+#: src/usr/local/www/firewall_rules.php:507
msgid "traffic is logged"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
#: src/usr/local/www/firewall_schedule_edit.php:255
msgid "Mon"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
msgid "Tues"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
#: src/usr/local/www/firewall_schedule_edit.php:257
msgid "Wed"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
msgid "Thur"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
#: src/usr/local/www/firewall_schedule_edit.php:259
msgid "Fri"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
#: src/usr/local/www/firewall_schedule_edit.php:260
msgid "Sat"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:527
+#: src/usr/local/www/firewall_rules.php:526
#: src/usr/local/www/firewall_schedule.php:35
#: src/usr/local/www/firewall_schedule_edit.php:56
#: src/usr/local/www/firewall_schedule_edit.php:261
msgid "Sun"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "January"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "February"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "March"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "April"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "May"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "June"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "July"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "August"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "September"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "October"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "November"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:528
+#: src/usr/local/www/firewall_rules.php:527
#: src/usr/local/www/firewall_schedule.php:36
#: src/usr/local/www/firewall_schedule_edit.php:57
msgid "December"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:641
+#: src/usr/local/www/firewall_rules.php:640
msgid "Traffic matching this rule is currently being denied"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:645
+#: src/usr/local/www/firewall_rules.php:644
msgid "Traffic matching this rule is currently being allowed"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:654
+#: src/usr/local/www/firewall_rules.php:653
msgid "This rule is not currently active because its period has expired"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:683
-#: src/usr/local/www/firewall_rules_edit.php:1244
+#: src/usr/local/www/firewall_rules.php:682
+#: src/usr/local/www/firewall_rules_edit.php:1239
msgid "ICMP type"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:764
+#: src/usr/local/www/firewall_rules.php:763
msgid "Copy"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:773
+#: src/usr/local/www/firewall_rules.php:772
msgid "Delete this rule"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:795
+#: src/usr/local/www/firewall_rules.php:794
msgid "No floating rules are currently defined."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:797
+#: src/usr/local/www/firewall_rules.php:796
msgid "No rules are currently defined for this interface"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:798
+#: src/usr/local/www/firewall_rules.php:797
msgid ""
"All incoming connections on this interface will be blocked until pass rules "
"are added."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:800
+#: src/usr/local/www/firewall_rules.php:799
msgid "Click the button to add a new rule."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:835
-#: src/usr/local/www/firewall_rules_edit.php:1103
+#: src/usr/local/www/firewall_rules.php:834
+#: src/usr/local/www/firewall_rules_edit.php:1098
msgid "Match"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:836
-#: src/usr/local/www/firewall_rules_edit.php:1098
+#: src/usr/local/www/firewall_rules.php:835
+#: src/usr/local/www/firewall_rules_edit.php:1093
#: src/usr/local/www/services_captiveportal_mac.php:63
#: src/usr/local/www/services_captiveportal_mac_edit.php:204
#: src/usr/local/www/status_logs_common.inc:459
@@ -12215,36 +11974,36 @@ msgstr ""
msgid "Block"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:837
-#: src/usr/local/www/firewall_rules_edit.php:1099
+#: src/usr/local/www/firewall_rules.php:836
+#: src/usr/local/www/firewall_rules_edit.php:1094
#: src/usr/local/www/widgets/widgets/log.widget.php:232
msgid "Reject"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:838
-#: src/usr/local/www/firewall_rules_edit.php:1396
+#: src/usr/local/www/firewall_rules.php:837
+#: src/usr/local/www/firewall_rules_edit.php:1384
#: src/usr/local/www/status_logs_common.inc:783
msgid "Log"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:839
+#: src/usr/local/www/firewall_rules.php:838
msgid "Advanced filter"
msgstr ""
-#: src/usr/local/www/firewall_rules.php:845
+#: src/usr/local/www/firewall_rules.php:844
msgid ""
"Rules are evaluated on a first-match basis (i.e. the action of the first "
"rule to match a packet will be executed). "
msgstr ""
-#: src/usr/local/www/firewall_rules.php:847
+#: src/usr/local/www/firewall_rules.php:846
msgid ""
"This means that if block rules are used, it is important to pay attention to "
"the rule order. Everything that isn't explicitly passed is blocked by "
"default. "
msgstr ""
-#: src/usr/local/www/firewall_rules.php:851
+#: src/usr/local/www/firewall_rules.php:850
msgid ""
"Floating rules are evaluated on a first-match basis (i.e. the action of the "
"first rule to match a packet will be executed) only if the 'quick' option is "
@@ -12253,296 +12012,297 @@ msgid ""
"matches, the per-interface or default rules are used. "
msgstr ""
-#: src/usr/local/www/firewall_rules.php:858
+#: src/usr/local/www/firewall_rules.php:857
#, php-format
msgid ""
"%sClick the anchor icon %s to move checked rules before the clicked row. "
"Hold down the shift key and click to move the rules after the clicked row."
msgstr ""
-#: src/usr/local/www/firewall_rules.php:973
+#: src/usr/local/www/firewall_rules.php:972
msgid "One or more rules have been moved but have not yet been saved"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:314
-#: src/usr/local/www/firewall_rules_edit.php:328
-msgid "A gateway can not be assigned to a rule that applies to IPv4 and IPv6"
+#: src/usr/local/www/firewall_rules_edit.php:310
+#: src/usr/local/www/firewall_rules_edit.php:322
+msgid ""
+"Gateways can not be assigned in a rule that applies to both IPv4 and IPv6."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:317
-msgid ""
-"An IPv4 gateway group can not be assigned on an IPv6 Address Family rule"
+#: src/usr/local/www/firewall_rules_edit.php:312
+msgid "An IPv4 gateway group can not be assigned in IPv6 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:320
-msgid ""
-"An IPv6 gateway group can not be assigned on an IPv4 Address Family rule"
+#: src/usr/local/www/firewall_rules_edit.php:314
+msgid "An IPv6 gateway group can not be assigned in IPv4 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:331
-msgid "An IPv4 Gateway can not be assigned to an IPv6 Filter rule"
+#: src/usr/local/www/firewall_rules_edit.php:325
+msgid "An IPv4 gateway can not be assigned in IPv6 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:334
-msgid "An IPv6 Gateway can not be assigned to an IPv4 Filter rule"
+#: src/usr/local/www/firewall_rules_edit.php:328
+msgid "An IPv6 gateway can not be assigned in IPv4 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:339
+#: src/usr/local/www/firewall_rules_edit.php:334
msgid ""
"An ICMP type can not be assigned to a rule that applies to IPv4 and IPv6"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:424
+#: src/usr/local/www/firewall_rules_edit.php:419
#, php-format
msgid "%s is only valid with protocol TCP."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:427
+#: src/usr/local/www/firewall_rules_edit.php:422
#, php-format
msgid "%s is only valid if the gateway is set to 'default'."
msgstr ""
+#: src/usr/local/www/firewall_rules_edit.php:499
#: src/usr/local/www/firewall_rules_edit.php:504
-#: src/usr/local/www/firewall_rules_edit.php:509
msgid "Alias entries must be a single host or alias."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:531
-#, php-format
+#: src/usr/local/www/firewall_rules_edit.php:526
msgid ""
-"The Source IP address %s Address Family differs from the destination %s."
+"The source and destination IP addresses must have the same family (IPv4 / "
+"IPv6)."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:535
+#: src/usr/local/www/firewall_rules_edit.php:530
msgid "IPv6 addresses cannot be used in IPv4 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:538
+#: src/usr/local/www/firewall_rules_edit.php:533
msgid "IPv4 addresses can not be used in IPv6 rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:542
-msgid "An IPv4 or IPv6 address can not be used in combined IPv4 + IPv6 rules."
+#: src/usr/local/www/firewall_rules_edit.php:537
+msgid ""
+"IPv4 and IPv6 addresses can not be used in rules that apply to both IPv4 and "
+"IPv6."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:559
+#: src/usr/local/www/firewall_rules_edit.php:554
msgid "OS detection is only valid with protocol TCP."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:562
+#: src/usr/local/www/firewall_rules_edit.php:557
msgid "Invalid OS detection selection. Please select a valid OS."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:568
+#: src/usr/local/www/firewall_rules_edit.php:563
msgid "A queue must be selected when an acknowledge queue is also selected."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:570
+#: src/usr/local/www/firewall_rules_edit.php:565
msgid "Acknowledge queue and Queue cannot be the same."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:574
+#: src/usr/local/www/firewall_rules_edit.php:569
msgid ""
"Limiters can not be used in Floating rules without choosing a direction."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:577
+#: src/usr/local/www/firewall_rules_edit.php:572
msgid ""
"Gateways can not be used in Floating rules without choosing a direction."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:581
+#: src/usr/local/www/firewall_rules_edit.php:576
msgid ""
"A queue must be selected for the In direction before selecting one for Out "
"too."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:583
+#: src/usr/local/www/firewall_rules_edit.php:578
msgid "In and Out Queue cannot be the same."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:585
-#: src/usr/local/www/firewall_rules_edit.php:587
+#: src/usr/local/www/firewall_rules_edit.php:580
+#: src/usr/local/www/firewall_rules_edit.php:582
msgid ""
"A queue and a virtual interface cannot be selected for IN and Out. Both must "
"be from the same type."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:590
+#: src/usr/local/www/firewall_rules_edit.php:585
msgid ""
"Please select a gateway, normally the interface selected gateway, so the "
"limiters work correctly"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:594
+#: src/usr/local/www/firewall_rules_edit.php:589
msgid "ID must be an integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:599
+#: src/usr/local/www/firewall_rules_edit.php:594
msgid ""
"The maximum number of established connections per host (advanced option) can "
"only be specified for TCP protocol."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:602
+#: src/usr/local/www/firewall_rules_edit.php:597
msgid ""
"The maximum new connections per host / per second(s) (advanced option) can "
"only be specified for TCP protocol."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:605
+#: src/usr/local/www/firewall_rules_edit.php:600
msgid ""
"The state timeout (advanced option) can only be specified for TCP protocol."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:611
+#: src/usr/local/www/firewall_rules_edit.php:606
msgid ""
"The maximum state entries (advanced option) can only be specified for Pass "
"type rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:614
+#: src/usr/local/www/firewall_rules_edit.php:609
msgid ""
"The maximum number of unique source hosts (advanced option) can only be "
"specified for Pass type rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:617
+#: src/usr/local/www/firewall_rules_edit.php:612
msgid ""
"The maximum number of established connections per host (advanced option) can "
"only be specified for Pass type rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:620
+#: src/usr/local/www/firewall_rules_edit.php:615
msgid ""
"The maximum state entries per host (advanced option) can only be specified "
"for Pass type rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:623
+#: src/usr/local/www/firewall_rules_edit.php:618
msgid ""
"The maximum new connections per host / per second(s) (advanced option) can "
"only be specified for Pass type rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:626
+#: src/usr/local/www/firewall_rules_edit.php:621
msgid ""
"The state timeout (advanced option) can only be specified for Pass type "
"rules."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:632
+#: src/usr/local/www/firewall_rules_edit.php:627
msgid ""
"The maximum state entries (advanced option) cannot be specified if statetype "
"is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:635
+#: src/usr/local/www/firewall_rules_edit.php:630
msgid ""
"The maximum number of unique source hosts (advanced option) cannot be "
"specified if statetype is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:638
+#: src/usr/local/www/firewall_rules_edit.php:633
msgid ""
"The maximum number of established connections per host (advanced option) "
"cannot be specified if statetype is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:641
+#: src/usr/local/www/firewall_rules_edit.php:636
msgid ""
"The maximum state entries per host (advanced option) cannot be specified if "
"statetype is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:644
+#: src/usr/local/www/firewall_rules_edit.php:639
msgid ""
"The maximum new connections per host / per second(s) (advanced option) "
"cannot be specified if statetype is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:647
+#: src/usr/local/www/firewall_rules_edit.php:642
msgid ""
"The state timeout (advanced option) cannot be specified if statetype is none."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:652
+#: src/usr/local/www/firewall_rules_edit.php:647
msgid "Maximum state entries (advanced option) must be a positive integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:656
+#: src/usr/local/www/firewall_rules_edit.php:651
msgid ""
"Maximum number of unique source hosts (advanced option) must be a positive "
"integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:660
+#: src/usr/local/www/firewall_rules_edit.php:655
msgid ""
"Maximum number of established connections per host (advanced option) must be "
"a positive integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:664
+#: src/usr/local/www/firewall_rules_edit.php:659
msgid ""
"Maximum state entries per host (advanced option) must be a positive integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:668
+#: src/usr/local/www/firewall_rules_edit.php:663
msgid ""
"Maximum new connections per host / per second(s) (advanced option) must be a "
"positive integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:672
+#: src/usr/local/www/firewall_rules_edit.php:667
msgid "State timeout (advanced option) must be a positive integer"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:677
+#: src/usr/local/www/firewall_rules_edit.php:672
msgid ""
"Both maximum new connections per host and the interval (per second(s)) must "
"be specified"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:692
+#: src/usr/local/www/firewall_rules_edit.php:687
msgid ""
"If TCP flags that should be set is specified, then out of which flags should "
"be specified as well."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:969
+#: src/usr/local/www/firewall_rules_edit.php:964
msgid "set"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:970
+#: src/usr/local/www/firewall_rules_edit.php:965
msgid "out of"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:997
+#: src/usr/local/www/firewall_rules_edit.php:992
msgid " Any flags."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1059
+#: src/usr/local/www/firewall_rules_edit.php:1054
msgid "Edit Firewall Rule"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1064
+#: src/usr/local/www/firewall_rules_edit.php:1059
#: src/usr/local/www/status_ipsec_leases.php:54
msgid "ID"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1073
+#: src/usr/local/www/firewall_rules_edit.php:1068
msgid "Tracker"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1081
+#: src/usr/local/www/firewall_rules_edit.php:1076
msgid "After"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1088
+#: src/usr/local/www/firewall_rules_edit.php:1083
msgid "Ruleid"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1108
+#: src/usr/local/www/firewall_rules_edit.php:1103
#: src/usr/local/www/services_captiveportal_mac.php:176
#: src/usr/local/www/services_captiveportal_mac_edit.php:99
#: src/usr/local/www/services_captiveportal_mac_edit.php:202
@@ -12553,13 +12313,13 @@ msgstr ""
#: src/usr/local/www/status_logs_filter_dynamic.php:389
#: src/usr/local/www/status_logs_vpn.php:138
#: src/usr/local/www/status_logs_vpn.php:365
-#: src/usr/local/www/system_groupmanager.php:238
-#: src/usr/local/www/system_usermanager.php:446
+#: src/usr/local/www/system_groupmanager.php:232
+#: src/usr/local/www/system_usermanager.php:440
#: src/usr/local/www/widgets/widgets/services_status.widget.php:76
msgid "Action"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1111
+#: src/usr/local/www/firewall_rules_edit.php:1106
msgid ""
"Choose what to do with packets that match the criteria specified below.<br/"
">Hint: the difference between block and reject is that with reject, a packet "
@@ -12568,143 +12328,136 @@ msgid ""
"original packet is discarded."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1122
+#: src/usr/local/www/firewall_rules_edit.php:1117
msgid "Set this option to disable this rule without removing it from the list."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1128
+#: src/usr/local/www/firewall_rules_edit.php:1123
msgid "Quick"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1131
+#: src/usr/local/www/firewall_rules_edit.php:1126
msgid ""
"Set this option to apply this action to traffic that matches this rule "
"immediately."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1141
+#: src/usr/local/www/firewall_rules_edit.php:1136
msgid "View the NAT rule"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1146
+#: src/usr/local/www/firewall_rules_edit.php:1141
msgid "Associated filter rule"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1178
+#: src/usr/local/www/firewall_rules_edit.php:1173
msgid "Choose the interface(s) for this rule."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1185
+#: src/usr/local/www/firewall_rules_edit.php:1180
msgid "Choose the interface from which packets must come to match this rule."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1195
+#: src/usr/local/www/firewall_rules_edit.php:1190
msgid "in"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1196
+#: src/usr/local/www/firewall_rules_edit.php:1191
msgid "out"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1191
+#: src/usr/local/www/firewall_rules_edit.php:1186
#: src/usr/local/www/services_captiveportal_hostname_edit.php:176
#: src/usr/local/www/services_captiveportal_ip_edit.php:233
#: src/usr/local/www/status_ipsec_spd.php:60
msgid "Direction"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1217
+#: src/usr/local/www/firewall_rules_edit.php:1212
msgid "Select the Internet Protocol version this rule applies to."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1240
+#: src/usr/local/www/firewall_rules_edit.php:1235
msgid "Choose which IP protocol this rule should match."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1247
-#: src/usr/local/www/firewall_rules_edit.php:1254
+#: src/usr/local/www/firewall_rules_edit.php:1242
+#: src/usr/local/www/firewall_rules_edit.php:1249
msgid ""
"If ICMP is selected for the protocol above, an ICMP type may be specified "
"here."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1251
+#: src/usr/local/www/firewall_rules_edit.php:1246
msgid "ICMPv6 type"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1266
+#: src/usr/local/www/firewall_rules_edit.php:1261
msgid " not"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1293
+#: src/usr/local/www/firewall_rules_edit.php:1288
msgid "This firewall (self)"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1317
+#: src/usr/local/www/firewall_rules_edit.php:1312
msgid " Type"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1324
+#: src/usr/local/www/firewall_rules_edit.php:1319
msgid " Address"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1339
+#: src/usr/local/www/firewall_rules_edit.php:1332
+msgid ""
+"The source port (or port range) is usually random and almost never equal to "
+"the destination port range. It is not usually required, and should usually "
+"be left at its default value, <b>any</b>)."
+msgstr ""
+
+#: src/usr/local/www/firewall_rules_edit.php:1337
msgid "(other)"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1345
+#: src/usr/local/www/firewall_rules_edit.php:1342
msgid " port range"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1351
+#: src/usr/local/www/firewall_rules_edit.php:1348
msgid " port begin"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1354
+#: src/usr/local/www/firewall_rules_edit.php:1351
#: src/usr/local/www/services_captiveportal_hostname_edit.php:154
#: src/usr/local/www/services_captiveportal_ip_edit.php:198
-#: src/usr/local/www/services_dhcp.php:835
-#: src/usr/local/www/services_dhcpv6.php:613
-#: src/usr/local/www/services_dhcpv6.php:638
+#: src/usr/local/www/services_dhcp.php:848
+#: src/usr/local/www/services_dhcpv6.php:608
+#: src/usr/local/www/services_dhcpv6.php:633
#: src/usr/local/www/system_gateways_edit.php:707
#: src/usr/local/www/system_gateways_edit.php:727
msgid "From"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1365
+#: src/usr/local/www/firewall_rules_edit.php:1362
msgid " port end"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1368
+#: src/usr/local/www/firewall_rules_edit.php:1365
#: src/usr/local/www/services_captiveportal_hostname_edit.php:154
#: src/usr/local/www/services_captiveportal_ip_edit.php:198
-#: src/usr/local/www/services_dhcp.php:841
-#: src/usr/local/www/services_dhcpv6.php:622
-#: src/usr/local/www/services_dhcpv6.php:647
+#: src/usr/local/www/services_dhcp.php:854
+#: src/usr/local/www/services_dhcpv6.php:617
+#: src/usr/local/www/services_dhcpv6.php:642
#: src/usr/local/www/system_gateways_edit.php:714
#: src/usr/local/www/system_gateways_edit.php:734
msgid "To"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1379
-msgid ""
-"Specify the source port or port range for this rule. This is usually random "
-"and almost never equal to the destination port range (and should usually be "
-"<b>any</b>). The \"To\" field may be left empty if only filtering a single "
-"port."
-msgstr ""
-
-#: src/usr/local/www/firewall_rules_edit.php:1384
-msgid ""
-"Specify the destination port or port range for this rule. The \"To\" field "
-"may be left empty if only filtering a single port."
-msgstr ""
-
-#: src/usr/local/www/firewall_rules_edit.php:1393
+#: src/usr/local/www/firewall_rules_edit.php:1381
msgid "Extra Options"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1399
+#: src/usr/local/www/firewall_rules_edit.php:1387
msgid ""
"Hint: the firewall has limited local log space. Don't turn on logging for "
"everything. If doing a lot of logging, consider using a remote syslog server "
@@ -12712,189 +12465,189 @@ msgid ""
"a> page)."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1409
+#: src/usr/local/www/firewall_rules_edit.php:1397
#: src/usr/local/www/services_unbound_acls.php:239
msgid "A description may be entered here for administrative reference."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1432
+#: src/usr/local/www/firewall_rules_edit.php:1420
msgid "Source OS"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1435
+#: src/usr/local/www/firewall_rules_edit.php:1423
msgid ""
"Note: this only works for TCP rules. General OS choice matches all subtypes."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1439
+#: src/usr/local/www/firewall_rules_edit.php:1427
msgid "Diffserv Code Point"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1446
+#: src/usr/local/www/firewall_rules_edit.php:1434
msgid "Allow IP options"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1454
+#: src/usr/local/www/firewall_rules_edit.php:1442
#: src/usr/local/www/system_advanced_firewall.php:519
msgid "Disable reply-to"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1461
+#: src/usr/local/www/firewall_rules_edit.php:1449
#: src/usr/local/www/interfaces_qinq.php:110
msgid "Tag"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1464
+#: src/usr/local/www/firewall_rules_edit.php:1452
msgid ""
"A packet matching this rule can be marked and this mark used to match on "
"other NAT/filter rules. It is called <b>Policy filtering</b>."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1469
+#: src/usr/local/www/firewall_rules_edit.php:1457
msgid "Tagged"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1472
+#: src/usr/local/www/firewall_rules_edit.php:1460
msgid "A packet can be matched on a mark placed before on another rule."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1476
+#: src/usr/local/www/firewall_rules_edit.php:1464
msgid "Max. states"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1479
+#: src/usr/local/www/firewall_rules_edit.php:1467
msgid "Maximum state entries this rule can create."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1483
+#: src/usr/local/www/firewall_rules_edit.php:1471
msgid "Max. src nodes"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1486
+#: src/usr/local/www/firewall_rules_edit.php:1474
msgid "Maximum number of unique source hosts."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1490
+#: src/usr/local/www/firewall_rules_edit.php:1478
msgid "Max. connections"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1493
+#: src/usr/local/www/firewall_rules_edit.php:1481
msgid "Maximum number of established connections per host (TCP only)."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1497
+#: src/usr/local/www/firewall_rules_edit.php:1485
msgid "Max. src. states"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1500
+#: src/usr/local/www/firewall_rules_edit.php:1488
msgid "Maximum state entries per host."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1504
+#: src/usr/local/www/firewall_rules_edit.php:1492
msgid "Max. src. conn. Rate"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1507
+#: src/usr/local/www/firewall_rules_edit.php:1495
msgid "Maximum new connections per host (TCP only)."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1511
+#: src/usr/local/www/firewall_rules_edit.php:1499
msgid "Max. src. conn. Rates"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1515
+#: src/usr/local/www/firewall_rules_edit.php:1503
msgid "/ per how many second(s) (TCP only)"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1519
+#: src/usr/local/www/firewall_rules_edit.php:1507
msgid "State timeout"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1523
+#: src/usr/local/www/firewall_rules_edit.php:1511
msgid "State Timeout in seconds (TCP only)"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1526
+#: src/usr/local/www/firewall_rules_edit.php:1514
#: src/usr/local/www/status_logs_filter.php:331
#: src/usr/local/www/status_logs_filter_dynamic.php:477
msgid "TCP Flags"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1528
+#: src/usr/local/www/firewall_rules_edit.php:1516
msgid ""
"Use this to choose TCP flags that must be set or cleared for this rule to "
"match."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1532
+#: src/usr/local/www/firewall_rules_edit.php:1520
msgid "No pfSync"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1542
+#: src/usr/local/www/firewall_rules_edit.php:1530
msgid "Keep"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1543
+#: src/usr/local/www/firewall_rules_edit.php:1531
msgid "Sloppy"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1544
+#: src/usr/local/www/firewall_rules_edit.php:1532
msgid "Synproxy"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1539
+#: src/usr/local/www/firewall_rules_edit.php:1527
msgid "State type"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1547
+#: src/usr/local/www/firewall_rules_edit.php:1535
msgid ""
"Select which type of state tracking mechanism to use. If in doubt, use keep "
"state.<br /><span></span>"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1555
+#: src/usr/local/www/firewall_rules_edit.php:1543
msgid "This does NOT prevent the rule from being overwritten on Slave."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1561
+#: src/usr/local/www/firewall_rules_edit.php:1549
msgid "VLAN Prio"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1564
+#: src/usr/local/www/firewall_rules_edit.php:1552
msgid "Choose 802.1p priority to match on."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1568
+#: src/usr/local/www/firewall_rules_edit.php:1556
msgid "VLAN Prio Set"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1571
+#: src/usr/local/www/firewall_rules_edit.php:1559
msgid "Choose 802.1p priority to apply."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1585
+#: src/usr/local/www/firewall_rules_edit.php:1573
msgid "Leave as 'none' to leave the rule enabled all the time."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1616
+#: src/usr/local/www/firewall_rules_edit.php:1604
msgid ""
"Leave as 'default' to use the system routing table. Or choose a gateway to "
"utilize policy based routing."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1619
+#: src/usr/local/www/firewall_rules_edit.php:1607
msgid "In / Out pipe"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1623
+#: src/usr/local/www/firewall_rules_edit.php:1611
msgid "DNpipe"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1630
+#: src/usr/local/www/firewall_rules_edit.php:1618
msgid "PDNpipe"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1635
+#: src/usr/local/www/firewall_rules_edit.php:1623
msgid ""
"Choose the Out queue/Virtual interface only if In is also selected. The Out "
"selection is applied to traffic leaving the interface where the rule is "
@@ -12904,23 +12657,23 @@ msgid ""
"is for incoming and In is for outgoing."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1643
+#: src/usr/local/www/firewall_rules_edit.php:1631
msgid "Ackqueue / Queue"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1660
+#: src/usr/local/www/firewall_rules_edit.php:1648
msgid "Ackqueue"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1672
+#: src/usr/local/www/firewall_rules_edit.php:1660
msgid "Choose the Acknowledge Queue only if there is a selected Queue."
msgstr ""
#: src/usr/local/www/firewall_schedule.php:42
#: src/usr/local/www/firewall_schedule.php:87
#: src/usr/local/www/firewall_schedule_edit.php:52
-#: src/usr/local/www/head.inc:251
-#: src/usr/local/www/system_advanced_misc.php:463
+#: src/usr/local/www/head.inc:249
+#: src/usr/local/www/system_advanced_misc.php:462
msgid "Schedules"
msgstr ""
@@ -13147,7 +12900,7 @@ msgstr ""
#: src/usr/local/www/firewall_shaper_wizards.php:80
#: src/usr/local/www/vpn_openvpn_client.php:417
#: src/usr/local/www/vpn_openvpn_csc.php:299
-#: src/usr/local/www/vpn_openvpn_server.php:584
+#: src/usr/local/www/vpn_openvpn_server.php:588
msgid "Wizards"
msgstr ""
@@ -13212,7 +12965,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/firewall_virtual_ip.php:103
-#: src/usr/local/www/license.php:119
+#: src/usr/local/www/license.php:111
msgid "server"
msgstr ""
@@ -13264,7 +13017,7 @@ msgstr ""
#: src/usr/local/www/firewall_virtual_ip.php:238
#: src/usr/local/www/firewall_virtual_ip_edit.php:296
-#: src/usr/local/www/head.inc:253
+#: src/usr/local/www/head.inc:251
msgid "Virtual IPs"
msgstr ""
@@ -13518,123 +13271,123 @@ msgstr ""
msgid "Cannot get CPU load"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:127
+#: src/usr/local/www/guiconfig.inc:128
msgid "One Level"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:128
+#: src/usr/local/www/guiconfig.inc:129
msgid "Entire Subtree"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:155
+#: src/usr/local/www/guiconfig.inc:156
msgid "Authentication and Accounting"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:157
+#: src/usr/local/www/guiconfig.inc:158
#: src/usr/local/www/services_captiveportal.php:877
#: src/usr/local/www/vpn_l2tp.php:289
msgid "Accounting"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:217
+#: src/usr/local/www/guiconfig.inc:218
msgid "This Firewall"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:228
+#: src/usr/local/www/guiconfig.inc:229
msgid "autoselect"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:229
+#: src/usr/local/www/guiconfig.inc:230
msgid "100BASE-TX full-duplex"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:230
+#: src/usr/local/www/guiconfig.inc:231
msgid "100BASE-TX half-duplex"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:231
+#: src/usr/local/www/guiconfig.inc:232
msgid "10BASE-T full-duplex"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:232
+#: src/usr/local/www/guiconfig.inc:233
msgid "10BASE-T half-duplex"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:235 src/usr/local/www/interfaces.php:2901
+#: src/usr/local/www/guiconfig.inc:236 src/usr/local/www/interfaces.php:2909
#: src/usr/local/www/interfaces_wireless_edit.php:190
msgid "Infrastructure (BSS)"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:236 src/usr/local/www/interfaces.php:2901
+#: src/usr/local/www/guiconfig.inc:237 src/usr/local/www/interfaces.php:2909
#: src/usr/local/www/interfaces_wireless_edit.php:191
msgid "Ad-hoc (IBSS)"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:237 src/usr/local/www/interfaces.php:2901
+#: src/usr/local/www/guiconfig.inc:238 src/usr/local/www/interfaces.php:2909
#: src/usr/local/www/interfaces_wireless_edit.php:192
msgid "Access Point"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:244
+#: src/usr/local/www/guiconfig.inc:245
#, php-format
msgid "The field %s contains invalid characters."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:250
+#: src/usr/local/www/guiconfig.inc:251
#, php-format
msgid "The field %s is required."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:257
+#: src/usr/local/www/guiconfig.inc:258
msgid "The following input errors were detected:"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:314
+#: src/usr/local/www/guiconfig.inc:315
msgid "Apply Changes"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:347
+#: src/usr/local/www/guiconfig.inc:348
#: src/usr/local/www/status_logs_common.inc:720
msgid "The changes have been applied successfully."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:354
+#: src/usr/local/www/guiconfig.inc:355
msgid ""
"<a href=\"status_filter_reload.php\">Monitor</a> the filter reload progress."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:535 src/usr/local/www/guiconfig.inc:586
+#: src/usr/local/www/guiconfig.inc:536 src/usr/local/www/guiconfig.inc:587
#, php-format
msgid "File %s is a directory."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:537 src/usr/local/www/guiconfig.inc:588
+#: src/usr/local/www/guiconfig.inc:538 src/usr/local/www/guiconfig.inc:589
msgid "Log file started."
msgstr ""
-#: src/usr/local/www/guiconfig.inc:975
+#: src/usr/local/www/guiconfig.inc:976
msgid "Currently viewing: "
msgstr ""
-#: src/usr/local/www/guiconfig.inc:1062
+#: src/usr/local/www/guiconfig.inc:1063
msgid "listing only first 10k items"
msgstr ""
-#: src/usr/local/www/guiconfig.inc:1072
-#: src/usr/local/www/services_dhcp.php:1241
-#: src/usr/local/www/services_dhcpv6.php:923
+#: src/usr/local/www/guiconfig.inc:1073
+#: src/usr/local/www/services_dhcp.php:1254
+#: src/usr/local/www/services_dhcpv6.php:918
#: src/usr/local/www/system_advanced_sysctl.php:162
#: src/usr/local/www/system_advanced_sysctl.php:211
-#: src/usr/local/www/system_certmanager.php:738
+#: src/usr/local/www/system_certmanager.php:751
msgid "Value"
msgstr ""
#: src/usr/local/www/head.inc:211
-#: src/usr/local/www/system_advanced_admin.php:285
+#: src/usr/local/www/system_advanced_admin.php:283
#: src/usr/local/www/system_advanced_firewall.php:371
-#: src/usr/local/www/system_advanced_misc.php:287
+#: src/usr/local/www/system_advanced_misc.php:286
#: src/usr/local/www/system_advanced_network.php:140
-#: src/usr/local/www/system_advanced_notifications.php:181
+#: src/usr/local/www/system_advanced_notifications.php:188
#: src/usr/local/www/system_advanced_sysctl.php:121
#: src/usr/local/www/system_gateways_edit.php:685
#: src/usr/local/www/vpn_openvpn_csc.php:560
@@ -13642,7 +13395,7 @@ msgstr ""
msgid "Advanced"
msgstr ""
-#: src/usr/local/www/head.inc:213 src/usr/local/www/system.php:336
+#: src/usr/local/www/head.inc:213 src/usr/local/www/system.php:341
msgid "General Setup"
msgstr ""
@@ -13650,11 +13403,11 @@ msgstr ""
msgid "High Avail. Sync"
msgstr ""
-#: src/usr/local/www/head.inc:218
+#: src/usr/local/www/head.inc:216
msgid "Setup Wizard"
msgstr ""
-#: src/usr/local/www/head.inc:219 src/usr/local/www/status_logs.php:59
+#: src/usr/local/www/head.inc:217 src/usr/local/www/status_logs.php:59
#: src/usr/local/www/status_logs_common.inc:105
#: src/usr/local/www/system_gateway_groups.php:104
#: src/usr/local/www/system_gateway_groups_edit.php:147
@@ -13665,42 +13418,42 @@ msgstr ""
msgid "Routing"
msgstr ""
-#: src/usr/local/www/head.inc:220
+#: src/usr/local/www/head.inc:218
msgid "Cert. Manager"
msgstr ""
-#: src/usr/local/www/head.inc:222 src/usr/local/www/head.inc:224
+#: src/usr/local/www/head.inc:220 src/usr/local/www/head.inc:222
#: src/usr/local/www/system_authservers.php:403
-#: src/usr/local/www/system_groupmanager.php:263
+#: src/usr/local/www/system_groupmanager.php:257
#: src/usr/local/www/system_groupmanager_addprivs.php:36
-#: src/usr/local/www/system_usermanager.php:533
+#: src/usr/local/www/system_usermanager.php:527
#: src/usr/local/www/system_usermanager_addprivs.php:36
#: src/usr/local/www/system_usermanager_settings.php:106
msgid "User Manager"
msgstr ""
-#: src/usr/local/www/head.inc:228 src/usr/local/www/system_user_settings.php:32
+#: src/usr/local/www/head.inc:226 src/usr/local/www/system_user_settings.php:32
msgid "User Settings"
msgstr ""
-#: src/usr/local/www/head.inc:236
+#: src/usr/local/www/head.inc:234
msgid "(assign)"
msgstr ""
-#: src/usr/local/www/head.inc:266 src/usr/local/www/services_dhcpv6.php:472
+#: src/usr/local/www/head.inc:264 src/usr/local/www/services_dhcpv6.php:467
#: src/usr/local/www/services_dhcpv6_edit.php:201
-#: src/usr/local/www/services_router_advertisements.php:242
+#: src/usr/local/www/services_router_advertisements.php:237
msgid "DHCPv6 Server & RA"
msgstr ""
-#: src/usr/local/www/head.inc:270 src/usr/local/www/services_igmpproxy.php:68
+#: src/usr/local/www/head.inc:268 src/usr/local/www/services_igmpproxy.php:68
#: src/usr/local/www/services_igmpproxy.php:82
#: src/usr/local/www/services_igmpproxy_edit.php:33
-#: src/usr/local/www/status_logs_settings.php:288
+#: src/usr/local/www/status_logs_settings.php:296
msgid "IGMP Proxy"
msgstr ""
-#: src/usr/local/www/head.inc:271 src/usr/local/www/head.inc:305
+#: src/usr/local/www/head.inc:269 src/usr/local/www/head.inc:303
#: src/usr/local/www/load_balancer_monitor.php:73
#: src/usr/local/www/load_balancer_monitor_edit.php:202
#: src/usr/local/www/load_balancer_pool.php:87
@@ -13711,48 +13464,48 @@ msgstr ""
#: src/usr/local/www/status_lb_pool.php:59
#: src/usr/local/www/status_lb_vs.php:45 src/usr/local/www/status_logs.php:51
#: src/usr/local/www/status_logs_common.inc:95
-#: src/usr/local/www/status_logs_settings.php:211
+#: src/usr/local/www/status_logs_settings.php:219
msgid "Load Balancer"
msgstr ""
-#: src/usr/local/www/head.inc:272 src/usr/local/www/head.inc:306
-#: src/usr/local/www/services_dhcp.php:1056
+#: src/usr/local/www/head.inc:270 src/usr/local/www/head.inc:304
+#: src/usr/local/www/services_dhcp.php:1069
#: src/usr/local/www/services_ntpd.php:184
#: src/usr/local/www/services_ntpd_acls.php:161
#: src/usr/local/www/services_ntpd_gps.php:191
#: src/usr/local/www/services_ntpd_pps.php:102
#: src/usr/local/www/status_logs.php:55
#: src/usr/local/www/status_logs_common.inc:97
-#: src/usr/local/www/status_logs_settings.php:213
+#: src/usr/local/www/status_logs_settings.php:221
#: src/usr/local/www/status_ntpd.php:254
msgid "NTP"
msgstr ""
-#: src/usr/local/www/head.inc:274 src/usr/local/www/services_snmp.php:177
+#: src/usr/local/www/head.inc:272 src/usr/local/www/services_snmp.php:177
msgid "SNMP"
msgstr ""
-#: src/usr/local/www/head.inc:280 src/usr/local/www/head.inc:319
+#: src/usr/local/www/head.inc:278 src/usr/local/www/head.inc:313
#: src/usr/local/www/status_upnp.php:42
msgid "UPnP &amp; NAT-PMP"
msgstr ""
-#: src/usr/local/www/head.inc:291 src/usr/local/www/interfaces.php:1616
-#: src/usr/local/www/interfaces_ppps_edit.php:444
+#: src/usr/local/www/head.inc:289 src/usr/local/www/interfaces.php:1619
+#: src/usr/local/www/interfaces_ppps_edit.php:464
#: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp_users.php:29
#: src/usr/local/www/vpn_l2tp_users_edit.php:29
msgid "L2TP"
msgstr ""
-#: src/usr/local/www/head.inc:297
+#: src/usr/local/www/head.inc:295
msgid "CARP (failover)"
msgstr ""
-#: src/usr/local/www/head.inc:298 src/usr/local/www/index.php:289
+#: src/usr/local/www/head.inc:296 src/usr/local/www/index.php:289
msgid "Dashboard"
msgstr ""
-#: src/usr/local/www/head.inc:299
+#: src/usr/local/www/head.inc:297
#: src/usr/local/www/status_gateway_groups.php:47
#: src/usr/local/www/status_gateway_groups.php:52
#: src/usr/local/www/status_gateway_groups.php:64
@@ -13772,24 +13525,24 @@ msgstr ""
msgid "Gateways"
msgstr ""
-#: src/usr/local/www/head.inc:300 src/usr/local/www/status_dhcp_leases.php:36
+#: src/usr/local/www/head.inc:298 src/usr/local/www/status_dhcp_leases.php:36
msgid "DHCP Leases"
msgstr ""
-#: src/usr/local/www/head.inc:301 src/usr/local/www/status_dhcpv6_leases.php:37
+#: src/usr/local/www/head.inc:299 src/usr/local/www/status_dhcpv6_leases.php:37
msgid "DHCPv6 Leases"
msgstr ""
-#: src/usr/local/www/head.inc:302 src/usr/local/www/status_filter_reload.php:33
+#: src/usr/local/www/head.inc:300 src/usr/local/www/status_filter_reload.php:33
#: src/usr/local/www/status_filter_reload.php:60
msgid "Filter Reload"
msgstr ""
-#: src/usr/local/www/head.inc:310 src/usr/local/www/status_pkglogs.php:71
+#: src/usr/local/www/head.inc:306 src/usr/local/www/status_pkglogs.php:71
msgid "Package Logs"
msgstr ""
-#: src/usr/local/www/head.inc:314
+#: src/usr/local/www/head.inc:308
#: src/usr/local/www/load_balancer_monitor.php:73
#: src/usr/local/www/load_balancer_monitor_edit.php:202
#: src/usr/local/www/load_balancer_pool.php:87
@@ -13811,10 +13564,10 @@ msgstr ""
#: src/usr/local/www/services_captiveportal_zones_edit.php:35
#: src/usr/local/www/services_checkip.php:65
#: src/usr/local/www/services_checkip_edit.php:106
-#: src/usr/local/www/services_dhcp.php:693
-#: src/usr/local/www/services_dhcp_edit.php:381
+#: src/usr/local/www/services_dhcp.php:699
+#: src/usr/local/www/services_dhcp_edit.php:388
#: src/usr/local/www/services_dhcp_relay.php:120
-#: src/usr/local/www/services_dhcpv6.php:472
+#: src/usr/local/www/services_dhcpv6.php:467
#: src/usr/local/www/services_dhcpv6_edit.php:201
#: src/usr/local/www/services_dhcpv6_relay.php:118
#: src/usr/local/www/services_dnsmasq.php:182
@@ -13832,7 +13585,7 @@ msgstr ""
#: src/usr/local/www/services_pppoe_edit.php:280
#: src/usr/local/www/services_rfc2136.php:58
#: src/usr/local/www/services_rfc2136_edit.php:148
-#: src/usr/local/www/services_router_advertisements.php:242
+#: src/usr/local/www/services_router_advertisements.php:237
#: src/usr/local/www/services_snmp.php:177
#: src/usr/local/www/services_unbound.php:238
#: src/usr/local/www/services_unbound_acls.php:174
@@ -13847,12 +13600,12 @@ msgstr ""
msgid "Services"
msgstr ""
-#: src/usr/local/www/head.inc:316 src/usr/local/www/status_graph.php:132
-#: src/usr/local/www/status_graph.php:240
+#: src/usr/local/www/head.inc:310 src/usr/local/www/status_graph.php:120
+#: src/usr/local/www/status_graph.php:448
msgid "Traffic Graph"
msgstr ""
-#: src/usr/local/www/head.inc:331 src/usr/local/www/interfaces_assign.php:498
+#: src/usr/local/www/head.inc:325 src/usr/local/www/interfaces_assign.php:498
#: src/usr/local/www/interfaces_bridge.php:85
#: src/usr/local/www/interfaces_gif.php:80
#: src/usr/local/www/interfaces_gre.php:80
@@ -13870,92 +13623,84 @@ msgstr ""
msgid "Wireless"
msgstr ""
-#: src/usr/local/www/head.inc:373
-msgid "Restart HTTPD"
-msgstr ""
-
-#: src/usr/local/www/head.inc:379
+#: src/usr/local/www/head.inc:365
msgid "pfSense Gold"
msgstr ""
-#: src/usr/local/www/head.inc:384
+#: src/usr/local/www/head.inc:370
msgid "About this Page"
msgstr ""
-#: src/usr/local/www/head.inc:386
+#: src/usr/local/www/head.inc:372
msgid "Bug Database"
msgstr ""
-#: src/usr/local/www/head.inc:389
+#: src/usr/local/www/head.inc:375
msgid "User Forum"
msgstr ""
-#: src/usr/local/www/head.inc:390
+#: src/usr/local/www/head.inc:376
msgid "Documentation"
msgstr ""
-#: src/usr/local/www/head.inc:391
-msgid "Developers Wiki"
-msgstr ""
-
-#: src/usr/local/www/head.inc:392
+#: src/usr/local/www/head.inc:377
msgid "Paid Support"
msgstr ""
-#: src/usr/local/www/head.inc:393
+#: src/usr/local/www/head.inc:378
msgid "pfSense Book"
msgstr ""
-#: src/usr/local/www/head.inc:394
+#: src/usr/local/www/head.inc:379
msgid "FreeBSD Handbook"
msgstr ""
-#: src/usr/local/www/head.inc:462 src/usr/local/www/head.inc:624
+#: src/usr/local/www/head.inc:447 src/usr/local/www/head.inc:609
msgid "Notices"
msgstr ""
-#: src/usr/local/www/head.inc:471
+#: src/usr/local/www/head.inc:456
msgid "Log out"
msgstr ""
-#: src/usr/local/www/head.inc:495
+#: src/usr/local/www/head.inc:480
msgid "Save dashboard layout"
msgstr ""
-#: src/usr/local/www/head.inc:503
+#: src/usr/local/www/head.inc:488
msgid "Available widgets"
msgstr ""
-#: src/usr/local/www/head.inc:511
+#: src/usr/local/www/head.inc:496
msgid "Log filter"
msgstr ""
-#: src/usr/local/www/head.inc:522
+#: src/usr/local/www/head.inc:507
msgid "Manage log"
msgstr ""
-#: src/usr/local/www/head.inc:540
+#: src/usr/local/www/head.inc:525
msgid "Refresh Graph"
msgstr ""
-#: src/usr/local/www/head.inc:580
+#: src/usr/local/www/head.inc:565
msgid "Help for items on this page"
msgstr ""
-#: src/usr/local/www/head.inc:591
+#: src/usr/local/www/head.inc:576
#, php-format
msgid ""
"<p>%s is booting, then packages will be reinstalled in the background.</"
"p><p>Do not make changes in the GUI until this is complete.</p>"
msgstr ""
-#: src/usr/local/www/head.inc:594
+#: src/usr/local/www/head.inc:579
msgid ""
"<p>Packages are currently being reinstalled in the background.</p><p>Do not "
"make changes in the GUI until this is complete.</p>"
msgstr ""
-#: src/usr/local/www/head.inc:595
+#: src/usr/local/www/head.inc:580
#, php-format
msgid ""
"<p>If the above message is still displayed after a couple of hours, use the "
@@ -13963,15 +13708,15 @@ msgid ""
"&gt; %2$s\">%1$s &gt; %2$s</a> page and reinstall packages manually.</p>"
msgstr ""
-#: src/usr/local/www/head.inc:605
+#: src/usr/local/www/head.inc:590
msgid "This page is currently being managed by a remote machine."
msgstr ""
-#: src/usr/local/www/head.inc:663
+#: src/usr/local/www/head.inc:648
msgid "Close"
msgstr ""
-#: src/usr/local/www/head.inc:664
+#: src/usr/local/www/head.inc:649
msgid "Mark All as Read"
msgstr ""
@@ -13982,22 +13727,22 @@ msgid ""
"href='crash_reporter.php'>here</a> for more information."
msgstr ""
-#: src/usr/local/www/index.php:185
+#: src/usr/local/www/index.php:186
#, php-format
msgid "Welcome to %s!\n"
msgstr ""
-#: src/usr/local/www/index.php:186
+#: src/usr/local/www/index.php:187
msgid "One moment while the initial setup wizard starts."
msgstr ""
-#: src/usr/local/www/index.php:187
+#: src/usr/local/www/index.php:188
msgid ""
"Embedded platform users: Please be patient, the wizard takes a little longer "
"to run than the normal GUI."
msgstr ""
-#: src/usr/local/www/index.php:188
+#: src/usr/local/www/index.php:189
#, php-format
msgid "To bypass the wizard, click on the %s logo on the initial page."
msgstr ""
@@ -14010,7 +13755,7 @@ msgstr ""
msgid "One or more widgets have been moved but have not yet been saved"
msgstr ""
-#: src/usr/local/www/interfaces.php:411
+#: src/usr/local/www/interfaces.php:412
msgid "The settings have already been applied!"
msgstr ""
@@ -14065,7 +13810,7 @@ msgid "Modem Port"
msgstr ""
#: src/usr/local/www/interfaces.php:541
-#: src/usr/local/www/interfaces_ppps_edit.php:200
+#: src/usr/local/www/interfaces_ppps_edit.php:204
msgid "Phone Number"
msgstr ""
@@ -14078,17 +13823,17 @@ msgid "PPPoE password"
msgstr ""
#: src/usr/local/www/interfaces.php:547 src/usr/local/www/interfaces.php:557
-#: src/usr/local/www/interfaces.php:567 src/usr/local/www/interfaces.php:2562
-#: src/usr/local/www/interfaces.php:2692
-#: src/usr/local/www/interfaces_ppps_edit.php:206
-#: src/usr/local/www/interfaces_ppps_edit.php:217
+#: src/usr/local/www/interfaces.php:567 src/usr/local/www/interfaces.php:2570
+#: src/usr/local/www/interfaces.php:2700
+#: src/usr/local/www/interfaces_ppps_edit.php:210
+#: src/usr/local/www/interfaces_ppps_edit.php:221
msgid "Dial on demand"
msgstr ""
#: src/usr/local/www/interfaces.php:547 src/usr/local/www/interfaces.php:557
#: src/usr/local/www/interfaces.php:567
-#: src/usr/local/www/interfaces_ppps_edit.php:206
-#: src/usr/local/www/interfaces_ppps_edit.php:217
+#: src/usr/local/www/interfaces_ppps_edit.php:210
+#: src/usr/local/www/interfaces_ppps_edit.php:221
msgid "Idle timeout value"
msgstr ""
@@ -14237,22 +13982,22 @@ msgid "The service name contains invalid characters."
msgstr ""
#: src/usr/local/www/interfaces.php:754 src/usr/local/www/interfaces.php:777
-#: src/usr/local/www/interfaces_ppps_edit.php:247
+#: src/usr/local/www/interfaces_ppps_edit.php:251
msgid "The idle timeout value must be an integer."
msgstr ""
#: src/usr/local/www/interfaces.php:758
-#: src/usr/local/www/interfaces_ppps_edit.php:251
+#: src/usr/local/www/interfaces_ppps_edit.php:255
msgid "A valid PPPoE reset hour must be specified (0-23)."
msgstr ""
#: src/usr/local/www/interfaces.php:762
-#: src/usr/local/www/interfaces_ppps_edit.php:255
+#: src/usr/local/www/interfaces_ppps_edit.php:259
msgid "A valid PPPoE reset minute must be specified (0-59)."
msgstr ""
#: src/usr/local/www/interfaces.php:765
-#: src/usr/local/www/interfaces_ppps_edit.php:258
+#: src/usr/local/www/interfaces_ppps_edit.php:262
msgid "A valid PPPoE reset date must be specified (mm/dd/yyyy)."
msgstr ""
@@ -14293,7 +14038,7 @@ msgstr ""
msgid "The MSS must be an integer between 576 and 65535 bytes."
msgstr ""
-#: src/usr/local/www/interfaces.php:843 src/usr/local/www/interfaces.php:2906
+#: src/usr/local/www/interfaces.php:843 src/usr/local/www/interfaces.php:2914
#: src/usr/local/www/status_interfaces.php:142
msgid "SSID"
msgstr ""
@@ -14381,367 +14126,371 @@ msgstr ""
msgid "PTPP Password and confirmed password must match!"
msgstr ""
-#: src/usr/local/www/interfaces.php:1590
+#: src/usr/local/www/interfaces.php:1593
#, php-format
msgid ""
"Unable to change mode to %s. The maximum number of wireless clones supported "
"in this mode may have been reached."
msgstr ""
-#: src/usr/local/www/interfaces.php:1616
+#: src/usr/local/www/interfaces.php:1619
msgid "Static IPv4"
msgstr ""
-#: src/usr/local/www/interfaces.php:1616 src/usr/local/www/status_logs.php:43
+#: src/usr/local/www/interfaces.php:1619 src/usr/local/www/status_logs.php:43
#: src/usr/local/www/status_logs_common.inc:90
-#: src/usr/local/www/status_logs_settings.php:206
+#: src/usr/local/www/status_logs_settings.php:214
msgid "DHCP"
msgstr ""
-#: src/usr/local/www/interfaces.php:1616
-#: src/usr/local/www/interfaces_ppps_edit.php:444
+#: src/usr/local/www/interfaces.php:1619
+#: src/usr/local/www/interfaces_ppps_edit.php:464
#: src/usr/local/www/status_logs.php:49
#: src/usr/local/www/status_logs_common.inc:93
-#: src/usr/local/www/status_logs_settings.php:209
+#: src/usr/local/www/status_logs_settings.php:217
msgid "PPP"
msgstr ""
-#: src/usr/local/www/interfaces.php:1616
-#: src/usr/local/www/interfaces_ppps_edit.php:444
+#: src/usr/local/www/interfaces.php:1619
+#: src/usr/local/www/interfaces_ppps_edit.php:464
msgid "PPPoE"
msgstr ""
-#: src/usr/local/www/interfaces.php:1616
-#: src/usr/local/www/interfaces_ppps_edit.php:444
+#: src/usr/local/www/interfaces.php:1619
+#: src/usr/local/www/interfaces_ppps_edit.php:464
msgid "PPTP"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "Static IPv6"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "DHCP6"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "SLAAC"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "6rd Tunnel"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "6to4 Tunnel"
msgstr ""
-#: src/usr/local/www/interfaces.php:1617
+#: src/usr/local/www/interfaces.php:1620
msgid "Track Interface"
msgstr ""
-#: src/usr/local/www/interfaces.php:1627
+#: src/usr/local/www/interfaces.php:1630
msgid "Default (no preference, typically autoselect)"
msgstr ""
-#: src/usr/local/www/interfaces.php:1628
+#: src/usr/local/www/interfaces.php:1631
msgid "------- Media Supported by this interface -------"
msgstr ""
-#: src/usr/local/www/interfaces.php:1671
+#: src/usr/local/www/interfaces.php:1674
#, php-format
msgid "The %s configuration has been changed."
msgstr ""
-#: src/usr/local/www/interfaces.php:1672
+#: src/usr/local/www/interfaces.php:1675
msgid "The changes must be applied to take effect."
msgstr ""
-#: src/usr/local/www/interfaces.php:1673
+#: src/usr/local/www/interfaces.php:1676
msgid "Don't forget to adjust the DHCP Server range if needed after applying."
msgstr ""
-#: src/usr/local/www/interfaces.php:1683
+#: src/usr/local/www/interfaces.php:1686
msgid "General Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:1698
+#: src/usr/local/www/interfaces.php:1701
msgid "Enter a description (name) for the interface here."
msgstr ""
-#: src/usr/local/www/interfaces.php:1702
+#: src/usr/local/www/interfaces.php:1705
msgid "IPv4 Configuration Type"
msgstr ""
-#: src/usr/local/www/interfaces.php:1709
+#: src/usr/local/www/interfaces.php:1712
msgid "IPv6 Configuration Type"
msgstr ""
-#: src/usr/local/www/interfaces.php:1716 src/usr/local/www/interfaces.php:1731
+#: src/usr/local/www/interfaces.php:1719 src/usr/local/www/interfaces.php:1734
#: src/usr/local/www/services_captiveportal_mac_edit.php:209
#: src/usr/local/www/services_captiveportal_mac_edit.php:224
-#: src/usr/local/www/services_dhcp_edit.php:396
-#: src/usr/local/www/services_dhcp_edit.php:411
+#: src/usr/local/www/services_dhcp_edit.php:403
+#: src/usr/local/www/services_dhcp_edit.php:418
#: src/usr/local/www/status_interfaces.php:114
msgid "MAC Address"
msgstr ""
-#: src/usr/local/www/interfaces.php:1724
+#: src/usr/local/www/interfaces.php:1727
#: src/usr/local/www/services_captiveportal_mac_edit.php:217
-#: src/usr/local/www/services_dhcp_edit.php:404
+#: src/usr/local/www/services_dhcp_edit.php:411
msgid "Copy My MAC"
msgstr ""
-#: src/usr/local/www/interfaces.php:1734
+#: src/usr/local/www/interfaces.php:1737
msgid ""
"This field can be used to modify (\"spoof\") the MAC address of this "
"interface.<br />Enter a MAC address in the following format: xx:xx:xx:xx:xx:"
"xx or leave blank."
msgstr ""
-#: src/usr/local/www/interfaces.php:1740
-#: src/usr/local/www/interfaces_ppps_edit.php:895
+#: src/usr/local/www/interfaces.php:1743
+#: src/usr/local/www/interfaces_ppps_edit.php:917
#: src/usr/local/www/status_interfaces.php:137
msgid "MTU"
msgstr ""
-#: src/usr/local/www/interfaces.php:1743
+#: src/usr/local/www/interfaces.php:1746
msgid ""
"If this field is blank, the adapter's default MTU will be used. This is "
"typically 1500 bytes but can vary in some circumstances."
msgstr ""
-#: src/usr/local/www/interfaces.php:1748
+#: src/usr/local/www/interfaces.php:1751
msgid "MSS"
msgstr ""
-#: src/usr/local/www/interfaces.php:1751
+#: src/usr/local/www/interfaces.php:1754
msgid ""
"If a value is entered in this field, then MSS clamping for TCP connections "
"to the value entered above minus 40 (TCP/IP header size) will be in effect."
msgstr ""
-#: src/usr/local/www/interfaces.php:1757
+#: src/usr/local/www/interfaces.php:1760
msgid "Speed and Duplex"
msgstr ""
-#: src/usr/local/www/interfaces.php:1760
+#: src/usr/local/www/interfaces.php:1763
msgid ""
"Explicitly set speed and duplex mode for this interface.<br />WARNING: MUST "
"be set to autoselect (automatically negotiate speed) unless the port this "
"interface connects to has its speed and duplex forced."
msgstr ""
-#: src/usr/local/www/interfaces.php:1766
+#: src/usr/local/www/interfaces.php:1769
msgid "Static IPv4 Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:1771
+#: src/usr/local/www/interfaces.php:1774
#: src/usr/local/www/status_interfaces.php:119
msgid "IPv4 Address"
msgstr ""
-#: src/usr/local/www/interfaces.php:1775
+#: src/usr/local/www/interfaces.php:1778
msgid "IPv4 Upstream gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1779
+#: src/usr/local/www/interfaces.php:1782
msgid "IPv4 Upstream Gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1786 src/usr/local/www/interfaces.php:1819
+#: src/usr/local/www/interfaces.php:1789 src/usr/local/www/interfaces.php:1822
msgid "Add a new gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1793
+#: src/usr/local/www/interfaces.php:1796
msgid "Gateways can be managed by "
msgstr ""
-#: src/usr/local/www/interfaces.php:1793
+#: src/usr/local/www/interfaces.php:1796
msgid " clicking here"
msgstr ""
-#: src/usr/local/www/interfaces.php:1791
+#: src/usr/local/www/interfaces.php:1794
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add a new one using the \"Add\" button.<br />On local area "
"network interfaces the upstream gateway should be \"none\". "
msgstr ""
-#: src/usr/local/www/interfaces.php:1799
+#: src/usr/local/www/interfaces.php:1802
msgid "Static IPv6 Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:1808
+#: src/usr/local/www/interfaces.php:1811
msgid "IPv6 Upstream gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1812
+#: src/usr/local/www/interfaces.php:1815
msgid "IPv6 Upstream Gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1824
+#: src/usr/local/www/interfaces.php:1827
msgid ""
"If this interface is an Internet connection, select an existing Gateway from "
"the list or add a new one using the \"Add\" button.<br />On local LANs the "
"upstream gateway should be \"none\". "
msgstr ""
-#: src/usr/local/www/interfaces.php:1831
+#: src/usr/local/www/interfaces.php:1834
msgid "New IPv6 Gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1842 src/usr/local/www/interfaces.php:3148
+#: src/usr/local/www/interfaces.php:1845 src/usr/local/www/interfaces.php:3156
#: src/usr/local/www/system_gateways_edit.php:607
msgid "Gateway name"
msgstr ""
-#: src/usr/local/www/interfaces.php:1849
+#: src/usr/local/www/interfaces.php:1852
#: src/usr/local/www/status_interfaces.php:125
msgid "Gateway IPv6"
msgstr ""
-#: src/usr/local/www/interfaces.php:1886
+#: src/usr/local/www/interfaces.php:1889
msgid "DHCP Client Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:1889 src/usr/local/www/interfaces.php:2072
+#: src/usr/local/www/interfaces.php:1892 src/usr/local/www/interfaces.php:2075
msgid "Options"
msgstr ""
-#: src/usr/local/www/interfaces.php:1896
+#: src/usr/local/www/interfaces.php:1899
msgid "Use advanced DHCP configuration options."
msgstr ""
-#: src/usr/local/www/interfaces.php:1903 src/usr/local/www/interfaces.php:2086
+#: src/usr/local/www/interfaces.php:1906 src/usr/local/www/interfaces.php:2089
msgid "Override the configuration from this file."
msgstr ""
-#: src/usr/local/www/interfaces.php:1912
+#: src/usr/local/www/interfaces.php:1915
msgid ""
"The value in this field is sent as the DHCP client identifier and hostname "
"when requesting a DHCP lease. Some ISPs may require this (for client "
"identification)."
msgstr ""
-#: src/usr/local/www/interfaces.php:1916
+#: src/usr/local/www/interfaces.php:1919
msgid "Alias IPv4 address"
msgstr ""
-#: src/usr/local/www/interfaces.php:1918
+#: src/usr/local/www/interfaces.php:1921
msgid ""
"The value in this field is used as a fixed alias IPv4 address by the DHCP "
"client."
msgstr ""
-#: src/usr/local/www/interfaces.php:1922
+#: src/usr/local/www/interfaces.php:1925
msgid "Reject leases from"
msgstr ""
-#: src/usr/local/www/interfaces.php:1925
+#: src/usr/local/www/interfaces.php:1928
msgid ""
-"If there is a certain upstream DHCP server that should be ignored, place the "
-"IP address or subnet of the DHCP server to be ignored here. This is useful "
-"for rejecting leases from cable modems that offer private IPs when they lose "
-"upstream sync."
+"To make the DHCP client reject leases from an undesirable DHCP server, place "
+"the IP address of the DHCP server here. This is useful for rejecting leases "
+"from cable modems that offer private IP addresses when they lose upstream "
+"sync."
msgstr ""
-#: src/usr/local/www/interfaces.php:1928
+#: src/usr/local/www/interfaces.php:1931
msgid "Protocol timing"
msgstr ""
-#: src/usr/local/www/interfaces.php:1936
+#: src/usr/local/www/interfaces.php:1939
#: src/usr/local/www/load_balancer_setting.php:117
msgid "Timeout"
msgstr ""
-#: src/usr/local/www/interfaces.php:1943
+#: src/usr/local/www/interfaces.php:1946
#: src/usr/local/www/load_balancer_pool_edit.php:336
msgid "Retry"
msgstr ""
-#: src/usr/local/www/interfaces.php:1951
+#: src/usr/local/www/interfaces.php:1954
msgid "Select timeout"
msgstr ""
-#: src/usr/local/www/interfaces.php:1965
+#: src/usr/local/www/interfaces.php:1968
msgid "Backoff cutoff"
msgstr ""
-#: src/usr/local/www/interfaces.php:1972
+#: src/usr/local/www/interfaces.php:1975
msgid "Initial interval"
msgstr ""
-#: src/usr/local/www/interfaces.php:1976
+#: src/usr/local/www/interfaces.php:1979
msgid "Presets"
msgstr ""
-#: src/usr/local/www/interfaces.php:2011
+#: src/usr/local/www/interfaces.php:2014
msgid ""
"The values in these fields are DHCP protocol timings used when requesting a "
"lease.<br /><a target=\"_blank\" href=\"https://www.freebsd.org/cgi/man.cgi?"
"query=dhclient.conf&sektion=5#PROTOCOL_TIMING\">See here more information</a>"
msgstr ""
-#: src/usr/local/www/interfaces.php:2018 src/usr/local/www/interfaces.php:2127
+#: src/usr/local/www/interfaces.php:2021 src/usr/local/www/interfaces.php:2135
msgid "Configuration File Override"
msgstr ""
-#: src/usr/local/www/interfaces.php:2028
+#: src/usr/local/www/interfaces.php:2031
msgid "Lease Requirements and Requests"
msgstr ""
-#: src/usr/local/www/interfaces.php:2033 src/usr/local/www/interfaces.php:2152
+#: src/usr/local/www/interfaces.php:2036 src/usr/local/www/interfaces.php:2160
msgid "Send options"
msgstr ""
-#: src/usr/local/www/interfaces.php:2043
+#: src/usr/local/www/interfaces.php:2046
msgid "Request options"
msgstr ""
-#: src/usr/local/www/interfaces.php:2051
+#: src/usr/local/www/interfaces.php:2054
msgid "Require options"
msgstr ""
-#: src/usr/local/www/interfaces.php:2058
+#: src/usr/local/www/interfaces.php:2061
msgid "Option modifiers"
msgstr ""
-#: src/usr/local/www/interfaces.php:2069
+#: src/usr/local/www/interfaces.php:2072
msgid "DHCP6 Client Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2079
+#: src/usr/local/www/interfaces.php:2082
msgid "Use advanced DHCPv6 configuration options."
msgstr ""
-#: src/usr/local/www/interfaces.php:2092
+#: src/usr/local/www/interfaces.php:2095
msgid "Use IPv4 connectivity as parent interface"
msgstr ""
-#: src/usr/local/www/interfaces.php:2099
+#: src/usr/local/www/interfaces.php:2102
msgid "Request only an IPv6 prefix"
msgstr ""
-#: src/usr/local/www/interfaces.php:2106
+#: src/usr/local/www/interfaces.php:2109
msgid "DHCPv6 Prefix Delegation size"
msgstr ""
-#: src/usr/local/www/interfaces.php:2109
+#: src/usr/local/www/interfaces.php:2112
msgid ""
"The value in this field is the delegated prefix length provided by the "
"DHCPv6 server. Normally specified by the ISP."
msgstr ""
-#: src/usr/local/www/interfaces.php:2113
+#: src/usr/local/www/interfaces.php:2116
msgid "Send IPv6 prefix hint"
msgstr ""
-#: src/usr/local/www/interfaces.php:2120
+#: src/usr/local/www/interfaces.php:2123
msgid "Debug"
msgstr ""
-#: src/usr/local/www/interfaces.php:2130
+#: src/usr/local/www/interfaces.php:2129
+msgid "Do not wait for a RA"
+msgstr ""
+
+#: src/usr/local/www/interfaces.php:2138
msgid ""
"The value in this field is the full absolute path to a DHCP client "
"configuration file.\t [/[dirname/[.../]]filename[.ext]]<br />Value "
@@ -14751,234 +14500,234 @@ msgid ""
"ISPs may require certain options be or not be sent."
msgstr ""
-#: src/usr/local/www/interfaces.php:2139
+#: src/usr/local/www/interfaces.php:2147
msgid "Advanced DHCP6 Client Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2144
+#: src/usr/local/www/interfaces.php:2152
msgid "Information only"
msgstr ""
-#: src/usr/local/www/interfaces.php:2148
+#: src/usr/local/www/interfaces.php:2156
msgid "Only exchange informational configuration parameters with servers."
msgstr ""
-#: src/usr/local/www/interfaces.php:2162
+#: src/usr/local/www/interfaces.php:2170
msgid "Request Options"
msgstr ""
-#: src/usr/local/www/interfaces.php:2170
+#: src/usr/local/www/interfaces.php:2178
msgid "Scripts"
msgstr ""
-#: src/usr/local/www/interfaces.php:2176
+#: src/usr/local/www/interfaces.php:2184
msgid "Identity Association Statement"
msgstr ""
-#: src/usr/local/www/interfaces.php:2255
+#: src/usr/local/www/interfaces.php:2263
msgid "Prefix interface statement"
msgstr ""
-#: src/usr/local/www/interfaces.php:2273
+#: src/usr/local/www/interfaces.php:2281
msgid "Authentication statement"
msgstr ""
-#: src/usr/local/www/interfaces.php:2305
+#: src/usr/local/www/interfaces.php:2313
msgid "Keyinfo statement"
msgstr ""
-#: src/usr/local/www/interfaces.php:2346
+#: src/usr/local/www/interfaces.php:2354
msgid ""
"<a target=\"_blank\" href=\"https://www.freebsd.org/cgi/man.cgi?query=dhcp6c."
"conf&sektion=5&apropos=0&manpath=FreeBSD+10.1-RELEASE+and"
"+Ports#Interface_statement\">See here more information</a>"
msgstr ""
-#: src/usr/local/www/interfaces.php:2352
+#: src/usr/local/www/interfaces.php:2360
msgid "6RD Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2357
+#: src/usr/local/www/interfaces.php:2365
msgid "6RD Prefix"
msgstr ""
-#: src/usr/local/www/interfaces.php:2364
+#: src/usr/local/www/interfaces.php:2372
msgid "6RD Border relay"
msgstr ""
-#: src/usr/local/www/interfaces.php:2371
+#: src/usr/local/www/interfaces.php:2379
msgid "6RD IPv4 Prefix length"
msgstr ""
-#: src/usr/local/www/interfaces.php:2374
+#: src/usr/local/www/interfaces.php:2382
msgid ""
"6RD IPv4 prefix length. Normally specified by the ISP. A value of 0 means "
"embed the entire IPv4 address in the 6RD prefix."
msgstr ""
-#: src/usr/local/www/interfaces.php:2379
+#: src/usr/local/www/interfaces.php:2387
msgid "Track IPv6 Interface"
msgstr ""
-#: src/usr/local/www/interfaces.php:2421
+#: src/usr/local/www/interfaces.php:2429
msgid "IPv6 Interface"
msgstr ""
-#: src/usr/local/www/interfaces.php:2424
+#: src/usr/local/www/interfaces.php:2432
msgid "Selects the dynamic IPv6 WAN interface to track for configuration."
msgstr ""
-#: src/usr/local/www/interfaces.php:2432
+#: src/usr/local/www/interfaces.php:2440
msgid "IPv6 Prefix ID"
msgstr ""
-#: src/usr/local/www/interfaces.php:2435
+#: src/usr/local/www/interfaces.php:2443
msgid ""
"<span id=\"track6-prefix-id-range\"></span>The value in this field is the "
"(Delegated) IPv6 prefix ID. This determines the configurable network ID "
"based on the dynamic IPv6 connection. The default value is 0."
msgstr ""
-#: src/usr/local/www/interfaces.php:2448
-#: src/usr/local/www/interfaces_ppps_edit.php:552
+#: src/usr/local/www/interfaces.php:2456
+#: src/usr/local/www/interfaces_ppps_edit.php:572
msgid "PPP Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2453 src/usr/local/www/interfaces.php:2877
-#: src/usr/local/www/interfaces_ppps_edit.php:580
+#: src/usr/local/www/interfaces.php:2461 src/usr/local/www/interfaces.php:2885
+#: src/usr/local/www/interfaces_ppps_edit.php:600
msgid "Country"
msgstr ""
-#: src/usr/local/www/interfaces.php:2460
-#: src/usr/local/www/interfaces_ppps_edit.php:587
+#: src/usr/local/www/interfaces.php:2468
+#: src/usr/local/www/interfaces_ppps_edit.php:607
msgid "Provider"
msgstr ""
-#: src/usr/local/www/interfaces.php:2467
-#: src/usr/local/www/interfaces_ppps_edit.php:594
+#: src/usr/local/www/interfaces.php:2475
+#: src/usr/local/www/interfaces_ppps_edit.php:614
msgid "Plan"
msgstr ""
-#: src/usr/local/www/interfaces.php:2470
-#: src/usr/local/www/interfaces_ppps_edit.php:597
+#: src/usr/local/www/interfaces.php:2478
+#: src/usr/local/www/interfaces_ppps_edit.php:617
msgid "Select to fill in service provider data."
msgstr ""
-#: src/usr/local/www/interfaces.php:2488
-#: src/usr/local/www/interfaces_ppps_edit.php:643
+#: src/usr/local/www/interfaces.php:2496
+#: src/usr/local/www/interfaces_ppps_edit.php:663
msgid "Phone number"
msgstr ""
-#: src/usr/local/www/interfaces.php:2491
+#: src/usr/local/www/interfaces.php:2499
msgid "Typically *99# for GSM networks and #777 for CDMA networks."
msgstr ""
-#: src/usr/local/www/interfaces.php:2495
+#: src/usr/local/www/interfaces.php:2503
msgid "Access Point Name"
msgstr ""
-#: src/usr/local/www/interfaces.php:2521
+#: src/usr/local/www/interfaces.php:2529
msgid "Modem port"
msgstr ""
-#: src/usr/local/www/interfaces.php:2528
+#: src/usr/local/www/interfaces.php:2536
msgid "Advanced PPP"
msgstr ""
-#: src/usr/local/www/interfaces.php:2531
+#: src/usr/local/www/interfaces.php:2539
msgid "Create a new PPP configuration."
msgstr ""
-#: src/usr/local/www/interfaces.php:2536
+#: src/usr/local/www/interfaces.php:2544
msgid "PPPoE Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2555
-#: src/usr/local/www/interfaces_ppps_edit.php:699
+#: src/usr/local/www/interfaces.php:2563
+#: src/usr/local/www/interfaces_ppps_edit.php:720
msgid "Service name"
msgstr ""
-#: src/usr/local/www/interfaces.php:2558
+#: src/usr/local/www/interfaces.php:2566
msgid "This field can usually be left empty."
msgstr ""
-#: src/usr/local/www/interfaces.php:2570
+#: src/usr/local/www/interfaces.php:2578
msgid "Idle timeout"
msgstr ""
-#: src/usr/local/www/interfaces.php:2574 src/usr/local/www/interfaces.php:2705
+#: src/usr/local/www/interfaces.php:2582 src/usr/local/www/interfaces.php:2713
msgid ""
"If no qualifying outgoing packets are transmitted for the specified number "
"of seconds, the connection is brought down. An idle timeout of zero disables "
"this feature."
msgstr ""
-#: src/usr/local/www/interfaces.php:2581
-#: src/usr/local/www/interfaces_ppps_edit.php:728
+#: src/usr/local/www/interfaces.php:2589
+#: src/usr/local/www/interfaces_ppps_edit.php:750
msgid "Pre-set"
msgstr ""
-#: src/usr/local/www/interfaces.php:2579
+#: src/usr/local/www/interfaces.php:2587
msgid "Periodic reset"
msgstr ""
-#: src/usr/local/www/interfaces.php:2582
+#: src/usr/local/www/interfaces.php:2590
msgid "Select a reset timing type."
msgstr ""
-#: src/usr/local/www/interfaces.php:2584
+#: src/usr/local/www/interfaces.php:2592
msgid "Custom reset"
msgstr ""
-#: src/usr/local/www/interfaces.php:2593
+#: src/usr/local/www/interfaces.php:2601
msgid "Hour (0-23)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2601
+#: src/usr/local/www/interfaces.php:2609
msgid "Minutes (0-59)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2608
+#: src/usr/local/www/interfaces.php:2616
msgid "Specific date (mm/dd/yyyy)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2610
+#: src/usr/local/www/interfaces.php:2618
msgid ""
"Leave the date field empty, for the reset to be executed each day at the "
"time specified by the minutes and hour fields"
msgstr ""
-#: src/usr/local/www/interfaces.php:2614
+#: src/usr/local/www/interfaces.php:2622
msgid "cron based reset"
msgstr ""
-#: src/usr/local/www/interfaces.php:2653 src/usr/local/www/interfaces.php:2716
+#: src/usr/local/www/interfaces.php:2661 src/usr/local/www/interfaces.php:2724
msgid "Advanced and MLPPP"
msgstr ""
-#: src/usr/local/www/interfaces.php:2656
+#: src/usr/local/www/interfaces.php:2664
msgid ""
"Click for additional PPPoE configuration options. Save first if changes have "
"been made."
msgstr ""
-#: src/usr/local/www/interfaces.php:2661
+#: src/usr/local/www/interfaces.php:2669
msgid "PPTP/L2TP Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2680
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
+#: src/usr/local/www/interfaces.php:2688
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
msgid "Local IP address"
msgstr ""
-#: src/usr/local/www/interfaces.php:2686
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
+#: src/usr/local/www/interfaces.php:2694
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
msgid "Remote IP address"
msgstr ""
-#: src/usr/local/www/interfaces.php:2696
+#: src/usr/local/www/interfaces.php:2704
msgid ""
"This option causes the interface to operate in dial-on-demand mode, allowing "
"it to be a virtual full time connection. The interface is configured, but "
@@ -14986,156 +14735,156 @@ msgid ""
"traffic is detected."
msgstr ""
-#: src/usr/local/www/interfaces.php:2701
+#: src/usr/local/www/interfaces.php:2709
msgid "Idle timeout (seconds)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2709
+#: src/usr/local/www/interfaces.php:2717
msgid "There are additional Local and Remote IP addresses defined for MLPPP."
msgstr ""
-#: src/usr/local/www/interfaces.php:2719
+#: src/usr/local/www/interfaces.php:2727
msgid ""
"Click for additional PPTP and L2TP configuration options. Save first if "
"changes have been made."
msgstr ""
-#: src/usr/local/www/interfaces.php:2726
+#: src/usr/local/www/interfaces.php:2734
msgid ""
"Common Wireless Configuration - Settings apply to all wireless networks on "
msgstr ""
-#: src/usr/local/www/interfaces.php:2730
+#: src/usr/local/www/interfaces.php:2738
msgid "Persist common settings"
msgstr ""
-#: src/usr/local/www/interfaces.php:2750
+#: src/usr/local/www/interfaces.php:2758
msgid "Standard"
msgstr ""
-#: src/usr/local/www/interfaces.php:2760 src/usr/local/www/interfaces.php:2810
+#: src/usr/local/www/interfaces.php:2768 src/usr/local/www/interfaces.php:2818
msgid "Off"
msgstr ""
-#: src/usr/local/www/interfaces.php:2760
+#: src/usr/local/www/interfaces.php:2768
msgid "CTS to self"
msgstr ""
-#: src/usr/local/www/interfaces.php:2760
+#: src/usr/local/www/interfaces.php:2768
msgid "RTS and CTS"
msgstr ""
-#: src/usr/local/www/interfaces.php:2758
+#: src/usr/local/www/interfaces.php:2766
msgid "802.11g OFDM Protection Mode"
msgstr ""
-#: src/usr/local/www/interfaces.php:2761
+#: src/usr/local/www/interfaces.php:2769
msgid ""
"For IEEE 802.11g, use the specified technique for protecting OFDM frames in "
"a mixed 11b/11g network."
msgstr ""
-#: src/usr/local/www/interfaces.php:2771 src/usr/local/www/interfaces.php:2819
-#: src/usr/local/www/interfaces.php:2828
-#: src/usr/local/www/vpn_ipsec_phase1.php:666
-#: src/usr/local/www/vpn_ipsec_phase1.php:851
-#: src/usr/local/www/vpn_ipsec_phase2.php:631
+#: src/usr/local/www/interfaces.php:2779 src/usr/local/www/interfaces.php:2827
+#: src/usr/local/www/interfaces.php:2836
+#: src/usr/local/www/vpn_ipsec_phase1.php:662
+#: src/usr/local/www/vpn_ipsec_phase1.php:847
+#: src/usr/local/www/vpn_ipsec_phase2.php:626
msgid "Auto"
msgstr ""
-#: src/usr/local/www/interfaces.php:2795
+#: src/usr/local/www/interfaces.php:2803
#: src/usr/local/www/status_interfaces.php:141
msgid "Channel"
msgstr ""
-#: src/usr/local/www/interfaces.php:2798
+#: src/usr/local/www/interfaces.php:2806
msgid ""
"Legend: wireless standards - channel # (frequency @ max TX power / TX power "
"allowed in reg. domain)<br />Not all channels may be supported by some "
"cards. Auto may override the wireless standard selected above."
msgstr ""
-#: src/usr/local/www/interfaces.php:2803
+#: src/usr/local/www/interfaces.php:2811
msgid "Antenna Settings"
msgstr ""
-#: src/usr/local/www/interfaces.php:2810
+#: src/usr/local/www/interfaces.php:2818
msgid "On"
msgstr ""
-#: src/usr/local/www/interfaces.php:2811
+#: src/usr/local/www/interfaces.php:2819
msgid "Diversity"
msgstr ""
-#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828
+#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836
msgid "#1"
msgstr ""
-#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828
+#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836
msgid "#2"
msgstr ""
-#: src/usr/local/www/interfaces.php:2820
+#: src/usr/local/www/interfaces.php:2828
msgid "Transmit antenna"
msgstr ""
-#: src/usr/local/www/interfaces.php:2829
+#: src/usr/local/www/interfaces.php:2837
msgid "Receive antenna"
msgstr ""
-#: src/usr/local/www/interfaces.php:2832
+#: src/usr/local/www/interfaces.php:2840
msgid ""
"Note: The antenna numbers do not always match up with the labels on the card."
msgstr ""
-#: src/usr/local/www/interfaces.php:2841
+#: src/usr/local/www/interfaces.php:2849
msgid "Distance setting (meters)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2844
+#: src/usr/local/www/interfaces.php:2852
msgid ""
"This field can be used to tune ACK/CTS timers to fit the distance between AP "
"and Client"
msgstr ""
-#: src/usr/local/www/interfaces.php:2850
+#: src/usr/local/www/interfaces.php:2858
msgid "Regulatory Settings"
msgstr ""
-#: src/usr/local/www/interfaces.php:2862
+#: src/usr/local/www/interfaces.php:2870
msgid "Regulatory domain"
msgstr ""
-#: src/usr/local/www/interfaces.php:2865
+#: src/usr/local/www/interfaces.php:2873
msgid ""
"Some cards have a default that is not recognized and require changing the "
"regulatory domain to one in this list for the changes to other regulatory "
"settings to work"
msgstr ""
-#: src/usr/local/www/interfaces.php:2880
+#: src/usr/local/www/interfaces.php:2888
msgid ""
"Any country setting other than \"Default\" will override the regulatory "
"domain setting"
msgstr ""
-#: src/usr/local/www/interfaces.php:2886
+#: src/usr/local/www/interfaces.php:2894
msgid "Indoor"
msgstr ""
-#: src/usr/local/www/interfaces.php:2886
+#: src/usr/local/www/interfaces.php:2894
msgid "Outdoor"
msgstr ""
-#: src/usr/local/www/interfaces.php:2886
+#: src/usr/local/www/interfaces.php:2894
msgid "Anywhere"
msgstr ""
-#: src/usr/local/www/interfaces.php:2884
+#: src/usr/local/www/interfaces.php:2892
msgid "Location"
msgstr ""
-#: src/usr/local/www/interfaces.php:2887
+#: src/usr/local/www/interfaces.php:2895
msgid ""
"These settings may affect which channels are available and the maximum "
"transmit power allowed on those channels. Using the correct settings to "
@@ -15146,190 +14895,190 @@ msgid ""
"additional channels that are not already supported."
msgstr ""
-#: src/usr/local/www/interfaces.php:2895
+#: src/usr/local/www/interfaces.php:2903
msgid "Network-Specific Wireless Configuration"
msgstr ""
-#: src/usr/local/www/interfaces.php:2916
+#: src/usr/local/www/interfaces.php:2924
msgid "802.11g"
msgstr ""
-#: src/usr/local/www/interfaces.php:2916
+#: src/usr/local/www/interfaces.php:2924
msgid "802.11n"
msgstr ""
-#: src/usr/local/www/interfaces.php:2914
+#: src/usr/local/www/interfaces.php:2922
msgid "Minimum wireless standard"
msgstr ""
-#: src/usr/local/www/interfaces.php:2917
+#: src/usr/local/www/interfaces.php:2925
msgid ""
"When operating as an access point, allow only stations capable of the "
"selected wireless standard to associate (stations not capable are not "
"permitted to associate)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2921
+#: src/usr/local/www/interfaces.php:2929
msgid "802.11g only"
msgstr ""
-#: src/usr/local/www/interfaces.php:2925
+#: src/usr/local/www/interfaces.php:2933
msgid ""
"When operating as an access point in 802.11g mode, allow only 11g-capable "
"stations to associate (11b-only stations are not permitted to associate)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2930
+#: src/usr/local/www/interfaces.php:2938
msgid "Allow intra-BSS communication"
msgstr ""
-#: src/usr/local/www/interfaces.php:2934
+#: src/usr/local/www/interfaces.php:2942
msgid ""
"Provides extra security by isolating clients so they cannot directly "
"communicate with one another"
msgstr ""
-#: src/usr/local/www/interfaces.php:2938
+#: src/usr/local/www/interfaces.php:2946
msgid "Enable WME"
msgstr ""
-#: src/usr/local/www/interfaces.php:2946
+#: src/usr/local/www/interfaces.php:2954
msgid "Hide SSID"
msgstr ""
-#: src/usr/local/www/interfaces.php:2955 src/usr/local/www/interfaces.php:2976
+#: src/usr/local/www/interfaces.php:2963 src/usr/local/www/interfaces.php:2984
msgid "WPA"
msgstr ""
-#: src/usr/local/www/interfaces.php:2967
+#: src/usr/local/www/interfaces.php:2975
msgid "WPA Pre-Shared Key"
msgstr ""
-#: src/usr/local/www/interfaces.php:2970
+#: src/usr/local/www/interfaces.php:2978
msgid "WPA Passphrase must be between 8 and 63 characters long"
msgstr ""
-#: src/usr/local/www/interfaces.php:2976
+#: src/usr/local/www/interfaces.php:2984
msgid "WPA2"
msgstr ""
-#: src/usr/local/www/interfaces.php:2976 src/usr/local/www/interfaces.php:2983
-#: src/usr/local/www/interfaces.php:2990 src/usr/local/www/pkg_mgr.php:158
+#: src/usr/local/www/interfaces.php:2984 src/usr/local/www/interfaces.php:2991
+#: src/usr/local/www/interfaces.php:2998 src/usr/local/www/pkg_mgr.php:158
#: src/usr/local/www/services_captiveportal_hostname_edit.php:154
#: src/usr/local/www/services_captiveportal_ip_edit.php:198
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:109
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:111
#: src/usr/local/www/services_rfc2136_edit.php:279
msgid "Both"
msgstr ""
-#: src/usr/local/www/interfaces.php:2974
+#: src/usr/local/www/interfaces.php:2982
msgid "WPA mode"
msgstr ""
-#: src/usr/local/www/interfaces.php:2983
+#: src/usr/local/www/interfaces.php:2991
#: src/usr/local/www/vpn_ipsec_keys.php:102
#: src/usr/local/www/vpn_ipsec_keys_edit.php:68
#: src/usr/local/www/vpn_ipsec_keys_edit.php:150
#: src/usr/local/www/vpn_ipsec_phase1.php:213
-#: src/usr/local/www/vpn_ipsec_phase1.php:760
+#: src/usr/local/www/vpn_ipsec_phase1.php:756
msgid "Pre-Shared Key"
msgstr ""
-#: src/usr/local/www/interfaces.php:2983
+#: src/usr/local/www/interfaces.php:2991
msgid "Extensible Authentication Protocol"
msgstr ""
-#: src/usr/local/www/interfaces.php:2981
+#: src/usr/local/www/interfaces.php:2989
msgid "WPA Key Management Mode"
msgstr ""
-#: src/usr/local/www/interfaces.php:2990
+#: src/usr/local/www/interfaces.php:2998
msgid "AES (recommended)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2990
+#: src/usr/local/www/interfaces.php:2998
msgid "TKIP"
msgstr ""
-#: src/usr/local/www/interfaces.php:2988
+#: src/usr/local/www/interfaces.php:2996
msgid "WPA Pairwise"
msgstr ""
-#: src/usr/local/www/interfaces.php:2995
+#: src/usr/local/www/interfaces.php:3003
msgid "Group Key Rotation"
msgstr ""
-#: src/usr/local/www/interfaces.php:2999
+#: src/usr/local/www/interfaces.php:3007
msgid ""
"Time between group rekey events, specified in seconds. Allowed values are "
"1-9999. Must be shorter than Master Key Regeneration time"
msgstr ""
-#: src/usr/local/www/interfaces.php:3003
+#: src/usr/local/www/interfaces.php:3011
msgid "Group Master Key Regeneration"
msgstr ""
-#: src/usr/local/www/interfaces.php:3007
+#: src/usr/local/www/interfaces.php:3015
msgid ""
"Time between GMK rekey events, specified in seconds. Allowed values are "
"1-9999. Must be longer than Group Key Rotation time"
msgstr ""
-#: src/usr/local/www/interfaces.php:3011
+#: src/usr/local/www/interfaces.php:3019
msgid "Strict Key Regeneration"
msgstr ""
-#: src/usr/local/www/interfaces.php:3019
+#: src/usr/local/www/interfaces.php:3027
msgid "802.1x RADIUS Options"
msgstr ""
-#: src/usr/local/www/interfaces.php:3023
+#: src/usr/local/www/interfaces.php:3031
msgid "IEEE802.1X"
msgstr ""
-#: src/usr/local/www/interfaces.php:3027
+#: src/usr/local/www/interfaces.php:3035
msgid "This option requires that the \"Enable WPA box\" is checked"
msgstr ""
-#: src/usr/local/www/interfaces.php:3029
+#: src/usr/local/www/interfaces.php:3037
msgid "Primary 802.1X server"
msgstr ""
-#: src/usr/local/www/interfaces.php:3035 src/usr/local/www/interfaces.php:3059
+#: src/usr/local/www/interfaces.php:3043 src/usr/local/www/interfaces.php:3067
msgid "IP address of the RADIUS server"
msgstr ""
-#: src/usr/local/www/interfaces.php:3042 src/usr/local/www/interfaces.php:3066
+#: src/usr/local/www/interfaces.php:3050 src/usr/local/www/interfaces.php:3074
msgid "Server auth port. Default is 1812"
msgstr ""
-#: src/usr/local/www/interfaces.php:3046 src/usr/local/www/interfaces.php:3070
+#: src/usr/local/www/interfaces.php:3054 src/usr/local/www/interfaces.php:3078
#: src/usr/local/www/system_authservers.php:271
#: src/usr/local/www/system_authservers.php:735
msgid "Shared Secret"
msgstr ""
-#: src/usr/local/www/interfaces.php:3049 src/usr/local/www/interfaces.php:3073
+#: src/usr/local/www/interfaces.php:3057 src/usr/local/www/interfaces.php:3081
msgid "RADIUS Shared secret for this firewall"
msgstr ""
-#: src/usr/local/www/interfaces.php:3053
+#: src/usr/local/www/interfaces.php:3061
msgid "Secondary 802.1X server"
msgstr ""
-#: src/usr/local/www/interfaces.php:3079
+#: src/usr/local/www/interfaces.php:3087
msgid "Authentication Roaming Preauth"
msgstr ""
-#: src/usr/local/www/interfaces.php:3088
+#: src/usr/local/www/interfaces.php:3096
msgid "Reserved Networks"
msgstr ""
-#: src/usr/local/www/interfaces.php:3092
+#: src/usr/local/www/interfaces.php:3100
msgid "Block private networks and loopback addresses"
msgstr ""
-#: src/usr/local/www/interfaces.php:3096
+#: src/usr/local/www/interfaces.php:3104
msgid ""
"Blocks traffic from IP addresses that are reserved for private networks per "
"RFC 1918 (10/8, 172.16/12, 192.168/16) and unique local addresses per RFC "
@@ -15338,7 +15087,7 @@ msgid ""
"private address space, too."
msgstr ""
-#: src/usr/local/www/interfaces.php:3106
+#: src/usr/local/www/interfaces.php:3114
msgid ""
"Blocks traffic from reserved IP addresses (but not RFC 1918) or not yet "
"assigned by IANA. Bogons are prefixes that should never appear in the "
@@ -15347,11 +15096,11 @@ msgid ""
"System->Advanced Firewall/NAT settings."
msgstr ""
-#: src/usr/local/www/interfaces.php:3137
+#: src/usr/local/www/interfaces.php:3145
msgid "New Gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:3155
+#: src/usr/local/www/interfaces.php:3163
#: src/usr/local/www/status_interfaces.php:121
msgid "Gateway IPv4"
msgstr ""
@@ -15503,7 +15252,7 @@ msgstr ""
#: src/usr/local/www/interfaces_lagg.php:90
#: src/usr/local/www/interfaces_ppps.php:73
#: src/usr/local/www/interfaces_ppps.php:83
-#: src/usr/local/www/interfaces_ppps_edit.php:440
+#: src/usr/local/www/interfaces_ppps_edit.php:460
#: src/usr/local/www/interfaces_qinq.php:94
#: src/usr/local/www/interfaces_vlan.php:88
#: src/usr/local/www/interfaces_wireless.php:85
@@ -15620,7 +15369,7 @@ msgstr ""
#: src/usr/local/www/interfaces_groups.php:80
#: src/usr/local/www/interfaces_lagg.php:105
#: src/usr/local/www/load_balancer_pool_edit.php:387
-#: src/usr/local/www/system_groupmanager.php:440
+#: src/usr/local/www/system_groupmanager.php:434
msgid "Members"
msgstr ""
@@ -15717,11 +15466,11 @@ msgid "Interfaces participating in the bridge."
msgstr ""
#: src/usr/local/www/interfaces_bridge_edit.php:430
-#: src/usr/local/www/interfaces_ppps_edit.php:814
-#: src/usr/local/www/vpn_ipsec_phase2.php:677
+#: src/usr/local/www/interfaces_ppps_edit.php:836
+#: src/usr/local/www/vpn_ipsec_phase2.php:672
#: src/usr/local/www/vpn_openvpn_client.php:745
-#: src/usr/local/www/vpn_openvpn_server.php:1126
-#: src/usr/local/www/interfaces.php:1894 src/usr/local/www/interfaces.php:2077
+#: src/usr/local/www/vpn_openvpn_server.php:1137
+#: src/usr/local/www/interfaces.php:1897 src/usr/local/www/interfaces.php:2080
msgid "Advanced Configuration"
msgstr ""
@@ -16172,12 +15921,12 @@ msgid "Add Static Route"
msgstr ""
#: src/usr/local/www/interfaces_groups.php:112
-#: src/usr/local/www/system_groupmanager.php:321
+#: src/usr/local/www/system_groupmanager.php:315
msgid "Edit group"
msgstr ""
#: src/usr/local/www/interfaces_groups.php:113
-#: src/usr/local/www/system_groupmanager.php:323
+#: src/usr/local/www/system_groupmanager.php:317
msgid "Delete group"
msgstr ""
@@ -16206,7 +15955,7 @@ msgstr ""
#: src/usr/local/www/system_gateway_groups_edit.php:208
#: src/usr/local/www/system_gateway_groups_edit.php:265
#: src/usr/local/www/system_gateway_groups_edit.php:294
-#: src/usr/local/www/system_groupmanager.php:144
+#: src/usr/local/www/system_groupmanager.php:140
msgid "Group Name"
msgstr ""
@@ -16394,100 +16143,100 @@ msgstr ""
msgid "Delete PPP interface"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:200
-#: src/usr/local/www/interfaces_ppps_edit.php:206
-#: src/usr/local/www/interfaces_ppps_edit.php:209
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
-#: src/usr/local/www/interfaces_ppps_edit.php:565
+#: src/usr/local/www/interfaces_ppps_edit.php:204
+#: src/usr/local/www/interfaces_ppps_edit.php:210
+#: src/usr/local/www/interfaces_ppps_edit.php:213
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
+#: src/usr/local/www/interfaces_ppps_edit.php:585
msgid "Link Interface(s)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:217
-#: src/usr/local/www/interfaces_ppps_edit.php:220
-#: src/usr/local/www/services_dhcp.php:790
-#: src/usr/local/www/services_dhcpv6.php:582
+#: src/usr/local/www/interfaces_ppps_edit.php:221
+#: src/usr/local/www/interfaces_ppps_edit.php:224
+#: src/usr/local/www/services_dhcp.php:803
+#: src/usr/local/www/services_dhcpv6.php:577
msgid "Subnet"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:225
+#: src/usr/local/www/interfaces_ppps_edit.php:229
msgid "Please choose a Link Type."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:235
+#: src/usr/local/www/interfaces_ppps_edit.php:239
#: src/usr/local/www/services_captiveportal_vouchers.php:249
#: src/usr/local/www/services_checkip_edit.php:74
#: src/usr/local/www/services_dyndns_edit.php:111
msgid "Password and confirmed password must match."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:238
+#: src/usr/local/www/interfaces_ppps_edit.php:242
msgid ""
"Multilink connections (MLPPP) using the PPP link type is not currently "
"supported. Please select only one Link Interface."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:241
+#: src/usr/local/www/interfaces_ppps_edit.php:245
msgid "The Service name contains invalid characters."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:244
+#: src/usr/local/www/interfaces_ppps_edit.php:248
msgid "Do not specify both a Service name and a NULL Service name."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:263
+#: src/usr/local/www/interfaces_ppps_edit.php:267
msgid ""
"A valid PPPoE reset month must be specified (1-12) in the Custom PPPoE "
"Periodic reset fields."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:266
+#: src/usr/local/www/interfaces_ppps_edit.php:270
msgid ""
"A valid PPPoE reset day of month must be specified (1-31) in the Custom "
"PPPoE Periodic reset fields. No checks are done on valid # of days per month"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:269
+#: src/usr/local/www/interfaces_ppps_edit.php:273
msgid ""
"A valid PPPoE reset year must be specified. Don't select a year in the past!"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:277
+#: src/usr/local/www/interfaces_ppps_edit.php:281
#, php-format
msgid "A valid local IP address must be specified for %s."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:280
+#: src/usr/local/www/interfaces_ppps_edit.php:284
#, php-format
msgid "A valid gateway IP address OR hostname must be specified for %s."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:283
+#: src/usr/local/www/interfaces_ppps_edit.php:287
#, php-format
msgid "The bandwidth value for %s must be an integer."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:286
+#: src/usr/local/www/interfaces_ppps_edit.php:290
#, php-format
msgid "The MTU for %s must be greater than 576 bytes."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:289
+#: src/usr/local/www/interfaces_ppps_edit.php:293
#, php-format
msgid "The MRU for %s must be greater than 576 bytes."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:306
+#: src/usr/local/www/interfaces_ppps_edit.php:310
#, php-format
msgid ""
"The MTU (%d) is too big for %s (maximum allowed with current settings: %d)."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:444
+#: src/usr/local/www/interfaces_ppps_edit.php:464
msgid "Select"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:545
+#: src/usr/local/www/interfaces_ppps_edit.php:565
msgid ""
"Bandwidth is set only for MLPPP connections and when links have different "
"bandwidths<br />MTU defaults to 1492<br />MRU will be auto-negotiated by "
@@ -16495,132 +16244,132 @@ msgid ""
"default."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:556
-msgid "Link Type"
-msgstr ""
-
-#: src/usr/local/www/interfaces_ppps_edit.php:569
+#: src/usr/local/www/interfaces_ppps_edit.php:589
msgid "Select at least two interfaces for Multilink (MLPPP) connections."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:576
+#: src/usr/local/www/interfaces_ppps_edit.php:596
msgid ""
"A description may be entered here for administrative reference. Description "
"will appear in the \"Interfaces Assign\" select lists."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:618
+#: src/usr/local/www/interfaces_ppps_edit.php:638
msgid "IP/Gateway ("
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:631
-msgid "IP or Hostname"
+#: src/usr/local/www/interfaces_ppps_edit.php:644
+msgid "Local IP Address"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:646
+#: src/usr/local/www/interfaces_ppps_edit.php:651
+msgid "Gateway IP or Hostname"
+msgstr ""
+
+#: src/usr/local/www/interfaces_ppps_edit.php:666
msgid "Typically *99# for GSM networks and #777 for CDMA networks"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:651
+#: src/usr/local/www/interfaces_ppps_edit.php:671
msgid "Access Point Name (APN)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:658
+#: src/usr/local/www/interfaces_ppps_edit.php:678
msgid "APN number (optional)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:661
+#: src/usr/local/www/interfaces_ppps_edit.php:681
msgid "Defaults to 1 if APN is set. Ignored if no APN is set."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:665
+#: src/usr/local/www/interfaces_ppps_edit.php:685
msgid "SIM PIN"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:672
+#: src/usr/local/www/interfaces_ppps_edit.php:692
msgid "SIM PIN wait"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:675
+#: src/usr/local/www/interfaces_ppps_edit.php:695
msgid ""
"Time to wait for SIM to discover network after PIN is sent to SIM (seconds)."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:679
+#: src/usr/local/www/interfaces_ppps_edit.php:699
msgid "Init string"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:682
+#: src/usr/local/www/interfaces_ppps_edit.php:702
msgid ""
"Enter the modem initialization string here. Do NOT include the \"AT\" string "
"at the beginning of the command. Many modern USB 3G modems don't need an "
"initialization string."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:687
+#: src/usr/local/www/interfaces_ppps_edit.php:707
msgid "Connection Timeout"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:690
+#: src/usr/local/www/interfaces_ppps_edit.php:710
msgid ""
"Enter timeout in seconds for connection to be established (sec.) Default is "
"45 sec."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:694
+#: src/usr/local/www/interfaces_ppps_edit.php:714
msgid "Uptime logging"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:716
+#: src/usr/local/www/interfaces_ppps_edit.php:737
msgid ""
"This field can usually be left empty. Service name will not be configured if "
"this field is empty. Check the \"Configure NULL\" box to configure a blank "
"Service name."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:723
+#: src/usr/local/www/interfaces_ppps_edit.php:745
msgid "Periodic Reset"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:730
+#: src/usr/local/www/interfaces_ppps_edit.php:752
msgid "Select a reset timing type"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:732
+#: src/usr/local/www/interfaces_ppps_edit.php:754
msgid "Reset Date/Time"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:740
+#: src/usr/local/www/interfaces_ppps_edit.php:762
msgid "Hour"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:747
+#: src/usr/local/www/interfaces_ppps_edit.php:769
msgid "Minute"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:755
+#: src/usr/local/www/interfaces_ppps_edit.php:777
msgid "Specific date"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:757
+#: src/usr/local/www/interfaces_ppps_edit.php:779
msgid ""
"Leaving the date field empty will cause the reset to be executed each day at "
"the time specified in the minutes and hour fields. "
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:761
+#: src/usr/local/www/interfaces_ppps_edit.php:783
msgid "Reset frequency"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:808
+#: src/usr/local/www/interfaces_ppps_edit.php:830
msgid "Advanced options"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:819
+#: src/usr/local/www/interfaces_ppps_edit.php:841
msgid "Dial On Demand"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:822
+#: src/usr/local/www/interfaces_ppps_edit.php:844
msgid ""
"Causes the interface to operate in dial-on-demand mode. Do NOT enable if the "
"link is to remain continuously connected. The interface is configured, but "
@@ -16628,11 +16377,11 @@ msgid ""
"traffic is detected."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:827
+#: src/usr/local/www/interfaces_ppps_edit.php:849
msgid "Idle Timeout"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:830
+#: src/usr/local/www/interfaces_ppps_edit.php:852
msgid ""
"If no incoming or outgoing packets are transmitted for the entered number of "
"seconds the connection is brought down. When the idle timeout occurs, if the "
@@ -16640,13 +16389,13 @@ msgid ""
"Otherwise, the interface is brought down and all associated routes removed."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:836
+#: src/usr/local/www/interfaces_ppps_edit.php:858
#: src/usr/local/www/vpn_openvpn_client.php:703
-#: src/usr/local/www/vpn_openvpn_server.php:919
+#: src/usr/local/www/vpn_openvpn_server.php:923
msgid "Compression"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:839
+#: src/usr/local/www/interfaces_ppps_edit.php:861
msgid ""
"Disable vjcomp(compression) (auto-negotiated by default).<br />This option "
"enables Van Jacobson TCP header compression, which saves several bytes per "
@@ -16655,11 +16404,11 @@ msgid ""
"stamping or SACK, which modify TCP options between sequential packets."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:846
+#: src/usr/local/www/interfaces_ppps_edit.php:868
msgid "TCPmssFix"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:849
+#: src/usr/local/www/interfaces_ppps_edit.php:871
msgid ""
"Causes mpd to adjust incoming and outgoing TCP SYN segments so that the "
"requested maximum segment size is not greater than the amount allowed by the "
@@ -16674,11 +16423,11 @@ msgid ""
"outgoing data."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:857
+#: src/usr/local/www/interfaces_ppps_edit.php:879
msgid "ShortSeq"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:860
+#: src/usr/local/www/interfaces_ppps_edit.php:882
msgid ""
"This option is only meaningful if multi-link PPP is negotiated. It "
"proscribes shorter multi-link fragment headers, saving two bytes on every "
@@ -16686,35 +16435,35 @@ msgid ""
"multi-link."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:865
+#: src/usr/local/www/interfaces_ppps_edit.php:887
msgid "ACFComp"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:868
+#: src/usr/local/www/interfaces_ppps_edit.php:890
msgid ""
"Address and control field compression. This option only applies to "
"asynchronous link types. It saves two bytes per frame."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:872
+#: src/usr/local/www/interfaces_ppps_edit.php:894
msgid "ProtoComp"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:875
+#: src/usr/local/www/interfaces_ppps_edit.php:897
msgid ""
"Protocol field compression. This option saves one byte per frame for most "
"frames."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:881
+#: src/usr/local/www/interfaces_ppps_edit.php:903
msgid "Link Parameters ("
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:902
+#: src/usr/local/www/interfaces_ppps_edit.php:924
msgid "MRU"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:909
+#: src/usr/local/www/interfaces_ppps_edit.php:931
msgid "MRRU"
msgstr ""
@@ -16975,11 +16724,27 @@ msgid ""
"rights reserved."
msgstr ""
-#: src/usr/local/www/license.php:51
+#: src/usr/local/www/license.php:37
+msgid ""
+"Licensed under the Apache License, Version 2.0 (the \"License\");<br />you "
+"may not use this file except in compliance with the License.<br />You may "
+"obtain a copy of the License at"
+msgstr ""
+
+#: src/usr/local/www/license.php:39
+msgid ""
+"Unless required by applicable law or agreed to in writing, software<br /"
+">distributed under the License is distributed on an \"AS IS\" BASIS,<br /"
+">WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."
+"<br />See the License for the specific language governing permissions "
+"and<br />limitations under the License."
+msgstr ""
+
+#: src/usr/local/www/license.php:43
msgid "Third Party Credits"
msgstr ""
-#: src/usr/local/www/license.php:54
+#: src/usr/local/www/license.php:46
#, php-format
msgid ""
"%s is based upon/includes various free software packages, listed below. The "
@@ -16987,75 +16752,75 @@ msgid ""
"their efforts."
msgstr ""
-#: src/usr/local/www/license.php:59 src/usr/local/www/license.php:63
-#: src/usr/local/www/license.php:70 src/usr/local/www/license.php:74
-#: src/usr/local/www/license.php:82 src/usr/local/www/license.php:83
+#: src/usr/local/www/license.php:51 src/usr/local/www/license.php:55
+#: src/usr/local/www/license.php:62 src/usr/local/www/license.php:66
+#: src/usr/local/www/license.php:74 src/usr/local/www/license.php:75
+#: src/usr/local/www/license.php:79 src/usr/local/www/license.php:83
#: src/usr/local/www/license.php:87 src/usr/local/www/license.php:91
-#: src/usr/local/www/license.php:95 src/usr/local/www/license.php:99
-#: src/usr/local/www/license.php:103 src/usr/local/www/license.php:108
-#: src/usr/local/www/license.php:112 src/usr/local/www/license.php:116
-#: src/usr/local/www/license.php:120 src/usr/local/www/license.php:121
-#: src/usr/local/www/license.php:125 src/usr/local/www/license.php:129
-#: src/usr/local/www/license.php:134 src/usr/local/www/license.php:144
-#: src/usr/local/www/license.php:148 src/usr/local/www/license.php:152
-#: src/usr/local/www/license.php:160 src/usr/local/www/license.php:161
+#: src/usr/local/www/license.php:95 src/usr/local/www/license.php:100
+#: src/usr/local/www/license.php:104 src/usr/local/www/license.php:108
+#: src/usr/local/www/license.php:112 src/usr/local/www/license.php:113
+#: src/usr/local/www/license.php:117 src/usr/local/www/license.php:121
+#: src/usr/local/www/license.php:126 src/usr/local/www/license.php:136
+#: src/usr/local/www/license.php:140 src/usr/local/www/license.php:144
+#: src/usr/local/www/license.php:152 src/usr/local/www/license.php:153
+#: src/usr/local/www/license.php:157 src/usr/local/www/license.php:161
#: src/usr/local/www/license.php:165 src/usr/local/www/license.php:169
#: src/usr/local/www/license.php:173 src/usr/local/www/license.php:177
-#: src/usr/local/www/license.php:181 src/usr/local/www/license.php:185
-#: src/usr/local/www/license.php:189 src/usr/local/www/license.php:197
-#: src/usr/local/www/license.php:201
+#: src/usr/local/www/license.php:181 src/usr/local/www/license.php:189
+#: src/usr/local/www/license.php:193
msgid "Copyright"
msgstr ""
-#: src/usr/local/www/license.php:59
+#: src/usr/local/www/license.php:51
msgid "1992-2016 The FreeBSD Project. All rights reserved."
msgstr ""
-#: src/usr/local/www/license.php:62
+#: src/usr/local/www/license.php:54
msgid "This product includes"
msgstr ""
-#: src/usr/local/www/license.php:62
+#: src/usr/local/www/license.php:54
msgid "freely available from"
msgstr ""
-#: src/usr/local/www/license.php:63
+#: src/usr/local/www/license.php:55
msgid "1999-2016 The PHP Group. All rights reserved."
msgstr ""
-#: src/usr/local/www/license.php:120
+#: src/usr/local/www/license.php:112
msgid "2004-2013 Internet Software Consortium, Inc."
msgstr ""
-#: src/usr/local/www/license.php:121
+#: src/usr/local/www/license.php:113
msgid "1995-2003 Internet Software Consortium"
msgstr ""
-#: src/usr/local/www/license.php:130 src/usr/local/www/license.php:135
+#: src/usr/local/www/license.php:122 src/usr/local/www/license.php:127
msgid "All rights reserved."
msgstr ""
-#: src/usr/local/www/license.php:134
+#: src/usr/local/www/license.php:126
msgid "2011-2016 Nginx, Inc."
msgstr ""
-#: src/usr/local/www/license.php:139
+#: src/usr/local/www/license.php:131
msgid "Copyright 2000, 2001, 2002 by Edwin Groothuis. All rights reserved."
msgstr ""
-#: src/usr/local/www/license.php:140
+#: src/usr/local/www/license.php:132
msgid "This product includes software developed by Edwin Groothuis."
msgstr ""
-#: src/usr/local/www/license.php:144
+#: src/usr/local/www/license.php:136
msgid "2005-2016 University of Applied Sciences Rapperswil"
msgstr ""
-#: src/usr/local/www/license.php:156
+#: src/usr/local/www/license.php:148
msgid "Copyright (C) 2002-2016 OpenVPN Solutions LLC "
msgstr ""
-#: src/usr/local/www/license.php:193
+#: src/usr/local/www/license.php:185
msgid "Public Domain"
msgstr ""
@@ -17174,12 +16939,12 @@ msgid "TCP"
msgstr ""
#: src/usr/local/www/load_balancer_monitor_edit.php:206
-#: src/usr/local/www/system_advanced_admin.php:314
+#: src/usr/local/www/system_advanced_admin.php:312
msgid "HTTP"
msgstr ""
#: src/usr/local/www/load_balancer_monitor_edit.php:206
-#: src/usr/local/www/system_advanced_admin.php:322
+#: src/usr/local/www/system_advanced_admin.php:320
msgid "HTTPS"
msgstr ""
@@ -17245,18 +17010,18 @@ msgid "Pool"
msgstr ""
#: src/usr/local/www/load_balancer_pool.php:122
-#: src/usr/local/www/services_dhcp.php:873
+#: src/usr/local/www/services_dhcp.php:886
#: src/usr/local/www/status_lb_pool.php:131
#: src/usr/local/www/status_lb_vs.php:64
#: src/usr/local/www/vpn_openvpn_client.php:414
#: src/usr/local/www/vpn_openvpn_csc.php:296
-#: src/usr/local/www/vpn_openvpn_server.php:559
-#: src/usr/local/www/vpn_openvpn_server.php:581
+#: src/usr/local/www/vpn_openvpn_server.php:563
+#: src/usr/local/www/vpn_openvpn_server.php:585
msgid "Servers"
msgstr ""
#: src/usr/local/www/load_balancer_pool.php:163
-#: src/usr/local/www/services_dhcp.php:677
+#: src/usr/local/www/services_dhcp.php:683
msgid "Edit pool"
msgstr ""
@@ -17265,7 +17030,7 @@ msgid "Copy pool"
msgstr ""
#: src/usr/local/www/load_balancer_pool.php:165
-#: src/usr/local/www/services_dhcp.php:679
+#: src/usr/local/www/services_dhcp.php:685
msgid "Delete pool"
msgstr ""
@@ -17631,7 +17396,7 @@ msgstr ""
msgid "Advanced Features"
msgstr ""
-#: src/usr/local/www/pkg_edit.php:721 src/usr/local/www/services_dhcp.php:752
+#: src/usr/local/www/pkg_edit.php:721 src/usr/local/www/services_dhcp.php:758
msgid "General Options"
msgstr ""
@@ -17651,13 +17416,13 @@ msgstr ""
msgid "Visit official website"
msgstr ""
-#: src/usr/local/www/pkg_mgr.php:91 src/usr/local/www/pkg_mgr_installed.php:146
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:108
+#: src/usr/local/www/pkg_mgr.php:91 src/usr/local/www/pkg_mgr_installed.php:144
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:106
msgid "View changelog"
msgstr ""
#: src/usr/local/www/pkg_mgr.php:102
-#: src/usr/local/www/pkg_mgr_installed.php:157
+#: src/usr/local/www/pkg_mgr_installed.php:155
msgid "Package Dependencies"
msgstr ""
@@ -17666,21 +17431,21 @@ msgid "Click to install"
msgstr ""
#: src/usr/local/www/pkg_mgr.php:116
-#: src/usr/local/www/pkg_mgr_installed.php:178
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:128
+#: src/usr/local/www/pkg_mgr_installed.php:175
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:126
msgid "View more information"
msgstr ""
#: src/usr/local/www/pkg_mgr.php:129 src/usr/local/www/pkg_mgr.php:134
#: src/usr/local/www/pkg_mgr_install.php:244
-#: src/usr/local/www/pkg_mgr_installed.php:213
+#: src/usr/local/www/pkg_mgr_installed.php:208
msgid "Available Packages"
msgstr ""
#: src/usr/local/www/pkg_mgr.php:133 src/usr/local/www/pkg_mgr_install.php:243
-#: src/usr/local/www/pkg_mgr_installed.php:71
-#: src/usr/local/www/pkg_mgr_installed.php:208
-#: src/usr/local/www/pkg_mgr_installed.php:212
+#: src/usr/local/www/pkg_mgr_installed.php:203
+#: src/usr/local/www/pkg_mgr_installed.php:207
+#: src/usr/local/www/pkg_mgr_installed.php:214
#: src/usr/local/www/widgets/include/installed_packages.inc:24
msgid "Installed Packages"
msgstr ""
@@ -17700,18 +17465,17 @@ msgid ""
msgstr ""
#: src/usr/local/www/pkg_mgr.php:173
-#: src/usr/local/www/pkg_mgr_installed.php:219
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146
msgid "Packages"
msgstr ""
#: src/usr/local/www/pkg_mgr.php:176
-#: src/usr/local/www/pkg_mgr_installed.php:222
+#: src/usr/local/www/pkg_mgr_installed.php:217
msgid "Please wait while the list of packages is retrieved and formatted."
msgstr ""
#: src/usr/local/www/pkg_mgr.php:180
-#: src/usr/local/www/pkg_mgr_installed.php:226
+#: src/usr/local/www/pkg_mgr_installed.php:221
msgid "Unable to retrieve package information."
msgstr ""
@@ -17721,13 +17485,13 @@ msgstr ""
#: src/usr/local/www/pkg_mgr_install.php:238
#: src/usr/local/www/pkg_mgr_install.php:239
-#: src/usr/local/www/system_update_settings.php:121
+#: src/usr/local/www/system_update_settings.php:116
msgid "System Update"
msgstr ""
#: src/usr/local/www/pkg_mgr_install.php:240
#: src/usr/local/www/system_update_settings.php:77
-#: src/usr/local/www/system_update_settings.php:122
+#: src/usr/local/www/system_update_settings.php:117
msgid "Update Settings"
msgstr ""
@@ -17896,88 +17660,67 @@ msgstr ""
msgid "This may take several minutes!"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:78
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:51
+#: src/usr/local/www/pkg_mgr_installed.php:76
msgid "Category"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:101
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:71
+#: src/usr/local/www/pkg_mgr_installed.php:99
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:70
msgid "Package is configured, but not installed!"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:107
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:77
+#: src/usr/local/www/pkg_mgr_installed.php:105
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:76
#, php-format
msgid "Newer than available (%s)"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:110
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:81
+#: src/usr/local/www/pkg_mgr_installed.php:108
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:80
#, php-format
msgid "Upgrade available to %s"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:116
+#: src/usr/local/www/pkg_mgr_installed.php:114
msgid "Up-to-date"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:118
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:92
+#: src/usr/local/www/pkg_mgr_installed.php:116
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:91
msgid "Error comparing version"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:166
+#: src/usr/local/www/pkg_mgr_installed.php:163
#, php-format
msgid "Remove package %s"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:170
+#: src/usr/local/www/pkg_mgr_installed.php:167
#, php-format
msgid "Update package %s"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:173
+#: src/usr/local/www/pkg_mgr_installed.php:170
#, php-format
msgid "Reinstall package %s"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:194
+#: src/usr/local/www/pkg_mgr_installed.php:190
msgid "Current"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:201
+#: src/usr/local/www/pkg_mgr_installed.php:197
msgid "Newer version available"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:202
+#: src/usr/local/www/pkg_mgr_installed.php:198
msgid "Package is configured but not (fully) installed"
msgstr ""
-#: src/usr/local/www/pkg_mgr_installed.php:230
+#: src/usr/local/www/pkg_mgr_installed.php:225
msgid "There are no packages currently installed."
msgstr ""
-#: src/usr/local/www/restart_httpd.php:32
-msgid "Restarting httpd"
-msgstr ""
-
-#: src/usr/local/www/restart_httpd.php:39
-msgid "Mounting file systems read/write"
-msgstr ""
-
-#: src/usr/local/www/restart_httpd.php:42
-msgid "Forcing all PHP file permissions to 0755"
-msgstr ""
-
-#: src/usr/local/www/restart_httpd.php:45
-msgid "Mounting file systems read only"
-msgstr ""
-
-#: src/usr/local/www/restart_httpd.php:48
-msgid "Restarting mini_httpd"
-msgstr ""
-
#: src/usr/local/www/services_captiveportal.php:84
#, php-format
msgid "Captive Portal: zone %s: Restore default portal page"
@@ -18083,45 +17826,45 @@ msgid ""
msgstr ""
#: src/usr/local/www/services_captiveportal.php:531
-#: src/usr/local/www/services_captiveportal_filemanager.php:141
+#: src/usr/local/www/services_captiveportal_filemanager.php:139
#: src/usr/local/www/services_captiveportal_hostname.php:106
#: src/usr/local/www/services_captiveportal_ip.php:100
#: src/usr/local/www/services_captiveportal_mac.php:59
#: src/usr/local/www/services_captiveportal_mac.php:165
#: src/usr/local/www/services_captiveportal_mac_edit.php:69
-#: src/usr/local/www/services_captiveportal_vouchers.php:406
+#: src/usr/local/www/services_captiveportal_vouchers.php:375
msgid "MACs"
msgstr ""
#: src/usr/local/www/services_captiveportal.php:532
-#: src/usr/local/www/services_captiveportal_filemanager.php:142
+#: src/usr/local/www/services_captiveportal_filemanager.php:140
#: src/usr/local/www/services_captiveportal_hostname.php:107
#: src/usr/local/www/services_captiveportal_ip.php:62
#: src/usr/local/www/services_captiveportal_ip.php:101
#: src/usr/local/www/services_captiveportal_ip_edit.php:66
#: src/usr/local/www/services_captiveportal_mac.php:166
-#: src/usr/local/www/services_captiveportal_vouchers.php:407
+#: src/usr/local/www/services_captiveportal_vouchers.php:376
msgid "Allowed IP Addresses"
msgstr ""
#: src/usr/local/www/services_captiveportal.php:533
-#: src/usr/local/www/services_captiveportal_filemanager.php:143
+#: src/usr/local/www/services_captiveportal_filemanager.php:141
#: src/usr/local/www/services_captiveportal_hostname.php:62
#: src/usr/local/www/services_captiveportal_hostname.php:108
#: src/usr/local/www/services_captiveportal_hostname_edit.php:64
#: src/usr/local/www/services_captiveportal_ip.php:102
#: src/usr/local/www/services_captiveportal_mac.php:167
-#: src/usr/local/www/services_captiveportal_vouchers.php:408
+#: src/usr/local/www/services_captiveportal_vouchers.php:377
msgid "Allowed Hostnames"
msgstr ""
#: src/usr/local/www/services_captiveportal.php:534
-#: src/usr/local/www/services_captiveportal_filemanager.php:144
+#: src/usr/local/www/services_captiveportal_filemanager.php:142
#: src/usr/local/www/services_captiveportal_hostname.php:109
#: src/usr/local/www/services_captiveportal_ip.php:103
#: src/usr/local/www/services_captiveportal_mac.php:168
#: src/usr/local/www/services_captiveportal_vouchers.php:78
-#: src/usr/local/www/services_captiveportal_vouchers.php:409
+#: src/usr/local/www/services_captiveportal_vouchers.php:378
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:53
#: src/usr/local/www/status_captiveportal_expire.php:81
#: src/usr/local/www/status_captiveportal_test.php:89
@@ -18130,11 +17873,11 @@ msgstr ""
#: src/usr/local/www/services_captiveportal.php:535
#: src/usr/local/www/services_captiveportal_filemanager.php:67
-#: src/usr/local/www/services_captiveportal_filemanager.php:145
+#: src/usr/local/www/services_captiveportal_filemanager.php:143
#: src/usr/local/www/services_captiveportal_hostname.php:110
#: src/usr/local/www/services_captiveportal_ip.php:104
#: src/usr/local/www/services_captiveportal_mac.php:169
-#: src/usr/local/www/services_captiveportal_vouchers.php:410
+#: src/usr/local/www/services_captiveportal_vouchers.php:379
msgid "File Manager"
msgstr ""
@@ -18481,7 +18224,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/services_captiveportal.php:1033
-#: src/usr/local/www/system_advanced_admin.php:339
+#: src/usr/local/www/system_advanced_admin.php:337
msgid "SSL Certificate"
msgstr ""
@@ -18595,33 +18338,33 @@ msgstr ""
msgid "The total size of all files uploaded may not exceed %s."
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:154
+#: src/usr/local/www/services_captiveportal_filemanager.php:152
msgid "Upload a New File"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:165
+#: src/usr/local/www/services_captiveportal_filemanager.php:163
msgid "File"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:184
+#: src/usr/local/www/services_captiveportal_filemanager.php:182
msgid "Installed Files"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:204
+#: src/usr/local/www/services_captiveportal_filemanager.php:202
msgid "Delete file"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:215
+#: src/usr/local/www/services_captiveportal_filemanager.php:213
msgid "Total"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:245
+#: src/usr/local/www/services_captiveportal_filemanager.php:243
#: src/usr/local/www/services_ntpd_gps.php:207
#: src/usr/local/www/services_ntpd_pps.php:126
msgid "Notes"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:247
+#: src/usr/local/www/services_captiveportal_filemanager.php:245
msgid ""
"Any files that are uploaded here with the filename prefix of captiveportal- "
"will be made available in the root directory of the captive portal HTTP(S) "
@@ -18632,18 +18375,18 @@ msgid ""
"portal page like this:"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:254
+#: src/usr/local/www/services_captiveportal_filemanager.php:252
msgid ""
"In addition, .php files can also be uploaded for execution.\tThe filename "
"can be passed to the custom page from the initial page by using text similar "
"to:"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:256
+#: src/usr/local/www/services_captiveportal_filemanager.php:254
msgid "Acceptable usage policy"
msgstr ""
-#: src/usr/local/www/services_captiveportal_filemanager.php:257
+#: src/usr/local/www/services_captiveportal_filemanager.php:255
#, php-format
msgid "The total size limit for all files is %s."
msgstr ""
@@ -18773,8 +18516,8 @@ msgid "Allowed IP address"
msgstr ""
#: src/usr/local/www/services_captiveportal_ip_edit.php:96
-#: src/usr/local/www/services_dhcp.php:795
-#: src/usr/local/www/services_dhcp.php:823
+#: src/usr/local/www/services_dhcp.php:808
+#: src/usr/local/www/services_dhcp.php:836
#: src/usr/local/www/services_pppoe_edit.php:342
msgid "Subnet mask"
msgstr ""
@@ -18943,7 +18686,7 @@ msgid "magic"
msgstr ""
#: src/usr/local/www/services_captiveportal_vouchers.php:213
-#: src/usr/local/www/services_captiveportal_vouchers.php:563
+#: src/usr/local/www/services_captiveportal_vouchers.php:532
msgid "Synchronize Voucher Database IP"
msgstr ""
@@ -18995,50 +18738,19 @@ msgstr ""
msgid "The voucher database cannot be sync'd to this host (itself)."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:320
-#, php-format
-msgid "voucher XMLRPC sync data %s:%d"
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:326
-#, php-format
-msgid ""
-"A communications error occurred while attempting CaptivePortalVoucherSync "
-"XMLRPC sync with %s:%d (pfsense.exec_php)."
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:328
-msgid "Communications error occurred"
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:333
-#, php-format
-msgid ""
-"An error code was received while attempting CaptivePortalVoucherSync XMLRPC "
-"sync with %s:%d - Code %d: %s"
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:335
-msgid "Error code received"
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:338
+#: src/usr/local/www/services_captiveportal_vouchers.php:315
#, php-format
msgid ""
-"The Captive Portal voucher database has been synchronized with %s:%d "
-"(pfsense.exec_php)."
-msgstr ""
-
-#: src/usr/local/www/services_captiveportal_vouchers.php:344
-msgid "Could not synchronize the voucher database: Authentication Failed."
+"The Captive Portal voucher database has been synchronized with %s (pfsense."
+"exec_php)."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:378
+#: src/usr/local/www/services_captiveportal_vouchers.php:347
#, php-format
-msgid "Voucher database has been synchronized from %1$s:%2$s"
+msgid "Voucher database has been synchronized from %1$s"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:416
+#: src/usr/local/www/services_captiveportal_vouchers.php:385
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:184
#: src/usr/local/www/status_captiveportal.php:109
#: src/usr/local/www/status_captiveportal_expire.php:70
@@ -19049,92 +18761,92 @@ msgstr ""
msgid "Voucher Rolls"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:422
+#: src/usr/local/www/services_captiveportal_vouchers.php:391
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:188
msgid "Roll #"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:423
+#: src/usr/local/www/services_captiveportal_vouchers.php:392
#: src/usr/local/www/status_captiveportal_voucher_rolls.php:77
msgid "Minutes/Ticket"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:424
+#: src/usr/local/www/services_captiveportal_vouchers.php:393
#: src/usr/local/www/status_captiveportal_voucher_rolls.php:78
msgid "# of Tickets"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:425
+#: src/usr/local/www/services_captiveportal_vouchers.php:394
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:209
#: src/usr/local/www/status_captiveportal_voucher_rolls.php:79
msgid "Comment"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:449
+#: src/usr/local/www/services_captiveportal_vouchers.php:418
msgid "Edit voucher roll"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:450
+#: src/usr/local/www/services_captiveportal_vouchers.php:419
msgid "Delete voucher roll"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:451
+#: src/usr/local/www/services_captiveportal_vouchers.php:420
msgid "Export vouchers for this roll to a .csv file"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:477
-#: src/usr/local/www/services_captiveportal_vouchers.php:488
+#: src/usr/local/www/services_captiveportal_vouchers.php:446
+#: src/usr/local/www/services_captiveportal_vouchers.php:457
msgid "Create, Generate and Activate Rolls with Vouchers"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:493
+#: src/usr/local/www/services_captiveportal_vouchers.php:462
msgid "Voucher Public Key"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:495
+#: src/usr/local/www/services_captiveportal_vouchers.php:464
msgid ""
"Paste an RSA public key (64 Bit or smaller) in PEM format here. This key is "
"used to decrypt vouchers."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:499
+#: src/usr/local/www/services_captiveportal_vouchers.php:468
msgid "Voucher Private Key"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:501
+#: src/usr/local/www/services_captiveportal_vouchers.php:470
msgid ""
"Paste an RSA private key (64 Bit or smaller) in PEM format here. This key is "
"only used to generate encrypted vouchers and doesn't need to be available if "
"the vouchers have been generated offline."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:505
+#: src/usr/local/www/services_captiveportal_vouchers.php:474
msgid "Character set"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:508
+#: src/usr/local/www/services_captiveportal_vouchers.php:477
msgid ""
"Tickets are generated with the specified character set. It should contain "
"printable characters (numbers, lower case and upper case letters) that are "
"hard to confuse with others. Avoid e.g. 0/O and l/1."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:512
+#: src/usr/local/www/services_captiveportal_vouchers.php:481
msgid "# of Roll bits"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:515
+#: src/usr/local/www/services_captiveportal_vouchers.php:484
msgid ""
"Reserves a range in each voucher to store the Roll # it belongs to. Allowed "
"range: 1..31. Sum of Roll+Ticket+Checksum bits must be one Bit less than the "
"RSA key size."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:519
+#: src/usr/local/www/services_captiveportal_vouchers.php:488
msgid "# of Ticket bits"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:522
+#: src/usr/local/www/services_captiveportal_vouchers.php:491
msgid ""
"Reserves a range in each voucher to store the Ticket# it belongs to. Allowed "
"range: 1..16. Using 16 bits allows a roll to have up to 65535 vouchers. A "
@@ -19142,83 +18854,83 @@ msgid ""
"been used. A bit array for 65535 vouchers requires 8 KB of storage. "
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:528
+#: src/usr/local/www/services_captiveportal_vouchers.php:497
msgid "# of Checksum bits"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:531
+#: src/usr/local/www/services_captiveportal_vouchers.php:500
msgid ""
"Reserves a range in each voucher to store a simple checksum over Roll # and "
"Ticket#. Allowed range is 0..31."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:535
+#: src/usr/local/www/services_captiveportal_vouchers.php:504
msgid "Magic number"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:538
+#: src/usr/local/www/services_captiveportal_vouchers.php:507
msgid ""
"Magic number stored in every voucher. Verified during voucher check. Size "
"depends on how many bits are left by Roll+Ticket+Checksum bits. If all bits "
"are used, no magic number will be used and checked."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:543
+#: src/usr/local/www/services_captiveportal_vouchers.php:512
msgid "Invalid voucher message"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:546
+#: src/usr/local/www/services_captiveportal_vouchers.php:515
msgid ""
"Error message displayed for invalid vouchers on captive portal error page "
"($PORTAL_MESSAGE$)."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:551
+#: src/usr/local/www/services_captiveportal_vouchers.php:520
msgid "Expired voucher message"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:554
+#: src/usr/local/www/services_captiveportal_vouchers.php:523
msgid ""
"Error message displayed for expired vouchers on captive portal error page "
"($PORTAL_MESSAGE$)."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:558
+#: src/usr/local/www/services_captiveportal_vouchers.php:527
msgid "Voucher Database Synchronization"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:565
+#: src/usr/local/www/services_captiveportal_vouchers.php:534
msgid ""
"IP address of master nodes webConfigurator to synchronize voucher database "
"and used vouchers from.<br />NOTE: this should be setup on the slave nodes "
"and not the primary node!"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:570
+#: src/usr/local/www/services_captiveportal_vouchers.php:539
msgid "Voucher sync port"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:573
+#: src/usr/local/www/services_captiveportal_vouchers.php:542
msgid "The port of the master voucher node's webConfigurator. Example: 443 "
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:577
+#: src/usr/local/www/services_captiveportal_vouchers.php:546
msgid "Voucher sync username"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:580
+#: src/usr/local/www/services_captiveportal_vouchers.php:549
msgid "This is the username of the master voucher nodes webConfigurator."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:584
+#: src/usr/local/www/services_captiveportal_vouchers.php:553
msgid "Voucher sync password"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:587
+#: src/usr/local/www/services_captiveportal_vouchers.php:556
msgid "This is the password of the master voucher nodes webConfigurator."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:608
+#: src/usr/local/www/services_captiveportal_vouchers.php:577
msgid ""
"Changing any Voucher parameter (apart from managing the list of Rolls) on "
"this page will render existing vouchers useless if they were generated with "
@@ -19227,13 +18939,13 @@ msgid ""
"retrieved/synced from the master."
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:644
+#: src/usr/local/www/services_captiveportal_vouchers.php:613
msgid "Generate new keys"
msgstr ""
#: src/usr/local/www/services_captiveportal_vouchers_edit.php:91
-#: src/usr/local/www/services_dhcp.php:1226
-#: src/usr/local/www/services_dhcpv6.php:916
+#: src/usr/local/www/services_dhcp.php:1239
+#: src/usr/local/www/services_dhcpv6.php:911
msgid "Number"
msgstr ""
@@ -19408,7 +19120,7 @@ msgstr ""
msgid "Delete service"
msgstr ""
-#: src/usr/local/www/services_checkip.php:160
+#: src/usr/local/www/services_checkip.php:161
msgid ""
"The first (highest in list) enabled check ip service will be used to check "
"IP addresses for Dynamic DNS services, and RFC 2136 entries that have the "
@@ -19441,399 +19153,404 @@ msgstr ""
msgid "User name"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:235
-#: src/usr/local/www/services_dhcpv6.php:216
+#: src/usr/local/www/services_dhcp.php:236
+#: src/usr/local/www/services_dhcpv6.php:211
msgid "Range begin"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:235
-#: src/usr/local/www/services_dhcpv6.php:216
+#: src/usr/local/www/services_dhcp.php:236
+#: src/usr/local/www/services_dhcpv6.php:211
msgid "Range end"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:240
+#: src/usr/local/www/services_dhcp.php:241
msgid ""
"Ignore Denied Clients may not be used when a Failover Peer IP is defined."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:244
-#: src/usr/local/www/services_dhcp.php:247
-#: src/usr/local/www/services_dhcpv6.php:254
-#: src/usr/local/www/services_dhcpv6.php:264
+#: src/usr/local/www/services_dhcp.php:245
+#: src/usr/local/www/services_dhcp.php:248
+#: src/usr/local/www/services_dhcpv6.php:249
+#: src/usr/local/www/services_dhcpv6.php:259
msgid "A valid range must be specified."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:250
+#: src/usr/local/www/services_dhcp.php:251
#: src/usr/local/www/services_dhcp_edit.php:235
msgid "A valid IP address must be specified for the gateway."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:253
+#: src/usr/local/www/services_dhcp.php:254
#: src/usr/local/www/services_dhcp_edit.php:238
msgid ""
"A valid IP address must be specified for the primary/secondary WINS servers."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:259
+#: src/usr/local/www/services_dhcp.php:260
#: src/usr/local/www/services_dhcp_edit.php:245
#, php-format
msgid ""
"The gateway address %s does not lie within the chosen interface's subnet."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:264
+#: src/usr/local/www/services_dhcp.php:265
#: src/usr/local/www/services_dhcp_edit.php:252
msgid "A valid IP address must be specified for each of the DNS servers."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:268
+#: src/usr/local/www/services_dhcp.php:269
#: src/usr/local/www/services_dhcp_edit.php:256
-#: src/usr/local/www/services_dhcpv6.php:283
+#: src/usr/local/www/services_dhcpv6.php:278
msgid "The default lease time must be at least 60 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:290
+#: src/usr/local/www/services_dhcp.php:291
#, php-format
msgid ""
"The Captive Portal zone (%1$s) has Hard Timeout parameter set to a value "
"bigger than Default lease time (%2$s)."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:296
+#: src/usr/local/www/services_dhcp.php:297
#: src/usr/local/www/services_dhcp_edit.php:259
-#: src/usr/local/www/services_dhcpv6.php:286
+#: src/usr/local/www/services_dhcpv6.php:281
msgid ""
"The maximum lease time must be at least 60 seconds and higher than the "
"default lease time."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:299
+#: src/usr/local/www/services_dhcp.php:300
#: src/usr/local/www/services_dhcp_edit.php:262
-#: src/usr/local/www/services_dhcpv6.php:289
+#: src/usr/local/www/services_dhcpv6.php:284
msgid "A valid domain name must be specified for the dynamic DNS registration."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:302
+#: src/usr/local/www/services_dhcp.php:303
#: src/usr/local/www/services_dhcp_edit.php:265
msgid ""
"A valid primary domain name server IP address must be specified for the "
"dynamic domain name."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:306
+#: src/usr/local/www/services_dhcp.php:307
#: src/usr/local/www/services_dhcp_edit.php:269
-#: src/usr/local/www/services_dhcpv6.php:296
+#: src/usr/local/www/services_dhcpv6.php:291
msgid "Both a valid domain key and key name must be specified."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:312
+#: src/usr/local/www/services_dhcp.php:313
#: src/usr/local/www/services_dhcp_edit.php:275
-#: src/usr/local/www/services_dhcpv6.php:302
-#: src/usr/local/www/services_router_advertisements.php:166
+#: src/usr/local/www/services_dhcpv6.php:297
+#: src/usr/local/www/services_router_advertisements.php:161
msgid "A valid domain search list must be specified."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:320
+#: src/usr/local/www/services_dhcp.php:321
msgid ""
"If a mac allow list is specified, it must contain only valid partial MAC "
"addresses."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:323
+#: src/usr/local/www/services_dhcp.php:324
msgid ""
"If a mac deny list is specified, it must contain only valid partial MAC "
"addresses."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:327
+#: src/usr/local/www/services_dhcp.php:328
msgid ""
"A valid IP address or hostname must be specified for the primary/secondary "
"NTP servers."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:330
-#: src/usr/local/www/services_dhcpv6.php:312
+#: src/usr/local/www/services_dhcp.php:331
+#: src/usr/local/www/services_dhcpv6.php:307
msgid "A valid domain name must be specified for the DNS domain."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:333
+#: src/usr/local/www/services_dhcp.php:334
#: src/usr/local/www/services_dhcp_edit.php:285
-msgid "A valid IP address, hostname or URL must be specified for the TFTP server."
+msgid ""
+"A valid IP address, hostname or URL must be specified for the TFTP server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:336
+#: src/usr/local/www/services_dhcp.php:337
#: src/usr/local/www/services_dhcp_edit.php:288
msgid "A valid IP address must be specified for the network boot server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:340
+#: src/usr/local/www/services_dhcp.php:341
msgid "The network address cannot be used in the starting subnet range."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:343
+#: src/usr/local/www/services_dhcp.php:344
msgid "The broadcast address cannot be used in the ending subnet range."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:351
+#: src/usr/local/www/services_dhcp.php:352
#, php-format
msgid "The subnet range cannot overlap with virtual IP address %s."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:367
+#: src/usr/local/www/services_dhcp.php:368
msgid ""
"Cannot enable static ARP when there are static map entries without IP "
"addresses. Ensure all static maps have IP addresses and try again."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:374
+#: src/usr/local/www/services_dhcp.php:375
msgid "Text type cannot include quotation marks."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:376
+#: src/usr/local/www/services_dhcp.php:377
msgid ""
"String type must be enclosed in quotes like \"this\" or must be a series of "
"octets specified in hexadecimal, separated by colons, like 01:23:45:67:89:ab:"
"cd:ef"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:378
+#: src/usr/local/www/services_dhcp.php:379
msgid "Boolean type must be true, false, on, or off."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:380
+#: src/usr/local/www/services_dhcp.php:381
msgid "Unsigned 8-bit integer type must be a number in the range 0 to 255."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:382
+#: src/usr/local/www/services_dhcp.php:383
msgid "Unsigned 16-bit integer type must be a number in the range 0 to 65535."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:384
+#: src/usr/local/www/services_dhcp.php:385
msgid ""
"Unsigned 32-bit integer type must be a number in the range 0 to 4294967295."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:386
+#: src/usr/local/www/services_dhcp.php:387
msgid "Signed 8-bit integer type must be a number in the range -128 to 127."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:388
+#: src/usr/local/www/services_dhcp.php:389
msgid ""
"Signed 16-bit integer type must be a number in the range -32768 to 32767."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:390
+#: src/usr/local/www/services_dhcp.php:391
msgid ""
"Signed 32-bit integer type must be a number in the range -2147483648 to "
"2147483647."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:392
+#: src/usr/local/www/services_dhcp.php:393
msgid "IP address or host type must be an IP address or host name."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:400
-#: src/usr/local/www/services_dhcpv6.php:353
+#: src/usr/local/www/services_dhcp.php:401
+#: src/usr/local/www/services_dhcpv6.php:348
msgid "The range is invalid (first element higher than second element)."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:405
-#: src/usr/local/www/services_dhcpv6.php:348
+#: src/usr/local/www/services_dhcp.php:406
+#: src/usr/local/www/services_dhcpv6.php:343
msgid "The specified range lies outside of the current subnet."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:415
+#: src/usr/local/www/services_dhcp.php:416
msgid ""
"The specified range must not be within the DHCP range for this interface."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:428
+#: src/usr/local/www/services_dhcp.php:429
msgid ""
"The specified range must not be within the range configured on a DHCP pool "
"for this interface."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:435
-#: src/usr/local/www/services_dhcpv6.php:358
+#: src/usr/local/www/services_dhcp.php:436
+#: src/usr/local/www/services_dhcpv6.php:353
#, php-format
msgid ""
"The DHCP relay on the %s interface must be disabled before enabling the DHCP "
"server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:444
-#: src/usr/local/www/services_dhcpv6.php:375
+#: src/usr/local/www/services_dhcp.php:445
+#: src/usr/local/www/services_dhcpv6.php:370
#, php-format
msgid "The DHCP range cannot overlap any static DHCP mappings."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:655
+#: src/usr/local/www/services_dhcp.php:661
#: src/usr/local/www/status_dhcp_leases.php:465
msgid "Pool Start"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:656
+#: src/usr/local/www/services_dhcp.php:662
#: src/usr/local/www/status_dhcp_leases.php:466
msgid "Pool End"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:711
+#: src/usr/local/www/services_dhcp.php:717
msgid ""
"DHCP Relay is currently enabled. Cannot enable the DHCP Server service while "
"the DHCP Relay is enabled on any interface."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:717
-#: src/usr/local/www/services_dhcpv6.php:495
+#: src/usr/local/www/services_dhcp.php:723
+#: src/usr/local/www/services_dhcpv6.php:490
msgid "The static mapping configuration has been changed."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:743
+#: src/usr/local/www/services_dhcp.php:749
msgid ""
"The DHCP Server can only be enabled on interfaces configured with a static "
"IPv4 address. This system has none."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:758
+#: src/usr/local/www/services_dhcp.php:764
#, php-format
msgid "Enable DHCP server on %s interface"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:762
+#: src/usr/local/www/services_dhcp.php:768
msgid ""
"Editing pool-specific options. To return to the Interface, click its tab "
"above."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:767
+#: src/usr/local/www/services_dhcp.php:773
+msgid "BOOTP"
+msgstr ""
+
+#: src/usr/local/www/services_dhcp.php:780
msgid "Deny unknown clients"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:774
+#: src/usr/local/www/services_dhcp.php:787
msgid "Ignore denied clients"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:777
+#: src/usr/local/www/services_dhcp.php:790
msgid ""
"This option is not compatible with failover and cannot be enabled when a "
"Failover Peer IP address is configured."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:783
+#: src/usr/local/www/services_dhcp.php:796
msgid "Pool Description"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:803
+#: src/usr/local/www/services_dhcp.php:816
msgid "In-use DHCP Pool Ranges:"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:816
+#: src/usr/local/www/services_dhcp.php:829
msgid "Available range"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:829
-#: src/usr/local/www/services_dhcpv6.php:624
+#: src/usr/local/www/services_dhcp.php:842
+#: src/usr/local/www/services_dhcpv6.php:619
msgid "Range"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:848
+#: src/usr/local/www/services_dhcp.php:861
msgid "Additional Pools"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:852
+#: src/usr/local/www/services_dhcp.php:865
msgid "Add pool"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:861
+#: src/usr/local/www/services_dhcp.php:874
msgid ""
"If additional pools of addresses are needed inside of this subnet outside "
"the above Range, they may be specified here."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:877
+#: src/usr/local/www/services_dhcp.php:890
#: src/usr/local/www/vpn_openvpn_csc.php:533
msgid "WINS servers"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:890
+#: src/usr/local/www/services_dhcp.php:903
#: src/usr/local/www/status_interfaces.php:131
msgid "DNS servers"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:892
+#: src/usr/local/www/services_dhcp.php:905
msgid ""
"Leave blank to use the system default DNS servers: this interface's IP if "
"DNS Forwarder or Resolver is enabled, otherwise the servers configured on "
"the System / General Setup page."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:897
+#: src/usr/local/www/services_dhcp.php:910
msgid "Other Options"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:904
+#: src/usr/local/www/services_dhcp.php:917
msgid ""
"The default is to use the IP on this interface of the firewall as the "
"gateway. Specify an alternate gateway here if this is not the correct "
"gateway for the network. Type \"none\" for no gateway assignment."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:908
-#: src/usr/local/www/services_dhcp_edit.php:534
-#: src/usr/local/www/services_dhcpv6.php:688
+#: src/usr/local/www/services_dhcp.php:921
+#: src/usr/local/www/services_dhcp_edit.php:541
+#: src/usr/local/www/services_dhcpv6.php:683
#: src/usr/local/www/services_dyndns_edit.php:101
#: src/usr/local/www/services_dyndns_edit.php:296
msgid "Domain name"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:911
+#: src/usr/local/www/services_dhcp.php:924
msgid ""
"The default is to use the domain name of this system as the default domain "
"name provided by DHCP. An alternate domain name may be specified here."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:915
-#: src/usr/local/www/services_dhcp_edit.php:541
-#: src/usr/local/www/services_dhcpv6.php:695
-#: src/usr/local/www/services_router_advertisements.php:444
+#: src/usr/local/www/services_dhcp.php:928
+#: src/usr/local/www/services_dhcp_edit.php:548
+#: src/usr/local/www/services_dhcpv6.php:690
+#: src/usr/local/www/services_router_advertisements.php:439
msgid "Domain search list"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:918
-#: src/usr/local/www/services_dhcp_edit.php:544
-#: src/usr/local/www/services_dhcpv6.php:698
+#: src/usr/local/www/services_dhcp.php:931
+#: src/usr/local/www/services_dhcp_edit.php:551
+#: src/usr/local/www/services_dhcpv6.php:693
msgid ""
"The DHCP server can optionally provide a domain search list. Use the "
"semicolon character as separator."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:922
-#: src/usr/local/www/services_dhcpv6.php:702
+#: src/usr/local/www/services_dhcp.php:935
+#: src/usr/local/www/services_dhcpv6.php:697
msgid "Default lease time"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:925
+#: src/usr/local/www/services_dhcp.php:938
msgid ""
"This is used for clients that do not ask for a specific expiration time. The "
"default is 7200 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:929
+#: src/usr/local/www/services_dhcp.php:942
msgid "Maximum lease time"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:932
-#: src/usr/local/www/services_dhcp_edit.php:558
+#: src/usr/local/www/services_dhcp.php:945
+#: src/usr/local/www/services_dhcp_edit.php:565
msgid ""
"This is the maximum lease time for clients that ask for a specific "
"expiration time. The default is 86400 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:937
+#: src/usr/local/www/services_dhcp.php:950
msgid "Failover peer IP"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:939
+#: src/usr/local/www/services_dhcp.php:952
msgid ""
"Leave blank to disable. Enter the interface IP address of the other machine. "
"Machines must be using CARP. Interface's advskew determines whether the "
@@ -19841,258 +19558,259 @@ msgid ""
"(and the other is &gt; 20)."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:946
-#: src/usr/local/www/services_dhcp.php:1302
+#: src/usr/local/www/services_dhcp.php:959
+#: src/usr/local/www/services_dhcp.php:1315
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:64
msgid "Static ARP"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:949
+#: src/usr/local/www/services_dhcp.php:962
msgid ""
"This option persists even if DHCP server is disabled. Only the machines "
"listed below will be able to communicate with the firewall on this interface."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:953
+#: src/usr/local/www/services_dhcp.php:966
msgid "Time format change"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:956
+#: src/usr/local/www/services_dhcp.php:969
msgid ""
"By default DHCP leases are displayed in UTC time.\tBy checking this box DHCP "
"lease time will be displayed in local time and set to the time zone "
"selected. This will be used for all DHCP interfaces lease time."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:960
+#: src/usr/local/www/services_dhcp.php:973
msgid "Statistics graphs"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:963
+#: src/usr/local/www/services_dhcp.php:976
msgid ""
"Enable this to add DHCP leases statistics to the RRD graphs. Disabled by "
"default."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:990
-#: src/usr/local/www/services_dhcp_edit.php:583
-#: src/usr/local/www/services_dhcpv6.php:748
+#: src/usr/local/www/services_dhcp.php:1003
+#: src/usr/local/www/services_dhcp_edit.php:590
+#: src/usr/local/www/services_dhcpv6.php:743
msgid "DDNS Domain"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:993
+#: src/usr/local/www/services_dhcp.php:1006
msgid ""
"Leave blank to disable dynamic DNS registration.<br />Enter the dynamic DNS "
"domain which will be used to register client names in the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:998
+#: src/usr/local/www/services_dhcp.php:1011
msgid "Primary DDNS address"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1000
+#: src/usr/local/www/services_dhcp.php:1013
msgid "Primary domain name server IP address for the dynamic domain name."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1004
+#: src/usr/local/www/services_dhcp.php:1017
msgid "DNS Domain key"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1007
+#: src/usr/local/www/services_dhcp.php:1020
msgid ""
"Dynamic DNS domain key name which will be used to register client names in "
"the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1011
+#: src/usr/local/www/services_dhcp.php:1024
msgid "DNS Domain key secret"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1014
+#: src/usr/local/www/services_dhcp.php:1027
msgid ""
-"Dynamic DNS domain key secret which will be used to register client names in "
-"the DNS server."
+"Dynamic DNS domain key secret (HMAC-MD5) which will be used to register "
+"client names in the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1027
+#: src/usr/local/www/services_dhcp.php:1040
msgid "MAC address control"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1033
+#: src/usr/local/www/services_dhcp.php:1046
msgid "MAC Allow"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1036
+#: src/usr/local/www/services_dhcp.php:1049
msgid ""
"List of partial MAC addresses to allow, comma separated, no spaces, e.g.: "
"00:00:00,01:E5:FF"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1040
+#: src/usr/local/www/services_dhcp.php:1053
msgid "MAC Deny"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1043
+#: src/usr/local/www/services_dhcp.php:1056
msgid ""
"List of partial MAC addresses to deny access, comma separated, no spaces, e."
"g.: 00:00:00,01:E5:FF"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1062
-#: src/usr/local/www/services_dhcp_edit.php:626
-#: src/usr/local/www/services_dhcpv6.php:811
-#: src/usr/local/www/vpn_openvpn_server.php:1052
+#: src/usr/local/www/services_dhcp.php:1075
+#: src/usr/local/www/services_dhcp_edit.php:633
+#: src/usr/local/www/services_dhcpv6.php:806
+#: src/usr/local/www/vpn_openvpn_server.php:1063
msgid "NTP Server 1"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1068
-#: src/usr/local/www/services_dhcp_edit.php:634
-#: src/usr/local/www/services_dhcpv6.php:819
-#: src/usr/local/www/vpn_openvpn_server.php:1059
+#: src/usr/local/www/services_dhcp.php:1081
+#: src/usr/local/www/services_dhcp_edit.php:641
+#: src/usr/local/www/services_dhcpv6.php:814
+#: src/usr/local/www/vpn_openvpn_server.php:1070
msgid "NTP Server 2"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1083
+#: src/usr/local/www/services_dhcp.php:1096
msgid "TFTP"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1089
-#: src/usr/local/www/services_dhcp_edit.php:660
+#: src/usr/local/www/services_dhcp.php:1102
+#: src/usr/local/www/services_dhcp_edit.php:667
msgid "TFTP Server"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1091
+#: src/usr/local/www/services_dhcp.php:1104
msgid ""
-"Leave blank to disable. Enter a valid IP address, hostname or URL for the TFTP server."
+"Leave blank to disable. Enter a valid IP address, hostname or URL for the "
+"TFTP server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1104
-#: src/usr/local/www/services_dhcpv6.php:839
+#: src/usr/local/www/services_dhcp.php:1117
+#: src/usr/local/www/services_dhcpv6.php:834
msgid "LDAP"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1110
+#: src/usr/local/www/services_dhcp.php:1123
msgid "LDAP Server URI"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1113
+#: src/usr/local/www/services_dhcp.php:1126
msgid ""
"Leave blank to disable. Enter a full URI for the LDAP server in the form "
"ldap://ldap.example.com/dc=example,dc=com "
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1126
+#: src/usr/local/www/services_dhcp.php:1139
msgid "Network Booting"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1139
+#: src/usr/local/www/services_dhcp.php:1152
msgid "Next Server"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1141
+#: src/usr/local/www/services_dhcp.php:1154
msgid "Enter the IP address of the next server"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1145
+#: src/usr/local/www/services_dhcp.php:1158
msgid "Default BIOS file name"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1152
+#: src/usr/local/www/services_dhcp.php:1165
msgid "UEFI 32 bit file name"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1159
+#: src/usr/local/www/services_dhcp.php:1172
msgid "UEFI 64 bit file name"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1162
+#: src/usr/local/www/services_dhcp.php:1175
msgid ""
"Both a filename and a boot server must be configured for this to work! All "
"three filenames and a configured boot server are necessary for UEFI to work! "
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1167
+#: src/usr/local/www/services_dhcp.php:1180
#: src/usr/local/www/services_dhcpv6_edit.php:256
msgid "Root path"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1170
+#: src/usr/local/www/services_dhcp.php:1183
msgid "string-format: iscsi:(servername):(protocol):(port):(LUN):targetname "
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1183
-#: src/usr/local/www/services_dhcp.php:1189
-#: src/usr/local/www/services_dhcpv6.php:888
+#: src/usr/local/www/services_dhcp.php:1196
+#: src/usr/local/www/services_dhcp.php:1202
+#: src/usr/local/www/services_dhcpv6.php:883
msgid "Additional BOOTP/DHCP Options"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1194
+#: src/usr/local/www/services_dhcp.php:1207
msgid ""
"Enter the DHCP option number and the value for each item to include in the "
"DHCP lease information."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1195
+#: src/usr/local/www/services_dhcp.php:1208
#, php-format
msgid "For a list of available options please visit this %1$s URL%2$s"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1203
+#: src/usr/local/www/services_dhcp.php:1216
msgid "Text"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1203
+#: src/usr/local/www/services_dhcp.php:1216
msgid "String"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1203
+#: src/usr/local/www/services_dhcp.php:1216
msgid "Boolean"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1204
+#: src/usr/local/www/services_dhcp.php:1217
msgid "Unsigned 8-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1204
+#: src/usr/local/www/services_dhcp.php:1217
msgid "Unsigned 16-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1204
+#: src/usr/local/www/services_dhcp.php:1217
msgid "Unsigned 32-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1205
+#: src/usr/local/www/services_dhcp.php:1218
msgid "Signed 8-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1205
+#: src/usr/local/www/services_dhcp.php:1218
msgid "Signed 16-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1205
+#: src/usr/local/www/services_dhcp.php:1218
msgid "Signed 32-bit integer"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1205
+#: src/usr/local/www/services_dhcp.php:1218
msgid "IP address or host"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1218
+#: src/usr/local/www/services_dhcp.php:1231
msgid "Option"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1297
+#: src/usr/local/www/services_dhcp.php:1310
msgid "DHCP Static Mappings for this Interface"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1337
-#: src/usr/local/www/services_dhcpv6.php:1011
+#: src/usr/local/www/services_dhcp.php:1350
+#: src/usr/local/www/services_dhcpv6.php:1006
#: src/usr/local/www/status_dhcp_leases.php:440
msgid "Edit static mapping"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1338
-#: src/usr/local/www/services_dhcpv6.php:1012
+#: src/usr/local/www/services_dhcp.php:1351
+#: src/usr/local/www/services_dhcpv6.php:1007
msgid "Delete static mapping"
msgstr ""
@@ -20109,7 +19827,7 @@ msgstr ""
#: src/usr/local/www/services_dhcpv6_edit.php:121
#: src/usr/local/www/services_dnsmasq_edit.php:86
#: src/usr/local/www/services_unbound_host_edit.php:87
-#: src/usr/local/www/system.php:145
+#: src/usr/local/www/system.php:150
msgid ""
"A valid hostname is specified, but the domain name part should be omitted"
msgstr ""
@@ -20155,168 +19873,168 @@ msgid ""
"A valid IP address must be specified for the primary/secondary NTP servers."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:381
+#: src/usr/local/www/services_dhcp_edit.php:388
#: src/usr/local/www/services_dhcpv6_edit.php:201
msgid "Edit Static Mapping"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:414
+#: src/usr/local/www/services_dhcp_edit.php:421
msgid "MAC address (6 hex octets separated by colons)"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:419
+#: src/usr/local/www/services_dhcp_edit.php:426
msgid "Client Identifier"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:428
+#: src/usr/local/www/services_dhcp_edit.php:435
msgid ""
"If an IPv4 address is entered, the address must be outside of the pool.<br /"
">If no IPv4 address is given, one will be dynamically allocated from the "
"pool."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:436
+#: src/usr/local/www/services_dhcp_edit.php:443
#: src/usr/local/www/services_dhcpv6_edit.php:237
msgid "Name of the host, without domain part."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:441
+#: src/usr/local/www/services_dhcp_edit.php:448
#: src/usr/local/www/services_dhcpv6_edit.php:249
msgid "Netboot filename"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:444
+#: src/usr/local/www/services_dhcp_edit.php:451
#: src/usr/local/www/services_dhcpv6_edit.php:252
msgid ""
"Name of the file that should be loaded when this host boots off of the "
"network, overrides setting on main page."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:448
+#: src/usr/local/www/services_dhcp_edit.php:455
msgid "Root Path"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:451
+#: src/usr/local/www/services_dhcp_edit.php:458
msgid "Enter the root-path-string, overrides setting on main page."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:463
+#: src/usr/local/www/services_dhcp_edit.php:470
msgid "ARP Table Static Entry"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:468
+#: src/usr/local/www/services_dhcp_edit.php:475
#: src/usr/local/www/vpn_ipsec_mobile.php:632
msgid "WINS Servers"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:487
-#: src/usr/local/www/services_dhcpv6.php:671
+#: src/usr/local/www/services_dhcp_edit.php:494
+#: src/usr/local/www/services_dhcpv6.php:666
#: src/usr/local/www/services_pppoe_edit.php:356
#: src/usr/local/www/vpn_ipsec_mobile.php:607
#: src/usr/local/www/vpn_openvpn_csc.php:441
msgid "DNS Servers"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:521
+#: src/usr/local/www/services_dhcp_edit.php:528
msgid ""
"Note: leave blank to use the system default DNS servers - this interface's "
"IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured "
"on the General page."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:530
+#: src/usr/local/www/services_dhcp_edit.php:537
msgid ""
"The default is to use the IP on this interface of the firewall as the "
"gateway. Specify an alternate gateway here if this is not the correct "
"gateway for the network."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:537
-#: src/usr/local/www/services_dhcpv6.php:691
+#: src/usr/local/www/services_dhcp_edit.php:544
+#: src/usr/local/www/services_dhcpv6.php:686
msgid ""
"The default is to use the domain name of this system as the default domain "
"name provided by DHCP. An alternate domain name may be specified here. "
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:548
+#: src/usr/local/www/services_dhcp_edit.php:555
msgid "Default lease time (Seconds)"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:551
+#: src/usr/local/www/services_dhcp_edit.php:558
msgid ""
"Used for clients that do not ask for a specific expiration time. The default "
"is 7200 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:555
+#: src/usr/local/www/services_dhcp_edit.php:562
msgid "Maximum lease time (Seconds)"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:576
-#: src/usr/local/www/services_dhcpv6.php:741
+#: src/usr/local/www/services_dhcp_edit.php:583
+#: src/usr/local/www/services_dhcpv6.php:736
#: src/usr/local/www/services_dnsmasq.php:211
#: src/usr/local/www/services_unbound.php:324
msgid "DHCP Registration"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:586
-#: src/usr/local/www/services_dhcpv6.php:751
+#: src/usr/local/www/services_dhcp_edit.php:593
+#: src/usr/local/www/services_dhcpv6.php:746
msgid ""
"Leave blank to disable dynamic DNS registration. Enter the dynamic DNS "
"domain which will be used to register client names in the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:590
-#: src/usr/local/www/services_dhcpv6.php:755
+#: src/usr/local/www/services_dhcp_edit.php:597
+#: src/usr/local/www/services_dhcpv6.php:750
msgid "DDNS Server IP"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:592
-#: src/usr/local/www/services_dhcpv6.php:757
+#: src/usr/local/www/services_dhcp_edit.php:599
+#: src/usr/local/www/services_dhcpv6.php:752
msgid ""
"Enter the primary domain name server IP address for the dynamic domain name."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:596
-#: src/usr/local/www/services_dhcpv6.php:761
+#: src/usr/local/www/services_dhcp_edit.php:603
+#: src/usr/local/www/services_dhcpv6.php:756
msgid "DDNS Domain Key name"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:599
-#: src/usr/local/www/services_dhcpv6.php:764
+#: src/usr/local/www/services_dhcp_edit.php:606
+#: src/usr/local/www/services_dhcpv6.php:759
msgid ""
"Enter the dynamic DNS domain key name which will be used to register client "
"names in the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:603
-#: src/usr/local/www/services_dhcpv6.php:768
+#: src/usr/local/www/services_dhcp_edit.php:610
+#: src/usr/local/www/services_dhcpv6.php:763
msgid "DDNS Domain Key secret"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:606
-#: src/usr/local/www/services_dhcpv6.php:771
+#: src/usr/local/www/services_dhcp_edit.php:613
+#: src/usr/local/www/services_dhcpv6.php:766
msgid ""
"Enter the dynamic DNS domain key secret which will be used to register "
"client names in the DNS server."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:618
-#: src/usr/local/www/services_dhcpv6.php:803
+#: src/usr/local/www/services_dhcp_edit.php:625
+#: src/usr/local/www/services_dhcpv6.php:798
msgid "NTP servers"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:622
-#: src/usr/local/www/services_dhcpv6.php:807
+#: src/usr/local/www/services_dhcp_edit.php:629
+#: src/usr/local/www/services_dhcpv6.php:802
#: src/usr/local/www/vpn_openvpn_csc.php:482
msgid "NTP Servers"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:654
+#: src/usr/local/www/services_dhcp_edit.php:661
msgid "TFTP servers"
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:663
+#: src/usr/local/www/services_dhcp_edit.php:670
msgid ""
"Leave blank to disable. Enter a full hostname or IP for the TFTP server."
msgstr ""
@@ -20368,160 +20086,160 @@ msgid ""
"This is the IP address of the server to which DHCP requests are relayed."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:221
-#: src/usr/local/www/services_dhcpv6.php:224
+#: src/usr/local/www/services_dhcpv6.php:216
+#: src/usr/local/www/services_dhcpv6.php:219
msgid "A valid prefix range must be specified."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:236
+#: src/usr/local/www/services_dhcpv6.php:231
#, php-format
msgid "Prefix Delegation From address is not a valid IPv6 Netmask for %s"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:247
+#: src/usr/local/www/services_dhcpv6.php:242
#, php-format
msgid "Prefix Delegation To address is not a valid IPv6 Netmask for %s"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:258
-#: src/usr/local/www/services_dhcpv6.php:268
+#: src/usr/local/www/services_dhcpv6.php:253
+#: src/usr/local/www/services_dhcpv6.php:263
#: src/usr/local/www/services_dhcpv6_edit.php:134
#, php-format
msgid "The prefix (upper %s bits) must be zero. Use the form %s"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:273
+#: src/usr/local/www/services_dhcpv6.php:268
msgid "A valid IPv6 address must be specified for the gateway."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:279
-#: src/usr/local/www/services_router_advertisements.php:160
+#: src/usr/local/www/services_dhcpv6.php:274
+#: src/usr/local/www/services_router_advertisements.php:155
msgid "A valid IPv6 address must be specified for each of the DNS servers."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:292
+#: src/usr/local/www/services_dhcpv6.php:287
msgid ""
"A valid primary domain name server IPv4 address must be specified for the "
"dynamic domain name."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:309
+#: src/usr/local/www/services_dhcpv6.php:304
msgid ""
"A valid IPv6 address must be specified for the primary/secondary NTP servers."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:315
+#: src/usr/local/www/services_dhcpv6.php:310
msgid "A valid IPv6 address or hostname must be specified for the TFTP server."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:318
+#: src/usr/local/www/services_dhcpv6.php:313
msgid "A valid URL must be specified for the network bootfile."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:326
+#: src/usr/local/www/services_dhcpv6.php:321
#, php-format
msgid "The subnet range cannot overlap with virtual IPv6 address %s."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:491
+#: src/usr/local/www/services_dhcpv6.php:486
msgid ""
"DHCPv6 Relay is currently enabled. Cannot enable the DHCPv6 Server service "
"while the DHCPv6 Relay is enabled on any interface."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:546
+#: src/usr/local/www/services_dhcpv6.php:541
msgid ""
"The DHCPv6 Server can only be enabled on interfaces configured with a static "
"IPv6 address. This system has none."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:555
-#: src/usr/local/www/services_router_advertisements.php:247
-#: src/usr/local/www/services_router_advertisements.php:289
+#: src/usr/local/www/services_dhcpv6.php:550
+#: src/usr/local/www/services_router_advertisements.php:242
+#: src/usr/local/www/services_router_advertisements.php:284
msgid "Router Advertisements"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:565
+#: src/usr/local/www/services_dhcpv6.php:560
msgid "DHCPv6 Options"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:587
-#: src/usr/local/www/services_dhcpv6.php:600
+#: src/usr/local/www/services_dhcpv6.php:582
+#: src/usr/local/www/services_dhcpv6.php:595
msgid "Subnet Mask"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:592
+#: src/usr/local/www/services_dhcpv6.php:587
msgid "Available Range"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:594
+#: src/usr/local/www/services_dhcpv6.php:589
msgid ""
"Prefix Delegation subnet will be appended to the beginning of the defined "
"range"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:649
+#: src/usr/local/www/services_dhcpv6.php:644
msgid "Prefix Delegation Range"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:658
+#: src/usr/local/www/services_dhcpv6.php:653
msgid "Prefix Delegation Size"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:669
+#: src/usr/local/www/services_dhcpv6.php:664
msgid ""
"A Prefix range can be defined here for DHCP Prefix Delegation. This allows "
"for assigning networks to subrouters. The start and end of the range must "
"end on boundaries of the prefix delegation size."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:683
+#: src/usr/local/www/services_dhcpv6.php:678
msgid ""
"Leave blank to use the system default DNS servers, this interface's IP if "
"DNS forwarder is enabled, or the servers configured on the \"General\" page."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:705
+#: src/usr/local/www/services_dhcpv6.php:700
msgid ""
"Lease time in seconds. Used for clients that do not ask for a specific "
"expiration time. <br />The default is 7200 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:710
+#: src/usr/local/www/services_dhcpv6.php:705
msgid "Max lease time"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:713
+#: src/usr/local/www/services_dhcpv6.php:708
msgid ""
"Maximum lease time for clients that ask for a specific expiration time. <br /"
">The default is 86400 seconds."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:718
+#: src/usr/local/www/services_dhcpv6.php:713
msgid "Time Format Change"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:721
+#: src/usr/local/www/services_dhcpv6.php:716
msgid ""
"By default DHCPv6 leases are displayed in UTC time. By checking this box "
"DHCPv6 lease time will be displayed in local time and set to time zone "
"selected. This will be used for all DHCPv6 interfaces lease time."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:778
+#: src/usr/local/www/services_dhcpv6.php:773
#: src/usr/local/www/services_unbound_acls.php:231
msgid "Allow"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:780
+#: src/usr/local/www/services_dhcpv6.php:775
msgid "Ignore"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:775
+#: src/usr/local/www/services_dhcpv6.php:770
msgid "DDNS Client Updates"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:781
+#: src/usr/local/www/services_dhcpv6.php:776
msgid ""
"How Forward entries are handled when client indicates they wish to update "
"DNS. Allow prevents DHCP from updating Forward entries, Deny indicates that "
@@ -20530,49 +20248,49 @@ msgid ""
"using a different domain name."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:788
+#: src/usr/local/www/services_dhcpv6.php:783
msgid "DDNS Reverse"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:845
+#: src/usr/local/www/services_dhcpv6.php:840
msgid "LDAP URI"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:860
-#: src/usr/local/www/services_dhcpv6.php:866
+#: src/usr/local/www/services_dhcpv6.php:855
+#: src/usr/local/www/services_dhcpv6.php:861
msgid "Network booting"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:873
+#: src/usr/local/www/services_dhcpv6.php:868
msgid "Bootfile URL"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:941
+#: src/usr/local/www/services_dhcpv6.php:936
msgid "Add Option"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:964
+#: src/usr/local/www/services_dhcpv6.php:959
#, php-format
msgid ""
"The DNS servers entered in %1$sSystem: General Setup%3$s (or the %2$sDNS "
"forwarder%3$s if enabled) will be assigned to clients by the DHCP server."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:970
+#: src/usr/local/www/services_dhcpv6.php:965
#, php-format
msgid ""
"The DHCP lease table can be viewed on the %1$sStatus: DHCPv6 leases%2$s page."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:978
+#: src/usr/local/www/services_dhcpv6.php:973
msgid "DHCPv6 Static Mappings for this Interface"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:983
+#: src/usr/local/www/services_dhcpv6.php:978
#: src/usr/local/www/services_dhcpv6_edit.php:108
#: src/usr/local/www/services_dhcpv6_edit.php:216
-#: src/usr/local/www/status_dhcpv6_leases.php:435
-#: src/usr/local/www/status_dhcpv6_leases.php:532
+#: src/usr/local/www/status_dhcpv6_leases.php:432
+#: src/usr/local/www/status_dhcpv6_leases.php:529
msgid "DUID"
msgstr ""
@@ -20713,7 +20431,7 @@ msgstr ""
#: src/usr/local/www/services_unbound.php:341
#: src/usr/local/www/services_unbound.php:355
#: src/usr/local/www/vpn_openvpn_client.php:750
-#: src/usr/local/www/vpn_openvpn_server.php:1130
+#: src/usr/local/www/vpn_openvpn_server.php:1141
msgid "Custom options"
msgstr ""
@@ -20742,7 +20460,7 @@ msgstr ""
#: src/usr/local/www/services_unbound_host_edit.php:78
#: src/usr/local/www/services_unbound_host_edit.php:222
#: src/usr/local/www/services_unbound_host_edit.php:279
-#: src/usr/local/www/system.php:112 src/usr/local/www/system.php:361
+#: src/usr/local/www/system.php:113 src/usr/local/www/system.php:367
msgid "Domain"
msgstr ""
@@ -20851,7 +20569,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/services_dnsmasq_edit.php:83
-#: src/usr/local/www/system.php:142
+#: src/usr/local/www/system.php:147
msgid ""
"The hostname can only contain the characters A-Z, 0-9 and '-'. It may not "
"start or end with '-'."
@@ -20928,8 +20646,8 @@ msgstr ""
#: src/usr/local/www/services_dyndns.php:88
#: src/usr/local/www/services_ntpd_acls.php:206
-#: src/usr/local/www/status_openvpn.php:229
-#: src/usr/local/www/status_openvpn.php:285
+#: src/usr/local/www/status_openvpn.php:231
+#: src/usr/local/www/status_openvpn.php:287
#: src/usr/local/www/status_services.php:86
#: src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php:95
#: src/usr/local/www/widgets/widgets/services_status.widget.php:74
@@ -20971,7 +20689,7 @@ msgid "The MX contains invalid characters."
msgstr ""
#: src/usr/local/www/services_dyndns_edit.php:144
-#: src/usr/local/www/system_usermanager.php:202
+#: src/usr/local/www/system_usermanager.php:198
#: src/usr/local/www/vpn_l2tp_users_edit.php:83
msgid "The username contains invalid characters."
msgstr ""
@@ -21760,7 +21478,7 @@ msgstr ""
#: src/usr/local/www/services_rfc2136_edit.php:78
#: src/usr/local/www/services_rfc2136_edit.php:232
#: src/usr/local/www/vpn_openvpn_client.php:573
-#: src/usr/local/www/vpn_openvpn_server.php:689
+#: src/usr/local/www/vpn_openvpn_server.php:693
msgid "Key"
msgstr ""
@@ -21826,41 +21544,41 @@ msgid ""
"updates to work."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:62
+#: src/usr/local/www/services_router_advertisements.php:57
msgid ""
"The DHCPv6 Server can only be enabled on interfaces configured with static, "
"non unique local IP addresses."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:63
+#: src/usr/local/www/services_router_advertisements.php:58
msgid "Only interfaces configured with a static IP will be shown."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:113
+#: src/usr/local/www/services_router_advertisements.php:108
msgid "Router Only"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:114
+#: src/usr/local/www/services_router_advertisements.php:109
msgid "Unmanaged"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:115
+#: src/usr/local/www/services_router_advertisements.php:110
msgid "Managed"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:116
+#: src/usr/local/www/services_router_advertisements.php:111
msgid "Assisted"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:117
+#: src/usr/local/www/services_router_advertisements.php:112
msgid "Stateless DHCP"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:119
+#: src/usr/local/www/services_router_advertisements.php:114
msgid "Low"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:124
+#: src/usr/local/www/services_router_advertisements.php:119
msgid ""
"Subnets are specified in CIDR format. Select the CIDR mask that pertains to "
"each entry.\t/128 specifies a single IPv6 host; /64 specifies a normal IPv6 "
@@ -21869,58 +21587,58 @@ msgid ""
"assigned."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:154
+#: src/usr/local/www/services_router_advertisements.php:149
#, php-format
msgid "An invalid subnet or alias was specified. [%s/%s]"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:173
+#: src/usr/local/www/services_router_advertisements.php:168
msgid ""
"A valid lifetime below 2 hours will be ignored by clients (RFC 4862 Section "
"5.5.3 point e)"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:176
+#: src/usr/local/www/services_router_advertisements.php:171
msgid "Valid lifetime must be an integer."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:180
+#: src/usr/local/www/services_router_advertisements.php:175
msgid "Minimum advertisement interval must be an integer."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:183
+#: src/usr/local/www/services_router_advertisements.php:178
msgid "Minimum advertisement interval must be no less than 3."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:186
+#: src/usr/local/www/services_router_advertisements.php:181
msgid ""
"Minimum advertisement interval must be no greater than 0.75 * Maximum "
"advertisement interval"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:191
+#: src/usr/local/www/services_router_advertisements.php:186
msgid "Maximum advertisement interval must be an integer."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:194
+#: src/usr/local/www/services_router_advertisements.php:189
msgid ""
"Maximum advertisement interval must be no less than 4 and no greater than "
"1800."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:198
+#: src/usr/local/www/services_router_advertisements.php:193
msgid "Router lifetime must be an integer between 1 and 9000."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:294
+#: src/usr/local/www/services_router_advertisements.php:289
msgid "Advertisements"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:298
+#: src/usr/local/www/services_router_advertisements.php:293
msgid "Router mode"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:301
+#: src/usr/local/www/services_router_advertisements.php:296
msgid ""
"Select the Operating Mode for the Router Advertisement (RA) Daemon. Use:<br /"
">&nbsp;<strong>Router Only</strong> to only advertise this router<br />&nbsp;"
@@ -21932,89 +21650,89 @@ msgid ""
"host on the network"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:310
+#: src/usr/local/www/services_router_advertisements.php:305
msgid "Router priority"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:313
+#: src/usr/local/www/services_router_advertisements.php:308
msgid "Select the Priority for the Router Advertisement (RA) Daemon."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:337
+#: src/usr/local/www/services_router_advertisements.php:332
msgid "RA Interface"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:340
+#: src/usr/local/www/services_router_advertisements.php:335
msgid "Select the Interface for the Router Advertisement (RA) Daemon."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:345
+#: src/usr/local/www/services_router_advertisements.php:340
msgid "Default valid lifetime"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:349
+#: src/usr/local/www/services_router_advertisements.php:344
msgid ""
"The length of time in seconds (relative to the time the packet is sent) that "
"the prefix is valid for the purpose of on-link determination. <br />The "
"default is 86400 seconds."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:354
+#: src/usr/local/www/services_router_advertisements.php:349
msgid "Default preferred lifetime"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:357
+#: src/usr/local/www/services_router_advertisements.php:352
msgid ""
"Seconds. The length of time in seconds (relative to the time the packet is "
"sent) that addresses generated from the prefix via stateless address "
"autoconfiguration remain preferred. <br />The default is 14400 seconds."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:362
+#: src/usr/local/www/services_router_advertisements.php:357
msgid "Minimum RA interval"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:366
+#: src/usr/local/www/services_router_advertisements.php:361
msgid ""
"The minimum time allowed between sending unsolicited multicast router "
"advertisements in seconds."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:370
+#: src/usr/local/www/services_router_advertisements.php:365
msgid "Maximum RA interval"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:374
+#: src/usr/local/www/services_router_advertisements.php:369
msgid ""
"The maximum time allowed between sending unsolicited multicast router "
"advertisements in seconds."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:378
+#: src/usr/local/www/services_router_advertisements.php:373
msgid "Router lifetime"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:382
+#: src/usr/local/www/services_router_advertisements.php:377
msgid "The lifetime associated with the default router in seconds."
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:385
+#: src/usr/local/www/services_router_advertisements.php:380
msgid "RA Subnets"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:401
+#: src/usr/local/www/services_router_advertisements.php:396
msgid "Subnets"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:432
+#: src/usr/local/www/services_router_advertisements.php:427
msgid "DNS Configuration"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:437
+#: src/usr/local/www/services_router_advertisements.php:432
msgid "Server "
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:447
+#: src/usr/local/www/services_router_advertisements.php:442
msgid ""
"The RA server can optionally provide a domain search list. Use the semicolon "
"character as separator."
@@ -22187,8 +21905,8 @@ msgstr ""
#: src/usr/local/www/services_unbound_advanced.php:205
#: src/usr/local/www/vpn_ipsec.php:228 src/usr/local/www/vpn_ipsec_keys.php:89
#: src/usr/local/www/vpn_ipsec_mobile.php:426
-#: src/usr/local/www/vpn_ipsec_phase1.php:648
-#: src/usr/local/www/vpn_ipsec_phase2.php:493
+#: src/usr/local/www/vpn_ipsec_phase1.php:644
+#: src/usr/local/www/vpn_ipsec_phase2.php:488
#: src/usr/local/www/vpn_ipsec_settings.php:202
#: src/usr/local/www/vpn_ipsec_settings.php:235
msgid "Advanced Settings"
@@ -22877,7 +22595,7 @@ msgstr ""
#: src/usr/local/www/status_captiveportal_voucher_rolls.php:81
#: src/usr/local/www/status_dhcp_leases.php:143
-#: src/usr/local/www/status_dhcpv6_leases.php:192
+#: src/usr/local/www/status_dhcpv6_leases.php:189
msgid "active"
msgstr ""
@@ -22985,64 +22703,64 @@ msgid "pfSync nodes"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:141
-#: src/usr/local/www/status_dhcpv6_leases.php:190
+#: src/usr/local/www/status_dhcpv6_leases.php:187
msgid "online"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:142
-#: src/usr/local/www/status_dhcpv6_leases.php:191
+#: src/usr/local/www/status_dhcpv6_leases.php:188
msgid "offline"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:144
-#: src/usr/local/www/status_dhcpv6_leases.php:193
+#: src/usr/local/www/status_dhcpv6_leases.php:190
msgid "expired"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:145
-#: src/usr/local/www/status_dhcpv6_leases.php:194
+#: src/usr/local/www/status_dhcpv6_leases.php:191
msgid "reserved"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:146
-#: src/usr/local/www/status_dhcpv6_leases.php:196
+#: src/usr/local/www/status_dhcpv6_leases.php:193
msgid "dynamic"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:147
-#: src/usr/local/www/status_dhcpv6_leases.php:197
+#: src/usr/local/www/status_dhcpv6_leases.php:194
msgid "static"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:309
-#: src/usr/local/www/status_dhcpv6_leases.php:391
+#: src/usr/local/www/status_dhcpv6_leases.php:388
msgid "Pool Status"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:314
-#: src/usr/local/www/status_dhcpv6_leases.php:396
+#: src/usr/local/www/status_dhcpv6_leases.php:393
msgid "Failover Group"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:315
-#: src/usr/local/www/status_dhcpv6_leases.php:397
+#: src/usr/local/www/status_dhcpv6_leases.php:394
msgid "My State"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:316
#: src/usr/local/www/status_dhcp_leases.php:318
-#: src/usr/local/www/status_dhcpv6_leases.php:398
-#: src/usr/local/www/status_dhcpv6_leases.php:400
+#: src/usr/local/www/status_dhcpv6_leases.php:395
+#: src/usr/local/www/status_dhcpv6_leases.php:397
msgid "Since"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:317
-#: src/usr/local/www/status_dhcpv6_leases.php:399
+#: src/usr/local/www/status_dhcpv6_leases.php:396
msgid "Peer State"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:340
-#: src/usr/local/www/status_dhcpv6_leases.php:427
+#: src/usr/local/www/status_dhcpv6_leases.php:424
#: src/usr/local/www/status_ipsec.php:463
#: src/usr/local/www/status_ipsec_leases.php:32
#: src/usr/local/www/status_ipsec_leases.php:40
@@ -23052,24 +22770,24 @@ msgid "Leases"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:351
-#: src/usr/local/www/status_dhcpv6_leases.php:439
-#: src/usr/local/www/status_dhcpv6_leases.php:534
+#: src/usr/local/www/status_dhcpv6_leases.php:436
+#: src/usr/local/www/status_dhcpv6_leases.php:531
msgid "End"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:352
-#: src/usr/local/www/status_dhcpv6_leases.php:440
+#: src/usr/local/www/status_dhcpv6_leases.php:437
#: src/usr/local/www/status_gateway_groups.php:128
#: src/usr/local/www/status_gateways.php:137
#: src/usr/local/www/status_gateways.php:141
#: src/usr/local/www/status_ipsec_leases.php:53
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:229
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:233
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:62
msgid "Online"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:353
-#: src/usr/local/www/status_dhcpv6_leases.php:441
+#: src/usr/local/www/status_dhcpv6_leases.php:438
msgid "Lease Type"
msgstr ""
@@ -23079,12 +22797,12 @@ msgid "n/a"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:438
-#: src/usr/local/www/status_dhcpv6_leases.php:509
+#: src/usr/local/www/status_dhcpv6_leases.php:506
msgid "Add static mapping"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:442
-#: src/usr/local/www/status_dhcpv6_leases.php:511
+#: src/usr/local/www/status_dhcpv6_leases.php:508
msgid "Add WOL mapping"
msgstr ""
@@ -23093,7 +22811,7 @@ msgid "Send WOL packet"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:448
-#: src/usr/local/www/status_dhcpv6_leases.php:513
+#: src/usr/local/www/status_dhcpv6_leases.php:510
msgid "Delete lease"
msgstr ""
@@ -23106,37 +22824,37 @@ msgid "# of leases in use"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:488
-#: src/usr/local/www/status_dhcpv6_leases.php:603
+#: src/usr/local/www/status_dhcpv6_leases.php:600
msgid "Show active and static leases only"
msgstr ""
#: src/usr/local/www/status_dhcp_leases.php:490
-#: src/usr/local/www/status_dhcpv6_leases.php:605
+#: src/usr/local/www/status_dhcpv6_leases.php:602
msgid "Show all configured leases"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:195
+#: src/usr/local/www/status_dhcpv6_leases.php:192
msgid "released"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:422
+#: src/usr/local/www/status_dhcpv6_leases.php:419
msgid "No leases file found. Is the DHCPv6 server active?"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:434
-#: src/usr/local/www/status_dhcpv6_leases.php:531
+#: src/usr/local/www/status_dhcpv6_leases.php:431
+#: src/usr/local/www/status_dhcpv6_leases.php:528
msgid "IAID"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:524
+#: src/usr/local/www/status_dhcpv6_leases.php:521
msgid "Delegated Prefixes"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:530
+#: src/usr/local/www/status_dhcpv6_leases.php:527
msgid "IPv6 Prefix"
msgstr ""
-#: src/usr/local/www/status_dhcpv6_leases.php:582
+#: src/usr/local/www/status_dhcpv6_leases.php:579
msgid "Routed To"
msgstr ""
@@ -23192,7 +22910,7 @@ msgstr ""
#: src/usr/local/www/status_gateway_groups.php:119
#: src/usr/local/www/status_gateways.php:128
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:217
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:221
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:66
#: src/usr/local/www/diag_smart.php:399
msgid "Offline"
@@ -23221,7 +22939,7 @@ msgid "RTTsd"
msgstr ""
#: src/usr/local/www/status_gateways.php:64
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:60
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:62
msgid "Loss"
msgstr ""
@@ -23229,15 +22947,15 @@ msgstr ""
#: src/usr/local/www/status_gateways.php:106
#: src/usr/local/www/status_gateways.php:117
#: src/usr/local/www/status_gateways.php:144
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:233
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:241
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:242
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:243
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:237
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:245
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:246
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:247
msgid "Pending"
msgstr ""
#: src/usr/local/www/status_gateways.php:125
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:214
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:218
msgid "Offline (forced)"
msgstr ""
@@ -23245,48 +22963,48 @@ msgstr ""
msgid "Last checked"
msgstr ""
-#: src/usr/local/www/status_graph.php:139
+#: src/usr/local/www/status_graph.php:127
msgid "Graph Settings"
msgstr ""
-#: src/usr/local/www/status_graph.php:155
-#: src/usr/local/www/status_graph.php:257
+#: src/usr/local/www/status_graph.php:143
+#: src/usr/local/www/status_graph.php:461
msgid "Bandwidth In"
msgstr ""
-#: src/usr/local/www/status_graph.php:156
-#: src/usr/local/www/status_graph.php:258
+#: src/usr/local/www/status_graph.php:144
+#: src/usr/local/www/status_graph.php:462
msgid "Bandwidth Out"
msgstr ""
-#: src/usr/local/www/status_graph.php:165
-#: src/usr/local/www/system_groupmanager.php:395
+#: src/usr/local/www/status_graph.php:153
+#: src/usr/local/www/system_groupmanager.php:389
msgid "Local"
msgstr ""
-#: src/usr/local/www/status_graph.php:166
-#: src/usr/local/www/system_groupmanager.php:395
+#: src/usr/local/www/status_graph.php:154
+#: src/usr/local/www/system_groupmanager.php:389
msgid "Remote"
msgstr ""
-#: src/usr/local/www/status_graph.php:179
+#: src/usr/local/www/status_graph.php:167
msgid "FQDN"
msgstr ""
-#: src/usr/local/www/status_graph.php:181
+#: src/usr/local/www/status_graph.php:169
msgid "Display"
msgstr ""
-#: src/usr/local/www/status_graph.php:210
-#: src/usr/local/www/status_graph.php:211
+#: src/usr/local/www/status_graph.php:418
+#: src/usr/local/www/status_graph.php:419
msgid "Bits/sec"
msgstr ""
-#: src/usr/local/www/status_graph.php:256
+#: src/usr/local/www/status_graph.php:460
msgid "Host IP"
msgstr ""
-#: src/usr/local/www/status_graph.php:256
+#: src/usr/local/www/status_graph.php:460
msgid "Host Name or IP"
msgstr ""
@@ -23337,7 +23055,7 @@ msgid "Connect"
msgstr ""
#: src/usr/local/www/status_interfaces.php:101
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:156
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:148
msgid "Uptime"
msgstr ""
@@ -23708,7 +23426,7 @@ msgstr ""
#: src/usr/local/www/status_logs.php:45
#: src/usr/local/www/status_logs_common.inc:91
-#: src/usr/local/www/status_logs_settings.php:207
+#: src/usr/local/www/status_logs_settings.php:215
msgid "Captive Portal Auth"
msgstr ""
@@ -23734,21 +23452,21 @@ msgid "No logs to display."
msgstr ""
#: src/usr/local/www/status_logs_common.inc:94
-#: src/usr/local/www/status_logs_settings.php:210
+#: src/usr/local/www/status_logs_settings.php:218
#: src/usr/local/www/status_logs_vpn.php:84 src/usr/local/www/vpn_ipsec.php:219
#: src/usr/local/www/vpn_ipsec_keys.php:72
#: src/usr/local/www/vpn_ipsec_keys_edit.php:122
#: src/usr/local/www/vpn_ipsec_mobile.php:306
-#: src/usr/local/www/vpn_ipsec_phase1.php:631
-#: src/usr/local/www/vpn_ipsec_phase1.php:633
-#: src/usr/local/www/vpn_ipsec_phase2.php:408
-#: src/usr/local/www/vpn_ipsec_phase2.php:411
+#: src/usr/local/www/vpn_ipsec_phase1.php:627
+#: src/usr/local/www/vpn_ipsec_phase1.php:629
+#: src/usr/local/www/vpn_ipsec_phase2.php:403
+#: src/usr/local/www/vpn_ipsec_phase2.php:406
#: src/usr/local/www/vpn_ipsec_settings.php:202
#: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp_users.php:29
#: src/usr/local/www/vpn_l2tp_users_edit.php:29
#: src/usr/local/www/vpn_openvpn_client.php:392
#: src/usr/local/www/vpn_openvpn_csc.php:278
-#: src/usr/local/www/vpn_openvpn_server.php:559
+#: src/usr/local/www/vpn_openvpn_server.php:563
msgid "VPN"
msgstr ""
@@ -23887,12 +23605,12 @@ msgid "Protocol Flags"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:643
-#: src/usr/local/www/status_logs_settings.php:96
+#: src/usr/local/www/status_logs_settings.php:100
msgid "Number of log entries to show must be between 5 and 2000."
msgstr ""
#: src/usr/local/www/status_logs_common.inc:649
-#: src/usr/local/www/status_logs_settings.php:101
+#: src/usr/local/www/status_logs_settings.php:105
msgid "Log file size must be numeric and greater than or equal to 100000."
msgstr ""
@@ -23905,13 +23623,13 @@ msgid "Log Display Settings Saved (no backup, no sync): "
msgstr ""
#: src/usr/local/www/status_logs_common.inc:731
-#: src/usr/local/www/status_logs_settings.php:171
-#: src/usr/local/www/system_advanced_admin.php:560
+#: src/usr/local/www/status_logs_settings.php:179
+#: src/usr/local/www/system_advanced_admin.php:558
msgid "webConfigurator configuration has changed. Restarting webConfigurator."
msgstr ""
#: src/usr/local/www/status_logs_common.inc:733
-#: src/usr/local/www/status_logs_settings.php:173
+#: src/usr/local/www/status_logs_settings.php:181
msgid "WebGUI process is restarting."
msgstr ""
@@ -23920,12 +23638,11 @@ msgid "Manage"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:783
-#: src/usr/local/www/diag_nanobsd.php:133
msgid " "
msgstr ""
#: src/usr/local/www/status_logs_common.inc:792
-#: src/usr/local/www/status_logs_settings.php:223
+#: src/usr/local/www/status_logs_settings.php:231
msgid "Forward/Reverse Display"
msgstr ""
@@ -23943,7 +23660,7 @@ msgstr ""
#: src/usr/local/www/status_logs_common.inc:821
#: src/usr/local/www/status_logs_common.inc:826
-#: src/usr/local/www/status_logs_settings.php:230
+#: src/usr/local/www/status_logs_settings.php:238
msgid "GUI Log Entries"
msgstr ""
@@ -23955,7 +23672,7 @@ msgstr ""
#: src/usr/local/www/status_logs_common.inc:835
#: src/usr/local/www/status_logs_common.inc:840
-#: src/usr/local/www/status_logs_settings.php:238
+#: src/usr/local/www/status_logs_settings.php:246
msgid "Log file size (Bytes)"
msgstr ""
@@ -23981,7 +23698,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/status_logs_common.inc:884
-#: src/usr/local/www/status_logs_settings.php:274
+#: src/usr/local/www/status_logs_settings.php:282
msgid "Web Server Log"
msgstr ""
@@ -23992,7 +23709,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/status_logs_common.inc:895
-#: src/usr/local/www/status_logs_settings.php:246
+#: src/usr/local/www/status_logs_settings.php:254
msgid "Log firewall default blocks"
msgstr ""
@@ -24010,27 +23727,27 @@ msgid ""
msgstr ""
#: src/usr/local/www/status_logs_common.inc:926
-#: src/usr/local/www/status_logs_settings.php:298
+#: src/usr/local/www/status_logs_settings.php:306
msgid "Dont load descriptions"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:927
-#: src/usr/local/www/status_logs_settings.php:299
+#: src/usr/local/www/status_logs_settings.php:307
msgid "Display as column"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:928
-#: src/usr/local/www/status_logs_settings.php:300
+#: src/usr/local/www/status_logs_settings.php:308
msgid "Display as second row"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:923
-#: src/usr/local/www/status_logs_settings.php:295
+#: src/usr/local/www/status_logs_settings.php:303
msgid "Where to show rule descriptions"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:930
-#: src/usr/local/www/status_logs_settings.php:302
+#: src/usr/local/www/status_logs_settings.php:310
msgid ""
"Show the applied rule description below or in the firewall log rows.<br /"
">Displaying rule descriptions for all lines in the log might affect "
@@ -24120,34 +23837,34 @@ msgstr ""
msgid "Reverse Resolve with DNS"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:77
-#: src/usr/local/www/status_logs_settings.php:314
+#: src/usr/local/www/status_logs_settings.php:81
+#: src/usr/local/www/status_logs_settings.php:322
msgid "Reset Log Files"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:79
+#: src/usr/local/www/status_logs_settings.php:83
msgid "The log files have been reset."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:86
+#: src/usr/local/www/status_logs_settings.php:90
msgid ""
"A valid IP address/hostname or IP/hostname:port must be specified for remote "
"syslog server #1."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:89
+#: src/usr/local/www/status_logs_settings.php:93
msgid ""
"A valid IP address/hostname or IP/hostname:port must be specified for remote "
"syslog server #2."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:92
+#: src/usr/local/www/status_logs_settings.php:96
msgid ""
"A valid IP address/hostname or IP/hostname:port must be specified for remote "
"syslog server #3."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:183
+#: src/usr/local/www/status_logs_settings.php:191
msgid ""
"Logs are held in constant-size circular log files. This field controls how "
"large each log file is, and thus how many entries may exist inside the log. "
@@ -24155,7 +23872,7 @@ msgid ""
"such log files."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:185
+#: src/usr/local/www/status_logs_settings.php:193
msgid ""
"NOTE: Log sizes are changed the next time a log file is cleared or deleted. "
"To immediately increase the size of the log files, first save the options to "
@@ -24163,97 +23880,101 @@ msgid ""
"farther down this page. "
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:186
+#: src/usr/local/www/status_logs_settings.php:194
msgid ""
"Be aware that increasing this value increases every log file size, so disk "
"usage will increase significantly."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:187
+#: src/usr/local/www/status_logs_settings.php:195
msgid "Disk space currently used by log files is: "
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:188
+#: src/usr/local/www/status_logs_settings.php:196
msgid " Remaining disk space for log files: "
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:190
+#: src/usr/local/www/status_logs_settings.php:198
msgid ""
"This option will allow the logging daemon to bind to a single IP address, "
"rather than all IP addresses."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:191
+#: src/usr/local/www/status_logs_settings.php:199
msgid ""
"If a single IP is picked, remote syslog servers must all be of that IP type. "
"To mix IPv4 and IPv6 remote syslog servers, bind to all interfaces."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:193
+#: src/usr/local/www/status_logs_settings.php:201
msgid ""
"NOTE: If an IP address cannot be located on the chosen interface, the daemon "
"will bind to all addresses."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:234
+#: src/usr/local/www/status_logs_settings.php:227
+msgid "General Logging Options"
+msgstr ""
+
+#: src/usr/local/www/status_logs_settings.php:242
msgid ""
"This is only the number of log entries displayed in the GUI. It does not "
"affect how many entries are contained in the actual log files."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:249
+#: src/usr/local/www/status_logs_settings.php:257
msgid ""
"Log packets that are <strong>blocked</strong> by the implicit default block "
"rule. - Per-rule logging options are still respected."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:256
+#: src/usr/local/www/status_logs_settings.php:264
msgid ""
"Log packets that are <strong>allowed</strong> by the implicit default pass "
"rule. - Per-rule logging options are still respected. "
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:277
+#: src/usr/local/www/status_logs_settings.php:285
msgid ""
"If this is checked, errors from the web server process for the GUI or "
"Captive Portal will appear in the main system log."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:281
+#: src/usr/local/www/status_logs_settings.php:289
msgid "Raw Logs"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:284
+#: src/usr/local/www/status_logs_settings.php:292
msgid ""
"If this is checked, filter logs are shown as generated by the packet filter, "
"without any formatting. This will reveal more detailed information, but it "
"is more difficult to read."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:307
+#: src/usr/local/www/status_logs_settings.php:315
msgid "Local Logging"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:317
+#: src/usr/local/www/status_logs_settings.php:325
msgid ""
"Clears all local log files and reinitializes them as empty logs. This also "
"restarts the DHCP daemon. Use the Save button first if any setting changes "
"have been made."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:320
+#: src/usr/local/www/status_logs_settings.php:328
msgid "Remote Logging Options"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:325
+#: src/usr/local/www/status_logs_settings.php:333
msgid "Enable Remote Logging"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:334
+#: src/usr/local/www/status_logs_settings.php:342
msgid "Default (any)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:342
+#: src/usr/local/www/status_logs_settings.php:350
msgid ""
"This option is only used when a non-default address is chosen as the source "
"above. This option only expresses a preference; If an IP address of the "
@@ -24261,34 +23982,34 @@ msgid ""
"tried."
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:346
+#: src/usr/local/www/status_logs_settings.php:354
msgid "Remote log servers"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:351
+#: src/usr/local/www/status_logs_settings.php:359
#: src/usr/local/www/vpn_openvpn_csc.php:454
#: src/usr/local/www/vpn_openvpn_csc.php:495
#: src/usr/local/www/vpn_openvpn_csc.php:545
msgid "Server 1"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:359
+#: src/usr/local/www/status_logs_settings.php:367
#: src/usr/local/www/vpn_openvpn_csc.php:461
#: src/usr/local/www/vpn_openvpn_csc.php:502
#: src/usr/local/www/vpn_openvpn_csc.php:552
msgid "Server 2"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:367
+#: src/usr/local/www/status_logs_settings.php:375
#: src/usr/local/www/vpn_openvpn_csc.php:468
msgid "Server 3"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:375
+#: src/usr/local/www/status_logs_settings.php:383
msgid "Remote Syslog Contents"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:441
+#: src/usr/local/www/status_logs_settings.php:477
msgid ""
"Syslog sends UDP datagrams to port 514 on the specified remote syslog "
"server, unless another port is specified. Be sure to set syslogd on the "
@@ -24381,7 +24102,7 @@ msgid "Reach"
msgstr ""
#: src/usr/local/www/status_ntpd.php:274
-#: src/usr/local/www/vpn_ipsec_phase1.php:897
+#: src/usr/local/www/vpn_ipsec_phase1.php:893
msgid "Delay"
msgstr ""
@@ -24410,12 +24131,12 @@ msgid "Clock Altitude"
msgstr ""
#: src/usr/local/www/status_ntpd.php:315
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:175
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:179
msgid "Satellites"
msgstr ""
#: src/usr/local/www/status_openvpn.php:81
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:61
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:254
msgid "An error occurred."
msgstr ""
@@ -24424,99 +24145,99 @@ msgid "Client Connections"
msgstr ""
#: src/usr/local/www/status_openvpn.php:103
-#: src/usr/local/www/status_openvpn.php:174
-#: src/usr/local/www/system_camanager.php:584
-#: src/usr/local/www/system_certmanager.php:702
-#: src/usr/local/www/system_certmanager.php:821
+#: src/usr/local/www/status_openvpn.php:176
+#: src/usr/local/www/system_camanager.php:597
+#: src/usr/local/www/system_certmanager.php:715
+#: src/usr/local/www/system_certmanager.php:842
#: src/usr/local/www/vpn_openvpn_csc.php:640
msgid "Common Name"
msgstr ""
#: src/usr/local/www/status_openvpn.php:104
-#: src/usr/local/www/status_openvpn.php:175
+#: src/usr/local/www/status_openvpn.php:177
msgid "Real Address"
msgstr ""
#: src/usr/local/www/status_openvpn.php:105
-#: src/usr/local/www/status_openvpn.php:225
-#: src/usr/local/www/status_openvpn.php:281
+#: src/usr/local/www/status_openvpn.php:227
+#: src/usr/local/www/status_openvpn.php:283
msgid "Virtual Address"
msgstr ""
#: src/usr/local/www/status_openvpn.php:106
-#: src/usr/local/www/status_openvpn.php:224
-#: src/usr/local/www/status_openvpn.php:280
+#: src/usr/local/www/status_openvpn.php:226
+#: src/usr/local/www/status_openvpn.php:282
msgid "Connected Since"
msgstr ""
#: src/usr/local/www/status_openvpn.php:107
-#: src/usr/local/www/status_openvpn.php:227
-#: src/usr/local/www/status_openvpn.php:283
+#: src/usr/local/www/status_openvpn.php:229
+#: src/usr/local/www/status_openvpn.php:285
msgid "Bytes Sent"
msgstr ""
#: src/usr/local/www/status_openvpn.php:108
-#: src/usr/local/www/status_openvpn.php:228
-#: src/usr/local/www/status_openvpn.php:284
+#: src/usr/local/www/status_openvpn.php:230
+#: src/usr/local/www/status_openvpn.php:286
msgid "Bytes Received"
msgstr ""
#: src/usr/local/www/status_openvpn.php:128
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:104
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:90
#, php-format
msgid "Kill client connection from %s"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:161
#: src/usr/local/www/status_openvpn.php:163
+#: src/usr/local/www/status_openvpn.php:165
msgid "Show Routing Table"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:165
+#: src/usr/local/www/status_openvpn.php:167
msgid "Display OpenVPN's internal routing table for this server."
msgstr ""
-#: src/usr/local/www/status_openvpn.php:169
+#: src/usr/local/www/status_openvpn.php:171
msgid "Routing Table"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:176
+#: src/usr/local/www/status_openvpn.php:178
msgid "Target Network"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:177
+#: src/usr/local/www/status_openvpn.php:179
msgid "Last Used"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:197
+#: src/usr/local/www/status_openvpn.php:199
msgid ""
"An IP address followed by C indicates a host currently connected through the "
"VPN."
msgstr ""
-#: src/usr/local/www/status_openvpn.php:217
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:131
+#: src/usr/local/www/status_openvpn.php:219
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:119
msgid "Peer to Peer Server Instance Statistics"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:226
-#: src/usr/local/www/status_openvpn.php:282
+#: src/usr/local/www/status_openvpn.php:228
+#: src/usr/local/www/status_openvpn.php:284
msgid "Remote Host"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:273
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:187
+#: src/usr/local/www/status_openvpn.php:275
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:177
msgid "Client Instance Statistics"
msgstr ""
-#: src/usr/local/www/status_openvpn.php:325
+#: src/usr/local/www/status_openvpn.php:327
msgid ""
"If there are custom options that override the management features of OpenVPN "
"on a client or server, they will cause that OpenVPN instance to not work "
"correctly with this status page."
msgstr ""
-#: src/usr/local/www/status_openvpn.php:329
+#: src/usr/local/www/status_openvpn.php:331
msgid "No OpenVPN instances defined."
msgstr ""
@@ -24579,7 +24300,7 @@ msgstr ""
msgid "Loading"
msgstr ""
-#: src/usr/local/www/status_services.php:154
+#: src/usr/local/www/status_services.php:144
msgid "No services found."
msgstr ""
@@ -24625,72 +24346,72 @@ msgid ""
"time."
msgstr ""
-#: src/usr/local/www/system.php:150
+#: src/usr/local/www/system.php:155
msgid "The domain may only contain the characters a-z, 0-9, '-' and '.'."
msgstr ""
-#: src/usr/local/www/system.php:161
+#: src/usr/local/www/system.php:166
#, php-format
msgid "A valid IP address must be specified for DNS server %s."
msgstr ""
-#: src/usr/local/www/system.php:167
+#: src/usr/local/www/system.php:172
#, php-format
msgid ""
"The IPv6 gateway \"%1$s\" can not be specified for IPv4 DNS server \"%2$s\"."
msgstr ""
-#: src/usr/local/www/system.php:170
+#: src/usr/local/www/system.php:175
#, php-format
msgid ""
"The IPv4 gateway \"%1$s\" can not be specified for IPv6 DNS server \"%2$s\"."
msgstr ""
-#: src/usr/local/www/system.php:181
+#: src/usr/local/www/system.php:186
msgid ""
"Each configured DNS server must have a unique IP address. Remove the "
"duplicated IP."
msgstr ""
-#: src/usr/local/www/system.php:192
+#: src/usr/local/www/system.php:197
#, php-format
msgid ""
"A gateway can not be assigned to DNS '%s' server which is on a directly "
"connected network."
msgstr ""
-#: src/usr/local/www/system.php:204
+#: src/usr/local/www/system.php:209
msgid ""
"A NTP Time Server name may only contain the characters a-z, 0-9, '-' and '.'."
msgstr ""
-#: src/usr/local/www/system.php:358
+#: src/usr/local/www/system.php:363
msgid "Name of the firewall host, without domain part"
msgstr ""
-#: src/usr/local/www/system.php:365
+#: src/usr/local/www/system.php:371
msgid ""
"Do not use 'local' as a domain name. It will cause local hosts running mDNS "
"(avahi, bonjour, etc.) to be unable to resolve local hosts not running mDNS."
msgstr ""
-#: src/usr/local/www/system.php:370
+#: src/usr/local/www/system.php:377
msgid "DNS Server Settings"
msgstr ""
-#: src/usr/local/www/system.php:376
+#: src/usr/local/www/system.php:383
msgid "DNS Server "
msgstr ""
-#: src/usr/local/www/system.php:380
+#: src/usr/local/www/system.php:387
msgid "DNS Server"
msgstr ""
-#: src/usr/local/www/system.php:423
+#: src/usr/local/www/system.php:430
msgid "DNS Server Override"
msgstr ""
-#: src/usr/local/www/system.php:426
+#: src/usr/local/www/system.php:433
#, php-format
msgid ""
"If this option is set, %s will use DNS servers assigned by a DHCP/PPP server "
@@ -24698,11 +24419,11 @@ msgid ""
"will not be assigned to DHCP and PPTP VPN clients."
msgstr ""
-#: src/usr/local/www/system.php:433
+#: src/usr/local/www/system.php:440
msgid "Disable DNS Forwarder"
msgstr ""
-#: src/usr/local/www/system.php:436
+#: src/usr/local/www/system.php:443
msgid ""
"By default localhost (127.0.0.1) will be used as the first DNS server where "
"the DNS Forwarder or DNS Resolver is enabled and set to listen on Localhost, "
@@ -24710,47 +24431,58 @@ msgid ""
"box omits localhost from the list of DNS servers."
msgstr ""
-#: src/usr/local/www/system.php:443
+#: src/usr/local/www/system.php:450
msgid "Localization"
msgstr ""
-#: src/usr/local/www/system.php:446
+#: src/usr/local/www/system.php:454
msgid "Timezone"
msgstr ""
-#: src/usr/local/www/system.php:449
+#: src/usr/local/www/system.php:457
msgid ""
"Select the timezone or location within the timezone to be used by this "
"system."
msgstr ""
-#: src/usr/local/www/system.php:452
+#: src/usr/local/www/system.php:461
msgid "Timeservers"
msgstr ""
-#: src/usr/local/www/system.php:455
+#: src/usr/local/www/system.php:464
msgid ""
"Use a space to separate multiple hosts (only one required). Remember to set "
"up at least one DNS server if a host name is entered here!"
msgstr ""
-#: src/usr/local/www/system.php:459
+#: src/usr/local/www/system.php:469
msgid "Language"
msgstr ""
-#: src/usr/local/www/system.php:462
+#: src/usr/local/www/system.php:472
msgid "Choose a language for the webConfigurator"
msgstr ""
-#: src/usr/local/www/system.php:466
-#: src/usr/local/www/system_advanced_admin.php:308
-#: src/usr/local/www/system_certmanager.php:997
+#: src/usr/local/www/system.php:476
+#: src/usr/local/www/system_advanced_admin.php:306
+#: src/usr/local/www/system_certmanager.php:1018
msgid "webConfigurator"
msgstr ""
-#: src/usr/local/www/system.php:484
+#: src/usr/local/www/system.php:492
+msgid "Dashboard update period"
+msgstr ""
+
+#: src/usr/local/www/system.php:496
+msgid ""
+"Time in seconds between dashboard widget updates. Small values cause more "
+"frequent updates but increase the load on the web server. Minimum is 5 "
+"seconds, maximum 600 seconds"
+msgstr ""
+
+#: src/usr/local/www/system.php:504
#: src/usr/local/www/system_user_settings.php:152
-#: src/usr/local/www/system_usermanager.php:934
+#: src/usr/local/www/system_usermanager.php:928
#, php-format
msgid "%sUser-created themes are unsupported, use at your own risk."
msgstr ""
@@ -24777,100 +24509,100 @@ msgstr ""
msgid "One moment...redirecting to %s in 20 seconds."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:285
-#: src/usr/local/www/system_advanced_admin.php:297
+#: src/usr/local/www/system_advanced_admin.php:283
+#: src/usr/local/www/system_advanced_admin.php:295
#: src/usr/local/www/system_advanced_firewall.php:382
-#: src/usr/local/www/system_advanced_misc.php:300
+#: src/usr/local/www/system_advanced_misc.php:299
#: src/usr/local/www/system_advanced_network.php:151
-#: src/usr/local/www/system_advanced_notifications.php:193
+#: src/usr/local/www/system_advanced_notifications.php:200
#: src/usr/local/www/system_advanced_sysctl.php:141
msgid "Admin Access"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:298
+#: src/usr/local/www/system_advanced_admin.php:296
#: src/usr/local/www/system_advanced_firewall.php:371
#: src/usr/local/www/system_advanced_firewall.php:383
-#: src/usr/local/www/system_advanced_misc.php:301
+#: src/usr/local/www/system_advanced_misc.php:300
#: src/usr/local/www/system_advanced_network.php:152
-#: src/usr/local/www/system_advanced_notifications.php:194
+#: src/usr/local/www/system_advanced_notifications.php:201
#: src/usr/local/www/system_advanced_sysctl.php:142
msgid "Firewall & NAT"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:300
+#: src/usr/local/www/system_advanced_admin.php:298
#: src/usr/local/www/system_advanced_firewall.php:385
-#: src/usr/local/www/system_advanced_misc.php:287
-#: src/usr/local/www/system_advanced_misc.php:303
+#: src/usr/local/www/system_advanced_misc.php:286
+#: src/usr/local/www/system_advanced_misc.php:302
#: src/usr/local/www/system_advanced_network.php:154
-#: src/usr/local/www/system_advanced_notifications.php:196
+#: src/usr/local/www/system_advanced_notifications.php:203
#: src/usr/local/www/system_advanced_sysctl.php:144
#: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246
msgid "Miscellaneous"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:301
+#: src/usr/local/www/system_advanced_admin.php:299
#: src/usr/local/www/system_advanced_firewall.php:386
-#: src/usr/local/www/system_advanced_misc.php:304
+#: src/usr/local/www/system_advanced_misc.php:303
#: src/usr/local/www/system_advanced_network.php:155
-#: src/usr/local/www/system_advanced_notifications.php:197
+#: src/usr/local/www/system_advanced_notifications.php:204
#: src/usr/local/www/system_advanced_sysctl.php:121
#: src/usr/local/www/system_advanced_sysctl.php:145
#: src/usr/local/www/system_advanced_sysctl.php:152
msgid "System Tunables"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:302
+#: src/usr/local/www/system_advanced_admin.php:300
#: src/usr/local/www/system_advanced_firewall.php:387
-#: src/usr/local/www/system_advanced_misc.php:305
+#: src/usr/local/www/system_advanced_misc.php:304
#: src/usr/local/www/system_advanced_network.php:156
-#: src/usr/local/www/system_advanced_notifications.php:181
-#: src/usr/local/www/system_advanced_notifications.php:198
+#: src/usr/local/www/system_advanced_notifications.php:188
+#: src/usr/local/www/system_advanced_notifications.php:205
#: src/usr/local/www/system_advanced_sysctl.php:146
msgid "Notifications"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:328
+#: src/usr/local/www/system_advanced_admin.php:326
msgid "Create or Import"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:346
+#: src/usr/local/www/system_advanced_admin.php:344
msgid "TCP port"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:350
+#: src/usr/local/www/system_advanced_admin.php:348
msgid ""
"Enter a custom port number for the webConfigurator above to override the "
"default (80 for HTTP, 443 for HTTPS). Changes will take effect immediately "
"after save."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:356
+#: src/usr/local/www/system_advanced_admin.php:354
msgid "Max Processes"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:359
+#: src/usr/local/www/system_advanced_admin.php:357
msgid ""
"Enter the number of webConfigurator processes to run. This defaults to 2. "
"Increasing this will allow more users/browsers to access the GUI "
"concurrently."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:365
+#: src/usr/local/www/system_advanced_admin.php:363
msgid "WebGUI redirect"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:368
+#: src/usr/local/www/system_advanced_admin.php:366
msgid ""
"When this is unchecked, access to the webConfigurator is always permitted "
"even on port 80, regardless of the listening port configured. Check this box "
"to disable this automatically added redirect rule."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:374
+#: src/usr/local/www/system_advanced_admin.php:372
msgid "WebGUI Login Autocomplete"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:377
+#: src/usr/local/www/system_advanced_admin.php:375
msgid ""
"When this is checked, login credentials for the webConfigurator may be saved "
"by the browser. While convenient, some security standards require this to be "
@@ -24879,21 +24611,21 @@ msgid ""
"this option)."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:385
+#: src/usr/local/www/system_advanced_admin.php:383
msgid "WebGUI login messages"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:388
+#: src/usr/local/www/system_advanced_admin.php:386
msgid ""
"When this is checked, successful logins to the webConfigurator will not be "
"logged."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:399
+#: src/usr/local/www/system_advanced_admin.php:397
msgid "Anti-lockout"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:402
+#: src/usr/local/www/system_advanced_admin.php:400
#, php-format
msgid ""
"When this is unchecked, access to the webConfigurator on the %s interface is "
@@ -24905,11 +24637,11 @@ msgid ""
"menu resets this setting as well.</em>"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:412
+#: src/usr/local/www/system_advanced_admin.php:410
msgid "DNS Rebind Check"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:415
+#: src/usr/local/www/system_advanced_admin.php:413
msgid ""
"When this is unchecked, the system is protected against <a href=\"http://en."
"wikipedia.org/wiki/DNS_rebinding\">DNS Rebinding attacks</a>. This blocks "
@@ -24918,22 +24650,22 @@ msgid ""
"resolution in the environment."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:423
+#: src/usr/local/www/system_advanced_admin.php:421
msgid "Alternate Hostnames"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:426
+#: src/usr/local/www/system_advanced_admin.php:424
msgid ""
"Alternate Hostnames for DNS Rebinding and HTTP_REFERER Checks. Specify "
"alternate hostnames by which the router may be queried, to bypass the DNS "
"Rebinding Attack checks. Separate hostnames with spaces."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:432
+#: src/usr/local/www/system_advanced_admin.php:430
msgid "Browser HTTP_REFERER enforcement"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:435
+#: src/usr/local/www/system_advanced_admin.php:433
msgid ""
"When this is unchecked, access to the webConfigurator is protected against "
"HTTP_REFERER redirection attempts. Check this box to disable this protection "
@@ -24943,43 +24675,43 @@ msgid ""
"wikipedia.org/wiki/HTTP_referrer\">Wikipedia</a>."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:445
+#: src/usr/local/www/system_advanced_admin.php:443
msgid "Secure Shell"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:449
+#: src/usr/local/www/system_advanced_admin.php:447
msgid "Secure Shell Server"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:456
-#: src/usr/local/www/vpn_ipsec_phase1.php:705
+#: src/usr/local/www/system_advanced_admin.php:454
+#: src/usr/local/www/vpn_ipsec_phase1.php:701
msgid "Authentication Method"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:459
+#: src/usr/local/www/system_advanced_admin.php:457
msgid ""
"When enabled, authorized keys need to be configured for each <a href="
"\"system_usermanager.php\">user</a> that has been granted secure shell "
"access."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:465
+#: src/usr/local/www/system_advanced_admin.php:463
msgid "SSH port"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:469
+#: src/usr/local/www/system_advanced_admin.php:467
msgid "Note: Leave this blank for the default of 22."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:473
+#: src/usr/local/www/system_advanced_admin.php:471
msgid "Serial Communications"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:478
+#: src/usr/local/www/system_advanced_admin.php:476
msgid "Serial Terminal"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:481
+#: src/usr/local/www/system_advanced_admin.php:479
msgid ""
"Note:\tThis will redirect the console output and messages to the serial "
"port. The console menu can still be accessed from the internal video card/"
@@ -24987,46 +24719,46 @@ msgid ""
"serial console."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:489
+#: src/usr/local/www/system_advanced_admin.php:487
msgid "Serial Speed"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:492
+#: src/usr/local/www/system_advanced_admin.php:490
msgid "Allows selection of different speeds for the serial console port."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:500
+#: src/usr/local/www/system_advanced_admin.php:498
msgid "Serial Console"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:501
+#: src/usr/local/www/system_advanced_admin.php:499
msgid "VGA Console"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:497
+#: src/usr/local/www/system_advanced_admin.php:495
msgid "Primary Console"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:503
+#: src/usr/local/www/system_advanced_admin.php:501
msgid ""
"Select the preferred console if multiple consoles are present. The preferred "
"console will show pfSense boot script output. All consoles display OS boot "
"messages, console messages, and the console menu."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:509
+#: src/usr/local/www/system_advanced_admin.php:507
msgid "Console Options"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:513
+#: src/usr/local/www/system_advanced_admin.php:511
msgid "Console menu"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:549
+#: src/usr/local/www/system_advanced_admin.php:547
msgid "secure shell configuration has changed. Stopping sshd."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:552
+#: src/usr/local/www/system_advanced_admin.php:550
msgid "secure shell configuration has changed. Restarting sshd."
msgstr ""
@@ -25155,7 +24887,7 @@ msgid "High-latency"
msgstr ""
#: src/usr/local/www/system_advanced_firewall.php:422
-#: src/usr/local/www/vpn_ipsec_phase1.php:714
+#: src/usr/local/www/vpn_ipsec_phase1.php:710
msgid "Aggressive"
msgstr ""
@@ -25463,104 +25195,100 @@ msgid ""
msgstr ""
#: src/usr/local/www/system_advanced_misc.php:76
-msgid "AMD Geode LX Security Block"
-msgstr ""
-
-#: src/usr/local/www/system_advanced_misc.php:77
msgid "AES-NI CPU-based Acceleration"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:80
+#: src/usr/local/www/system_advanced_misc.php:79
msgid "Intel Core* CPU on-die thermal sensor"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:81
+#: src/usr/local/www/system_advanced_misc.php:80
msgid "AMD K8, K10 and K11 CPU on-die thermal sensor"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:91
+#: src/usr/local/www/system_advanced_misc.php:90
msgid "Please select a valid Cryptographic Accelerator."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:95
+#: src/usr/local/www/system_advanced_misc.php:94
msgid "Please select a valid Thermal Hardware Sensor."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:99
+#: src/usr/local/www/system_advanced_misc.php:98
msgid "/tmp Size must be numeric and should not be less than 40MiB."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:103
+#: src/usr/local/www/system_advanced_misc.php:102
msgid "/var Size must be numeric and should not be less than 60MiB."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:107
+#: src/usr/local/www/system_advanced_misc.php:106
msgid "Proxy port must be a valid port number, 1-65535."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:111
+#: src/usr/local/www/system_advanced_misc.php:110
msgid "Proxy URL must be a valid IP address or FQDN."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:115
+#: src/usr/local/www/system_advanced_misc.php:114
msgid "The proxy username contains invalid characters."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:119
+#: src/usr/local/www/system_advanced_misc.php:118
msgid "Proxy password and confirmation must match."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:309
+#: src/usr/local/www/system_advanced_misc.php:308
msgid "Proxy Support"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:313
+#: src/usr/local/www/system_advanced_misc.php:312
msgid "Proxy URL"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:316
+#: src/usr/local/www/system_advanced_misc.php:315
msgid ""
"Hostname or IP address of proxy server this system will use for its outbound "
"Internet access."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:321
+#: src/usr/local/www/system_advanced_misc.php:320
msgid "Proxy Port"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:324
+#: src/usr/local/www/system_advanced_misc.php:323
msgid "Port where proxy server is listening."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:328
+#: src/usr/local/www/system_advanced_misc.php:327
msgid "Proxy Username"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:331
+#: src/usr/local/www/system_advanced_misc.php:330
msgid ""
"Username for authentication to proxy server. Optional, leave blank to not "
"use authentication."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:336
+#: src/usr/local/www/system_advanced_misc.php:335
msgid "Proxy Password"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:339
+#: src/usr/local/www/system_advanced_misc.php:338
msgid "Password for authentication to proxy server."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:342
-#: src/usr/local/www/system_advanced_misc.php:344
+#: src/usr/local/www/system_advanced_misc.php:341
+#: src/usr/local/www/system_advanced_misc.php:343
msgid "Load Balancing"
msgstr ""
+#: src/usr/local/www/system_advanced_misc.php:347
#: src/usr/local/www/system_advanced_misc.php:348
-#: src/usr/local/www/system_advanced_misc.php:349
msgid "Use sticky connections"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:351
+#: src/usr/local/www/system_advanced_misc.php:350
msgid ""
"Successive connections will be redirected to the servers in a round-robin "
"manner with connections from the same source being sent to the same web "
@@ -25571,11 +25299,11 @@ msgid ""
"Load Balancing service."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:361
+#: src/usr/local/www/system_advanced_misc.php:360
msgid "Source tracking timeout"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:365
+#: src/usr/local/www/system_advanced_misc.php:364
msgid ""
"Set the source tracking timeout for sticky connections. By default this is "
"0, so source tracking is removed as soon as the state expires. Setting this "
@@ -25583,26 +25311,26 @@ msgid ""
"longer periods of time."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:374
+#: src/usr/local/www/system_advanced_misc.php:373
msgid "Default gateway switching"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:377
+#: src/usr/local/www/system_advanced_misc.php:376
msgid ""
"If the default gateway goes down, switch the default gateway to another "
"available one. This is not enabled by default, as it's unnecessary in most "
"all scenarios, which instead use gateway groups."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:382
+#: src/usr/local/www/system_advanced_misc.php:381
msgid "Power Savings"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:386
+#: src/usr/local/www/system_advanced_misc.php:385
msgid "PowerD"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:389
+#: src/usr/local/www/system_advanced_misc.php:388
msgid ""
"The powerd utility monitors the system state and sets various power control "
"options accordingly. It offers four modes (maximum, minimum, adaptive and "
@@ -25619,43 +25347,43 @@ msgid ""
"and keeps twice lower CPU load."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:404
+#: src/usr/local/www/system_advanced_misc.php:403
msgid "Hiadaptive"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:405
+#: src/usr/local/www/system_advanced_misc.php:404
msgid "Adaptive"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:406
+#: src/usr/local/www/system_advanced_misc.php:405
msgid "Minimum"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:407
+#: src/usr/local/www/system_advanced_misc.php:406
msgid "Maximum"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:412
+#: src/usr/local/www/system_advanced_misc.php:411
msgid "AC Power"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:419
+#: src/usr/local/www/system_advanced_misc.php:418
msgid "Battery Power"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:426
+#: src/usr/local/www/system_advanced_misc.php:425
msgid "Unknown Power"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:432
+#: src/usr/local/www/system_advanced_misc.php:431
msgid "Cryptographic & Thermal Hardware"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:436
+#: src/usr/local/www/system_advanced_misc.php:435
msgid "Cryptographic Hardware"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:439
+#: src/usr/local/www/system_advanced_misc.php:438
msgid ""
"A cryptographic accelerator module will use hardware support to speed up "
"some cryptographic functions on systems which have the chip. Do not enable "
@@ -25668,13 +25396,13 @@ msgid ""
"to \"none\" and then reboot."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:451
+#: src/usr/local/www/system_advanced_misc.php:450
#: src/usr/local/www/widgets/include/thermal_sensors.inc:24
#: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246
msgid "Thermal Sensors"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:454
+#: src/usr/local/www/system_advanced_misc.php:453
msgid ""
"With a supported CPU, selecting a thermal sensor will load the appropriate "
"driver to read its temperature. Setting this to \"None\" will attempt to "
@@ -25684,52 +25412,52 @@ msgid ""
"this option to \"none\" and then reboot."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:467
+#: src/usr/local/www/system_advanced_misc.php:466
msgid "Schedule States"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:470
+#: src/usr/local/www/system_advanced_misc.php:469
msgid ""
"By default, when a schedule expires, connections permitted by that schedule "
"are killed. This option overrides that behavior by not clearing states for "
"existing connections."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:475
+#: src/usr/local/www/system_advanced_misc.php:474
#: src/usr/local/www/system_gateways_edit.php:633
msgid "Gateway Monitoring"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:479
+#: src/usr/local/www/system_advanced_misc.php:478
msgid "State Killing on Gateway Failure"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:482
+#: src/usr/local/www/system_advanced_misc.php:481
msgid ""
"The monitoring process will flush all states when a gateway goes down if "
"this box is checked."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:487
+#: src/usr/local/www/system_advanced_misc.php:486
msgid "Skip rules when gateway is down"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:490
+#: src/usr/local/www/system_advanced_misc.php:489
msgid ""
"By default, when a rule has a gateway specified and this gateway is down, "
"the rule is created omitting the gateway. This option overrides that "
"behavior by omitting the entire rule instead."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:495
+#: src/usr/local/www/system_advanced_misc.php:494
msgid "RAM Disk Settings (Reboot to Apply Changes)"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:499
+#: src/usr/local/www/system_advanced_misc.php:498
msgid "Use RAM Disks"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:502
+#: src/usr/local/www/system_advanced_misc.php:501
msgid ""
"Set this to use /tmp and /var as RAM disks (memory file system disks) on a "
"full install rather than use the hard disk. Setting this will cause the data "
@@ -25738,82 +25466,82 @@ msgid ""
"clicking \"Save\"."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:509
+#: src/usr/local/www/system_advanced_misc.php:508
msgid "/tmp RAM Disk Size"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:513
+#: src/usr/local/www/system_advanced_misc.php:512
msgid ""
"Set the size, in MiB, for the /tmp RAM disk. Leave blank for 40MiB. Do not "
"set lower than 40."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:518
+#: src/usr/local/www/system_advanced_misc.php:517
msgid "/var RAM Disk Size"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:522
+#: src/usr/local/www/system_advanced_misc.php:521
msgid ""
"Set the size, in MiB, for the /var RAM disk. Leave blank for 60MiB. Do not "
"set lower than 60."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:527
+#: src/usr/local/www/system_advanced_misc.php:526
msgid "Periodic RRD Backup"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:531
+#: src/usr/local/www/system_advanced_misc.php:530
msgid ""
"This will periodically backup the RRD data so it can be restored "
"automatically on the next boot. Keep in mind that the more frequent the "
"backup, the more writes will happen to the media."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:537
+#: src/usr/local/www/system_advanced_misc.php:536
msgid "Periodic DHCP Leases Backup"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:541
+#: src/usr/local/www/system_advanced_misc.php:540
msgid ""
"This will periodically backup the DHCP leases so it can be restored "
"automatically on the next boot. Keep in mind that the more frequent the "
"backup, the more writes will happen to the media."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:548
+#: src/usr/local/www/system_advanced_misc.php:546
msgid "Hardware Settings"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:557
+#: src/usr/local/www/system_advanced_misc.php:555
msgid "Always on"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:555
+#: src/usr/local/www/system_advanced_misc.php:553
msgid "Hard disk standby time"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:558
+#: src/usr/local/www/system_advanced_misc.php:556
msgid ""
"Puts the hard disk into standby mode when the selected number of minutes has "
"elapsed since the last access.<br /><strong> Do not set this for CF cards.</"
"strong>"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:564
+#: src/usr/local/www/system_advanced_misc.php:561
msgid "Installation Feedback"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:568
+#: src/usr/local/www/system_advanced_misc.php:565
msgid "Host UUID"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:571
+#: src/usr/local/www/system_advanced_misc.php:568
msgid ""
"Enable this option to not send HOST UUID to pfSense as part of User-Agent "
"header."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:577
+#: src/usr/local/www/system_advanced_misc.php:574
msgid ""
"The \\\"Use Ramdisk\\\" setting has been changed. This will cause the "
"firewall\\nto reboot immediately after the new setting is saved.\\n\\nPlease "
@@ -25938,175 +25666,189 @@ msgstr ""
msgid "Growl passwords must match"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:134
+#: src/usr/local/www/system_advanced_notifications.php:129
msgid "SMTP passwords must match"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:168
+#: src/usr/local/www/system_advanced_notifications.php:163
#, php-format
msgid "This is a test message from %s. It is safe to ignore this message."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:177
+#: src/usr/local/www/system_advanced_notifications.php:165
+msgid "Growl testing notification successfully sent"
+msgstr ""
+
+#: src/usr/local/www/system_advanced_notifications.php:178
#, php-format
msgid "This is a test message from %s. It is safe to ignore this message."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:203
+#: src/usr/local/www/system_advanced_notifications.php:180
+msgid "SMTP testing e-mail successfully sent"
+msgstr ""
+
+#: src/usr/local/www/system_advanced_notifications.php:210
msgid "Growl"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:207
+#: src/usr/local/www/system_advanced_notifications.php:214
msgid "Disable Growl"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:210
+#: src/usr/local/www/system_advanced_notifications.php:217
msgid ""
"Check this option to disable growl notifications but preserve the settings "
"below."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:215
+#: src/usr/local/www/system_advanced_notifications.php:222
msgid "Registration Name"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:219
+#: src/usr/local/www/system_advanced_notifications.php:226
msgid "Enter the name to register with the Growl server."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:223
+#: src/usr/local/www/system_advanced_notifications.php:230
msgid "Notification Name"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:228
+#: src/usr/local/www/system_advanced_notifications.php:235
msgid "Enter a name for the Growl notifications."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:235
+#: src/usr/local/www/system_advanced_notifications.php:242
msgid "This is the IP address to send growl notifications to."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:242
+#: src/usr/local/www/system_advanced_notifications.php:249
msgid "Enter the password of the remote growl notification device."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:246
+#: src/usr/local/www/system_advanced_notifications.php:253
msgid "Test Growl Settings"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:249
+#: src/usr/local/www/system_advanced_notifications.php:256
msgid ""
"A test notification will be sent even if the service is marked as disabled."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:253
+#: src/usr/local/www/system_advanced_notifications.php:260
msgid "E-Mail"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:257
+#: src/usr/local/www/system_advanced_notifications.php:264
msgid "Disable SMTP"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:260
+#: src/usr/local/www/system_advanced_notifications.php:267
msgid ""
"Check this option to disable SMTP notifications but preserve the settings "
"below. Some other mechanisms, such as packages, may need these settings in "
"place to function."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:266
+#: src/usr/local/www/system_advanced_notifications.php:273
msgid "E-Mail server"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:269
+#: src/usr/local/www/system_advanced_notifications.php:276
msgid ""
"This is the FQDN or IP address of the SMTP E-Mail server to which "
"notifications will be sent."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:274
+#: src/usr/local/www/system_advanced_notifications.php:281
msgid "SMTP Port of E-Mail server"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:277
+#: src/usr/local/www/system_advanced_notifications.php:284
msgid ""
"This is the port of the SMTP E-Mail server, typically 25, 587 (submission) "
"or 465 (smtps)."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:280
-msgid "Secure SMTP Connection"
+#: src/usr/local/www/system_advanced_notifications.php:289
+msgid "Connection timeout to E-Mail server"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:283
-msgid "Enable SSL/TLS"
+#: src/usr/local/www/system_advanced_notifications.php:292
+msgid ""
+"This is how many seconds it will wait for the SMTP server to connect. "
+"Default is 20s."
+msgstr ""
+
+#: src/usr/local/www/system_advanced_notifications.php:294
+msgid "Secure SMTP Connection"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:290
-msgid "Secure STARTTLS"
+#: src/usr/local/www/system_advanced_notifications.php:297
+msgid "Enable SSL/TLS"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:299
+#: src/usr/local/www/system_advanced_notifications.php:306
msgid "From e-mail address"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:302
+#: src/usr/local/www/system_advanced_notifications.php:309
msgid "This is the e-mail address that will appear in the from field."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:306
+#: src/usr/local/www/system_advanced_notifications.php:313
msgid "Notification E-Mail address"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:309
+#: src/usr/local/www/system_advanced_notifications.php:316
msgid "Enter the e-mail address to send email notifications to."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:314
+#: src/usr/local/www/system_advanced_notifications.php:321
msgid "Notification E-Mail auth username (optional)"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:318
+#: src/usr/local/www/system_advanced_notifications.php:325
msgid "Enter the e-mail address username for SMTP authentication."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:322
+#: src/usr/local/www/system_advanced_notifications.php:329
msgid "Notification E-Mail auth password"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:325
+#: src/usr/local/www/system_advanced_notifications.php:332
msgid "Enter the e-mail account password for SMTP authentication."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:329
+#: src/usr/local/www/system_advanced_notifications.php:336
msgid "Notification E-Mail auth mechanism"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:332
+#: src/usr/local/www/system_advanced_notifications.php:339
msgid ""
"Select the authentication mechanism used by the SMTP server. Most work with "
"PLAIN, some servers like Exchange or Office365 might require LOGIN. "
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:336
+#: src/usr/local/www/system_advanced_notifications.php:343
msgid "Test SMTP Settings"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:339
+#: src/usr/local/www/system_advanced_notifications.php:346
msgid ""
"A test notification will be sent even if the service is marked as disabled. "
"The last SAVED values will be used, not necessarily the values entered here."
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:344
+#: src/usr/local/www/system_advanced_notifications.php:351
msgid "Sounds"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:348
+#: src/usr/local/www/system_advanced_notifications.php:355
msgid "Startup/Shutdown Sound"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:351
+#: src/usr/local/www/system_advanced_notifications.php:358
msgid "When this is checked, startup and shutdown sounds will no longer play."
msgstr ""
@@ -26126,6 +25868,10 @@ msgstr ""
msgid "NOTE: "
msgstr ""
+#: src/usr/local/www/system_advanced_sysctl.php:157
+msgid "The options on this page are intended for use by advanced users only."
+msgstr ""
+
#: src/usr/local/www/system_advanced_sysctl.php:160
msgid "Tunable Name"
msgstr ""
@@ -26170,19 +25916,19 @@ msgstr ""
#: src/usr/local/www/system_camanager.php:168
#: src/usr/local/www/system_camanager.php:182
#: src/usr/local/www/system_camanager.php:197
-#: src/usr/local/www/system_camanager.php:456
+#: src/usr/local/www/system_camanager.php:461
#: src/usr/local/www/system_certmanager.php:228
#: src/usr/local/www/system_certmanager.php:241
#: src/usr/local/www/system_certmanager.php:259
-#: src/usr/local/www/system_certmanager.php:466
-#: src/usr/local/www/system_certmanager.php:580
-#: src/usr/local/www/system_certmanager.php:873
+#: src/usr/local/www/system_certmanager.php:471
+#: src/usr/local/www/system_certmanager.php:585
+#: src/usr/local/www/system_certmanager.php:894
#: src/usr/local/www/system_crlmanager.php:198
#: src/usr/local/www/system_crlmanager.php:204
#: src/usr/local/www/system_crlmanager.php:356
#: src/usr/local/www/system_crlmanager.php:421
-#: src/usr/local/www/system_usermanager.php:192
-#: src/usr/local/www/system_usermanager.php:866
+#: src/usr/local/www/system_usermanager.php:188
+#: src/usr/local/www/system_usermanager.php:860
msgid "Descriptive name"
msgstr ""
@@ -26251,22 +25997,22 @@ msgstr ""
#: src/usr/local/www/system_authservers.php:403
#: src/usr/local/www/system_authservers.php:423
#: src/usr/local/www/system_authservers.php:429
-#: src/usr/local/www/system_groupmanager.php:283
+#: src/usr/local/www/system_groupmanager.php:277
#: src/usr/local/www/system_groupmanager_addprivs.php:134
-#: src/usr/local/www/system_usermanager.php:556
-#: src/usr/local/www/system_usermanager_addprivs.php:135
+#: src/usr/local/www/system_usermanager.php:550
+#: src/usr/local/www/system_usermanager_addprivs.php:132
#: src/usr/local/www/system_usermanager_settings.php:168
msgid "Authentication Servers"
msgstr ""
#: src/usr/local/www/system_authservers.php:420
-#: src/usr/local/www/system_groupmanager.php:280
+#: src/usr/local/www/system_groupmanager.php:274
#: src/usr/local/www/system_groupmanager_addprivs.php:131
-#: src/usr/local/www/system_usermanager.php:533
-#: src/usr/local/www/system_usermanager.php:553
-#: src/usr/local/www/system_usermanager.php:563
+#: src/usr/local/www/system_usermanager.php:527
+#: src/usr/local/www/system_usermanager.php:547
+#: src/usr/local/www/system_usermanager.php:557
#: src/usr/local/www/system_usermanager_addprivs.php:36
-#: src/usr/local/www/system_usermanager_addprivs.php:132
+#: src/usr/local/www/system_usermanager_addprivs.php:129
#: src/usr/local/www/system_usermanager_settings.php:165
#: src/usr/local/www/vpn_l2tp.php:187 src/usr/local/www/vpn_l2tp_users.php:29
#: src/usr/local/www/vpn_l2tp_users.php:85
@@ -26275,14 +26021,14 @@ msgid "Users"
msgstr ""
#: src/usr/local/www/system_authservers.php:421
-#: src/usr/local/www/system_groupmanager.php:263
-#: src/usr/local/www/system_groupmanager.php:281
-#: src/usr/local/www/system_groupmanager.php:289
+#: src/usr/local/www/system_groupmanager.php:257
+#: src/usr/local/www/system_groupmanager.php:275
+#: src/usr/local/www/system_groupmanager.php:283
#: src/usr/local/www/system_groupmanager_addprivs.php:36
#: src/usr/local/www/system_groupmanager_addprivs.php:132
-#: src/usr/local/www/system_usermanager.php:554
-#: src/usr/local/www/system_usermanager.php:573
-#: src/usr/local/www/system_usermanager_addprivs.php:133
+#: src/usr/local/www/system_usermanager.php:548
+#: src/usr/local/www/system_usermanager.php:567
+#: src/usr/local/www/system_usermanager_addprivs.php:130
#: src/usr/local/www/system_usermanager_settings.php:166
msgid "Groups"
msgstr ""
@@ -26292,12 +26038,12 @@ msgid "Server Name"
msgstr ""
#: src/usr/local/www/system_authservers.php:449
-#: src/usr/local/www/vpn_openvpn_server.php:1197
+#: src/usr/local/www/vpn_openvpn_server.php:1212
msgid "Edit server"
msgstr ""
#: src/usr/local/www/system_authservers.php:450
-#: src/usr/local/www/vpn_openvpn_server.php:1198
+#: src/usr/local/www/vpn_openvpn_server.php:1213
msgid "Delete server"
msgstr ""
@@ -26322,11 +26068,11 @@ msgstr ""
#: src/usr/local/www/system_authservers.php:532
#: src/usr/local/www/system_authservers.php:544
-#: src/usr/local/www/vpn_ipsec_phase1.php:774
+#: src/usr/local/www/vpn_ipsec_phase1.php:770
#: src/usr/local/www/vpn_openvpn_client.php:585
#: src/usr/local/www/vpn_openvpn_client.php:591
-#: src/usr/local/www/vpn_openvpn_server.php:702
-#: src/usr/local/www/vpn_openvpn_server.php:708
+#: src/usr/local/www/vpn_openvpn_server.php:706
+#: src/usr/local/www/vpn_openvpn_server.php:712
msgid "Peer Certificate Authority"
msgstr ""
@@ -26499,9 +26245,9 @@ msgid "Certificate Authority %s and its CRLs (if any) successfully deleted."
msgstr ""
#: src/usr/local/www/system_camanager.php:169
-#: src/usr/local/www/system_camanager.php:477
+#: src/usr/local/www/system_camanager.php:482
#: src/usr/local/www/system_certmanager.php:229
-#: src/usr/local/www/system_certmanager.php:591
+#: src/usr/local/www/system_certmanager.php:596
msgid "Certificate data"
msgstr ""
@@ -26518,19 +26264,19 @@ msgstr ""
#: src/usr/local/www/system_camanager.php:199
#: src/usr/local/www/system_certmanager.php:243
#: src/usr/local/www/system_certmanager.php:260
-#: src/usr/local/www/system_certmanager.php:633
-#: src/usr/local/www/system_certmanager.php:767
-#: src/usr/local/www/system_usermanager.php:194
-#: src/usr/local/www/system_usermanager.php:880
+#: src/usr/local/www/system_certmanager.php:638
+#: src/usr/local/www/system_certmanager.php:780
+#: src/usr/local/www/system_usermanager.php:190
+#: src/usr/local/www/system_usermanager.php:874
msgid "Key length"
msgstr ""
#: src/usr/local/www/system_camanager.php:184
#: src/usr/local/www/system_camanager.php:200
#: src/usr/local/www/system_certmanager.php:245
-#: src/usr/local/www/system_usermanager.php:195
-#: src/usr/local/www/system_usermanager.php:897
-#: src/usr/local/www/vpn_ipsec_phase2.php:670
+#: src/usr/local/www/system_usermanager.php:191
+#: src/usr/local/www/system_usermanager.php:891
+#: src/usr/local/www/vpn_ipsec_phase2.php:665
msgid "Lifetime"
msgstr ""
@@ -26577,7 +26323,7 @@ msgid "Distinguished name Common Name"
msgstr ""
#: src/usr/local/www/system_camanager.php:198
-#: src/usr/local/www/system_camanager.php:511
+#: src/usr/local/www/system_camanager.php:516
msgid "Signing Certificate Authority"
msgstr ""
@@ -26608,180 +26354,186 @@ msgstr ""
msgid "Please select a valid Digest Algorithm."
msgstr ""
-#: src/usr/local/www/system_camanager.php:311
-#: src/usr/local/www/system_certmanager.php:513
+#: src/usr/local/www/system_camanager.php:316
+#: src/usr/local/www/system_certmanager.php:518
#: src/usr/local/www/system_crlmanager.php:253
msgid "Certificate Manager"
msgstr ""
-#: src/usr/local/www/system_camanager.php:311
-#: src/usr/local/www/system_camanager.php:338
-#: src/usr/local/www/system_certmanager.php:529
+#: src/usr/local/www/system_camanager.php:316
+#: src/usr/local/www/system_camanager.php:343
+#: src/usr/local/www/system_certmanager.php:534
#: src/usr/local/www/system_crlmanager.php:334
msgid "CAs"
msgstr ""
-#: src/usr/local/www/system_camanager.php:339
-#: src/usr/local/www/system_camanager.php:355
-#: src/usr/local/www/system_certmanager.php:513
-#: src/usr/local/www/system_certmanager.php:530
-#: src/usr/local/www/system_certmanager.php:922
+#: src/usr/local/www/system_camanager.php:344
+#: src/usr/local/www/system_camanager.php:360
+#: src/usr/local/www/system_certmanager.php:518
+#: src/usr/local/www/system_certmanager.php:535
+#: src/usr/local/www/system_certmanager.php:943
#: src/usr/local/www/system_crlmanager.php:335
#: src/usr/local/www/system_crlmanager.php:578
msgid "Certificates"
msgstr ""
-#: src/usr/local/www/system_camanager.php:340
-#: src/usr/local/www/system_certmanager.php:531
+#: src/usr/local/www/system_camanager.php:345
+#: src/usr/local/www/system_certmanager.php:536
#: src/usr/local/www/system_crlmanager.php:253
#: src/usr/local/www/system_crlmanager.php:336
msgid "Certificate Revocation"
msgstr ""
-#: src/usr/local/www/system_camanager.php:346
+#: src/usr/local/www/system_camanager.php:351
msgid "Certificate Authorities"
msgstr ""
-#: src/usr/local/www/system_camanager.php:353
+#: src/usr/local/www/system_camanager.php:358
#: src/usr/local/www/system_crlmanager.php:577
msgid "Internal"
msgstr ""
-#: src/usr/local/www/system_camanager.php:354
-#: src/usr/local/www/system_certmanager.php:929
+#: src/usr/local/www/system_camanager.php:359
+#: src/usr/local/www/system_certmanager.php:950
msgid "Issuer"
msgstr ""
-#: src/usr/local/www/system_camanager.php:356
-#: src/usr/local/www/system_certmanager.php:930
+#: src/usr/local/www/system_camanager.php:361
+#: src/usr/local/www/system_certmanager.php:951
msgid "Distinguished Name"
msgstr ""
-#: src/usr/local/www/system_camanager.php:368
-#: src/usr/local/www/system_certmanager.php:954
+#: src/usr/local/www/system_camanager.php:373
+#: src/usr/local/www/system_certmanager.php:975
msgid "self-signed"
msgstr ""
-#: src/usr/local/www/system_camanager.php:370
-#: src/usr/local/www/system_certmanager.php:956
+#: src/usr/local/www/system_camanager.php:375
+#: src/usr/local/www/system_certmanager.php:977
msgid "external"
msgstr ""
-#: src/usr/local/www/system_camanager.php:402
-#: src/usr/local/www/system_certmanager.php:988
+#: src/usr/local/www/system_camanager.php:407
+#: src/usr/local/www/system_certmanager.php:1009
msgid "Valid From"
msgstr ""
-#: src/usr/local/www/system_camanager.php:402
-#: src/usr/local/www/system_certmanager.php:988
+#: src/usr/local/www/system_camanager.php:407
+#: src/usr/local/www/system_certmanager.php:1009
msgid "Valid Until"
msgstr ""
-#: src/usr/local/www/system_camanager.php:406
+#: src/usr/local/www/system_camanager.php:411
msgid "Edit CA"
msgstr ""
-#: src/usr/local/www/system_camanager.php:407
+#: src/usr/local/www/system_camanager.php:412
msgid "Export CA"
msgstr ""
-#: src/usr/local/www/system_camanager.php:409
+#: src/usr/local/www/system_camanager.php:414
msgid "Export key"
msgstr ""
-#: src/usr/local/www/system_camanager.php:411
+#: src/usr/local/www/system_camanager.php:416
msgid "Delete CA"
msgstr ""
-#: src/usr/local/www/system_camanager.php:452
+#: src/usr/local/www/system_camanager.php:457
msgid "Create / Edit CA"
msgstr ""
-#: src/usr/local/www/system_camanager.php:464
-#: src/usr/local/www/system_certmanager.php:572
+#: src/usr/local/www/system_camanager.php:469
+#: src/usr/local/www/system_certmanager.php:577
#: src/usr/local/www/system_crlmanager.php:347
msgid "Method"
msgstr ""
-#: src/usr/local/www/system_camanager.php:472
+#: src/usr/local/www/system_camanager.php:477
msgid "Existing Certificate Authority"
msgstr ""
-#: src/usr/local/www/system_camanager.php:479
-#: src/usr/local/www/system_certmanager.php:593
+#: src/usr/local/www/system_camanager.php:484
+#: src/usr/local/www/system_certmanager.php:598
msgid "Paste a certificate in X.509 PEM format here."
msgstr ""
-#: src/usr/local/www/system_camanager.php:483
+#: src/usr/local/www/system_camanager.php:488
msgid "Certificate Private Key (optional)"
msgstr ""
-#: src/usr/local/www/system_camanager.php:485
+#: src/usr/local/www/system_camanager.php:490
msgid ""
"Paste the private key for the above certificate here. This is optional in "
"most cases, but is required when generating a Certificate Revocation List "
"(CRL)."
msgstr ""
-#: src/usr/local/www/system_camanager.php:491
+#: src/usr/local/www/system_camanager.php:496
msgid "Serial for next certificate"
msgstr ""
-#: src/usr/local/www/system_camanager.php:494
+#: src/usr/local/www/system_camanager.php:499
msgid ""
"Enter a decimal number to be used as the serial number for the next "
"certificate to be created using this CA."
msgstr ""
-#: src/usr/local/www/system_camanager.php:499
+#: src/usr/local/www/system_camanager.php:504
msgid "Internal Certificate Authority"
msgstr ""
-#: src/usr/local/www/system_camanager.php:523
+#: src/usr/local/www/system_camanager.php:528
msgid "Key length (bits)"
msgstr ""
-#: src/usr/local/www/system_camanager.php:530
-#: src/usr/local/www/system_certmanager.php:640
-#: src/usr/local/www/system_certmanager.php:774
+#: src/usr/local/www/system_camanager.php:535
+#: src/usr/local/www/system_certmanager.php:645
+#: src/usr/local/www/system_certmanager.php:787
msgid "Digest Algorithm"
msgstr ""
-#: src/usr/local/www/system_camanager.php:533
-#: src/usr/local/www/system_certmanager.php:643
+#: src/usr/local/www/system_camanager.php:538
+#: src/usr/local/www/system_certmanager.php:648
msgid ""
"NOTE: It is recommended to use an algorithm stronger than SHA1 when possible."
msgstr ""
-#: src/usr/local/www/system_camanager.php:538
-#: src/usr/local/www/system_certmanager.php:656
+#: src/usr/local/www/system_camanager.php:543
+#: src/usr/local/www/system_certmanager.php:661
msgid "Lifetime (days)"
msgstr ""
-#: src/usr/local/www/system_camanager.php:545
-#: src/usr/local/www/system_certmanager.php:663
-#: src/usr/local/www/system_certmanager.php:782
+#: src/usr/local/www/system_camanager.php:550
+#: src/usr/local/www/system_certmanager.php:668
+#: src/usr/local/www/system_certmanager.php:795
msgid "Country Code"
msgstr ""
-#: src/usr/local/www/system_camanager.php:552
-#: src/usr/local/www/system_certmanager.php:670
-#: src/usr/local/www/system_certmanager.php:789
+#: src/usr/local/www/system_camanager.php:557
+#: src/usr/local/www/system_certmanager.php:675
+#: src/usr/local/www/system_certmanager.php:802
msgid "State or Province"
msgstr ""
-#: src/usr/local/www/system_camanager.php:560
-#: src/usr/local/www/system_certmanager.php:678
-#: src/usr/local/www/system_certmanager.php:797
+#: src/usr/local/www/system_camanager.php:565
+#: src/usr/local/www/system_certmanager.php:683
+#: src/usr/local/www/system_certmanager.php:810
msgid "City"
msgstr ""
-#: src/usr/local/www/system_camanager.php:568
-#: src/usr/local/www/system_certmanager.php:686
-#: src/usr/local/www/system_certmanager.php:805
+#: src/usr/local/www/system_camanager.php:573
+#: src/usr/local/www/system_certmanager.php:691
+#: src/usr/local/www/system_certmanager.php:818
msgid "Organization"
msgstr ""
+#: src/usr/local/www/system_camanager.php:581
+#: src/usr/local/www/system_certmanager.php:699
+#: src/usr/local/www/system_certmanager.php:826
+msgid "Organizational Unit"
+msgstr ""
+
#: src/usr/local/www/system_certmanager.php:34
msgid "Import an existing Certificate"
msgstr ""
@@ -26808,15 +26560,15 @@ msgid "Key data"
msgstr ""
#: src/usr/local/www/system_certmanager.php:242
-#: src/usr/local/www/system_certmanager.php:607
-#: src/usr/local/www/system_certmanager.php:625
-#: src/usr/local/www/system_usermanager.php:193
-#: src/usr/local/www/system_usermanager.php:873
+#: src/usr/local/www/system_certmanager.php:612
+#: src/usr/local/www/system_certmanager.php:630
+#: src/usr/local/www/system_usermanager.php:189
+#: src/usr/local/www/system_usermanager.php:867
msgid "Certificate authority"
msgstr ""
#: src/usr/local/www/system_certmanager.php:244
-#: src/usr/local/www/system_certmanager.php:648
+#: src/usr/local/www/system_certmanager.php:653
msgid "Certificate Type"
msgstr ""
@@ -26824,155 +26576,155 @@ msgstr ""
msgid "Existing Certificate Choice"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:467
+#: src/usr/local/www/system_certmanager.php:472
msgid "Final Certificate data"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:491
+#: src/usr/local/www/system_certmanager.php:496
#, php-format
msgid "The certificate modulus does not match the signing request modulus."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:567
+#: src/usr/local/www/system_certmanager.php:572
msgid "Add a New Certificate"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:586
+#: src/usr/local/www/system_certmanager.php:591
msgid "Import Certificate"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:597
+#: src/usr/local/www/system_certmanager.php:602
msgid "Private key data"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:599
+#: src/usr/local/www/system_certmanager.php:604
msgid "Paste a private key in X.509 PEM format here."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:602
+#: src/usr/local/www/system_certmanager.php:607
msgid "Internal Certificate"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:608
+#: src/usr/local/www/system_certmanager.php:613
msgid "No internal Certificate Authorities have been defined. "
msgstr ""
-#: src/usr/local/www/system_certmanager.php:609
+#: src/usr/local/www/system_certmanager.php:614
msgid ""
"An internal CA must be defined in order to create an internal certificate. "
msgstr ""
-#: src/usr/local/www/system_certmanager.php:610
+#: src/usr/local/www/system_certmanager.php:615
msgid "Create"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:611
+#: src/usr/local/www/system_certmanager.php:616
msgid " an internal CA."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:651
+#: src/usr/local/www/system_certmanager.php:656
msgid ""
"Type of certificate to generate. Used for placing restrictions on the usage "
"of the generated certificate."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:719
+#: src/usr/local/www/system_certmanager.php:732
msgid "Alternative Names"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:726
+#: src/usr/local/www/system_certmanager.php:739
msgid "FQDN or Hostname"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:728
+#: src/usr/local/www/system_certmanager.php:741
msgid "URI"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:729
+#: src/usr/local/www/system_certmanager.php:742
msgid "email address"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:762
+#: src/usr/local/www/system_certmanager.php:775
msgid "External Signing Request"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:777
+#: src/usr/local/www/system_certmanager.php:790
msgid ""
"NOTE: It is recommended to use an algorithm stronger than SHA1 when possible"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:828
+#: src/usr/local/www/system_certmanager.php:849
msgid "Choose an Existing Certificate"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:857
+#: src/usr/local/www/system_certmanager.php:878
msgid "Existing Certificates"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:869
+#: src/usr/local/www/system_certmanager.php:890
msgid "Complete Signing Request for "
msgstr ""
-#: src/usr/local/www/system_certmanager.php:880
+#: src/usr/local/www/system_certmanager.php:901
msgid "Signing request data"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:884
+#: src/usr/local/www/system_certmanager.php:905
msgid ""
"Copy the certificate signing data from here and forward it to a certificate "
"authority for signing."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:888
+#: src/usr/local/www/system_certmanager.php:909
msgid "Final certificate data"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:891
+#: src/usr/local/www/system_certmanager.php:912
msgid "Paste the certificate received from the certificate authority here."
msgstr ""
-#: src/usr/local/www/system_certmanager.php:964
+#: src/usr/local/www/system_certmanager.php:985
msgid "external - signature pending"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1000
+#: src/usr/local/www/system_certmanager.php:1021
msgid "User Cert"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1003
+#: src/usr/local/www/system_certmanager.php:1024
msgid "OpenVPN Server"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1006
+#: src/usr/local/www/system_certmanager.php:1027
msgid "OpenVPN Client"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1009
+#: src/usr/local/www/system_certmanager.php:1030
msgid "IPsec Tunnel"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1036
+#: src/usr/local/www/system_certmanager.php:1057
msgid "Export Certificate"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1037
-#: src/usr/local/www/system_certmanager.php:1042
+#: src/usr/local/www/system_certmanager.php:1058
+#: src/usr/local/www/system_certmanager.php:1063
msgid "Export Key"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1038
+#: src/usr/local/www/system_certmanager.php:1059
msgid "Export P12"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1040
+#: src/usr/local/www/system_certmanager.php:1061
msgid "Update CSR"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1041
+#: src/usr/local/www/system_certmanager.php:1062
msgid "Export Request"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:1045
+#: src/usr/local/www/system_certmanager.php:1066
msgid "Delete Certificate"
msgstr ""
@@ -27028,7 +26780,7 @@ msgstr ""
#: src/usr/local/www/system_crlmanager.php:363
#: src/usr/local/www/vpn_ipsec_phase1.php:220
#: src/usr/local/www/vpn_openvpn_client.php:292
-#: src/usr/local/www/vpn_openvpn_server.php:392
+#: src/usr/local/www/vpn_openvpn_server.php:393
msgid "Certificate Authority"
msgstr ""
@@ -27099,9 +26851,9 @@ msgid "Choose a Certificate to Revoke"
msgstr ""
#: src/usr/local/www/system_crlmanager.php:524
-#: src/usr/local/www/system_usermanager.php:816
+#: src/usr/local/www/system_usermanager.php:810
#: src/usr/local/www/vpn_ipsec_phase1.php:220
-#: src/usr/local/www/vpn_openvpn_server.php:392
+#: src/usr/local/www/vpn_openvpn_server.php:393
msgid "Certificate"
msgstr ""
@@ -27287,7 +27039,7 @@ msgstr ""
#: src/usr/local/www/system_gateways.php:245
#: src/usr/local/www/system_gateways_edit.php:638
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:106
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:108
msgid "Monitor IP"
msgstr ""
@@ -27706,92 +27458,92 @@ msgid ""
"scenarios."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:82
+#: src/usr/local/www/system_groupmanager.php:80
#, php-format
msgid "Group %s successfully deleted."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:106
+#: src/usr/local/www/system_groupmanager.php:104
#, php-format
msgid "Privilege %s successfully deleted."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:133
+#: src/usr/local/www/system_groupmanager.php:129
msgid "Selected groups removed successfully."
msgstr ""
+#: src/usr/local/www/system_groupmanager.php:146
#: src/usr/local/www/system_groupmanager.php:150
-#: src/usr/local/www/system_groupmanager.php:154
#, php-format
msgid "The (%s) group name contains invalid characters."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:159
+#: src/usr/local/www/system_groupmanager.php:155
msgid "The group name is longer than 16 characters."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:166
+#: src/usr/local/www/system_groupmanager.php:162
msgid "One or more invalid group members was submitted."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:175
+#: src/usr/local/www/system_groupmanager.php:171
msgid "Another entry with the same group name already exists."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:247
-#: src/usr/local/www/system_usermanager.php:465
+#: src/usr/local/www/system_groupmanager.php:241
+#: src/usr/local/www/system_usermanager.php:459
msgid "Delete Privilege"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:295
-#: src/usr/local/www/system_groupmanager.php:376
+#: src/usr/local/www/system_groupmanager.php:289
+#: src/usr/local/www/system_groupmanager.php:370
msgid "Group name"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:297
+#: src/usr/local/www/system_groupmanager.php:291
msgid "Member Count"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:372
+#: src/usr/local/www/system_groupmanager.php:366
msgid "Group Properties"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:386
-#: src/usr/local/www/system_groupmanager.php:393
+#: src/usr/local/www/system_groupmanager.php:380
+#: src/usr/local/www/system_groupmanager.php:387
msgid "Scope"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:404
+#: src/usr/local/www/system_groupmanager.php:398
msgid "Group description, for administrative information only"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:411
-#: src/usr/local/www/system_usermanager.php:756
+#: src/usr/local/www/system_groupmanager.php:405
+#: src/usr/local/www/system_usermanager.php:750
msgid "Group membership"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:432
+#: src/usr/local/www/system_groupmanager.php:426
msgid "Not members"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:448
+#: src/usr/local/www/system_groupmanager.php:442
msgid "Move to \"Members\""
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:455
+#: src/usr/local/www/system_groupmanager.php:449
msgid "Move to \"Not members"
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:460
+#: src/usr/local/www/system_groupmanager.php:454
#: src/usr/local/www/system_groupmanager_addprivs.php:156
#: src/usr/local/www/system_groupmanager_addprivs.php:165
-#: src/usr/local/www/system_usermanager.php:809
-#: src/usr/local/www/system_usermanager_addprivs.php:149
-#: src/usr/local/www/system_usermanager_addprivs.php:158
+#: src/usr/local/www/system_usermanager.php:803
+#: src/usr/local/www/system_usermanager_addprivs.php:146
+#: src/usr/local/www/system_usermanager_addprivs.php:155
msgid "Hold down CTRL (PC)/COMMAND (Mac) key to select multiple items."
msgstr ""
-#: src/usr/local/www/system_groupmanager.php:466
+#: src/usr/local/www/system_groupmanager.php:460
msgid "Assigned Privileges"
msgstr ""
@@ -27801,7 +27553,7 @@ msgid "Add Privileges"
msgstr ""
#: src/usr/local/www/system_groupmanager_addprivs.php:66
-#: src/usr/local/www/system_usermanager_addprivs.php:70
+#: src/usr/local/www/system_usermanager_addprivs.php:69
msgid "Selected privileges"
msgstr ""
@@ -27810,22 +27562,22 @@ msgid "Add Privileges for "
msgstr ""
#: src/usr/local/www/system_groupmanager_addprivs.php:151
-#: src/usr/local/www/system_usermanager_addprivs.php:144
+#: src/usr/local/www/system_usermanager_addprivs.php:141
msgid "Assigned privileges"
msgstr ""
#: src/usr/local/www/system_groupmanager_addprivs.php:160
-#: src/usr/local/www/system_usermanager_addprivs.php:153
+#: src/usr/local/www/system_usermanager_addprivs.php:150
msgid "Shadow"
msgstr ""
#: src/usr/local/www/system_groupmanager_addprivs.php:172
-#: src/usr/local/www/system_usermanager_addprivs.php:165
+#: src/usr/local/www/system_usermanager_addprivs.php:162
msgid "Show only the choices containing this term"
msgstr ""
#: src/usr/local/www/system_groupmanager_addprivs.php:200
-#: src/usr/local/www/system_usermanager_addprivs.php:203
+#: src/usr/local/www/system_usermanager_addprivs.php:200
msgid "Select a privilege from the list above for a description"
msgstr ""
@@ -28117,57 +27869,57 @@ msgstr ""
msgid "Changes have been saved successfully"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:127
+#: src/usr/local/www/system_update_settings.php:122
msgid "Firmware Branch"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:131
+#: src/usr/local/www/system_update_settings.php:126
msgid "Branch"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:134
+#: src/usr/local/www/system_update_settings.php:129
msgid ""
"Please select the stable, or the development branch from which to update the "
"system firmware. <br />Use of the development version is at your own risk!"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:139
+#: src/usr/local/www/system_update_settings.php:134
msgid "Updates"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:143
+#: src/usr/local/www/system_update_settings.php:138
msgid "Dashboard check"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:151
+#: src/usr/local/www/system_update_settings.php:146
msgid "GitSync"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:155
+#: src/usr/local/www/system_update_settings.php:150
msgid "Auto sync on update"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:158
+#: src/usr/local/www/system_update_settings.php:153
msgid ""
"After updating, sync with the following repository/branch before reboot."
msgstr ""
-#: src/usr/local/www/system_update_settings.php:170
+#: src/usr/local/www/system_update_settings.php:165
msgid "Repository URL"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:173
+#: src/usr/local/www/system_update_settings.php:168
#, php-format
msgid ""
"The most recently used repository was %s. This repository will be used if "
"the field is left blank."
msgstr ""
-#: src/usr/local/www/system_update_settings.php:191
+#: src/usr/local/www/system_update_settings.php:186
msgid "Branch name"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:194
+#: src/usr/local/www/system_update_settings.php:189
#, php-format
msgid ""
"The most recently used branch was \"%s\". (Usually the branch name is "
@@ -28188,105 +27940,105 @@ msgid "User Settings for "
msgstr ""
#: src/usr/local/www/system_usermanager.php:92
-#: src/usr/local/www/system_usermanager.php:123
+#: src/usr/local/www/system_usermanager.php:121
#, php-format
msgid "Cannot delete user %s because you are currently logged in as that user."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:100
-#: src/usr/local/www/system_usermanager.php:140
+#: src/usr/local/www/system_usermanager.php:98
+#: src/usr/local/www/system_usermanager.php:136
#, php-format
msgid "User %s successfully deleted."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:134
+#: src/usr/local/www/system_usermanager.php:130
#, php-format
msgid "Cannot delete user %s because it is a system user."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:142
+#: src/usr/local/www/system_usermanager.php:138
#, php-format
msgid "Users %s successfully deleted."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:161
+#: src/usr/local/www/system_usermanager.php:157
#, php-format
msgid "Certificate %s association removed."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:170
+#: src/usr/local/www/system_usermanager.php:166
#, php-format
msgid "Privilege %s removed."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:206
+#: src/usr/local/www/system_usermanager.php:202
msgid "The username is longer than 16 characters."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:210
+#: src/usr/local/www/system_usermanager.php:206
#: src/usr/local/www/system_usermanager_passwordmg.php:44
#: src/usr/local/www/vpn_l2tp_users_edit.php:91
msgid "The passwords do not match."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:214
+#: src/usr/local/www/system_usermanager.php:210
msgid "IPsec Pre-Shared Key contains invalid characters."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:221
+#: src/usr/local/www/system_usermanager.php:217
msgid "One or more invalid groups was submitted."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:235
+#: src/usr/local/www/system_usermanager.php:231
#: src/usr/local/www/vpn_l2tp_users_edit.php:101
msgid "Another entry with the same username already exists."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:246
+#: src/usr/local/www/system_usermanager.php:242
msgid "That username is reserved by the system."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:266
+#: src/usr/local/www/system_usermanager.php:262
msgid "Invalid expiration date format; use MM/DD/YYYY instead."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:273
+#: src/usr/local/www/system_usermanager.php:269
msgid "Invalid internal Certificate Authority"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:443
+#: src/usr/local/www/system_usermanager.php:437
msgid "Inherited from"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:495
+#: src/usr/local/www/system_usermanager.php:489
msgid "CA"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:514
+#: src/usr/local/www/system_usermanager.php:508
msgid "Remove this certificate association? (Certificate will not be deleted)"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:571
-#: src/usr/local/www/system_usermanager.php:729
+#: src/usr/local/www/system_usermanager.php:565
+#: src/usr/local/www/system_usermanager.php:723
msgid "Full name"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:600
+#: src/usr/local/www/system_usermanager.php:594
#: src/usr/local/www/vpn_ipsec_keys.php:131
#: src/usr/local/www/vpn_l2tp_users.php:111
msgid "Edit user"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:602
+#: src/usr/local/www/system_usermanager.php:596
#: src/usr/local/www/vpn_l2tp_users.php:112
msgid "Delete user"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:618
+#: src/usr/local/www/system_usermanager.php:612
msgid "Delete selected users"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:626
+#: src/usr/local/www/system_usermanager.php:620
msgid ""
"Additional users can be added here. User permissions for accessing the "
"webConfigurator can be assigned directly or inherited from group "
@@ -28294,71 +28046,71 @@ msgid ""
"be deleted."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:629
+#: src/usr/local/www/system_usermanager.php:623
msgid ""
"Accounts added here are also used for other parts of the system such as "
"OpenVPN, IPsec, and Captive Portal."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:674
+#: src/usr/local/www/system_usermanager.php:668
msgid "User Properties"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:677
+#: src/usr/local/www/system_usermanager.php:671
msgid "Defined by"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:721
+#: src/usr/local/www/system_usermanager.php:715
msgid "Confirm Password"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:732
+#: src/usr/local/www/system_usermanager.php:726
msgid "User's full name, for administrative information only"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:740
+#: src/usr/local/www/system_usermanager.php:734
msgid "Expiration date"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:743
+#: src/usr/local/www/system_usermanager.php:737
msgid ""
"Leave blank if the account shouldn't expire, otherwise enter the expiration "
"date"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:748
+#: src/usr/local/www/system_usermanager.php:742
msgid "Custom Settings"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:781
+#: src/usr/local/www/system_usermanager.php:775
msgid "Not member of"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:789
+#: src/usr/local/www/system_usermanager.php:783
msgid "Member of"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:797
+#: src/usr/local/www/system_usermanager.php:791
msgid "Move to \"Member of\" list"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:804
+#: src/usr/local/www/system_usermanager.php:798
msgid "Move to \"Not member of\" list"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:829
+#: src/usr/local/www/system_usermanager.php:823
msgid "Effective Privileges"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:839
+#: src/usr/local/www/system_usermanager.php:833
msgid "User Certificates"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:851
+#: src/usr/local/www/system_usermanager.php:845
msgid "Create Certificate for User"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:893
+#: src/usr/local/www/system_usermanager.php:887
msgid ""
"The larger the key, the more security it offers, but larger keys take "
"considerably more time to generate, and take slightly longer to validate "
@@ -28368,27 +28120,27 @@ msgid ""
"\"https://keylength.com\"&gt;keylength.com&lt;/a&gt;."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:908
+#: src/usr/local/www/system_usermanager.php:902
msgid "Keys"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:912
+#: src/usr/local/www/system_usermanager.php:906
msgid "Authorized keys"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:919
+#: src/usr/local/www/system_usermanager.php:913
msgid "Authorized SSH Keys"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:921
+#: src/usr/local/www/system_usermanager.php:915
msgid "Enter authorized SSH keys for this user"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:925
+#: src/usr/local/www/system_usermanager.php:919
msgid "IPsec Pre-Shared Key"
msgstr ""
-#: src/usr/local/www/system_usermanager_addprivs.php:140
+#: src/usr/local/www/system_usermanager_addprivs.php:137
msgid "User Privileges"
msgstr ""
@@ -28503,10 +28255,10 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec.php:219 src/usr/local/www/vpn_ipsec.php:225
#: src/usr/local/www/vpn_ipsec_keys.php:86
#: src/usr/local/www/vpn_ipsec_mobile.php:423
-#: src/usr/local/www/vpn_ipsec_phase1.php:633
-#: src/usr/local/www/vpn_ipsec_phase1.php:645
-#: src/usr/local/www/vpn_ipsec_phase2.php:411
-#: src/usr/local/www/vpn_ipsec_phase2.php:490
+#: src/usr/local/www/vpn_ipsec_phase1.php:629
+#: src/usr/local/www/vpn_ipsec_phase1.php:641
+#: src/usr/local/www/vpn_ipsec_phase2.php:406
+#: src/usr/local/www/vpn_ipsec_phase2.php:485
#: src/usr/local/www/vpn_ipsec_settings.php:232
#: src/usr/local/www/widgets/widgets/ipsec.widget.php:176
msgid "Tunnels"
@@ -28515,10 +28267,10 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec.php:226 src/usr/local/www/vpn_ipsec_keys.php:87
#: src/usr/local/www/vpn_ipsec_mobile.php:306
#: src/usr/local/www/vpn_ipsec_mobile.php:424
-#: src/usr/local/www/vpn_ipsec_phase1.php:631
-#: src/usr/local/www/vpn_ipsec_phase1.php:646
-#: src/usr/local/www/vpn_ipsec_phase2.php:408
-#: src/usr/local/www/vpn_ipsec_phase2.php:491
+#: src/usr/local/www/vpn_ipsec_phase1.php:627
+#: src/usr/local/www/vpn_ipsec_phase1.php:642
+#: src/usr/local/www/vpn_ipsec_phase2.php:403
+#: src/usr/local/www/vpn_ipsec_phase2.php:486
#: src/usr/local/www/vpn_ipsec_settings.php:233
msgid "Mobile Clients"
msgstr ""
@@ -28528,8 +28280,8 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec_keys.php:94
#: src/usr/local/www/vpn_ipsec_keys_edit.php:122
#: src/usr/local/www/vpn_ipsec_mobile.php:425
-#: src/usr/local/www/vpn_ipsec_phase1.php:647
-#: src/usr/local/www/vpn_ipsec_phase2.php:492
+#: src/usr/local/www/vpn_ipsec_phase1.php:643
+#: src/usr/local/www/vpn_ipsec_phase2.php:487
#: src/usr/local/www/vpn_ipsec_settings.php:234
msgid "Pre-Shared Keys"
msgstr ""
@@ -28548,7 +28300,7 @@ msgid "IKE"
msgstr ""
#: src/usr/local/www/vpn_ipsec.php:250
-#: src/usr/local/www/vpn_ipsec_phase1.php:686
+#: src/usr/local/www/vpn_ipsec_phase1.php:682
msgid "Remote Gateway"
msgstr ""
@@ -28901,8 +28653,8 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec_mobile.php:561
#: src/usr/local/www/vpn_openvpn_csc.php:421
-#: src/usr/local/www/vpn_openvpn_server.php:989
-#: src/usr/local/www/vpn_openvpn_server.php:996
+#: src/usr/local/www/vpn_openvpn_server.php:993
+#: src/usr/local/www/vpn_openvpn_server.php:1000
msgid "DNS Default Domain"
msgstr ""
@@ -29082,368 +28834,366 @@ msgstr ""
msgid "Valid arguments for IKE type are v1, v2 or auto"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:397
-#: src/usr/local/www/vpn_ipsec_phase2.php:339
-msgid ""
-"Only 128 bit AES can be used where the glxsb crypto accelerator is enabled."
+#: src/usr/local/www/vpn_ipsec_phase1.php:395
+msgid "Encryption Algorithm AES-GCM can only be used with IKEv2"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:409
+#: src/usr/local/www/vpn_ipsec_phase1.php:405
msgid ""
"A valid RADIUS server must be selected for user authentication on the Mobile "
"Clients tab in order to set EAP-RADIUS as the authentication method."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:541
+#: src/usr/local/www/vpn_ipsec_phase1.php:537
#, php-format
msgid "GW Group %s"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:631
-#: src/usr/local/www/vpn_ipsec_phase1.php:633
+#: src/usr/local/www/vpn_ipsec_phase1.php:627
+#: src/usr/local/www/vpn_ipsec_phase1.php:629
msgid "Edit Phase 1"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:653
-#: src/usr/local/www/vpn_ipsec_phase2.php:498
+#: src/usr/local/www/vpn_ipsec_phase1.php:649
+#: src/usr/local/www/vpn_ipsec_phase2.php:493
#: src/usr/local/www/vpn_openvpn_client.php:424
#: src/usr/local/www/vpn_openvpn_csc.php:306
-#: src/usr/local/www/vpn_openvpn_server.php:593
+#: src/usr/local/www/vpn_openvpn_server.php:597
msgid "General Information"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:664
+#: src/usr/local/www/vpn_ipsec_phase1.php:660
msgid "Key Exchange version"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:667
+#: src/usr/local/www/vpn_ipsec_phase1.php:663
msgid ""
"Select the Internet Key Exchange protocol version to be used. Auto uses "
"IKEv2 when initiator, and accepts either IKEv1 or IKEv2 as responder."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:671
+#: src/usr/local/www/vpn_ipsec_phase1.php:667
msgid "Internet Protocol"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:674
+#: src/usr/local/www/vpn_ipsec_phase1.php:670
msgid "Select the Internet Protocol family."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:681
+#: src/usr/local/www/vpn_ipsec_phase1.php:677
msgid "Select the interface for the local endpoint of this phase1 entry."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:689
+#: src/usr/local/www/vpn_ipsec_phase1.php:685
msgid "Enter the public IP address or host name of the remote gateway."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:701
+#: src/usr/local/www/vpn_ipsec_phase1.php:697
msgid "Phase 1 Proposal (Authentication)"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:708
-#: src/usr/local/www/vpn_ipsec_phase1.php:806
-#: src/usr/local/www/vpn_ipsec_phase1.php:813
+#: src/usr/local/www/vpn_ipsec_phase1.php:704
+#: src/usr/local/www/vpn_ipsec_phase1.php:802
+#: src/usr/local/www/vpn_ipsec_phase1.php:809
msgid "Must match the setting chosen on the remote side."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:714
+#: src/usr/local/www/vpn_ipsec_phase1.php:710
msgid "Main"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:712
+#: src/usr/local/www/vpn_ipsec_phase1.php:708
msgid "Negotiation mode"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:715
+#: src/usr/local/www/vpn_ipsec_phase1.php:711
msgid "Aggressive is more flexible, but less secure."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:717
+#: src/usr/local/www/vpn_ipsec_phase1.php:713
msgid "My identifier"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:735
+#: src/usr/local/www/vpn_ipsec_phase1.php:731
msgid "Peer identifier"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:753
+#: src/usr/local/www/vpn_ipsec_phase1.php:749
msgid ""
"This is known as the \"group\" setting on some VPN client implementations"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:763
+#: src/usr/local/www/vpn_ipsec_phase1.php:759
msgid "Enter the Pre-Shared Key string."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:767
+#: src/usr/local/www/vpn_ipsec_phase1.php:763
msgid "My Certificate"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:770
+#: src/usr/local/www/vpn_ipsec_phase1.php:766
msgid "Select a certificate previously configured in the Certificate Manager."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:777
+#: src/usr/local/www/vpn_ipsec_phase1.php:773
msgid ""
"Select a certificate authority previously configured in the Certificate "
"Manager."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:781
+#: src/usr/local/www/vpn_ipsec_phase1.php:777
msgid "Phase 1 Proposal (Algorithms)"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:783
+#: src/usr/local/www/vpn_ipsec_phase1.php:779
#: src/usr/local/www/vpn_openvpn_client.php:634
-#: src/usr/local/www/vpn_openvpn_server.php:776
+#: src/usr/local/www/vpn_openvpn_server.php:780
msgid "Encryption Algorithm"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:803
+#: src/usr/local/www/vpn_ipsec_phase1.php:799
msgid "Hash Algorithm"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:810
+#: src/usr/local/www/vpn_ipsec_phase1.php:806
msgid "DH Group"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:817
+#: src/usr/local/www/vpn_ipsec_phase1.php:813
msgid "Lifetime (Seconds)"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:828
+#: src/usr/local/www/vpn_ipsec_phase1.php:824
msgid "Disable rekey"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:835
+#: src/usr/local/www/vpn_ipsec_phase1.php:831
msgid "Disable Reauth"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:842
+#: src/usr/local/www/vpn_ipsec_phase1.php:838
msgid "Responder Only"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:851
+#: src/usr/local/www/vpn_ipsec_phase1.php:847
msgid "Force"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:849
+#: src/usr/local/www/vpn_ipsec_phase1.php:845
msgid "NAT Traversal"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:852
+#: src/usr/local/www/vpn_ipsec_phase1.php:848
msgid ""
"Set this option to enable the use of NAT-T (i.e. the encapsulation of ESP in "
"UDP packets) if needed, which can help with clients that are behind "
"restrictive firewalls."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:857
+#: src/usr/local/www/vpn_ipsec_phase1.php:853
msgid "MOBIKE"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:860
+#: src/usr/local/www/vpn_ipsec_phase1.php:856
msgid "Set this option to control the use of MOBIKE"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:864
+#: src/usr/local/www/vpn_ipsec_phase1.php:860
msgid "Split connections"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:890
+#: src/usr/local/www/vpn_ipsec_phase1.php:886
msgid "Dead Peer Detection"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:900
+#: src/usr/local/www/vpn_ipsec_phase1.php:896
msgid "Delay between requesting peer acknowledgement."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:904
+#: src/usr/local/www/vpn_ipsec_phase1.php:900
msgid "Max failures"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:907
+#: src/usr/local/www/vpn_ipsec_phase1.php:903
msgid "Number of consecutive failures allowed before disconnect. "
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:134
+#: src/usr/local/www/vpn_ipsec_phase2.php:136
msgid "A valid ikeid must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:139
+#: src/usr/local/www/vpn_ipsec_phase2.php:141
msgid "Local network type"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:139
+#: src/usr/local/www/vpn_ipsec_phase2.php:141
msgid "Unique Identifier"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:142
+#: src/usr/local/www/vpn_ipsec_phase2.php:144
msgid "Remote network type"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:151
+#: src/usr/local/www/vpn_ipsec_phase2.php:153
msgid "A valid local network bit count must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:155
+#: src/usr/local/www/vpn_ipsec_phase2.php:157
msgid "A valid local network IP address must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:157
+#: src/usr/local/www/vpn_ipsec_phase2.php:159
msgid ""
"A valid local network IPv4 address must be specified or Mode needs to be "
"changed to IPv6"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:159
+#: src/usr/local/www/vpn_ipsec_phase2.php:161
msgid ""
"A valid local network IPv6 address must be specified or Mode needs to be "
"changed to IPv4"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:170
-#: src/usr/local/www/vpn_ipsec_phase2.php:200
+#: src/usr/local/www/vpn_ipsec_phase2.php:172
+#: src/usr/local/www/vpn_ipsec_phase2.php:202
msgid "Invalid Local Network."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:170
-#: src/usr/local/www/vpn_ipsec_phase2.php:200
+#: src/usr/local/www/vpn_ipsec_phase2.php:172
+#: src/usr/local/www/vpn_ipsec_phase2.php:202
#, php-format
msgid "%s has no subnet."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:178
+#: src/usr/local/www/vpn_ipsec_phase2.php:180
msgid "A valid NAT local network bit count must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:181
+#: src/usr/local/www/vpn_ipsec_phase2.php:183
msgid ""
"A network type address cannot be configured for NAT while only an address "
"type is selected for local source."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:185
+#: src/usr/local/www/vpn_ipsec_phase2.php:187
msgid "A valid NAT local network IP address must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:187
+#: src/usr/local/www/vpn_ipsec_phase2.php:189
msgid ""
"A valid NAT local network IPv4 address must be specified or Mode needs to be "
"changed to IPv6"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:189
+#: src/usr/local/www/vpn_ipsec_phase2.php:191
msgid ""
"A valid NAT local network IPv6 address must be specified or Mode needs to be "
"changed to IPv4"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:208
+#: src/usr/local/www/vpn_ipsec_phase2.php:210
msgid "A valid remote network bit count must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:212
+#: src/usr/local/www/vpn_ipsec_phase2.php:214
msgid "A valid remote network IP address must be specified."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:214
+#: src/usr/local/www/vpn_ipsec_phase2.php:216
msgid ""
"A valid remote network IPv4 address must be specified or Mode needs to be "
"changed to IPv6"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:216
+#: src/usr/local/www/vpn_ipsec_phase2.php:218
msgid ""
"A valid remote network IPv6 address must be specified or Mode needs to be "
"changed to IPv4"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:242
+#: src/usr/local/www/vpn_ipsec_phase2.php:244
msgid "Phase2 with this Local Network is already defined for mobile clients."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:275
+#: src/usr/local/www/vpn_ipsec_phase2.php:277
msgid ""
"Phase2 with this Local/Remote networks combination is already defined for "
"this Phase1."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:314
-#: src/usr/local/www/vpn_ipsec_phase2.php:319
+#: src/usr/local/www/vpn_ipsec_phase2.php:316
+#: src/usr/local/www/vpn_ipsec_phase2.php:321
msgid ""
"The local and remote networks of a phase 2 entry cannot overlap the outside "
"of the tunnel (interface and remote gateway) configured in its phase 1."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:333
+#: src/usr/local/www/vpn_ipsec_phase2.php:335
msgid "At least one encryption algorithm must be selected."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:345
+#: src/usr/local/www/vpn_ipsec_phase2.php:340
msgid "At least one hashing algorithm needs to be selected."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:353
+#: src/usr/local/www/vpn_ipsec_phase2.php:348
msgid "The P2 lifetime must be an integer."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:408
-#: src/usr/local/www/vpn_ipsec_phase2.php:411
+#: src/usr/local/www/vpn_ipsec_phase2.php:403
+#: src/usr/local/www/vpn_ipsec_phase2.php:406
msgid "Edit Phase 2"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:514
+#: src/usr/local/www/vpn_ipsec_phase2.php:509
msgid "Local Network"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:537
+#: src/usr/local/www/vpn_ipsec_phase2.php:532
msgid "NAT/BINAT translation"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:561
+#: src/usr/local/www/vpn_ipsec_phase2.php:556
msgid ""
"If NAT/BINAT is required on this network specify the address to be translated"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:565
+#: src/usr/local/www/vpn_ipsec_phase2.php:560
msgid "Remote Network"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:593
+#: src/usr/local/www/vpn_ipsec_phase2.php:588
msgid "Phase 2 Proposal (SA/Key Exchange)"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:600
+#: src/usr/local/www/vpn_ipsec_phase2.php:595
msgid "ESP is encryption, AH is authentication only."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:606
+#: src/usr/local/www/vpn_ipsec_phase2.php:601
msgid "Encryption Algorithms"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:637
+#: src/usr/local/www/vpn_ipsec_phase2.php:632
msgid ""
"Use 3DES for best compatibility or for a hardware crypto accelerator card. "
"Blowfish is usually the fastest in software encryption."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:644
+#: src/usr/local/www/vpn_ipsec_phase2.php:639
msgid "Hash Algorithms"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:663
+#: src/usr/local/www/vpn_ipsec_phase2.php:658
msgid "PFS key group"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:673
+#: src/usr/local/www/vpn_ipsec_phase2.php:668
#: src/usr/local/www/widgets/widgets/log.widget.php:257
msgid "Seconds"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:681
+#: src/usr/local/www/vpn_ipsec_phase2.php:676
msgid "Automatically ping host"
msgstr ""
@@ -29710,40 +29460,40 @@ msgid "Client successfully deleted."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:186
-#: src/usr/local/www/vpn_openvpn_server.php:255
+#: src/usr/local/www/vpn_openvpn_server.php:256
msgid ""
"Protocol and IP address families do not match. An IPv6 protocol and an IPv4 "
"IP address cannot be selected."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:188
-#: src/usr/local/www/vpn_openvpn_server.php:257
+#: src/usr/local/www/vpn_openvpn_server.php:258
msgid ""
"Protocol and IP address families do not match. An IPv4 protocol and an IPv6 "
"IP address cannot be selected."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:190
-#: src/usr/local/www/vpn_openvpn_server.php:259
+#: src/usr/local/www/vpn_openvpn_server.php:260
msgid ""
"An IPv4 protocol was selected, but the selected interface has no IPv4 "
"address."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:192
-#: src/usr/local/www/vpn_openvpn_server.php:261
+#: src/usr/local/www/vpn_openvpn_server.php:262
msgid ""
"An IPv6 protocol was selected, but the selected interface has no IPv6 "
"address."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:210
-#: src/usr/local/www/vpn_openvpn_server.php:305
+#: src/usr/local/www/vpn_openvpn_server.php:306
msgid "The specified 'Local port' is in use. Please select another value"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:223
-#: src/usr/local/www/vpn_openvpn_server.php:383
+#: src/usr/local/www/vpn_openvpn_server.php:384
msgid "The field 'Topology' contains an invalid selection"
msgstr ""
@@ -29756,18 +29506,18 @@ msgid "The bandwidth limit must be a positive numeric value."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:278
-#: src/usr/local/www/vpn_openvpn_server.php:315
+#: src/usr/local/www/vpn_openvpn_server.php:316
msgid "The field 'Shared Key' does not appear to be valid"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:285
-#: src/usr/local/www/vpn_openvpn_server.php:322
+#: src/usr/local/www/vpn_openvpn_server.php:323
msgid "The field 'TLS Authentication Key' does not appear to be valid"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:296
-#: src/usr/local/www/vpn_openvpn_server.php:396
-#: src/usr/local/www/vpn_openvpn_server.php:762
+#: src/usr/local/www/vpn_openvpn_server.php:397
+#: src/usr/local/www/vpn_openvpn_server.php:766
msgid "Shared key"
msgstr ""
@@ -29780,14 +29530,14 @@ msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:392
#: src/usr/local/www/vpn_openvpn_client.php:415
#: src/usr/local/www/vpn_openvpn_csc.php:297
-#: src/usr/local/www/vpn_openvpn_server.php:582
+#: src/usr/local/www/vpn_openvpn_server.php:586
msgid "Clients"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:416
#: src/usr/local/www/vpn_openvpn_csc.php:278
#: src/usr/local/www/vpn_openvpn_csc.php:298
-#: src/usr/local/www/vpn_openvpn_server.php:583
+#: src/usr/local/www/vpn_openvpn_server.php:587
msgid "Client Specific Overrides"
msgstr ""
@@ -29797,17 +29547,17 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:435
-#: src/usr/local/www/vpn_openvpn_server.php:604
+#: src/usr/local/www/vpn_openvpn_server.php:608
msgid "Server mode"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:449
-#: src/usr/local/www/vpn_openvpn_server.php:640
+#: src/usr/local/www/vpn_openvpn_server.php:644
msgid "Device mode"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:463
-#: src/usr/local/www/vpn_openvpn_server.php:654
+#: src/usr/local/www/vpn_openvpn_server.php:658
msgid "Local port"
msgstr ""
@@ -29869,26 +29619,26 @@ msgid "Leave empty when no password is needed"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:553
-#: src/usr/local/www/vpn_openvpn_server.php:669
+#: src/usr/local/www/vpn_openvpn_server.php:673
msgid "Cryptographic Settings"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:557
-#: src/usr/local/www/vpn_openvpn_server.php:673
+#: src/usr/local/www/vpn_openvpn_server.php:677
msgid "TLS authentication"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:575
#: src/usr/local/www/vpn_openvpn_client.php:621
-#: src/usr/local/www/vpn_openvpn_server.php:691
-#: src/usr/local/www/vpn_openvpn_server.php:772
+#: src/usr/local/www/vpn_openvpn_server.php:695
+#: src/usr/local/www/vpn_openvpn_server.php:776
msgid "Paste the shared key here"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:599
#: src/usr/local/www/vpn_openvpn_client.php:605
-#: src/usr/local/www/vpn_openvpn_server.php:716
-#: src/usr/local/www/vpn_openvpn_server.php:722
+#: src/usr/local/www/vpn_openvpn_server.php:720
+#: src/usr/local/www/vpn_openvpn_server.php:726
msgid "Peer Certificate Revocation list"
msgstr ""
@@ -29897,7 +29647,7 @@ msgid "Auto generate"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:619
-#: src/usr/local/www/vpn_openvpn_server.php:770
+#: src/usr/local/www/vpn_openvpn_server.php:774
msgid "Shared Key"
msgstr ""
@@ -29906,30 +29656,30 @@ msgid "Client Certificate"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:641
-#: src/usr/local/www/vpn_openvpn_server.php:783
+#: src/usr/local/www/vpn_openvpn_server.php:787
msgid "Auth digest algorithm"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:644
-#: src/usr/local/www/vpn_openvpn_server.php:786
+#: src/usr/local/www/vpn_openvpn_server.php:790
msgid ""
"Leave this set to SHA1 unless all clients are set to match. SHA1 is the "
"default for OpenVPN. "
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:648
-#: src/usr/local/www/vpn_openvpn_server.php:790
+#: src/usr/local/www/vpn_openvpn_server.php:794
msgid "Hardware Crypto"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:655
#: src/usr/local/www/vpn_openvpn_csc.php:356
-#: src/usr/local/www/vpn_openvpn_server.php:812
+#: src/usr/local/www/vpn_openvpn_server.php:816
msgid "Tunnel Settings"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:659
-#: src/usr/local/www/vpn_openvpn_server.php:816
+#: src/usr/local/www/vpn_openvpn_server.php:820
msgid "IPv4 Tunnel Network"
msgstr ""
@@ -29941,7 +29691,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:668
-#: src/usr/local/www/vpn_openvpn_server.php:826
+#: src/usr/local/www/vpn_openvpn_server.php:830
msgid "IPv6 Tunnel Network"
msgstr ""
@@ -29953,12 +29703,12 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:677
-#: src/usr/local/www/vpn_openvpn_server.php:894
+#: src/usr/local/www/vpn_openvpn_server.php:898
msgid "IPv4 Remote network(s)"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:680
-#: src/usr/local/www/vpn_openvpn_server.php:897
+#: src/usr/local/www/vpn_openvpn_server.php:901
msgid ""
"IPv4 networks that will be routed through the tunnel, so that a site-to-site "
"VPN can be established without manually changing the routing tables. "
@@ -29968,12 +29718,12 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:686
-#: src/usr/local/www/vpn_openvpn_server.php:903
+#: src/usr/local/www/vpn_openvpn_server.php:907
msgid "IPv6 Remote network(s)"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:689
-#: src/usr/local/www/vpn_openvpn_server.php:906
+#: src/usr/local/www/vpn_openvpn_server.php:910
msgid ""
"These are the IPv6 networks that will be routed through the tunnel, so that "
"a site-to-site VPN can be established without manually changing the routing "
@@ -29994,7 +29744,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:706
-#: src/usr/local/www/vpn_openvpn_server.php:922
+#: src/usr/local/www/vpn_openvpn_server.php:926
msgid ""
"Compress tunnel packets using the LZO algorithm. Adaptive compression will "
"dynamically disable compression for a period of time if OpenVPN detects that "
@@ -30002,7 +29752,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:710
-#: src/usr/local/www/vpn_openvpn_server.php:975
+#: src/usr/local/www/vpn_openvpn_server.php:979
msgid "Topology"
msgstr ""
@@ -30011,12 +29761,12 @@ msgid "Specifies the method used to configure a virtual adapter IP address."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:717
-#: src/usr/local/www/vpn_openvpn_server.php:928
+#: src/usr/local/www/vpn_openvpn_server.php:932
msgid "Type-of-Service"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:724
-#: src/usr/local/www/vpn_openvpn_server.php:949
+#: src/usr/local/www/vpn_openvpn_server.php:953
msgid "Disable IPv6"
msgstr ""
@@ -30045,12 +29795,12 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:756
-#: src/usr/local/www/vpn_openvpn_server.php:1137
+#: src/usr/local/www/vpn_openvpn_server.php:1148
msgid "Verbosity level"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:759
-#: src/usr/local/www/vpn_openvpn_server.php:1140
+#: src/usr/local/www/vpn_openvpn_server.php:1151
msgid ""
"Each level shows all info from the previous levels. Level 3 is recommended "
"for a good summary of what's happening without being swamped by output.<br /"
@@ -30069,57 +29819,57 @@ msgid "Client specific override successfully deleted."
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:157
-#: src/usr/local/www/vpn_openvpn_server.php:328
+#: src/usr/local/www/vpn_openvpn_server.php:329
msgid "The field 'DNS Server #1' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:160
-#: src/usr/local/www/vpn_openvpn_server.php:331
+#: src/usr/local/www/vpn_openvpn_server.php:332
msgid "The field 'DNS Server #2' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:163
-#: src/usr/local/www/vpn_openvpn_server.php:334
+#: src/usr/local/www/vpn_openvpn_server.php:335
msgid "The field 'DNS Server #3' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:166
-#: src/usr/local/www/vpn_openvpn_server.php:337
+#: src/usr/local/www/vpn_openvpn_server.php:338
msgid "The field 'DNS Server #4' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:172
-#: src/usr/local/www/vpn_openvpn_server.php:343
+#: src/usr/local/www/vpn_openvpn_server.php:344
msgid "The field 'NTP Server #1' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:175
-#: src/usr/local/www/vpn_openvpn_server.php:346
+#: src/usr/local/www/vpn_openvpn_server.php:347
msgid "The field 'NTP Server #2' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:178
-#: src/usr/local/www/vpn_openvpn_server.php:349
+#: src/usr/local/www/vpn_openvpn_server.php:350
msgid "The field 'NTP Server #3' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:181
-#: src/usr/local/www/vpn_openvpn_server.php:352
+#: src/usr/local/www/vpn_openvpn_server.php:353
msgid "The field 'NTP Server #4' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:188
-#: src/usr/local/www/vpn_openvpn_server.php:359
+#: src/usr/local/www/vpn_openvpn_server.php:360
msgid "The field 'WINS Server #1' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:191
-#: src/usr/local/www/vpn_openvpn_server.php:362
+#: src/usr/local/www/vpn_openvpn_server.php:363
msgid "The field 'WINS Server #2' must contain a valid IP address"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:196
-#: src/usr/local/www/vpn_openvpn_server.php:367
+#: src/usr/local/www/vpn_openvpn_server.php:368
msgid ""
"The field 'NetBIOS Data Distribution Server #1' must contain a valid IP "
"address"
@@ -30161,7 +29911,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:360
-#: src/usr/local/www/vpn_openvpn_server.php:1174
+#: src/usr/local/www/vpn_openvpn_server.php:1185
msgid "Tunnel Network"
msgstr ""
@@ -30226,12 +29976,12 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:402
-#: src/usr/local/www/vpn_openvpn_server.php:868
+#: src/usr/local/www/vpn_openvpn_server.php:872
msgid "Redirect Gateway"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:409
-#: src/usr/local/www/vpn_openvpn_server.php:956
+#: src/usr/local/www/vpn_openvpn_server.php:960
msgid "Client Settings"
msgstr ""
@@ -30259,7 +30009,7 @@ msgid ""
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:517
-#: src/usr/local/www/vpn_openvpn_server.php:1073
+#: src/usr/local/www/vpn_openvpn_server.php:1084
msgid "Node Type"
msgstr ""
@@ -30300,103 +30050,103 @@ msgstr ""
msgid "Server successfully deleted."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:271
+#: src/usr/local/www/vpn_openvpn_server.php:272
msgid ""
"A Backend for Authentication must be selected if the server mode requires "
"User Auth."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:379
+#: src/usr/local/www/vpn_openvpn_server.php:380
msgid "The field 'Concurrent connections' must be numeric."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:389
+#: src/usr/local/www/vpn_openvpn_server.php:390
msgid "The selected certificate is not valid"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:401
+#: src/usr/local/www/vpn_openvpn_server.php:402
msgid "Tunnel network"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:404
+#: src/usr/local/www/vpn_openvpn_server.php:405
msgid ""
"Using a tunnel network and server bridge settings together is not allowed."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:408
+#: src/usr/local/www/vpn_openvpn_server.php:409
msgid "Server Bridge DHCP Start and End must both be empty, or defined."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:411
+#: src/usr/local/www/vpn_openvpn_server.php:412
msgid "Server Bridge DHCP Start must be an IPv4 address."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:414
+#: src/usr/local/www/vpn_openvpn_server.php:415
msgid "Server Bridge DHCP End must be an IPv4 address."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:417
+#: src/usr/local/www/vpn_openvpn_server.php:418
msgid "The Server Bridge DHCP range is invalid (start higher than end)."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:600
+#: src/usr/local/www/vpn_openvpn_server.php:604
msgid ""
"Set this option to disable this server without removing it from the list."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:625
+#: src/usr/local/www/vpn_openvpn_server.php:629
msgid "Backend for authentication"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:733
-#: src/usr/local/www/vpn_openvpn_server.php:1576
+#: src/usr/local/www/vpn_openvpn_server.php:737
+#: src/usr/local/www/vpn_openvpn_server.php:1591
msgid ""
"Warning: The selected server certificate was not created as an SSL Server "
"certificate and may not work as expected"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:737
+#: src/usr/local/www/vpn_openvpn_server.php:741
msgid "No Certificates defined. One may be created here: "
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:737
+#: src/usr/local/www/vpn_openvpn_server.php:741
msgid "System &gt; Cert. Manager"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:747
+#: src/usr/local/www/vpn_openvpn_server.php:751
msgid "Server certificate"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:754
+#: src/usr/local/www/vpn_openvpn_server.php:758
msgid "DH Parameter length (bits)"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:799
+#: src/usr/local/www/vpn_openvpn_server.php:803
msgid "Do Not Check"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:797
+#: src/usr/local/www/vpn_openvpn_server.php:801
msgid "Certificate Depth"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:800
+#: src/usr/local/www/vpn_openvpn_server.php:804
msgid ""
"When a certificate-based client logs in, do not accept certificates below "
"this depth. Useful for denying certificates made with intermediate CAs "
"generated from the same CA as the server."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:805
+#: src/usr/local/www/vpn_openvpn_server.php:809
msgid "Strict User-CN Matching"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:808
+#: src/usr/local/www/vpn_openvpn_server.php:812
msgid ""
"When authenticating users, enforce a match between the common name of the "
"client certificate and the username given at login."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:819
+#: src/usr/local/www/vpn_openvpn_server.php:823
msgid ""
"This is the IPv4 virtual network used for private communications between "
"this server and client hosts expressed using CIDR (e.g. 10.0.8.0/24). The "
@@ -30405,7 +30155,7 @@ msgid ""
"(see Address Pool)."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:829
+#: src/usr/local/www/vpn_openvpn_server.php:833
msgid ""
"This is the IPv6 virtual network used for private communications between "
"this server and client hosts expressed using CIDR (e.g. fe80::/64). The "
@@ -30414,15 +30164,15 @@ msgid ""
"(see Address Pool)."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:836
+#: src/usr/local/www/vpn_openvpn_server.php:840
msgid "Bridge DHCP"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:843
+#: src/usr/local/www/vpn_openvpn_server.php:847
msgid "Bridge Interface"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:846
+#: src/usr/local/www/vpn_openvpn_server.php:850
msgid ""
"The interface to which this TAP instance will be bridged. This is not done "
"automatically. This interface must be assigned and the bridge created "
@@ -30431,11 +30181,11 @@ msgid ""
"Server Bridge DHCP settings below to be ignored."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:852
+#: src/usr/local/www/vpn_openvpn_server.php:856
msgid "Server Bridge DHCP Start"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:855
+#: src/usr/local/www/vpn_openvpn_server.php:859
msgid ""
"When using TAP mode as a multi-point server, a DHCP range may optionally be "
"supplied to use on the interface to which this TAP instance is bridged. If "
@@ -30443,15 +30193,15 @@ msgid ""
"the interface setting above will be ignored."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:861
+#: src/usr/local/www/vpn_openvpn_server.php:865
msgid "Server Bridge DHCP End"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:875
+#: src/usr/local/www/vpn_openvpn_server.php:879
msgid "IPv4 Local network(s)"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:878
+#: src/usr/local/www/vpn_openvpn_server.php:882
msgid ""
"IPv4 networks that will be accessible from the remote endpoint. Expressed as "
"a comma-separated list of one or more CIDR ranges. This may be left blank if "
@@ -30459,11 +30209,11 @@ msgid ""
"machine. This is generally set to the LAN network."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:885
+#: src/usr/local/www/vpn_openvpn_server.php:889
msgid "IPv6 Local network(s)"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:888
+#: src/usr/local/www/vpn_openvpn_server.php:892
msgid ""
"IPv6 networks that will be accessible from the remote endpoint. Expressed as "
"a comma-separated list of one or more IP/PREFIX. This may be left blank if "
@@ -30471,38 +30221,38 @@ msgid ""
"machine. This is generally set to the LAN network."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:912
+#: src/usr/local/www/vpn_openvpn_server.php:916
msgid "Concurrent connections"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:915
+#: src/usr/local/www/vpn_openvpn_server.php:919
msgid ""
"Specify the maximum number of clients allowed to concurrently connect to "
"this server."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:935
+#: src/usr/local/www/vpn_openvpn_server.php:939
msgid "Inter-client communication"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:942
+#: src/usr/local/www/vpn_openvpn_server.php:946
msgid "Duplicate Connection"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:945
+#: src/usr/local/www/vpn_openvpn_server.php:949
msgid ""
"(This is not generally recommended, but may be needed for some scenarios.)"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:961
+#: src/usr/local/www/vpn_openvpn_server.php:965
msgid "Dynamic IP"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:968
+#: src/usr/local/www/vpn_openvpn_server.php:972
msgid "Address Pool"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:978
+#: src/usr/local/www/vpn_openvpn_server.php:982
msgid ""
"Specifies the method used to supply a virtual adapter IP address to clients "
"when using TUN mode on IPv4.<br />Some clients may require this be set to "
@@ -30511,111 +30261,126 @@ msgid ""
"require \"net30\"."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:984
+#: src/usr/local/www/vpn_openvpn_server.php:988
msgid "Advanced Client Settings"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1003
+#: src/usr/local/www/vpn_openvpn_server.php:1007
msgid "DNS Server enable"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1010
+#: src/usr/local/www/vpn_openvpn_server.php:1014
msgid "DNS Server 1"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1017
+#: src/usr/local/www/vpn_openvpn_server.php:1021
msgid "DNS Server 2"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1024
+#: src/usr/local/www/vpn_openvpn_server.php:1028
msgid "DNS Server 3"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1031
+#: src/usr/local/www/vpn_openvpn_server.php:1035
msgid "DNS Server 4"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1038
+#: src/usr/local/www/vpn_openvpn_server.php:1042
+msgid "Block Outside DNS"
+msgstr ""
+
+#: src/usr/local/www/vpn_openvpn_server.php:1045
+msgid ""
+"Requires Windows 10 and OpenVPN 2.3.9 or later. Only Windows 10 is prone to "
+"DNS leakage in this way, other clients will ignore the option as they are "
+"not affected."
+msgstr ""
+
+#: src/usr/local/www/vpn_openvpn_server.php:1049
msgid "Force DNS cache update"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1041
+#: src/usr/local/www/vpn_openvpn_server.php:1052
msgid "This is known to kick Windows into recognizing pushed DNS servers."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1045
+#: src/usr/local/www/vpn_openvpn_server.php:1056
msgid "NTP Server enable"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1066
+#: src/usr/local/www/vpn_openvpn_server.php:1077
msgid "NetBIOS enable"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1069
+#: src/usr/local/www/vpn_openvpn_server.php:1080
msgid ""
"If this option is not set, all NetBIOS-over-TCP/IP options (including WINS) "
"will be disabled."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1076
+#: src/usr/local/www/vpn_openvpn_server.php:1087
msgid ""
"Possible options: b-node (broadcasts), p-node (point-to-point name queries "
"to a WINS server), m-node (broadcast then query name server), and h-node "
"(query name server, then broadcast)"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1081
+#: src/usr/local/www/vpn_openvpn_server.php:1092
msgid "Scope ID"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1084
+#: src/usr/local/www/vpn_openvpn_server.php:1095
msgid ""
"A NetBIOS Scope ID provides an extended naming service for NetBIOS over TCP/"
"IP. The NetBIOS scope ID isolates NetBIOS traffic on a single network to "
"only those nodes with the same NetBIOS scope ID"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1090
+#: src/usr/local/www/vpn_openvpn_server.php:1101
msgid "WINS server enable"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1097
+#: src/usr/local/www/vpn_openvpn_server.php:1108
msgid "WINS Server 1"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1104
+#: src/usr/local/www/vpn_openvpn_server.php:1115
msgid "WINS Server 2"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1111
+#: src/usr/local/www/vpn_openvpn_server.php:1122
msgid "Enable custom port "
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1118
+#: src/usr/local/www/vpn_openvpn_server.php:1129
msgid "Management port"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1121
+#: src/usr/local/www/vpn_openvpn_server.php:1132
msgid ""
"The default port is 166. Specify a different port if the client machines "
"need to select from multiple OpenVPN links."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1132
+#: src/usr/local/www/vpn_openvpn_server.php:1143
msgid ""
"Enter any additional options to add to the OpenVPN server configuration "
"here, separated by semicolon.<br />EXAMPLE: push \"route 10.0.0.0 "
"255.255.255.0\""
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1168
+#: src/usr/local/www/vpn_openvpn_server.php:1179
msgid "OpenVPN Servers"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1173
+#: src/usr/local/www/vpn_openvpn_server.php:1184
msgid "Protocol / Port"
msgstr ""
+#: src/usr/local/www/vpn_openvpn_server.php:1186
+msgid "Crypto"
+msgstr ""
+
#: src/usr/local/www/widgets/include/captiveportal.inc:22
msgid "Captive Portal Status"
msgstr ""
@@ -30685,24 +30450,24 @@ msgstr ""
msgid "Updated gateways widget settings via dashboard."
msgstr ""
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:103
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:105
msgid "Gateway IP"
msgstr ""
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:112
#: src/usr/local/www/widgets/widgets/gateways.widget.php:114
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:116
msgid "Save Settings"
msgstr ""
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:220
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:224
msgid "Packetloss"
msgstr ""
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:223
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:227
msgid "Latency"
msgstr ""
-#: src/usr/local/www/widgets/widgets/gateways.widget.php:227
+#: src/usr/local/www/widgets/widgets/gateways.widget.php:231
msgid "Online <br/>(unmonitored)"
msgstr ""
@@ -30716,15 +30481,15 @@ msgid ""
"a>."
msgstr ""
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:89
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:88
msgid "ok"
msgstr ""
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:143
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:141
msgid "Retrieving package data"
msgstr ""
-#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148
+#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146
msgid "Packages may be added/managed here: "
msgstr ""
@@ -30752,7 +30517,7 @@ msgstr ""
msgid "Errors Out"
msgstr ""
-#: src/usr/local/www/widgets/widgets/interface_statistics.widget.php:89
+#: src/usr/local/www/widgets/widgets/interface_statistics.widget.php:91
msgid "Retrieving interface data"
msgstr ""
@@ -30760,40 +30525,40 @@ msgstr ""
msgid "Mobile"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:189
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:190
msgid "Active Tunnels"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:190
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:191
msgid "Inactive Tunnels"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:191
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:192
msgid "Mobile Users"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:195
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:196
msgid "Retrieving overview data "
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:210
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:211
msgid "Retrieving tunnel data "
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:226
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:227
msgid "Retrieving mobile data "
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:233
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:234
msgid "There are no configured IPsec Tunnels"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ipsec.widget.php:234
+#: src/usr/local/www/widgets/widgets/ipsec.widget.php:235
msgid "IPsec can be configured <a href=\"vpn_ipsec.php\">here</a>."
msgstr ""
#: src/usr/local/www/widgets/widgets/log.widget.php:69
-msgid "Saved Filter Log Entries via Dashboard"
+msgid "Saved Filter Log Entries via Dashboard."
msgstr ""
#: src/usr/local/www/widgets/widgets/log.widget.php:101
@@ -30828,63 +30593,67 @@ msgstr ""
msgid "Update interval"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:52
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:56
msgid "stratum"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:141
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:145
msgid "Server Time"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:153
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:157
msgid "Sync Source"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:156
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:160
msgid "No active peers available"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:164
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:168
msgid "Clock location"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:178
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:182
msgid "in view"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:180
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:184
msgid "in use"
msgstr ""
-#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:458
+#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:462
msgid "Updating..."
msgstr ""
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:80
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:136
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:192
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:66
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:124
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:182
msgid "Name/Time"
msgstr ""
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:81
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:67
msgid "Real/Virtual IP"
msgstr ""
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:137
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:193
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:125
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:183
msgid "Remote/Virtual IP"
msgstr ""
-#: src/usr/local/www/widgets/widgets/openvpn.widget.php:241
+#: src/usr/local/www/widgets/widgets/openvpn.widget.php:232
msgid "No OpenVPN instances defined"
msgstr ""
+#: src/usr/local/www/widgets/widgets/picture.widget.php:57
+msgid "Picture widget saved via Dashboard."
+msgstr ""
+
#: src/usr/local/www/widgets/widgets/picture.widget.php:73
msgid "New picture:"
msgstr ""
#: src/usr/local/www/widgets/widgets/rss.widget.php:33
-msgid "Saved RSS Widget feed via Dashboard"
+msgid "Saved RSS Widget feed via Dashboard."
msgstr ""
#: src/usr/local/www/widgets/widgets/rss.widget.php:127
@@ -30904,7 +30673,7 @@ msgid "Content limit"
msgstr ""
#: src/usr/local/www/widgets/widgets/services_status.widget.php:65
-msgid "Saved Service Status Filter via Dashboard"
+msgid "Saved Service Status Filter via Dashboard."
msgstr ""
#: src/usr/local/www/widgets/widgets/services_status.widget.php:106
@@ -30923,127 +30692,123 @@ msgstr ""
msgid "Ident"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:42
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:43
msgid "<i>Unable to check for updates</i>"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:49
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:50
msgid "<i>Error in version information</i>"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:60
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:61
msgid "Version "
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:61
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:62
msgid "is available."
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:67
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:68
msgid "The system is on the latest version."
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:70
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:71
msgid "The system is on a later version than<br />the official release."
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:73
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:74
msgid "<i>Error comparing installed version<br />with latest available</i>"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:95
-msgid "built on"
-msgstr ""
-
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:102
-msgid "Obtaining update status "
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:104
+msgid "Unknown system"
msgstr ""
#: src/usr/local/www/widgets/widgets/system_information.widget.php:108
-msgid "Platform"
+msgid "Serial: "
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:126
-msgid "NanoBSD Boot Slice"
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:117
+msgid "built on"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:130
-msgid "Next Boot"
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:124
+msgid "Obtaining update status "
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:137
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:129
msgid "CPU Type"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:144
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:136
msgid "CPUs"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:151
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:143
msgid "Hardware crypto"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:160
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:152
msgid "Current date/time"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:164
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:156
msgid "DNS server(s)"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:178
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:170
msgid "Last config change"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:183
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:175
msgid "State table size"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:193
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:185
msgid "Show states"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:197
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:189
msgid "MBUF Usage"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:212
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:204
msgid "Temperature"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:224
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:216
msgid "Load average"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:226
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:218
msgid "Last 1, 5 and 15 minutes"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:230
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:222
msgid "CPU usage"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:236
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:228
msgid "(Updating in 10 seconds)"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:240
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:232
msgid "Memory usage"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:253
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:245
msgid "SWAP usage"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:267
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:259
msgid "Disk usage"
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:273
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:265
msgid " of "
msgstr ""
-#: src/usr/local/www/widgets/widgets/system_information.widget.php:273
+#: src/usr/local/www/widgets/widgets/system_information.widget.php:265
msgid "in RAM"
msgstr ""
@@ -31099,28 +30864,24 @@ msgstr ""
msgid "section"
msgstr ""
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:72
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:116
msgid "Updated traffic graph settings via dashboard."
msgstr ""
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:132
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:379
msgid "Show graphs"
msgstr ""
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:143
-msgid "Default Autoscale"
-msgstr ""
-
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:147
-msgid "Up"
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:396
+msgid "Refresh Interval"
msgstr ""
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:151
-msgid "Follow"
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:403
+msgid "Inverse"
msgstr ""
-#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:157
-msgid "Refresh Interval"
+#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:420
+msgid "Unit Size"
msgstr ""
#: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:39
@@ -31273,82 +31034,20 @@ msgstr ""
msgid "The same interface cannot be selected twice on local interfaces."
msgstr ""
-#: src/usr/local/www/xmlrpc.php:59
-msgid "Authentication failed"
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:70
-msgid ""
-"XMLRPC wrapper for eval(). This method must be called with two parameters: a "
-"string containing the local system\\'s password followed by the PHP code to "
-"evaluate."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:102
-msgid ""
-"XMLRPC wrapper for mwexec(). This method must be called with two parameters: "
-"a string containing the local system\\'s password followed by an shell "
-"command to execute."
+#: src/usr/local/www/xmlrpc.php:66
+msgid "Authentication failed: Invalid username or password"
msgstr ""
-#: src/usr/local/www/xmlrpc.php:126
-msgid ""
-"XMLRPC wrapper for backup_config_section. This method must be called with "
-"two parameters: a string containing the local system\\'s password followed "
-"by an array containing the keys to be backed up."
+#: src/usr/local/www/xmlrpc.php:83
+msgid "Authentication failed: not enough privileges"
msgstr ""
-#: src/usr/local/www/xmlrpc.php:154
-msgid ""
-"XMLRPC wrapper for restore_config_section. This method must be called with "
-"two parameters: a string containing the local system\\'s password and an "
-"array to merge into the system\\'s config. This function returns true upon "
-"completion."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:230 src/usr/local/www/xmlrpc.php:325
-#: src/usr/local/www/xmlrpc.php:356
+#: src/usr/local/www/xmlrpc.php:302 src/usr/local/www/xmlrpc.php:429
+#: src/usr/local/www/xmlrpc.php:458
#, php-format
msgid "Merged in config (%s sections) from XMLRPC client."
msgstr ""
-#: src/usr/local/www/xmlrpc.php:301
-msgid ""
-"XMLRPC wrapper for merging package sections. This method must be called with "
-"two parameters: a string containing the local system\\'s password and an "
-"array to merge into the system\\'s config. This function returns true upon "
-"completion."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:331
-msgid ""
-"XMLRPC wrapper for merge_config_section. This method must be called with two "
-"parameters: a string containing the local system\\'s password and an array "
-"to merge into the system\\'s config. This function returns true upon "
-"completion."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:361
-msgid ""
-"Basic XMLRPC wrapper for filter_configure. This method must be called with "
-"one parameter: a string containing the local system\\'s password. This "
-"function returns true upon completion."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:418
-msgid "Basic XMLRPC wrapper for configuring CARP interfaces."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:445
-msgid ""
-"Basic XMLRPC wrapper for host_firmware_version. This function will return "
-"the output of host_firmware_version upon completion."
-msgstr ""
-
-#: src/usr/local/www/xmlrpc.php:466
-msgid "Basic XMLRPC wrapper for rc.reboot."
-msgstr ""
-
#: src/etc/inc/pfsense-utils.inc:288
msgid "Manage Log"
msgstr ""
@@ -31381,43 +31080,37 @@ msgstr ""
msgid "Borrow from other queues when available"
msgstr ""
-#: src/etc/inc/shaper.inc:3819
+#: src/etc/inc/shaper.inc:3821
msgid "Enable limiter and its children"
msgstr ""
-#: src/etc/inc/shaper.inc:4132
+#: src/etc/inc/shaper.inc:4134
msgid "Enable this queue"
msgstr ""
-#: src/usr/local/www/diag_backup.php:605
+#: src/usr/local/www/diag_backup.php:560
msgid "Do not backup package information."
msgstr ""
-#: src/usr/local/www/diag_backup.php:612
+#: src/usr/local/www/diag_backup.php:567
msgid ""
"Do not backup RRD data (NOTE: RRD Data can consume 4+ megabytes of config."
"xml space!)"
msgstr ""
-#: src/usr/local/www/diag_backup.php:619
+#: src/usr/local/www/diag_backup.php:574
msgid "Encrypt this configuration file."
msgstr ""
-#: src/usr/local/www/diag_backup.php:666
+#: src/usr/local/www/diag_backup.php:621
msgid "Configuration file is encrypted."
msgstr ""
-#: src/usr/local/www/diag_nanobsd.php:221
-msgid ""
-"These options have been relocated to the <a href=\"system_advanced_misc.php"
-"\">System > Advanced, Miscellaneous</a> tab."
-msgstr ""
-
-#: src/usr/local/www/diag_packet_capture.php:287
+#: src/usr/local/www/diag_packet_capture.php:286
msgid "Enable promiscuous mode"
msgstr ""
-#: src/usr/local/www/diag_packet_capture.php:360
+#: src/usr/local/www/diag_packet_capture.php:359
msgid "Do reverse DNS lookup"
msgstr ""
@@ -31476,8 +31169,8 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:369
#: src/usr/local/www/firewall_nat_edit.php:635
#: src/usr/local/www/firewall_nat_npt_edit.php:192
-#: src/usr/local/www/firewall_nat_out_edit.php:419
-#: src/usr/local/www/firewall_rules_edit.php:1120
+#: src/usr/local/www/firewall_nat_out_edit.php:434
+#: src/usr/local/www/firewall_rules_edit.php:1115
msgid "Disable this rule"
msgstr ""
@@ -31489,7 +31182,7 @@ msgstr ""
#: src/usr/local/www/firewall_nat_1to1_edit.php:454
#: src/usr/local/www/firewall_nat_npt_edit.php:207
#: src/usr/local/www/firewall_nat_npt_edit.php:222
-#: src/usr/local/www/firewall_nat_out_edit.php:525
+#: src/usr/local/www/firewall_nat_out_edit.php:540
msgid "Not"
msgstr ""
@@ -31499,7 +31192,7 @@ msgstr ""
#: src/usr/local/www/firewall_nat_edit.php:710
#: src/usr/local/www/firewall_nat_edit.php:777
-#: src/usr/local/www/firewall_rules_edit.php:1267
+#: src/usr/local/www/firewall_rules_edit.php:1262
msgid "Invert match."
msgstr ""
@@ -31507,52 +31200,52 @@ msgstr ""
msgid "Do not automatically sync to other CARP members"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:426
+#: src/usr/local/www/firewall_nat_out_edit.php:441
msgid ""
"Enabling this option will disable NAT for traffic matching this rule and "
"stop processing Outbound NAT rules"
msgstr ""
-#: src/usr/local/www/firewall_nat_out_edit.php:587
+#: src/usr/local/www/firewall_nat_out_edit.php:609
msgid "Static port"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1129
+#: src/usr/local/www/firewall_rules_edit.php:1124
msgid "Apply the action immediately on match."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1147
+#: src/usr/local/www/firewall_rules_edit.php:1142
msgid ""
"<span class=\"help-block\">This is associated with a NAT rule.<br/>Editing "
"the interface, protocol, source, or destination of associated filter rules "
"is not permitted."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1397
+#: src/usr/local/www/firewall_rules_edit.php:1385
msgid "Log packets that are handled by this rule"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1447
+#: src/usr/local/www/firewall_rules_edit.php:1435
msgid ""
"Allow packets with IP options to pass. Otherwise they are blocked by "
"default. This is usually only seen with multicast traffic."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1455
+#: src/usr/local/www/firewall_rules_edit.php:1443
msgid "Disable auto generated reply-to for this rule."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1533
+#: src/usr/local/www/firewall_rules_edit.php:1521
msgid "Prevent states created by this rule to be sync'ed over pfsync."
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1553
+#: src/usr/local/www/firewall_rules_edit.php:1541
msgid ""
"Prevent the rule on Master from automatically syncing to other CARP members"
msgstr ""
-#: src/usr/local/www/firewall_rules_edit.php:1687
-#: src/usr/local/www/firewall_rules_edit.php:1694
+#: src/usr/local/www/firewall_rules_edit.php:1675
+#: src/usr/local/www/firewall_rules_edit.php:1682
msgid "<b>"
msgstr ""
@@ -31562,110 +31255,114 @@ msgid ""
"expands to 256 entries.) "
msgstr ""
-#: src/usr/local/www/interfaces.php:1688
+#: src/usr/local/www/interfaces.php:1691
msgid "Enable interface"
msgstr ""
-#: src/usr/local/www/interfaces.php:1836 src/usr/local/www/interfaces.php:3142
+#: src/usr/local/www/interfaces.php:1839 src/usr/local/www/interfaces.php:3150
msgid "Default gateway"
msgstr ""
-#: src/usr/local/www/interfaces.php:1901 src/usr/local/www/interfaces.php:2084
+#: src/usr/local/www/interfaces.php:1904 src/usr/local/www/interfaces.php:2087
msgid "Configuration Override"
msgstr ""
-#: src/usr/local/www/interfaces.php:1982
+#: src/usr/local/www/interfaces.php:1985
msgid "FreeBSD default"
msgstr ""
-#: src/usr/local/www/interfaces.php:1998
+#: src/usr/local/www/interfaces.php:2001
msgid "pfSense Default"
msgstr ""
-#: src/usr/local/www/interfaces.php:2006
+#: src/usr/local/www/interfaces.php:2009
msgid "Saved Cfg"
msgstr ""
-#: src/usr/local/www/interfaces.php:2093
+#: src/usr/local/www/interfaces.php:2096
msgid "Request a IPv6 prefix/information through the IPv4 connectivity link"
msgstr ""
-#: src/usr/local/www/interfaces.php:2100
+#: src/usr/local/www/interfaces.php:2103
msgid "Only request an IPv6 prefix, do not request an IPv6 address"
msgstr ""
-#: src/usr/local/www/interfaces.php:2114
+#: src/usr/local/www/interfaces.php:2117
msgid ""
"Send an IPv6 prefix hint to indicate the desired prefix size for delegation"
msgstr ""
-#: src/usr/local/www/interfaces.php:2121
+#: src/usr/local/www/interfaces.php:2124
msgid "Start DHCP6 client in debug mode"
msgstr ""
-#: src/usr/local/www/interfaces.php:2145
+#: src/usr/local/www/interfaces.php:2130
+msgid "Required by some ISPs, especially those not using PPPoE"
+msgstr ""
+
+#: src/usr/local/www/interfaces.php:2153
msgid "Exchange Information Only"
msgstr ""
-#: src/usr/local/www/interfaces.php:2181
+#: src/usr/local/www/interfaces.php:2189
msgid "Non-Temporary Address Allocation"
msgstr ""
-#: src/usr/local/www/interfaces.php:2221
+#: src/usr/local/www/interfaces.php:2229
msgid "Prefix Delegation "
msgstr ""
-#: src/usr/local/www/interfaces.php:2563 src/usr/local/www/interfaces.php:2693
+#: src/usr/local/www/interfaces.php:2571 src/usr/local/www/interfaces.php:2701
msgid "Enable Dial-On-Demand mode "
msgstr ""
-#: src/usr/local/www/interfaces.php:2620
+#: src/usr/local/www/interfaces.php:2628
msgid "Reset at each month (\"0 0 1 * *\")"
msgstr ""
-#: src/usr/local/www/interfaces.php:2628
+#: src/usr/local/www/interfaces.php:2636
msgid "Reset at each week (\"0 0 * * 0\")"
msgstr ""
-#: src/usr/local/www/interfaces.php:2636
+#: src/usr/local/www/interfaces.php:2644
msgid "Reset at each day (\"0 0 * * *\")"
msgstr ""
-#: src/usr/local/www/interfaces.php:2644
+#: src/usr/local/www/interfaces.php:2652
msgid "Reset at each hour (\"0 * * * *\")"
msgstr ""
-#: src/usr/local/www/interfaces.php:2731
+#: src/usr/local/www/interfaces.php:2739
msgid ""
"Preserve common wireless configuration through interface deletions and "
"reassignments."
msgstr ""
-#: src/usr/local/www/interfaces.php:2931
+#: src/usr/local/www/interfaces.php:2939
msgid ""
"Allow packets to pass between wireless clients directly when operating as an "
"access point"
msgstr ""
-#: src/usr/local/www/interfaces.php:2939
+#: src/usr/local/www/interfaces.php:2947
msgid "Force the card to use WME (wireless QoS)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2947
+#: src/usr/local/www/interfaces.php:2955
msgid ""
"Disable broadcasting of the SSID for this network (This may cause problems "
"for some clients, and the SSID may still be discovered by other means.)"
msgstr ""
-#: src/usr/local/www/interfaces.php:2960
+#: src/usr/local/www/interfaces.php:2968
msgid "Enable WPA"
msgstr ""
-#: src/usr/local/www/interfaces.php:3012
+#: src/usr/local/www/interfaces.php:3020
msgid "Force the AP to rekey whenever a client disassociates"
msgstr ""
-#: src/usr/local/www/interfaces.php:3024
+#: src/usr/local/www/interfaces.php:3032
msgid "Enable 802.1X authentication"
msgstr ""
@@ -31689,55 +31386,55 @@ msgid ""
"the local tunnel address"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:695
+#: src/usr/local/www/interfaces_ppps_edit.php:715
msgid "Enable persistent logging of connection uptime. "
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:712
+#: src/usr/local/www/interfaces_ppps_edit.php:733
msgid "Configure NULL service name"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:767
+#: src/usr/local/www/interfaces_ppps_edit.php:789
msgid "Monthly (0 0 1 * *)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:775
+#: src/usr/local/www/interfaces_ppps_edit.php:797
msgid "Weekly (0 0 * * 0)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:783
+#: src/usr/local/www/interfaces_ppps_edit.php:805
msgid "Daily (0 0 * * *)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:791
+#: src/usr/local/www/interfaces_ppps_edit.php:813
msgid "Hourly (0 * * * *)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:820
+#: src/usr/local/www/interfaces_ppps_edit.php:842
msgid "Enable Dial-on-Demand mode. "
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:837
+#: src/usr/local/www/interfaces_ppps_edit.php:859
msgid "Disable vjcomp (compression, auto-negotiated by default)."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:847
+#: src/usr/local/www/interfaces_ppps_edit.php:869
msgid "Disable tcpmssfix (enabled by default)."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:858
+#: src/usr/local/www/interfaces_ppps_edit.php:880
msgid "Disable shortseq (auto-negotiated by default)."
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:866
+#: src/usr/local/www/interfaces_ppps_edit.php:888
msgid "Disable ACF compression (auto-negotiated by default)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:873
+#: src/usr/local/www/interfaces_ppps_edit.php:895
msgid "Disable Protocol compression (auto-negotiated by default)"
msgstr ""
-#: src/usr/local/www/interfaces_ppps_edit.php:919
+#: src/usr/local/www/interfaces_ppps_edit.php:941
msgid "<span id=\"linkparamhelp\">"
msgstr ""
@@ -31870,48 +31567,52 @@ msgstr ""
msgid "Disable HTTPS Forwards"
msgstr ""
-#: src/usr/local/www/services_captiveportal_vouchers.php:482
+#: src/usr/local/www/services_captiveportal_vouchers.php:451
msgid "Enable the creation, generation and activation of rolls with vouchers"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:768
+#: src/usr/local/www/services_dhcp.php:774
+msgid "Ignore BOOTP queries"
+msgstr ""
+
+#: src/usr/local/www/services_dhcp.php:781
msgid "Only the clients defined below will get DHCP leases from this server."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:775
+#: src/usr/local/www/services_dhcp.php:788
msgid "Denied clients will be ignored rather than rejected."
msgstr ""
-#: src/usr/local/www/services_dhcp.php:947
+#: src/usr/local/www/services_dhcp.php:960
msgid "Enable Static ARP entries"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:954
+#: src/usr/local/www/services_dhcp.php:967
msgid "Change DHCP display lease time from UTC to local time"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:961
+#: src/usr/local/www/services_dhcp.php:974
msgid "Enable RRD statistics graphs"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:984
+#: src/usr/local/www/services_dhcp.php:997
msgid "Enable registration of DHCP client names in DNS"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1133
+#: src/usr/local/www/services_dhcp.php:1146
msgid "Enables network booting"
msgstr ""
-#: src/usr/local/www/services_dhcp.php:1194
+#: src/usr/local/www/services_dhcp.php:1207
msgid "<div class=\"alert alert-info\"> "
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:464
+#: src/usr/local/www/services_dhcp_edit.php:471
msgid "Create an ARP Table Static Entry for this MAC & IP Address pair."
msgstr ""
-#: src/usr/local/www/services_dhcp_edit.php:577
-#: src/usr/local/www/services_dhcpv6.php:742
+#: src/usr/local/www/services_dhcp_edit.php:584
+#: src/usr/local/www/services_dhcpv6.php:737
msgid "Enable registration of DHCP client names in DNS."
msgstr ""
@@ -31924,27 +31625,27 @@ msgstr ""
msgid "Append circuit ID and agent ID to requests"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:570
+#: src/usr/local/www/services_dhcpv6.php:565
msgid "Enable DHCPv6 server on interface "
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:588
+#: src/usr/local/www/services_dhcpv6.php:583
msgid " bits"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:593
+#: src/usr/local/www/services_dhcpv6.php:588
msgid " to "
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:719
+#: src/usr/local/www/services_dhcpv6.php:714
msgid "Change DHCPv6 display lease time from UTC to local time"
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:789
+#: src/usr/local/www/services_dhcpv6.php:784
msgid "Add reverse dynamic DNS entries."
msgstr ""
-#: src/usr/local/www/services_dhcpv6.php:867
+#: src/usr/local/www/services_dhcpv6.php:862
msgid "Enable Network Booting"
msgstr ""
@@ -32158,7 +31859,7 @@ msgstr ""
msgid "AAAA (IPv6)"
msgstr ""
-#: src/usr/local/www/services_router_advertisements.php:452
+#: src/usr/local/www/services_router_advertisements.php:447
msgid "Use same settings as DHCPv6 server"
msgstr ""
@@ -32269,133 +31970,149 @@ msgid "Formatted"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:885
-#: src/usr/local/www/status_logs_settings.php:275
+#: src/usr/local/www/status_logs_settings.php:283
msgid "Log errors from the web server process"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:896
-#: src/usr/local/www/status_logs_settings.php:247
+#: src/usr/local/www/status_logs_settings.php:255
msgid "Log packets matched from the default block rules in the ruleset"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:903
-#: src/usr/local/www/status_logs_settings.php:254
+#: src/usr/local/www/status_logs_settings.php:262
msgid "Log packets matched from the default pass rules put in the ruleset"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:910
-#: src/usr/local/www/status_logs_settings.php:261
+#: src/usr/local/www/status_logs_settings.php:269
msgid "Log packets blocked by 'Block Bogon Networks' rules"
msgstr ""
#: src/usr/local/www/status_logs_common.inc:917
-#: src/usr/local/www/status_logs_settings.php:268
+#: src/usr/local/www/status_logs_settings.php:276
msgid "Log packets blocked by 'Block Private Networks' rules"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:224
+#: src/usr/local/www/status_logs_settings.php:232
msgid "Show log entries in reverse order (newest entries on top)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:282
+#: src/usr/local/www/status_logs_settings.php:290
msgid "Show raw filter logs"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:289
+#: src/usr/local/www/status_logs_settings.php:297
msgid "Enable verbose logging (Default is terse logging)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:308
+#: src/usr/local/www/status_logs_settings.php:316
msgid "Disable writing log files to the local disk"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:326
+#: src/usr/local/www/status_logs_settings.php:334
msgid "Send log messages to remote syslog server"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:381
+#: src/usr/local/www/status_logs_settings.php:389
msgid "Everything"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:388
+#: src/usr/local/www/status_logs_settings.php:396
msgid "System Events"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:395
+#: src/usr/local/www/status_logs_settings.php:403
msgid "Firewall Events"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:402
-msgid "DHCP service events"
+#: src/usr/local/www/status_logs_settings.php:410
+msgid "DNS Events (Resolver/unbound, Forwarder/dnsmasq, filterdns)"
+msgstr ""
+
+#: src/usr/local/www/status_logs_settings.php:417
+msgid "DHCP Events (DHCP Daemon, DHCP Relay, DHCP Client)"
+msgstr ""
+
+#: src/usr/local/www/status_logs_settings.php:424
+msgid "PPP Events (PPPoE WAN Client, L2TP WAN Client, PPTP WAN Client)"
+msgstr ""
+
+#: src/usr/local/www/status_logs_settings.php:431
+msgid "Captive Portal Events"
+msgstr ""
+
+#: src/usr/local/www/status_logs_settings.php:438
+msgid "VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:409
-msgid "Portal Auth events"
+#: src/usr/local/www/status_logs_settings.php:445
+msgid "Gateway Monitor Events"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:416
-msgid "VPN (PPTP, IPsec, OpenVPN) events"
+#: src/usr/local/www/status_logs_settings.php:452
+msgid "Routing Daemon Events (RADVD, UPnP, RIP, OSPF, BGP)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:423
-msgid "Gateway Monitor events"
+#: src/usr/local/www/status_logs_settings.php:459
+msgid "Server Load Balancer Events (relayd)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:430
-msgid "Server Load Balancer events"
+#: src/usr/local/www/status_logs_settings.php:466
+msgid "Network Time Protocol Events (NTP Daemon, NTP Client)"
msgstr ""
-#: src/usr/local/www/status_logs_settings.php:437
-msgid "Wireless events"
+#: src/usr/local/www/status_logs_settings.php:473
+msgid "Wireless Events (hostapd)"
msgstr ""
-#: src/usr/local/www/system.php:424
+#: src/usr/local/www/system.php:431
msgid "Allow DNS server list to be overridden by DHCP/PPP on WAN"
msgstr ""
-#: src/usr/local/www/system.php:434
+#: src/usr/local/www/system.php:441
msgid "Do not use the DNS Forwarder as a DNS server for the firewall"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:366
+#: src/usr/local/www/system_advanced_admin.php:364
msgid "Disable webConfigurator redirect rule"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:375
+#: src/usr/local/www/system_advanced_admin.php:373
msgid "Enable webConfigurator login autocomplete"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:386
+#: src/usr/local/www/system_advanced_admin.php:384
msgid "Disable logging of webConfigurator successful logins"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:400
+#: src/usr/local/www/system_advanced_admin.php:398
msgid "Disable webConfigurator anti-lockout rule"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:413
+#: src/usr/local/www/system_advanced_admin.php:411
msgid "Disable DNS Rebinding Checks"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:433
+#: src/usr/local/www/system_advanced_admin.php:431
msgid "Disable HTTP_REFERER enforcement check"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:450
+#: src/usr/local/www/system_advanced_admin.php:448
msgid "Enable Secure Shell"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:457
+#: src/usr/local/www/system_advanced_admin.php:455
msgid "Disable password login for Secure Shell (RSA/DSA key only)"
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:479
+#: src/usr/local/www/system_advanced_admin.php:477
msgid ""
"Enables the first serial port with 115200/8/N/1 by default, or another speed "
"selectable below."
msgstr ""
-#: src/usr/local/www/system_advanced_admin.php:514
+#: src/usr/local/www/system_advanced_admin.php:512
msgid "Password protect the console menu"
msgstr ""
@@ -32450,31 +32167,31 @@ msgid ""
"subnet it originated from."
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:375
+#: src/usr/local/www/system_advanced_misc.php:374
msgid "Enable default gateway switching"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:387
+#: src/usr/local/www/system_advanced_misc.php:386
msgid "Enable PowerD"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:468
+#: src/usr/local/www/system_advanced_misc.php:467
msgid "Do not kill connections when schedule expires"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:480
+#: src/usr/local/www/system_advanced_misc.php:479
msgid "Flush all states when a gateway goes down"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:488
+#: src/usr/local/www/system_advanced_misc.php:487
msgid "Do not create rules when gateway is down"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:500
+#: src/usr/local/www/system_advanced_misc.php:499
msgid "Use memory file system for /tmp and /var"
msgstr ""
-#: src/usr/local/www/system_advanced_misc.php:569
+#: src/usr/local/www/system_advanced_misc.php:566
msgid "Do NOT send HOST UUID with user agent"
msgstr ""
@@ -32511,23 +32228,19 @@ msgstr ""
msgid "Suppress ARP messages"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:208
+#: src/usr/local/www/system_advanced_notifications.php:215
msgid "Disable Growl Notifications"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:258
+#: src/usr/local/www/system_advanced_notifications.php:265
msgid "Disable SMTP Notifications"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:284
+#: src/usr/local/www/system_advanced_notifications.php:298
msgid "Enable SMTP over SSL/TLS"
msgstr ""
-#: src/usr/local/www/system_advanced_notifications.php:291
-msgid "Enable STARTTLS"
-msgstr ""
-
-#: src/usr/local/www/system_advanced_notifications.php:349
+#: src/usr/local/www/system_advanced_notifications.php:356
msgid "Disable the startup/shutdown beep"
msgstr ""
@@ -32561,7 +32274,7 @@ msgstr ""
msgid "Do not strip away parts of the username after the @ symbol"
msgstr ""
-#: src/usr/local/www/system_certmanager.php:610
+#: src/usr/local/www/system_certmanager.php:615
msgid "<a href=\"system_camanager.php?act=new&amp;method=internal\"> "
msgstr ""
@@ -32686,28 +32399,28 @@ msgstr ""
msgid "Disable this static route"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:144
+#: src/usr/local/www/system_update_settings.php:139
msgid "Disable the automatic dashboard auto-update check"
msgstr ""
-#: src/usr/local/www/system_update_settings.php:156
+#: src/usr/local/www/system_update_settings.php:151
msgid "Enable repository/branch sync before reboot"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:691
+#: src/usr/local/www/system_usermanager.php:685
msgid "This user cannot login"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:749
+#: src/usr/local/www/system_usermanager.php:743
msgid ""
"Use individual customized GUI options and dashboard layout for this user."
msgstr ""
-#: src/usr/local/www/system_usermanager.php:817
+#: src/usr/local/www/system_usermanager.php:811
msgid "Click to create a user certificate"
msgstr ""
-#: src/usr/local/www/system_usermanager.php:913
+#: src/usr/local/www/system_usermanager.php:907
msgid "Click to paste an authorized key"
msgstr ""
@@ -32734,7 +32447,7 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec_mobile.php:562
#: src/usr/local/www/vpn_openvpn_csc.php:422
-#: src/usr/local/www/vpn_openvpn_server.php:990
+#: src/usr/local/www/vpn_openvpn_server.php:994
msgid "Provide a default domain name to clients"
msgstr ""
@@ -32746,13 +32459,13 @@ msgstr ""
#: src/usr/local/www/vpn_ipsec_mobile.php:608
#: src/usr/local/www/vpn_openvpn_csc.php:442
-#: src/usr/local/www/vpn_openvpn_server.php:1004
+#: src/usr/local/www/vpn_openvpn_server.php:1008
msgid "Provide a DNS server list to clients"
msgstr ""
#: src/usr/local/www/vpn_ipsec_mobile.php:633
#: src/usr/local/www/vpn_openvpn_csc.php:534
-#: src/usr/local/www/vpn_openvpn_server.php:1091
+#: src/usr/local/www/vpn_openvpn_server.php:1102
msgid "Provide a WINS server list to clients"
msgstr ""
@@ -32766,39 +32479,39 @@ msgstr ""
msgid "Provide a login banner to clients"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:658
+#: src/usr/local/www/vpn_ipsec_phase1.php:654
msgid ""
"Set this option to disable this phase1 without removing it from the list. "
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:829
+#: src/usr/local/www/vpn_ipsec_phase1.php:825
msgid "Disables renegotiation when a connection is about to expire."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:836
+#: src/usr/local/www/vpn_ipsec_phase1.php:832
msgid ""
"Whether rekeying of an IKE_SA should also reauthenticate the peer. In IKEv1, "
"reauthentication is always done."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:843
+#: src/usr/local/www/vpn_ipsec_phase1.php:839
msgid ""
"Enable this option to never initiate this connection from this side, only "
"respond to incoming requests."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:865
+#: src/usr/local/www/vpn_ipsec_phase1.php:861
msgid ""
"Enable this to split connection entries with multiple phase 2 "
"configurations. Required for remote endpoints that support only a single "
"traffic selector per child SA."
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase1.php:891
+#: src/usr/local/www/vpn_ipsec_phase1.php:887
msgid "Enable DPD"
msgstr ""
-#: src/usr/local/www/vpn_ipsec_phase2.php:503
+#: src/usr/local/www/vpn_ipsec_phase2.php:498
msgid "Disable this phase 2 entry without removing it from the list. "
msgstr ""
@@ -32855,29 +32568,29 @@ msgid "Infinitely resolve server "
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:558
-#: src/usr/local/www/vpn_openvpn_server.php:674
+#: src/usr/local/www/vpn_openvpn_server.php:678
msgid "Enable authentication of TLS packets."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:566
-#: src/usr/local/www/vpn_openvpn_server.php:682
+#: src/usr/local/www/vpn_openvpn_server.php:686
msgid "Automatically generate a shared TLS authentication key."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:613
-#: src/usr/local/www/vpn_openvpn_server.php:763
+#: src/usr/local/www/vpn_openvpn_server.php:767
msgid "Automatically generate a shared key"
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:718
-#: src/usr/local/www/vpn_openvpn_server.php:929
+#: src/usr/local/www/vpn_openvpn_server.php:933
msgid ""
"Set the TOS IP header value of tunnel packets to match the encapsulated "
"packet value."
msgstr ""
#: src/usr/local/www/vpn_openvpn_client.php:725
-#: src/usr/local/www/vpn_openvpn_server.php:950
+#: src/usr/local/www/vpn_openvpn_server.php:954
msgid "Don't forward IPv6 traffic. "
msgstr ""
@@ -32898,7 +32611,7 @@ msgid "Block this client connection based on its common name. "
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:403
-#: src/usr/local/www/vpn_openvpn_server.php:869
+#: src/usr/local/www/vpn_openvpn_server.php:873
msgid "Force all client generated traffic through the tunnel."
msgstr ""
@@ -32907,53 +32620,59 @@ msgid "Prevent this client from receiving any server-defined client settings. "
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:483
-#: src/usr/local/www/vpn_openvpn_server.php:1046
+#: src/usr/local/www/vpn_openvpn_server.php:1057
msgid "Provide an NTP server list to clients"
msgstr ""
#: src/usr/local/www/vpn_openvpn_csc.php:511
-#: src/usr/local/www/vpn_openvpn_server.php:1067
+#: src/usr/local/www/vpn_openvpn_server.php:1078
msgid "Enable NetBIOS over TCP/IP"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:598
+#: src/usr/local/www/vpn_openvpn_server.php:602
msgid "Disable this server"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:806
+#: src/usr/local/www/vpn_openvpn_server.php:810
msgid "Enforce match"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:837
+#: src/usr/local/www/vpn_openvpn_server.php:841
msgid "Allow clients on the bridge to obtain DHCP."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:936
+#: src/usr/local/www/vpn_openvpn_server.php:940
msgid "Allow communication between clients connected to this server"
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:943
+#: src/usr/local/www/vpn_openvpn_server.php:947
msgid ""
"Allow multiple concurrent connections from clients using the same Common "
"Name."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:962
+#: src/usr/local/www/vpn_openvpn_server.php:966
msgid ""
"Allow connected clients to retain their connections if their IP address "
"changes."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:969
+#: src/usr/local/www/vpn_openvpn_server.php:973
msgid "Provide a virtual adapter IP address to clients (see Tunnel Network)."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1039
+#: src/usr/local/www/vpn_openvpn_server.php:1043
+msgid ""
+"Make Windows 10 Clients Block access to DNS servers except across OpenVPN "
+"while connected, forcing clients to use only VPN DNS servers."
+msgstr ""
+
+#: src/usr/local/www/vpn_openvpn_server.php:1050
msgid ""
"Run \"net stop dnscache\", \"net start dnscache\", \"ipconfig /flushdns\" "
"and \"ipconfig /registerdns\" on connection initiation."
msgstr ""
-#: src/usr/local/www/vpn_openvpn_server.php:1112
+#: src/usr/local/www/vpn_openvpn_server.php:1123
msgid "Use a different management port for clients."
msgstr ""
diff --git a/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
index 8539301..4fe73fe 100644
--- a/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
+++ b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po
@@ -1,5 +1,5 @@
# Language translation for pfSense project.
-# Copyright (C) 2011-2015 Electric Sheep Fencing LLC
+# Copyright (C) 2011-2015 Rubicon Communications, LLC (Netgate)
# This file is distributed under the same license as the pfSense package.
# Kiyo Takami and Isaac (.ike) Levy, 2013.
#
diff --git a/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
index 82e25c5..274de07 100644
--- a/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
+++ b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po
@@ -1,5 +1,5 @@
# Language translation for pfSense project.
-# Copyright (C) 2011-2015 Electric Sheep Fencing LLC
+# Copyright (C) 2011-2015 Rubicon Communications, LLC (Netgate)
# This file is distributed under the same license as the pfSense package.
# Vinicius Coque <vcoque@gmail.com>, 2011.
# Luiz Gustavo <luizgustavo@luizgustavo.pro>, 2014 Powered by: TrustUX Network (www.trustux.com)
diff --git a/src/usr/local/share/pfSense/post_upgrade_command b/src/usr/local/share/pfSense/post_upgrade_command
deleted file mode 100755
index fd6a46c..0000000
--- a/src/usr/local/share/pfSense/post_upgrade_command
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-#
-# post_upgrade_command
-#
-# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-/etc/rc.conf_mount_rw
-
-PFSENSETYPE=`cat /etc/platform`
-
-if [ "${PFSENSETYPE}" = "pfSense" -o "${PFSENSETYPE}" = "nanobsd" ]; then
- touch /conf/needs_package_sync_after_reboot
-fi
-
-if [ "${PFSENSETYPE}" = "nanobsd" ]; then
- ROOT=/tmp/${1}/
-else
- ROOT=/
-fi
-
-# Now turn on or off serial console as needed
-echo "Checking for ${ROOT}usr/local/share/pfSense/post_upgrade_command.php... " >> /conf/upgrade_log.txt
-if [ -x ${ROOT}usr/local/share/pfSense/post_upgrade_command.php ]; then
- echo "Running ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1" >> /conf/upgrade_log.txt
- ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1 >> /conf/upgrade_log.txt 2>&1
-fi
-
-# Fixup permissions on installed files
-if [ -f ${ROOT}usr/local/share/pfSense/base.mtree ]; then
- if [ -x "/tmp/mtree.old" ]; then
- MTREE_BIN=/tmp/mtree.old
- else
- MTREE_BIN=/usr/sbin/mtree
- fi
- ${MTREE_BIN} -U -e -q -f ${ROOT}usr/local/share/pfSense/base.mtree -p ${ROOT} > /conf/mtree.log
-fi
-
-# Make sure to preserve existing time zone
-if [ "${PFSENSETYPE}" = "nanobsd" -a -f /etc/localtime ]; then
- /bin/cp -p /etc/localtime ${ROOT}etc/localtime 2>/dev/null
-fi
-
-# Files may contain spaces
-oIFS=${IFS}
-IFS="
-"
-# Obsolete files - nanobsd doesn't need it since a new image is installed
-# on the other partition
-if [ "${PFSENSETYPE}" != "nanobsd" -a -f /etc/pfSense.obsoletedfiles ]; then
- for f in $(cat /etc/pfSense.obsoletedfiles); do
- if [ -n "${f}" -a -f "${f}" ]; then
- rm -f "${f}"
- elif [ -n "${f}" -a -d "${f}" ]; then
- rm -rf "${f}"
- fi
- done
-fi
-
-# Restore IFS
-IFS=${oIFS}
diff --git a/src/usr/local/share/pfSense/post_upgrade_command.php b/src/usr/local/share/pfSense/post_upgrade_command.php
deleted file mode 100755
index 938f61e..0000000
--- a/src/usr/local/share/pfSense/post_upgrade_command.php
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/local/bin/php -f
-<?php
-/*
- * post_upgrade_command.php
- *
- * part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- /* upgrade embedded users serial console */
- require_once("globals.inc");
- require_once("config.inc");
- require_once("functions.inc");
-
- if (file_exists("/usr/local/bin/git") && isset($config['system']['gitsync']['synconupgrade'])) {
- if (!empty($config['system']['gitsync']['repositoryurl'])) {
- exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git config remote.origin.url " . escapeshellarg($config['system']['gitsync']['repositoryurl']));
- }
- if (!empty($config['system']['gitsync']['branch'])) {
- system("pfSsh.php playback gitsync " . escapeshellarg($config['system']['gitsync']['branch']) . " --upgrading");
- }
- }
-
- $newslicedir = "";
- if (isset($argv[1]) && $argv[1] != "") {
- $newslicedir = '/tmp/' . $argv[1];
- }
-
- if ($g['enableserial_force'] || file_exists("{$newslicedir}/enableserial_force")) {
- $config['system']['enableserial'] = true;
- write_config();
- }
-
- system("echo \"Adding serial port settings ({$newslicedir})...\" >> /conf/upgrade_log.txt");
- setup_serial_port("upgrade", $newslicedir);
-
-?>
diff --git a/src/usr/local/share/pfSense/pre_upgrade_command b/src/usr/local/share/pfSense/pre_upgrade_command
deleted file mode 100644
index daa72d8..0000000
--- a/src/usr/local/share/pfSense/pre_upgrade_command
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/bin/sh
-#
-# pre_upgrade_command
-#
-# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
-# All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-/etc/rc.conf_mount_rw
-
-# Record the previous version
-PRIOR_VERSION=`uname -r | cut -d'.' -f1`
-echo $PRIOR_VERSION > /tmp/pre_upgrade_version
-
-# De-activate sync on root filesystem. See ticket #4523
-# Back up original fstab
-/bin/cp /etc/fstab /etc/fstab.orig
-# De-activate sync on the root slice only. This will not match NanoBSD since it already has sync,noatime
-/usr/bin/sed -i '' 's/^\(\/.*[[:space:]]*\/[[:space:]]*ufs[[:space:]]*\)rw,sync\([[:space:]]*[[:digit:]][[:space:]]*[[:digit:]]\)$/\1rw\2/' /etc/fstab
-
-# Uninstall all packages before upgrade to 2.3
-PFSENSE_VERSION=$(cat /etc/version)
-
-if echo "$PFSENSE_VERSION" | grep -q '^1.2'; then
- UNINSTALL="uninstall_package_from_name"
-else
- UNINSTALL="uninstall_package"
-fi
-
-cat >/tmp/remove_all_packages.php <<EOD
-#!/usr/local/bin/php
-<?php
-
-require_once("pkg-utils.inc");
-
-global \$pkg_interface;
-\$pkg_interface = "console";
-
-if (!isset(\$config['installedpackages']['package'])) {
- exit(0);
-}
-
-if (!is_array(\$config['installedpackages']['package'])) {
- exit(0);
-}
-
-\$removed_packages = array();
-foreach (\$config['installedpackages']['package'] as \$package) {
- if (isset(\$package['internal_name'])) {
- \$removed_packages[] = \$package['internal_name'];
- } else {
- \$rename_arr = array("Quagga OSPF" => "Quagga_OSPF", "System Patches" => "System_Patches");
- if (key_exists(\$package['name'], \$rename_arr)) {
- \$removed_packages[] = \$rename_arr[\$package['name']];
- } else {
- \$removed_packages[] = \$package['name'];
- }
- }
- ${UNINSTALL}(\$package['name']);
-}
-
-@file_put_contents("{\$g['cf_conf_path']}/packages_to_reinstall_after_upgrade.txt", implode("\\n",\$removed_packages));
-
-?>
-EOD
-
-/usr/local/bin/php /tmp/remove_all_packages.php
-rm -f /tmp/remove_all_packages.php
-
-# Cleanup PBIs
-if which pbi_info >/dev/null 2>&1; then
- for pbi in $(pbi_info); do
- echo ">>> Removing PBI ${pbi} and all symlinks"
- pbi_prefix=$(pbi_info ${pbi} | awk '$1 == "Prefix:" { print $2 }')
-
- for subdir in bin sbin; do
- if [ ! -d "${pbi_prefix}/${subdir}" ]; then
- continue
- fi
-
- for pbiopt in ${pbi_prefix}/${subdir}/*.pbiopt; do
- link_name=$(awk '$1 == "TARGET:" { print $2 }' ${pbiopt})
-
- if [ -z "${link_name}" ]; then
- continue
- fi
-
- if [ -L /usr/local/${link_name} ]; then
- rm -f /usr/local/${link_name}
- fi
- done
- done
-
- pbi_delete ${pbi}
- done
-
- # Cleanup remaining symbolic links
- find / -type l -lname '/usr/pbi/*' -delete
-fi
-
-# Hack to workaround ticket #3749
-if [ ${PRIOR_VERSION} -le 8 ] && grep -q 'sh /etc/rc.reboot' /etc/rc.firmware; then
- PROC=$(ps axwww | grep '/etc/rc.firmware *pfSenseupgrade')
- PID=''
- IMG=''
- if [ -n "${PROC}" ]; then
- PID=$(echo "${PROC}" | awk '{print $1}')
- IMG=$(echo "${PROC}" | sed 's,^.*pfSenseupgrade *,,')
- fi
-
- if [ -n "${PID}" -a -n "${IMG}" -a -f "${IMG}" ]; then
- cp -fp /bin/sh /tmp/sh.old
- kill ${PID} >/dev/null 2>&1
- kill -9 ${PID} >/dev/null 2>&1
- sed -i '' -e 's,sh /,/tmp/sh.old /,' \
- -e 's,/usr/sbin/mtree,/tmp/mtree.old,' /etc/rc.firmware
- # To avoid restarting rc.firmware twice because of #4328
- sed -i '' -e '/^restore_chflags()/, /^}/ s/mtree *-PU/mtree -P/' /etc/rc.firmware
- /etc/rc.firmware pfSenseupgrade "${IMG}"
- exit
- fi
-fi
-
-# One more hack to workaround #4328
-if grep -q 'mtree *-PU' /etc/rc.firmware; then
- PROC=$(ps axwww | grep '/etc/rc.firmware *pfSenseupgrade')
- PID=''
- IMG=''
- if [ -n "${PROC}" ]; then
- PID=$(echo "${PROC}" | awk '{print $1}')
- IMG=$(echo "${PROC}" | sed 's,^.*pfSenseupgrade *,,')
- fi
-
- if [ -n "${PID}" -a -n "${IMG}" -a -f "${IMG}" ]; then
- kill ${PID} >/dev/null 2>&1
- kill -9 ${PID} >/dev/null 2>&1
- sed -i '' -e '/^restore_chflags()/, /^}/ s/mtree *-PU/mtree -P/' /etc/rc.firmware
- /etc/rc.firmware pfSenseupgrade "${IMG}"
- exit
- fi
-fi
-
-# Make sure /boot files are not protected with schg
-chflags -R noschg /boot >/dev/null 2>&1
-
-rm /boot/kernel/*
-
diff --git a/src/usr/local/www/bandwidth_by_ip.php b/src/usr/local/www/bandwidth_by_ip.php
index 44af2d6..d380322 100644
--- a/src/usr/local/www/bandwidth_by_ip.php
+++ b/src/usr/local/www/bandwidth_by_ip.php
@@ -3,7 +3,7 @@
* bandwidth_by_ip.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/classes/Form.class.php b/src/usr/local/www/classes/Form.class.php
index 7c7e5f6..d3467f4 100644
--- a/src/usr/local/www/classes/Form.class.php
+++ b/src/usr/local/www/classes/Form.class.php
@@ -3,7 +3,7 @@
* Form.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/Button.class.php b/src/usr/local/www/classes/Form/Button.class.php
index 54e619c..e00f9b9 100644
--- a/src/usr/local/www/classes/Form/Button.class.php
+++ b/src/usr/local/www/classes/Form/Button.class.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2015 Sjon Hortensius
- * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/classes/Form/Checkbox.class.php b/src/usr/local/www/classes/Form/Checkbox.class.php
index 0a3f236..286bdf5 100644
--- a/src/usr/local/www/classes/Form/Checkbox.class.php
+++ b/src/usr/local/www/classes/Form/Checkbox.class.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2015 Sjon Hortensius
- * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/classes/Form/Element.class.php b/src/usr/local/www/classes/Form/Element.class.php
index e4d4a39..aea948e 100644
--- a/src/usr/local/www/classes/Form/Element.class.php
+++ b/src/usr/local/www/classes/Form/Element.class.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2015 Sjon Hortensius
- * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/classes/Form/Group.class.php b/src/usr/local/www/classes/Form/Group.class.php
index b4c8e69..bcfdc42 100644
--- a/src/usr/local/www/classes/Form/Group.class.php
+++ b/src/usr/local/www/classes/Form/Group.class.php
@@ -3,7 +3,7 @@
* Group.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/Input.class.php b/src/usr/local/www/classes/Form/Input.class.php
index 43ec643..7a05d76 100644
--- a/src/usr/local/www/classes/Form/Input.class.php
+++ b/src/usr/local/www/classes/Form/Input.class.php
@@ -3,7 +3,7 @@
* Input.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/IpAddress.class.php b/src/usr/local/www/classes/Form/IpAddress.class.php
index 58548a7..9ab26d8 100644
--- a/src/usr/local/www/classes/Form/IpAddress.class.php
+++ b/src/usr/local/www/classes/Form/IpAddress.class.php
@@ -3,7 +3,7 @@
* IpAddress.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
@@ -30,7 +30,8 @@ class Form_IpAddress extends Form_Input
switch ($type) {
case "BOTH":
- $this->_attributes['pattern'] = '[a-f0-9:.]*';
+ $this->_attributes['pattern'] = '[a-fA-F0-9:.]*';
+ $this->_attributes['title'] = 'An IPv4 address like 1.2.3.4 or an IPv6 address like 1:2a:3b:ffff::1';
break;
case "V4":
@@ -38,7 +39,8 @@ class Form_IpAddress extends Form_Input
break;
case "V6":
- $this->_attributes['pattern'] = '[a-f0-9:]*';
+ $this->_attributes['pattern'] = '[a-fA-F0-9:.]*';
+ $this->_attributes['title'] = 'An IPv6 address like 1:2a:3b:ffff::1';
break;
}
}
diff --git a/src/usr/local/www/classes/Form/MultiCheckbox.class.php b/src/usr/local/www/classes/Form/MultiCheckbox.class.php
index 987a544..104f9e7 100644
--- a/src/usr/local/www/classes/Form/MultiCheckbox.class.php
+++ b/src/usr/local/www/classes/Form/MultiCheckbox.class.php
@@ -3,7 +3,7 @@
* MultiCheckbox.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
index 9eb3af1..d85421f 100644
--- a/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
+++ b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php
@@ -3,7 +3,7 @@
* MultiCheckboxGroup.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/Section.class.php b/src/usr/local/www/classes/Form/Section.class.php
index 99e9767..a14494f 100644
--- a/src/usr/local/www/classes/Form/Section.class.php
+++ b/src/usr/local/www/classes/Form/Section.class.php
@@ -3,7 +3,7 @@
* Section.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/Select.class.php b/src/usr/local/www/classes/Form/Select.class.php
index 649166d..891aa10 100644
--- a/src/usr/local/www/classes/Form/Select.class.php
+++ b/src/usr/local/www/classes/Form/Select.class.php
@@ -3,7 +3,7 @@
* Select.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/StaticText.class.php b/src/usr/local/www/classes/Form/StaticText.class.php
index 001b462..d2a410c 100644
--- a/src/usr/local/www/classes/Form/StaticText.class.php
+++ b/src/usr/local/www/classes/Form/StaticText.class.php
@@ -3,7 +3,7 @@
* StaticText.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Form/Textarea.class.php b/src/usr/local/www/classes/Form/Textarea.class.php
index 3e5c71c..2519719 100644
--- a/src/usr/local/www/classes/Form/Textarea.class.php
+++ b/src/usr/local/www/classes/Form/Textarea.class.php
@@ -3,7 +3,7 @@
* Textarea.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/Modal.class.php b/src/usr/local/www/classes/Modal.class.php
index dff6bca..3a32e5e 100644
--- a/src/usr/local/www/classes/Modal.class.php
+++ b/src/usr/local/www/classes/Modal.class.php
@@ -3,7 +3,7 @@
* Modal.class.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2015 Sjon Hortensius
* All rights reserved.
*
diff --git a/src/usr/local/www/classes/autoload.inc.php b/src/usr/local/www/classes/autoload.inc.php
index bec1a4b..316ad9a 100644
--- a/src/usr/local/www/classes/autoload.inc.php
+++ b/src/usr/local/www/classes/autoload.inc.php
@@ -3,7 +3,7 @@
* autoload.inc.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/crash_reporter.php b/src/usr/local/www/crash_reporter.php
index 7e1a9bc..9a74c3e 100644
--- a/src/usr/local/www/crash_reporter.php
+++ b/src/usr/local/www/crash_reporter.php
@@ -3,7 +3,7 @@
* crash_reporter.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/css/Compact-RED.css b/src/usr/local/www/css/Compact-RED.css
index 9105de0..99b1675 100644
--- a/src/usr/local/www/css/Compact-RED.css
+++ b/src/usr/local/www/css/Compact-RED.css
@@ -3,7 +3,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2016 PiBa-NL
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,6 +23,7 @@
body {
font-size: 12px;
+ font-family: sans-serif;
}
.form-control {
@@ -83,6 +84,11 @@ body {
.dropdown-menu>li>a {
padding: 0px 20px;
+ line-height: 26px;
+}
+
+.dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover {
+ background-color: rgb(224, 224, 224);
}
.navbar-right>li>a {
@@ -95,6 +101,14 @@ body {
}
.panel-default>.panel-heading {
background-color: #900;
+ padding: 2px 5px 2px 15px;
+}
+
+.panel-title {
+ line-height: 18px;
+ font-size: 12px;
+ font-family: sans-serif;
+ font-weight: bold;
}
.form-control {
@@ -108,6 +122,10 @@ body {
padding:2px;
}
+.table-striped>tbody>tr:hover {
+ background-color: rgb(224, 224, 224);
+}
+
.header .context-links {
top: 1px;
}
diff --git a/src/usr/local/www/css/pfSense-BETA.css b/src/usr/local/www/css/pfSense-BETA.css
index 8d25f05..4550601 100644
--- a/src/usr/local/www/css/pfSense-BETA.css
+++ b/src/usr/local/www/css/pfSense-BETA.css
@@ -2,7 +2,7 @@
* pfSense-BETA.css
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -82,3 +82,7 @@ a.fa, i.fa {
.panel-heading {
padding: 5px 10px;
}
+
+.ui-widget {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+}
diff --git a/src/usr/local/www/css/pfSense-dark-BETA.css b/src/usr/local/www/css/pfSense-dark-BETA.css
index cb89447..a443e41 100644
--- a/src/usr/local/www/css/pfSense-dark-BETA.css
+++ b/src/usr/local/www/css/pfSense-dark-BETA.css
@@ -2,7 +2,7 @@
* pfSense-dark-BETA.css
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -86,3 +86,7 @@ a.fa, i.fa {
.panel-heading {
padding: 5px 10px;
}
+
+.ui-widget {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+}
diff --git a/src/usr/local/www/css/pfSense-dark.css b/src/usr/local/www/css/pfSense-dark.css
index 1f6c763..da9debe 100644
--- a/src/usr/local/www/css/pfSense-dark.css
+++ b/src/usr/local/www/css/pfSense-dark.css
@@ -2,7 +2,7 @@
* pfSense-dark.css
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,9 +43,9 @@ h1 a:link, h1 a:visited {
color: #fff;
}
-h1 a:hover, h1 a:active {
- color: #fff;
- text-decoration: none !important;
+h1 a:hover, h1 a:active {
+ color: #fff;
+ text-decoration: none !important;
}
/** Content structure */
@@ -348,13 +348,13 @@ caption {
a.list-group-item, .list-group-item {
background-color: #424242;
- color: #e0e0e0;
- border: 1px solid #212121;
+ color: #e0e0e0;
+ border: 1px solid #212121;
}
a.list-group-item:focus, a.list-group-item:hover, .list-group-item:focus, .list-group-item:hover {
background-color: #303030;
- color: #e0e0e0;
+ color: #e0e0e0;
}
a.list-group-item .list-group-item-heading, .list-group-item .list-group-item-heading {
@@ -406,12 +406,12 @@ ul.tree li A:link, ul.tree li A:hover, ul.tree li A:visited {
table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"] {
background-color: #000;
- color: #009688;
+ color: #009688;
border-bottom-color: #009688;
}
table[data-sortable].sortable-theme-bootstrap tbody td {
- border-top: 1px solid #303030;
+ border-top: 1px solid #303030;
}
textarea {
@@ -424,6 +424,10 @@ textarea {
background-color: #e0e0e0;
}
+.ui-widget {
+ font-family: Roboto, sans-serif;
+}
+
/* Callouts */
.bs-callout {
padding: 10px 15px;
diff --git a/src/usr/local/www/css/pfSense.css b/src/usr/local/www/css/pfSense.css
index 770fc75..a2cb099 100644
--- a/src/usr/local/www/css/pfSense.css
+++ b/src/usr/local/www/css/pfSense.css
@@ -2,7 +2,7 @@
* pfSense.css
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -77,6 +77,10 @@ h1 a:hover, h1 a:active {
cursor: move;
}
+.ui-widget {
+ font-family: Roboto, sans-serif;
+}
+
tr.disabled td,
tr.disabled th {
opacity: .5;
@@ -231,6 +235,12 @@ tr.disabled th {
padding: inherit;
}
+/* location of bottom right drag icon on resizable elements */
+.ui-resizable-se {
+ bottom: 2px;
+ right: 46px;
+}
+
#login .form-control {
height: 34px;
}
diff --git a/src/usr/local/www/diag_arp.php b/src/usr/local/www/diag_arp.php
index 9634ccf..d99bca0 100644
--- a/src/usr/local/www/diag_arp.php
+++ b/src/usr/local/www/diag_arp.php
@@ -3,7 +3,7 @@
* diag_arp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -238,15 +238,14 @@ foreach ($ifdescrs as $key => $interface) {
$data = array();
foreach ($rawdata as $line) {
- $elements = explode(' ', $line);
-
- if ($elements[3] != "(incomplete)") {
- $arpent = array();
- $arpent['ip'] = trim(str_replace(array('(', ')'), '', $elements[1]));
- $arpent['mac'] = trim($elements[3]);
- $arpent['interface'] = trim($elements[5]);
- $data[] = $arpent;
- }
+ $elements = explode(' ', $line, 7);
+ $arpent = array();
+ $arpent['ip'] = trim(str_replace(array('(', ')'), '', $elements[1]));
+ $arpent['mac'] = trim($elements[3]);
+ $arpent['interface'] = trim($elements[5]);
+ $arpent['status'] = trim(substr($elements[6], 0, strrpos($elements[6], ' ')));
+ $arpent['linktype'] = trim(str_replace(array('[', ']'), '', strrchr($elements[6], ' ')));
+ $data[] = $arpent;
}
function _getHostName($mac, $ip) {
@@ -334,6 +333,8 @@ $mac_man = load_mac_manufacturer_table();
<th><?= gettext("IP address")?></th>
<th><?= gettext("MAC address")?></th>
<th><?= gettext("Hostname")?></th>
+ <th><?= gettext("Status")?></th>
+ <th><?= gettext("Link Type")?></th>
<th data-sortable="false"><?=gettext("Actions")?></th>
</tr>
</thead>
@@ -356,6 +357,8 @@ $mac_man = load_mac_manufacturer_table();
?>
</td>
<td><?=trim(str_replace("Z_ ", "", $entry['dnsresolve']))?></td>
+ <td><?=ucfirst($entry['status'])?></td>
+ <td><?=$entry['linktype']?></td>
<td>
<a class="fa fa-trash" title="<?=gettext('Delete arp cache entry')?>" href="diag_arp.php?deleteentry=<?=$entry['ip']?>"></a>
</td>
@@ -379,7 +382,10 @@ events.push(function() {
<div class="infoblock blockopen">
<?php
-print_info_box(gettext("Local IPv6 peers use ") . '<a href="diag_ndp.php">' . gettext("NDP") . '</a>' . gettext(" instead of ARP."), 'info', false);
+print_info_box(gettext("Local IPv6 peers use ") . '<a href="diag_ndp.php">' . gettext("NDP") . '</a>' . gettext(" instead of ARP.") . '<br />' .
+ '<br />' . gettext("Permanent ARP entries are shown for local interfaces or static ARP entries.") .
+ '<br />' . gettext("Normal dynamic ARP entries show a countdown timer until they will expire and then be re-checked.") .
+ '<br />' . gettext("Incomplete ARP entries indicate that the target host has not yet replied to an ARP request."), 'info', false);
?>
</div>
diff --git a/src/usr/local/www/diag_authentication.php b/src/usr/local/www/diag_authentication.php
index 920f81d..e03bd55 100644
--- a/src/usr/local/www/diag_authentication.php
+++ b/src/usr/local/www/diag_authentication.php
@@ -3,7 +3,7 @@
* diag_authentication.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_backup.php b/src/usr/local/www/diag_backup.php
index 926841d..bd3de22 100644
--- a/src/usr/local/www/diag_backup.php
+++ b/src/usr/local/www/diag_backup.php
@@ -3,7 +3,7 @@
* diag_backup.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -164,9 +164,7 @@ function check_and_returnif_section_exists($section) {
if ($_POST['apply']) {
ob_flush();
flush();
- conf_mount_rw();
clear_subsystem_dirty("restore");
- conf_mount_ro();
exit;
}
@@ -311,7 +309,6 @@ if ($_POST) {
write_config();
add_base_packages_menu_items();
convert_config();
- conf_mount_ro();
}
filter_configure();
$savemsg = gettext("The configuration area has been restored. The firewall may need to be rebooted.");
@@ -325,7 +322,6 @@ if ($_POST) {
file_put_contents($_FILES['conffile']['tmp_name'], $data);
if (config_install($_FILES['conffile']['tmp_name']) == 0) {
/* this will be picked up by /index.php */
- conf_mount_rw();
mark_subsystem_dirty("restore");
touch("/conf/needs_package_sync_after_reboot");
/* remove cache, we will force a config reboot */
@@ -349,7 +345,6 @@ if ($_POST) {
write_config();
add_base_packages_menu_items();
convert_config();
- conf_mount_ro();
}
if ($m0n0wall_upgrade == true) {
if ($config['system']['gateway'] <> "") {
@@ -401,56 +396,16 @@ if ($_POST) {
}
// Convert icmp types
// http://www.openbsd.org/cgi-bin/man.cgi?query=icmp&sektion=4&arch=i386&apropos=0&manpath=OpenBSD+Current
- for ($i = 0; isset($config["filter"]["rule"][$i]); $i++) {
- if ($config["filter"]["rule"][$i]['icmptype']) {
- switch ($config["filter"]["rule"][$i]['icmptype']) {
- case "echo":
- $config["filter"]["rule"][$i]['icmptype'] = "echoreq";
- break;
- case "unreach":
- $config["filter"]["rule"][$i]['icmptype'] = "unreach";
- break;
- case "echorep":
- $config["filter"]["rule"][$i]['icmptype'] = "echorep";
- break;
- case "squench":
- $config["filter"]["rule"][$i]['icmptype'] = "squench";
- break;
- case "redir":
- $config["filter"]["rule"][$i]['icmptype'] = "redir";
- break;
- case "timex":
- $config["filter"]["rule"][$i]['icmptype'] = "timex";
- break;
- case "paramprob":
- $config["filter"]["rule"][$i]['icmptype'] = "paramprob";
- break;
- case "timest":
- $config["filter"]["rule"][$i]['icmptype'] = "timereq";
- break;
- case "timestrep":
- $config["filter"]["rule"][$i]['icmptype'] = "timerep";
- break;
- case "inforeq":
- $config["filter"]["rule"][$i]['icmptype'] = "inforeq";
- break;
- case "inforep":
- $config["filter"]["rule"][$i]['icmptype'] = "inforep";
- break;
- case "maskreq":
- $config["filter"]["rule"][$i]['icmptype'] = "maskreq";
- break;
- case "maskrep":
- $config["filter"]["rule"][$i]['icmptype'] = "maskrep";
- break;
- }
+ $convert = array('echo' => 'echoreq', 'timest' => 'timereq', 'timestrep' => 'timerep');
+ foreach ($config["filter"]["rule"] as $ruleid => &$ruledata) {
+ if ($convert[$ruledata['icmptype']]) {
+ $ruledata['icmptype'] = $convert[$ruledata['icmptype']];
}
}
$config['diag']['ipv6nat'] = true;
write_config();
add_base_packages_menu_items();
convert_config();
- conf_mount_ro();
$savemsg = gettext("The m0n0wall configuration has been restored and upgraded to pfSense.");
mark_subsystem_dirty("restore");
}
diff --git a/src/usr/local/www/diag_command.php b/src/usr/local/www/diag_command.php
index 78a9d21..a2de181 100644
--- a/src/usr/local/www/diag_command.php
+++ b/src/usr/local/www/diag_command.php
@@ -3,7 +3,7 @@
* diag_command.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Exec+ v1.02-000 - Copyright 2001-2003, All rights reserved
@@ -61,7 +61,6 @@ if ($_POST['submit'] == "DOWNLOAD" && file_exists($_POST['dlPath'])) {
}
if ($_POST) {
- conf_mount_rw();
}
// Function: is Blank
@@ -324,5 +323,4 @@ if ($_POST['submit'] == "EXEC" && !isBlank($_POST['txtCommand'])):?>
include("foot.inc");
if ($_POST) {
- conf_mount_ro();
}
diff --git a/src/usr/local/www/diag_confbak.php b/src/usr/local/www/diag_confbak.php
index a65aedc..390f295 100644
--- a/src/usr/local/www/diag_confbak.php
+++ b/src/usr/local/www/diag_confbak.php
@@ -3,7 +3,7 @@
* diag_confbak.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -44,7 +44,6 @@ if (isset($_POST['backupcount'])) {
return;
}
- conf_mount_rw();
$confvers = unserialize(file_get_contents($g['cf_conf_path'] . '/backup/backup.cache'));
if ($_GET['newver'] != "") {
@@ -58,7 +57,6 @@ if (isset($_POST['backupcount'])) {
unlink_if_exists($g['conf_path'] . '/backup/config-' . $_GET['rmver'] . '.xml');
$savemsg = sprintf(gettext('Deleted backup with timestamp %1$s and description "%2$s".'), date(gettext("n/j/y H:i:s"), $_GET['rmver']), htmlspecialchars($confvers[$_GET['rmver']]['description']));
}
- conf_mount_ro();
}
if ($_GET['getcfg'] != "") {
diff --git a/src/usr/local/www/diag_defaults.php b/src/usr/local/www/diag_defaults.php
index 97eb00e..8c1ee6f 100644
--- a/src/usr/local/www/diag_defaults.php
+++ b/src/usr/local/www/diag_defaults.php
@@ -3,7 +3,7 @@
* diag_defaults.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/diag_dns.php b/src/usr/local/www/diag_dns.php
index 787f27a..bb44e73 100644
--- a/src/usr/local/www/diag_dns.php
+++ b/src/usr/local/www/diag_dns.php
@@ -3,7 +3,7 @@
* diag_dns.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -62,7 +62,7 @@ function resolve_host_addresses($host) {
}
}
error_reporting($errreporting);// restore original php warning/error settings.
-
+
foreach ($dnsresult as $item) {
$newitem = array();
$newitem['type'] = $item['type'];
@@ -79,7 +79,6 @@ function resolve_host_addresses($host) {
$newitem['data'] = $item['ipv6'];
$resolved[] = $newitem;
break;
-
}
}
return $resolved;
@@ -152,9 +151,8 @@ if ($_POST) {
}
$type = "unknown";
- $resolved = "";
+ $resolved = array();
$ipaddr = "";
- $hostname = "";
if (!$input_errors) {
if (is_ipaddr($host)) {
$type = "ip";
@@ -168,24 +166,15 @@ if ($_POST) {
}
} elseif (is_hostname($host)) {
$type = "hostname";
- $resolved = gethostbyname($host);
- if ($resolved) {
- $resolved = resolve_host_addresses($host);
- }
- $hostname = $host;
- if ($host != $resolved) {
- $ipaddr = $resolved[0];
- }
- }
-
- if ($host == $resolved) {
- $resolved = gettext("No record found");
+ $ipaddr = gethostbyname($host);
+ $resolved = resolve_host_addresses($host);
}
}
}
-if (($_POST['host']) && ($_POST['dialog_output'])) {
- display_host_results ($host, $resolved, $dns_speeds);
+if ($_POST['host'] && $_POST['dialog_output']) {
+ $host = (isset($resolvedptr) ? $resolvedptr : $host);
+ display_host_results ($ipaddr, $host, $dns_speeds);
exit;
}
@@ -267,7 +256,7 @@ if (!$input_errors && $type) {
<div class="panel panel-default">
<div class="panel-heading"><h2 class="panel-title"><?=gettext('Results')?></h2></div>
<div class="panel-body">
-
+
<table class="table">
<thead>
<tr>
diff --git a/src/usr/local/www/diag_dump_states.php b/src/usr/local/www/diag_dump_states.php
index b9b86d2..342d8f5 100644
--- a/src/usr/local/www/diag_dump_states.php
+++ b/src/usr/local/www/diag_dump_states.php
@@ -3,7 +3,7 @@
* diag_dump_states.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -216,11 +216,6 @@ print $form;
$states = count($res);
}
- /* XXX - limit to 10.000 states. */
- if ($states > 10000) {
- $states = 10000;
- }
-
for ($i = 0; $i < $states; $i++) {
$info = $res[$i]['src'];
$srcip = get_ip($res[$i]['src']);
diff --git a/src/usr/local/www/diag_dump_states_sources.php b/src/usr/local/www/diag_dump_states_sources.php
index f787143..c245502 100644
--- a/src/usr/local/www/diag_dump_states_sources.php
+++ b/src/usr/local/www/diag_dump_states_sources.php
@@ -3,7 +3,7 @@
* diag_dump_states_source.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
diff --git a/src/usr/local/www/diag_edit.php b/src/usr/local/www/diag_edit.php
index e99aca8..10964ea 100644
--- a/src/usr/local/www/diag_edit.php
+++ b/src/usr/local/www/diag_edit.php
@@ -3,7 +3,7 @@
* diag_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -65,10 +65,8 @@ if ($_POST['action']) {
print_info_box(gettext("No file name specified."), 'danger');
print('|');
} else {
- conf_mount_rw();
$_POST['data'] = str_replace("\r", "", base64_decode($_POST['data']));
$ret = file_put_contents($_POST['file'], $_POST['data']);
- conf_mount_ro();
if ($_POST['file'] == "/conf/config.xml" || $_POST['file'] == "/cf/conf/config.xml") {
if (file_exists("/tmp/config.cache")) {
unlink("/tmp/config.cache");
diff --git a/src/usr/local/www/diag_gmirror.php b/src/usr/local/www/diag_gmirror.php
index 1f34185..869fb02 100644
--- a/src/usr/local/www/diag_gmirror.php
+++ b/src/usr/local/www/diag_gmirror.php
@@ -3,7 +3,7 @@
* diag_gmirror.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_halt.php b/src/usr/local/www/diag_halt.php
index d1495c9..38446d8 100644
--- a/src/usr/local/www/diag_halt.php
+++ b/src/usr/local/www/diag_halt.php
@@ -3,7 +3,7 @@
* diag_halt.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/diag_limiter_info.php b/src/usr/local/www/diag_limiter_info.php
index 4b86bba..fa2ba38 100644
--- a/src/usr/local/www/diag_limiter_info.php
+++ b/src/usr/local/www/diag_limiter_info.php
@@ -3,7 +3,7 @@
* diag_limiter_info.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_nanobsd.php b/src/usr/local/www/diag_nanobsd.php
deleted file mode 100644
index 3839802..0000000
--- a/src/usr/local/www/diag_nanobsd.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-/*
- * diag_nanobsd.php
- *
- * part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-##|+PRIV
-##|*IDENT=page-diagnostics-nanobsd
-##|*NAME=Diagnostics: NanoBSD
-##|*DESCR=Allow access to the 'Diagnostics: NanoBSD' page.
-##|*MATCH=diag_nanobsd.php*
-##|-PRIV
-
-ini_set('zlib.output_compression', 0);
-ini_set('implicit_flush', 1);
-ini_set('max_input_time', '9999');
-
-require_once("guiconfig.inc");
-require_once("config.inc");
-
-// Setting DEBUG to true causes the dangerous stuff on this page to be simulated rather than executed.
-// MUST be set to false for production of course
-define('DEBUG', false);
-
-$pgtitle = array(gettext("Diagnostics"), gettext("NanoBSD"));
-include("head.inc");
-
-// Survey slice info
-global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
-global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
-global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
-nanobsd_detect_slice_info();
-
-$NANOBSD_SIZE = nanobsd_get_size();
-$class = 'alert-warning';
-
-if ($_POST['bootslice']) {
- if (!DEBUG) {
- nanobsd_switch_boot_slice();
- } else {
- sleep(4);
- }
-
- $savemsg = sprintf(gettext("The boot slice has been set to %s."), nanobsd_get_active_slice());
- $class = 'alert-success';
- // Survey slice info
- nanobsd_detect_slice_info();
-}
-
-if ($_POST['destslice'] && $_POST['duplicateslice']) {
- $statusmsg = gettext("Duplicating slice. Please wait, this will take a moment...");
-
- if (!DEBUG && nanobsd_clone_slice($_POST['destslice'])) {
- $savemsg = gettext("The slice has been duplicated.") . "<p/>" . gettext("To boot from this newly duplicated slice set it using the bootup information area.");
- $class = 'alert-success';
- } else {
- $savemsg = gettext("There was an error while duplicating the slice. Operation aborted.");
- $class = 'alert-danger';
- }
- // Re-Survey slice info
- nanobsd_detect_slice_info();
-}
-
-if ($_POST['changero']) {
- if (!DEBUG && is_writable("/")) {
- conf_mount_ro();
- } else {
- conf_mount_rw();
- }
-}
-
-if ($_POST['setrw']) {
- if (!DEBUG) {
- conf_mount_rw();
- if (isset($_POST['nanobsd_force_rw'])) {
- $savemsg = gettext("Permanent read/write has been set successfully.");
- $class = 'alert-success';
- $config['system']['nanobsd_force_rw'] = true;
- } else {
- $savemsg = gettext('Permanent read/write has been cleared successfully.');
- $class = 'alert-success';
- unset($config['system']['nanobsd_force_rw']);
- }
-
- write_config(gettext("Changed Permanent Read/Write Setting"));
- conf_mount_ro();
- } else {
- $savemsg = gettext('Saved read/write permanently.');
- $class = 'alert-success';
- }
-}
-
-print_info_box(gettext("The options on this page are intended for use by advanced users only."));
-
-if ($savemsg) {
- print_info_box($savemsg, $class);
-}
-
-$form = new Form(false);
-
-$section = new Form_Section('NanoBSD Options');
-
-$section->addInput(new Form_StaticText(
- 'Image Size',
- $NANOBSD_SIZE
-));
-
-$slicebtn = new Form_Button(
- 'bootslice',
- 'Switch Slice',
- null,
- 'fa-retweet'
-);
-$slicebtn->addClass('btn-warning btn-sm');
-
-$section->addInput(new Form_StaticText(
- 'Bootup slice',
- $ACTIVE_SLICE . ' ' . $slicebtn
-));
-
-$refcount = refcount_read(1000);
-$mounted_rw = is_writable("/");
-
-if ($mounted_rw) {
- /* refcount_read returns -1 when shared memory section does not exist */
- /* refcount can be zero here when the user has set nanobsd_force_rw */
- /* refcount 1 is normal, so only display the count for abnormal values */
- /*
- if ($refcount == 1 || $refcount == 0 || $refcount == -1) {
- $refdisplay = "";
- } else {
- $refdisplay = " ". sprintf(gettext("(Reference count %s)"), $refcount);
- }
- */
- $lbl = gettext("Read/Write") . $refdisplay;
- $btnlbl = gettext("Switch to Read-Only");
-} else {
- $lbl = gettext("Read-Only");
- $btnlbl = gettext("Switch to Read/Write");
-}
-
-// Only show the changero button if force read/write is off, or the file system is not in writable state, or there is an unusual refcount.
-// If force read/write is on, and the file system is in writable state, and refcount is normal then the user has no reason to mess about.
-/*
-if (!isset($config['system']['nanobsd_force_rw']) || !$mounted_rw || ($refcount > 1)) {
- $robtn = new Form_Button(
- 'changero',
- $btnlbl,
- null,
- ($mounted_rw) ? 'fa-lock' : 'fa-unlock'
- );
- $robtn->addClass(($mounted_rw) ? 'btn-success' : 'btn-warning' . ' btn-sm');
- $lbl .= ' ' . $robtn;
-}
-*/
-$section->addInput(new Form_StaticText(
- 'Read/Write status',
- $lbl
-))->setHelp('NanoBSD is now always read-write to avoid read-write to read-only mount problems.');
-//))->setHelp('This setting is only temporary, and can be switched dynamically in the background.');
-
-/*
-$section->addInput(new Form_Checkbox(
- 'nanobsd_force_rw',
- 'Permanent Read/Write',
- 'Keep media mounted read/write at all times. ',
- isset($config['system']['nanobsd_force_rw'])
-));
-
-$permbtn = new Form_Button(
- 'setrw',
- 'Save',
- null,
- 'fa-save'
-);
-$permbtn->addClass('btn-primary btn-sm');
-
-$section->addInput(new Form_StaticText(
- null,
- $permbtn
-));
-*/
-
-$section->addInput(new Form_Input(
- 'destslice',
- null,
- 'hidden',
- $COMPLETE_PATH
-));
-
-$dupbtn = new Form_Button(
- 'duplicateslice',
- 'Duplicate ' . $COMPLETE_BOOT_PATH . ' -> ' . $TOFLASH,
- null,
- 'fa-clone'
-);
-$dupbtn->addClass('btn-success btn-sm');
-
-$section->addInput(new Form_StaticText(
- 'Duplicate boot slice',
- $dupbtn
-))->setHelp('This will duplicate the bootup slice to the alternate slice. Use this to duplicate the known good working boot partition to the alternate.');
-
-$section->addInput(new Form_StaticText(
- 'RRD/DHCP Backup',
- 'These options have been relocated to the ' . '<a href="system_advanced_misc.php">' . 'System > Advanced, Miscellaneous</a> tab.'
-));
-
-if (file_exists("/conf/upgrade_log.txt")) {
- $viewbtn = new Form_Button(
- 'viewupgradelog',
- 'View log',
- null,
- 'fa-file-text-o'
- );
- $viewbtn->addClass('btn-primary btn-sm');
-
- $section->addInput(new Form_StaticText(
- 'View previous upgrade log',
- $viewbtn
- ));
-}
-$form->add($section);
-print($form);
-
-if (file_exists("/conf/upgrade_log.txt") && $_POST['viewupgradelog']) {
-?>
- <div class="panel panel-default">
- <div class="panel-heading"><h2 class="panel-title"><?=gettext("Previous Upgrade Log")?></h2></div>
- <!-- No white space between the <pre> and the first output or it will appear on the page! -->
- <pre>
- <?=str_ireplace("pfsense", $g['product_name'], file_get_contents("/conf/upgrade_log.txt"))?>
- </pre>
- </div>
-<?php
-}
-require_once("foot.inc");
diff --git a/src/usr/local/www/diag_ndp.php b/src/usr/local/www/diag_ndp.php
index 70a377e..a27d4ba 100644
--- a/src/usr/local/www/diag_ndp.php
+++ b/src/usr/local/www/diag_ndp.php
@@ -3,7 +3,7 @@
* diag_ndp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2011 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/diag_packet_capture.php b/src/usr/local/www/diag_packet_capture.php
index 43dc9c1..5b15ada 100644
--- a/src/usr/local/www/diag_packet_capture.php
+++ b/src/usr/local/www/diag_packet_capture.php
@@ -3,7 +3,7 @@
* diag_packet_capture.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -188,7 +188,6 @@ if ($_POST) {
if (!count($input_errors)) {
$do_tcpdump = true;
- conf_mount_rw();
if ($_POST['promiscuous']) {
//if promiscuous mode is checked
@@ -491,7 +490,6 @@ if ($do_tcpdump) :
system("/usr/sbin/tcpdump {$disabledns} {$detail_args} {$iscarp} -r {$fp}{$fn}");
print('</textarea>');
- conf_mount_ro();
?>
</div>
</div>
diff --git a/src/usr/local/www/diag_pf_info.php b/src/usr/local/www/diag_pf_info.php
index 78eefe6..0f73a00 100644
--- a/src/usr/local/www/diag_pf_info.php
+++ b/src/usr/local/www/diag_pf_info.php
@@ -3,7 +3,7 @@
* diag_pf_info.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_pftop.php b/src/usr/local/www/diag_pftop.php
index 5b42304..95d5d1d 100644
--- a/src/usr/local/www/diag_pftop.php
+++ b/src/usr/local/www/diag_pftop.php
@@ -3,7 +3,7 @@
* diag_pftop.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -53,7 +53,7 @@ if ($_REQUEST['getactivity']) {
$numstate = "100";
}
- $text = `pftop -b {$sorttype} -v {$viewtype} {$numstate}`;
+ $text = `pftop -b {$sorttype} -w 135 -v {$viewtype} {$numstate}`;
echo trim($text);
exit;
}
diff --git a/src/usr/local/www/diag_ping.php b/src/usr/local/www/diag_ping.php
index 7ad0804..492e98a 100644
--- a/src/usr/local/www/diag_ping.php
+++ b/src/usr/local/www/diag_ping.php
@@ -3,7 +3,7 @@
* diag_ping.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2005 Bob Zoller (bob@kludgebox.com)
* All rights reserved.
*
diff --git a/src/usr/local/www/diag_reboot.php b/src/usr/local/www/diag_reboot.php
index 595d44e..8b6229e 100644
--- a/src/usr/local/www/diag_reboot.php
+++ b/src/usr/local/www/diag_reboot.php
@@ -3,7 +3,7 @@
* diag_reboot.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/diag_resetstate.php b/src/usr/local/www/diag_resetstate.php
index 5742689..b5d7a2a 100644
--- a/src/usr/local/www/diag_resetstate.php
+++ b/src/usr/local/www/diag_resetstate.php
@@ -3,7 +3,7 @@
* diag_resetstate.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/diag_routes.php b/src/usr/local/www/diag_routes.php
index 15e83ff..13bd65d 100644
--- a/src/usr/local/www/diag_routes.php
+++ b/src/usr/local/www/diag_routes.php
@@ -3,7 +3,7 @@
* diag_routes.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Fernando Lamos
* All rights reserved.
*
diff --git a/src/usr/local/www/diag_smart.php b/src/usr/local/www/diag_smart.php
index f77e161..5a34030 100644
--- a/src/usr/local/www/diag_smart.php
+++ b/src/usr/local/www/diag_smart.php
@@ -3,7 +3,7 @@
* diag_smart.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Eric Friesen
* All rights reserved.
*
@@ -41,8 +41,6 @@ if ($action != 'config') {
$pgtitle[] = gettext('Config');
}
$smartctl = "/usr/local/sbin/smartctl";
-$smartd = "/usr/local/sbin/smartd";
-$start_script = "/usr/local/etc/rc.d/smartd.sh";
$valid_test_types = array("offline", "short", "long", "conveyance");
$valid_info_types = array("i", "H", "c", "A", "a");
@@ -64,30 +62,6 @@ function add_colors($string) {
return preg_replace($patterns, $replacements, $string);
}
-// Edits smartd.conf file, adds or removes email for failed disk reporting
-function update_email($email) {
- /* Bail if an e-mail address is invalid */
- if (!empty($email) && (filter_var($email, FILTER_VALIDATE_EMAIL) === false)) {
- return;
- }
-
- if (!file_exists("/usr/local/etc/smartd.conf") && file_exists("/usr/local/etc/smartd.conf.sample")) {
- copy("/usr/local/etc/smartd.conf.sample", "/usr/local/etc/smartd.conf");
- }
- // Did they pass an email?
- if (!empty($email)) {
- // Put it in the smartd.conf file
- shell_exec("/usr/bin/sed -i .old " . escapeshellarg("s/^DEVICESCAN.*/DEVICESCAN -H -m {$email}/") . " /usr/local/etc/smartd.conf");
- } else {
- // Remove email flags in smartd.conf
- shell_exec("/usr/bin/sed -i .old 's/^DEVICESCAN.*/DEVICESCAN/' /usr/local/etc/smartd.conf");
- }
-}
-
-function smartmonctl($action) {
- global $start_script;
- shell_exec($start_script . escapeshellarg($action));
-}
$targetdev = basename($_POST['device']);
if (!file_exists('/dev/' . $targetdev)) {
@@ -95,14 +69,9 @@ if (!file_exists('/dev/' . $targetdev)) {
return;
}
-$tab_array = array();
-$tab_array[0] = array(htmlspecialchars(gettext("Information & Tests")), ($action != 'config'), $_SERVER['PHP_SELF'] . "?action=default");
-$tab_array[1] = array(gettext("Config"), ($action == 'config'), $_SERVER['PHP_SELF'] . "?action=config");
-display_top_tabs($tab_array);
-
$specplatform = system_identify_specific_platform();
-if ($specplatform['name'] == "Hyper-V") {
- echo gettext("S.M.A.R.T. is not supported in Hyper-V guests.");
+if (($specplatform['name'] == "Hyper-V") || ($specplatform['name'] == "uFW")) {
+ echo sprintf(gettext("S.M.A.R.T. is not supported on this system (%s)."), $specplatform['descr']);
include("foot.inc");
exit;
}
@@ -217,75 +186,6 @@ switch ($action) {
break;
}
- // Config changes, users email in xml config and write changes to smartd.conf
- case 'config':
- {
- if (isset($_POST['test'])) {
-
-// FIXME shell_exec($smartd . " -M test -m " . $config['system']['smartmonemail']);
- $savemsg = sprintf(gettext("Email sent to %s"), $config['system']['smartmonemail']);
- smartmonctl("stop");
- smartmonctl("start");
- $style = 'warning';
- } else if (isset($_POST['save'])) {
- if (!empty($_POST['smartmonemail']) && (filter_var($_POST['smartmonemail'], FILTER_VALIDATE_EMAIL) === false)) {
- $savemsg = "The supplied e-mail address is invalid.";
- $style = 'danger';
- } else {
- $config['system']['smartmonemail'] = $_POST['smartmonemail'];
- write_config();
- $retval = 0;
- config_lock();
- if (stristr($retval, "error") != true) {
- $savemsg = get_std_save_message($retval);
- $style = 'success';
- } else {
- $savemsg = $retval;
- $style='danger';
- }
- config_unlock();
- // Write the changes to the smartd.conf file
- update_email($_POST['smartmonemail']);
- // Send sig HUP to smartd, rereads the config file
- shell_exec("/usr/bin/killall -HUP smartd");
- }
- }
-
- // Was the config changed? if so, print the message
- if ($savemsg) {
- print_info_box($savemsg, $style);
- }
-
- // Get users email from the xml file
- $pconfig['smartmonemail'] = $config['system']['smartmonemail'];
-
- $form = new Form();
-
- $section = new Form_Section('Configuration');
-
- $section->addInput(new Form_Input(
- 'smartmonemail',
- 'Email Address',
- 'text',
- $pconfig['smartmonemail']
- ));
-
- $form->add($section);
-
- if (!empty($pconfig['smartmonemail'])) {
- $form->addGlobal(new Form_Button(
- 'test',
- 'Send test email',
- null,
- 'fa-send'
- ))->addClass('btn-info');
- }
-
- print($form);
-
- break;
- }
-
// Default page, prints the forms to view info, test, etc...
default: {
// Information
diff --git a/src/usr/local/www/diag_sockets.php b/src/usr/local/www/diag_sockets.php
index b962674..dcfc4c6 100644
--- a/src/usr/local/www/diag_sockets.php
+++ b/src/usr/local/www/diag_sockets.php
@@ -3,7 +3,7 @@
* diag_sockets.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_states_summary.php b/src/usr/local/www/diag_states_summary.php
index c870da9..72f4978 100644
--- a/src/usr/local/www/diag_states_summary.php
+++ b/src/usr/local/www/diag_states_summary.php
@@ -3,7 +3,7 @@
* diag_states_summary.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
diff --git a/src/usr/local/www/diag_system_activity.php b/src/usr/local/www/diag_system_activity.php
index 6725c33..96f6b2e 100644
--- a/src/usr/local/www/diag_system_activity.php
+++ b/src/usr/local/www/diag_system_activity.php
@@ -3,7 +3,7 @@
* diag_system_activity.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_tables.php b/src/usr/local/www/diag_tables.php
index 13f6372..9fe3a8b 100644
--- a/src/usr/local/www/diag_tables.php
+++ b/src/usr/local/www/diag_tables.php
@@ -3,7 +3,7 @@
* diag_tables.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/diag_testport.php b/src/usr/local/www/diag_testport.php
index 15d7574..68e3a60 100644
--- a/src/usr/local/www/diag_testport.php
+++ b/src/usr/local/www/diag_testport.php
@@ -3,7 +3,7 @@
* diag_testport.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/diag_traceroute.php b/src/usr/local/www/diag_traceroute.php
index 45b646d..efb0d85 100644
--- a/src/usr/local/www/diag_traceroute.php
+++ b/src/usr/local/www/diag_traceroute.php
@@ -3,7 +3,7 @@
* diag_traceroute.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Paul Taylor (paultaylor@winndixie.com)
* All rights reserved.
*
diff --git a/src/usr/local/www/easyrule.php b/src/usr/local/www/easyrule.php
index c3842bc..161725e 100644
--- a/src/usr/local/www/easyrule.php
+++ b/src/usr/local/www/easyrule.php
@@ -3,7 +3,7 @@
* easyrule.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Originally Sponsored By Anathematic @ pfSense Forums
* All rights reserved.
*
diff --git a/src/usr/local/www/firewall_aliases.php b/src/usr/local/www/firewall_aliases.php
index 72e9849..55069d8 100644
--- a/src/usr/local/www/firewall_aliases.php
+++ b/src/usr/local/www/firewall_aliases.php
@@ -3,7 +3,7 @@
* firewall_aliases.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/firewall_aliases_edit.php b/src/usr/local/www/firewall_aliases_edit.php
index 43a23ac..ad34a39 100644
--- a/src/usr/local/www/firewall_aliases_edit.php
+++ b/src/usr/local/www/firewall_aliases_edit.php
@@ -3,7 +3,7 @@
* firewall_aliases_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -132,6 +132,7 @@ if (isset($id) && $a_aliases[$id]) {
}
if ($_POST) {
+
unset($input_errors);
$vertical_bar_err_text = gettext("Vertical bars (|) at start or end, or double in the middle of descriptions not allowed. Descriptions have been cleaned. Check and save again.");
@@ -418,7 +419,7 @@ if ($_POST) {
$tmpaddress .= "/" . $input_address_subnet[$idx];
}
}
- $address[] = $tmpaddress;
+ $address[] = addrtolower($tmpaddress);
}
unset($desc_fmt_err_found);
if ($wrongaliases <> "") {
diff --git a/src/usr/local/www/firewall_aliases_import.php b/src/usr/local/www/firewall_aliases_import.php
index 9b6f71f..e70c453 100644
--- a/src/usr/local/www/firewall_aliases_import.php
+++ b/src/usr/local/www/firewall_aliases_import.php
@@ -3,7 +3,7 @@
* firewall_aliases_import.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/firewall_nat.php b/src/usr/local/www/firewall_nat.php
index b0c35c3..6621108 100644
--- a/src/usr/local/www/firewall_nat.php
+++ b/src/usr/local/www/firewall_nat.php
@@ -3,7 +3,7 @@
* firewall_nat.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -129,6 +129,7 @@ if (isset($_POST['del_x'])) {
/* delete selected rules */
if (is_array($_POST['rule']) && count($_POST['rule'])) {
$a_separators = &$config['nat']['separator'];
+ $num_deleted = 0;
foreach ($_POST['rule'] as $rulei) {
$target = $rule['target'];
@@ -136,16 +137,17 @@ if (isset($_POST['del_x'])) {
// Check for filter rule associations
if (isset($a_nat[$rulei]['associated-rule-id'])) {
delete_id($a_nat[$rulei]['associated-rule-id'], $config['filter']['rule']);
-
mark_subsystem_dirty('filter');
}
unset($a_nat[$rulei]);
// Update the separators
- $ridx = $rulei;
+ // As rules are deleted, $ridx has to be decremented or separator position will break
+ $ridx = $rulei - $num_deleted;
$mvnrows = -1;
move_separators($a_separators, $ridx, $mvnrows);
+ $num_deleted++;
}
if (write_config()) {
@@ -191,6 +193,14 @@ display_top_tabs($tab_array);
$columns_in_table = 13;
?>
+<!-- Allow table to scroll when dragging outside of the display window -->
+<style>
+.table-responsive {
+ clear: both;
+ overflow-x: visible;
+ margin-bottom: 0px;
+}
+</style>
<form action="firewall_nat.php" method="post" name="iform">
<div class="panel panel-default">
diff --git a/src/usr/local/www/firewall_nat_1to1.php b/src/usr/local/www/firewall_nat_1to1.php
index b3bf479..5ae075b 100644
--- a/src/usr/local/www/firewall_nat_1to1.php
+++ b/src/usr/local/www/firewall_nat_1to1.php
@@ -3,7 +3,7 @@
* firewall_nat_1to1.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/firewall_nat_1to1_edit.php b/src/usr/local/www/firewall_nat_1to1_edit.php
index 7efb07e..4d7ebe9 100644
--- a/src/usr/local/www/firewall_nat_1to1_edit.php
+++ b/src/usr/local/www/firewall_nat_1to1_edit.php
@@ -3,7 +3,7 @@
* firewall_nat_1to1_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -312,21 +312,20 @@ function build_dsttype_list() {
if (is_array($config['virtualip']['vip'])) {
foreach ($config['virtualip']['vip'] as $sn) {
- if (isset($sn['noexpand'])) {
- continue;
- }
-
- if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") {
+ if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") {
+ $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')';
+ if (isset($sn['noexpand'])) {
+ continue;
+ }
$start = ip2long32(gen_subnet($sn['subnet'], $sn['subnet_bits']));
$end = ip2long32(gen_subnet_max($sn['subnet'], $sn['subnet_bits']));
$len = $end - $start;
-
for ($i = 0; $i <= $len; $i++) {
$snip = long2ip32($start+$i);
$list[$snip] = $snip . ' (' . $sn['descr'] . ')';
}
-
+ } else {
$list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')';
}
}
@@ -439,7 +438,7 @@ $group->add(new Form_IpAddress(
'src',
null,
is_specialnet($pconfig['src']) ? '': $pconfig['src']
-))->addMask('srcmask', $pconfig['srcmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9\.\:\_]+');
+))->addMask('srcmask', $pconfig['srcmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9.:_]+');
$group->setHelp('Enter the internal (LAN) subnet for the 1:1 mapping. ' .
'The subnet size specified for the internal subnet will be applied to the external subnet.');
@@ -466,7 +465,7 @@ $group->add(new Form_IpAddress(
'dst',
null,
is_specialnet($pconfig['dst']) ? '': $pconfig['dst']
-))->addMask('dstmask', $pconfig['dstmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9\.\:\_]+');
+))->addMask('dstmask', $pconfig['dstmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9.:_]+');
$group->setHelp('The 1:1 mapping will only be used for connections to or from the specified destination. Hint: this is usually "Any".');
diff --git a/src/usr/local/www/firewall_nat_edit.php b/src/usr/local/www/firewall_nat_edit.php
index a16bbed..0450163 100644
--- a/src/usr/local/www/firewall_nat_edit.php
+++ b/src/usr/local/www/firewall_nat_edit.php
@@ -3,7 +3,7 @@
* firewall_nat_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -577,7 +577,8 @@ function build_dsttype_list() {
if (is_ipaddrv6($sn['subnet'])) {
continue;
}
- if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") {
+ if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") {
+ $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')';
if (isset($sn['noexpand'])) {
continue;
}
@@ -590,8 +591,6 @@ function build_dsttype_list() {
$list[$snip] = $snip . ' (' . $sn['descr'] . ')';
}
-
- $list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')';
} else {
$list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')';
}
diff --git a/src/usr/local/www/firewall_nat_npt.php b/src/usr/local/www/firewall_nat_npt.php
index e54a0f0..b585d99 100644
--- a/src/usr/local/www/firewall_nat_npt.php
+++ b/src/usr/local/www/firewall_nat_npt.php
@@ -3,7 +3,7 @@
* firewall_nat_npt.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2011 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/firewall_nat_npt_edit.php b/src/usr/local/www/firewall_nat_npt_edit.php
index 0fdfb58..0d79e2c 100644
--- a/src/usr/local/www/firewall_nat_npt_edit.php
+++ b/src/usr/local/www/firewall_nat_npt_edit.php
@@ -3,7 +3,7 @@
* firewall_nat_npt_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2011 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/firewall_nat_out.php b/src/usr/local/www/firewall_nat_out.php
index 57cb354..6915780 100644
--- a/src/usr/local/www/firewall_nat_out.php
+++ b/src/usr/local/www/firewall_nat_out.php
@@ -3,7 +3,7 @@
* firewall_nat_out.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -304,10 +304,10 @@ print($form);
$alias = rule_columns_with_alias(
- $natent['source']['address'],
- pprint_port($natent['source']['port']),
+ $natent['source']['network'],
+ pprint_port($natent['sourceport']),
$natent['destination']['address'],
- pprint_port($natent['destination']['port'])
+ pprint_port($natent['dstport'])
);
?>
diff --git a/src/usr/local/www/firewall_nat_out_edit.php b/src/usr/local/www/firewall_nat_out_edit.php
index 0b4bbae..3f47dc2 100644
--- a/src/usr/local/www/firewall_nat_out_edit.php
+++ b/src/usr/local/www/firewall_nat_out_edit.php
@@ -3,7 +3,7 @@
* firewall_nat_out_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -97,6 +97,7 @@ if (isset($id) && $a_out[$id]) {
$pconfig['targetip'] = $a_out[$id]['targetip'];
$pconfig['targetip_subnet'] = $a_out[$id]['targetip_subnet'];
$pconfig['poolopts'] = $a_out[$id]['poolopts'];
+ $pconfig['source_hash_key'] = $a_out[$id]['source_hash_key'];
$pconfig['interface'] = $a_out[$id]['interface'];
if (!$pconfig['interface']) {
@@ -227,6 +228,7 @@ if ($_POST) {
/* Verify Pool Options */
$poolopts = "";
+ $source_hash_key = "";
if ($_POST['poolopts']) {
if (is_subnet($_POST['target']) || ($_POST['target'] == "other-subnet")) {
$poolopts = $_POST['poolopts'];
@@ -237,6 +239,18 @@ if ($_POST) {
$input_errors[] = gettext("Only Round Robin pool options may be chosen when selecting an alias.");
}
}
+ /* If specified, verify valid source-hash key or generate a valid key using md5 */
+ if ($_POST['source_hash_key']) {
+ if (substr($_POST['source_hash_key'],0,2) == "0x") {
+ if (ctype_xdigit(substr($_POST['source_hash_key'],2)) && strlen($_POST['source_hash_key']) == 34) {
+ $source_hash_key = $_POST['source_hash_key'];
+ } else {
+ $input_errors[] = gettext("Incorrect format for source-hash key, \"0x\" must be followed by exactly 32 hexadecimal characters.");
+ }
+ } else {
+ $source_hash_key = "0x".md5($_POST['source_hash_key']);
+ }
+ }
}
/* if user has selected any as source, set it here */
@@ -279,6 +293,7 @@ if ($_POST) {
$natent['targetip_subnet'] = (!isset($_POST['nonat'])) ? $_POST['targetip_subnet'] : "";
$natent['interface'] = $_POST['interface'];
$natent['poolopts'] = $poolopts;
+ $natent['source_hash_key'] = $source_hash_key;
/* static-port */
if (isset($_POST['staticnatport']) && $protocol_uses_ports && !isset($_POST['nonat'])) {
@@ -371,16 +386,14 @@ function build_target_list() {
if (is_array($config['virtualip']['vip'])) {
foreach ($config['virtualip']['vip'] as $sn) {
- if (isset($sn['noexpand'])) {
- continue;
- }
-
- if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") {
+ if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") {
+ $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')';
+ if (isset($sn['noexpand'])) {
+ continue;
+ }
$start = ip2long32(gen_subnet($sn['subnet'], $sn['subnet_bits']));
$end = ip2long32(gen_subnet_max($sn['subnet'], $sn['subnet_bits']));
$len = $end - $start;
- $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')';
-
for ($i = 0; $i <= $len; $i++) {
$snip = long2ip32($start+$i);
@@ -460,7 +473,7 @@ $section->addInput(new Form_Select(
'Interface',
$pconfig['interface'],
$interfaces
-))->setHelp('Choose which interface this rule applies to. In most cases "WAN" is specified.');
+))->setHelp('The interface on which traffic is matched as it exits the firewall. In most cases this is "WAN" or another externally-connected interface.');
$protocols = "any TCP UDP TCP/UDP ICMP ESP AH GRE IPV6 IGMP carp pfsync";
@@ -484,14 +497,14 @@ $group->add(new Form_IpAddress(
'source',
null,
$pconfig['source']
-))->addMask('source_subnet', $pconfig['source_subnet'])->setHelp('Source network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9\_\.\:]+');
+))->addMask('source_subnet', $pconfig['source_subnet'])->setHelp('Source network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9_.:]+');
$group->add(new Form_Input(
'sourceport',
null,
'text',
$pconfig['sourceport']
-))->setHelp('Port')->setWidth('2');
+))->setHelp('Port or Range')->setWidth('2');
$section->add($group);
@@ -508,14 +521,14 @@ $group->add(new Form_IpAddress(
'destination',
null,
$pconfig['destination'] == "any" ? "":$pconfig['destination']
-))->addMask('destination_subnet', $pconfig['destination_subnet'])->setHelp('Destination network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9\_\.\:]+');
+))->addMask('destination_subnet', $pconfig['destination_subnet'])->setHelp('Destination network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9_.:]+');
$group->add(new Form_Input(
'dstport',
null,
'text',
$pconfig['dstport']
-))->setHelp('Port')->setWidth('2');
+))->setHelp('Port or Range')->setWidth('2');
$section->add($group);
@@ -536,18 +549,17 @@ $section->addInput(new Form_Select(
'Address',
$pconfig['target'],
build_target_list()
-));
+))->setHelp( 'Connections matching this rule will be mapped to the specified <b>Address</b>.' . '<br />' .
+ 'The <b>Address</b> can be an Interface, a Host-type Alias, or a ' .
+ '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' . ' address.');
$section->addInput(new Form_IpAddress(
'targetip',
'Other subnet',
$pconfig['targetip']
-))->addMask('targetip_subnet', $pconfig['targetip_subnet'])->addClass('othersubnet')->setHelp(
- 'Packets matching this rule will be mapped to the IP address given here.' . '<br />' .
- 'To apply this rule to a different IP address than the IP address of the interface chosen above, ' .
- 'select it here (' .
- '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' .
- 'addresses need to be defined on the interface first)');
+))->addMask('targetip_subnet', $pconfig['targetip_subnet'])->setHelp(
+ 'This subnet must be routed to the firewall or each address in the subnet must be defined in one or more ' .
+ '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' . ' addresses.');
$section->addInput(new Form_Select(
'poolopts',
@@ -571,7 +583,14 @@ $section->addInput(new Form_Select(
'<li>' . 'Sticky Address: The Sticky Address option can be used with the Random and Round Robin pool types to ensure that a particular source address is always mapped to the same translation address.' . '</li>' .
'</ul><span class="help-block">');
-$group = new Form_Group('Port');
+$section->addInput(new Form_Input(
+ 'source_hash_key',
+ 'Source Hash Key',
+ 'text',
+ $pconfig['source_hash_key']
+))->setHelp('The key that is fed to the hashing algorithm in hex format, preceeded by "0x", or any string. A non-hex string is hashed using md5 to a hexadecimal key. Defaults to a randomly generated value.')->setWidth(10);
+
+$group = new Form_Group('Port or Range');
$group->addClass('natportgrp');
$group->add(new Form_Input(
@@ -579,12 +598,15 @@ $group->add(new Form_Input(
null,
'text',
$pconfig['natport']
-))->setHelp('Enter the source port or range for the outbound NAT mapping.');
+))->setHelp('Enter the external source <b>Port or Range</b> used for remapping '.
+ 'the original source port on connections matching the rule. <br/><br/>'.
+ 'Port ranges are a low port and high port number separated by ":".<br/>'.
+ 'Leave blank when <b>Static Port</b> is checked.');
$group->add(new Form_Checkbox(
'staticnatport',
null,
- 'Static port',
+ 'Static Port',
$pconfig['staticnatport']
));
@@ -714,17 +736,25 @@ events.push(function() {
function poolopts_change() {
if ($('#target option:selected').text().trim().substring(0,4) == "Host") {
hideInput('poolopts', false);
- hideGroupClass('othersubnet', true);
+ hideInput('source_hash_key', true);
+ hideIpAddress('targetip', true);
} else if ($('#target option:selected').text().trim().substring(0,6) == "Subnet") {
hideInput('poolopts', false);
- hideGroupClass('othersubnet', true);
+ hideInput('source_hash_key', true);
+ hideIpAddress('targetip', true);
} else if ($('#target option:selected').text().trim().substring(0,5) == "Other") {
hideInput('poolopts', false);
- hideGroupClass('othersubnet', false);
+ hideIpAddress('targetip', false);
+ if ($('#poolopts option:selected').text().trim().substring(0,6) == "Source") {
+ hideInput('source_hash_key', false);
+ }else {
+ hideInput('source_hash_key', true);
+ }
} else {
$('#poolopts').prop('selectedIndex',0);
hideInput('poolopts', true);
- hideGroupClass('othersubnet', true);
+ hideInput('source_hash_key', true);
+ hideIpAddress('targetip', true);
$('#targetip').val('');
$('#targetip_subnet').val('0');
}
@@ -755,6 +785,10 @@ events.push(function() {
poolopts_change();
});
+ $('#poolopts').on('change', function() {
+ poolopts_change();
+ });
+
// Set initial states
staticportchange();
sourcesel_change();
diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php
index 57f0c2c..56899cc 100644
--- a/src/usr/local/www/firewall_rules.php
+++ b/src/usr/local/www/firewall_rules.php
@@ -3,7 +3,7 @@
* firewall_rules.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -163,14 +163,10 @@ if ($config['openvpn']["openvpn-server"] || $config['openvpn']["openvpn-client"]
}
if (!$if || !isset($iflist[$if])) {
- if ("any" == $if) {
+ if ($if != "any" && $if != "FloatingRules" && isset($iflist['wan'])) {
+ $if = "wan";
+ } else {
$if = "FloatingRules";
- } else if ("FloatingRules" != $if) {
- if (isset($iflist['wan'])) {
- $if = "wan";
- } else {
- $if = "FloatingRules";
- }
}
}
@@ -221,6 +217,7 @@ if (isset($_POST['del_x'])) {
if (is_array($_POST['rule']) && count($_POST['rule'])) {
$a_separators = &$config['filter']['separator'][strtolower($if)];
+ $num_deleted = 0;
foreach ($_POST['rule'] as $rulei) {
delete_nat_association($a_filter[$rulei]['associated-rule-id']);
@@ -228,9 +225,11 @@ if (isset($_POST['del_x'])) {
$deleted = true;
// Update the separators
- $ridx = ifridx($if, $rulei); // get rule index within interface
+ // As rules are deleted, $ridx has to be decremented or separator position will break
+ $ridx = ifridx($if, $rulei) - $num_deleted; // get rule index within interface
$mvnrows = -1;
move_separators($a_separators, $ridx, $mvnrows);
+ $num_deleted++;
}
if ($deleted) {
@@ -363,11 +362,20 @@ $rulescnt = pfSense_get_pf_rules();
$columns_in_table = 13;
?>
+<!-- Allow table to scroll when dragging outside of the display window -->
+<style>
+.table-responsive {
+ clear: both;
+ overflow-x: visible;
+ margin-bottom: 0px;
+}
+</style>
+
<form method="post">
<div class="panel panel-default">
<div class="panel-heading"><h2 class="panel-title"><?=gettext("Rules (Drag to Change Order)")?></h2></div>
<div id="mainarea" class="table-responsive panel-body">
- <table id="ruletable" class="table table-hover table-striped table-condensed">
+ <table id="ruletable" class="table table-hover table-striped table-condensed" style="overflow-x: 'visible'">
<thead>
<tr>
<th><!-- checkbox --></th>
@@ -947,6 +955,9 @@ events.push(function() {
$('table tbody.user-entries').sortable({
cursor: 'grabbing',
+ scroll: true,
+ overflow: 'scroll',
+ scrollSensitivity: 100,
update: function(event, ui) {
$('#order-store').removeAttr('disabled');
reindex_rules(ui.item.parent('tbody'));
diff --git a/src/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php
index 84562df..1a7d40a 100644
--- a/src/usr/local/www/firewall_rules_edit.php
+++ b/src/usr/local/www/firewall_rules_edit.php
@@ -3,7 +3,7 @@
* firewall_rules_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -42,8 +42,8 @@ if (isset($_POST['referer'])) {
}
function is_posnumericint($arg) {
- // Note that to be safe we do not allow any leading zero - "01", "007"
- return (is_numericint($arg) && $arg[0] != '0' && $arg > 0);
+ // Integer > 0? (Note that to be safe we do not allow any leading zero - "01", "007")
+ return (is_numericint($arg) && $arg[0] != '0');
}
function is_aoadv_used($rule_config) {
@@ -305,33 +305,28 @@ if ($_POST) {
if (($_POST['ipprotocol'] <> "") && ($_POST['gateway'] <> "")) {
if (is_array($config['gateways']['gateway_group'])) {
foreach ($config['gateways']['gateway_group'] as $gw_group) {
- if ($gw_group['name'] == $_POST['gateway']) {
- $family = $a_gatewaygroups[$_POST['gateway']]['ipprotocol'];
- if ($_POST['ipprotocol'] == $family) {
- continue;
- }
- if (($_POST['ipprotocol'] == "inet46") && ($_POST['ipprotocol'] != $family)) {
- $input_errors[] = gettext("A gateway can not be assigned to a rule that applies to IPv4 and IPv6");
- }
- if (($_POST['ipprotocol'] == "inet6") && ($_POST['ipprotocol'] != $family)) {
- $input_errors[] = gettext("An IPv4 gateway group can not be assigned on an IPv6 Address Family rule");
- }
- if (($_POST['ipprotocol'] == "inet") && ($_POST['ipprotocol'] != $family)) {
- $input_errors[] = gettext("An IPv6 gateway group can not be assigned on an IPv4 Address Family rule");
+ if ($gw_group['name'] == $_POST['gateway'] && $_POST['ipprotocol'] != $a_gatewaygroups[$_POST['gateway']]['ipprotocol']) {
+ if ($_POST['ipprotocol'] == "inet46") {
+ $input_errors[] = gettext("Gateways can not be assigned in a rule that applies to both IPv4 and IPv6.");
+ } elseif ($_POST['ipprotocol'] == "inet6") {
+ $input_errors[] = gettext("An IPv4 gateway group can not be assigned in IPv6 rules.");
+ } elseif ($_POST['ipprotocol'] == "inet") {
+ $input_errors[] = gettext("An IPv6 gateway group can not be assigned in IPv4 rules.");
}
}
}
}
- }
- if (($_POST['ipprotocol'] <> "") && ($_POST['gateway'] <> "") && (is_ipaddr(lookup_gateway_ip_by_name($_POST['gateway'])))) {
- if (($_POST['ipprotocol'] == "inet46") && ($_POST['gateway'] <> "")) {
- $input_errors[] = gettext("A gateway can not be assigned to a rule that applies to IPv4 and IPv6");
- }
- if (($_POST['ipprotocol'] == "inet6") && (!is_ipaddrv6(lookup_gateway_ip_by_name($_POST['gateway'])))) {
- $input_errors[] = gettext("An IPv4 Gateway can not be assigned to an IPv6 Filter rule");
- }
- if (($_POST['ipprotocol'] == "inet") && (!is_ipaddrv4(lookup_gateway_ip_by_name($_POST['gateway'])))) {
- $input_errors[] = gettext("An IPv6 Gateway can not be assigned to an IPv4 Filter rule");
+ if ($iptype = is_ipaddr(lookup_gateway_ip_by_name($_POST['gateway']))) {
+ // this also implies that $_POST['gateway'] was set and not empty
+ if ($_POST['ipprotocol'] == "inet46") {
+ $input_errors[] = gettext("Gateways can not be assigned in a rule that applies to both IPv4 and IPv6.");
+ }
+ if (($_POST['ipprotocol'] == "inet6") && ($iptype != 6)) {
+ $input_errors[] = gettext("An IPv4 gateway can not be assigned in IPv6 rules.");
+ }
+ if (($_POST['ipprotocol'] == "inet") && ($iptype != 4)) {
+ $input_errors[] = gettext("An IPv6 gateway can not be assigned in IPv4 rules.");
+ }
}
}
if (($_POST['proto'] == "icmp") && ($_POST['icmptype'] <> "")) {
@@ -492,10 +487,10 @@ if ($_POST) {
}
if ($_POST['src']) {
- $_POST['src'] = trim($_POST['src']);
+ $_POST['src'] = addrtolower(trim($_POST['src']));
}
if ($_POST['dst']) {
- $_POST['dst'] = trim($_POST['dst']);
+ $_POST['dst'] = addrtolower(trim($_POST['dst']));
}
/* if user enters an alias and selects "network" then disallow. */
@@ -528,7 +523,7 @@ if ($_POST) {
}
if ((is_ipaddr($_POST['src']) && is_ipaddr($_POST['dst']))) {
if (!validate_address_family($_POST['src'], $_POST['dst'])) {
- $input_errors[] = sprintf(gettext("The Source IP address %s Address Family differs from the destination %s."), $_POST['src'], $_POST['dst']);
+ $input_errors[] = gettext("The source and destination IP addresses must have the same family (IPv4 / IPv6).");
}
}
if ((is_ipaddrv6($_POST['src']) || is_ipaddrv6($_POST['dst'])) && ($_POST['ipprotocol'] == "inet")) {
@@ -539,7 +534,7 @@ if ($_POST) {
}
if ((is_ipaddr($_POST['src']) || is_ipaddr($_POST['dst'])) && ($_POST['ipprotocol'] == "inet46")) {
- $input_errors[] = gettext("An IPv4 or IPv6 address can not be used in combined IPv4 + IPv6 rules.");
+ $input_errors[] = gettext("IPv4 and IPv6 addresses can not be used in rules that apply to both IPv4 and IPv6.");
}
if ($_POST['srcbeginport'] > $_POST['srcendport']) {
@@ -1270,7 +1265,10 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) {
// The rule type dropdown on the GUI can be one of the special names like
// "any" "LANnet" "LAN address"... or "Single host or alias" or "Network"
- if (is_specialnet($pconfig[$type])) {
+ if ($pconfig[$type.'type']) {
+ // The rule type came from the $_POST array, after input errors, so keep it.
+ $ruleType = $pconfig[$type.'type'];
+ } elseif (is_specialnet($pconfig[$type])) {
// It is one of the special names, let it through as-is.
$ruleType = $pconfig[$type];
} elseif ((is_ipaddrv6($pconfig[$type]) && $pconfig[$type.'mask'] == 128) ||
@@ -1323,26 +1321,28 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) {
$type,
$name .' Address',
$pconfig[$type]
- ))->addMask($type .'mask', $pconfig[$type.'mask'])->setPattern('[a-zA-Z0-9\_\.\:]+');
+ ))->addMask($type .'mask', $pconfig[$type.'mask'])->setPattern('[a-zA-Z0-9_.:]+');
$section->add($group);
if ($type == 'src') {
$section->addInput(new Form_Button(
- 'btnsrcadv',
- 'Display Advanced',
+ 'btnsrctoggle',
+ '',
null,
'fa-cog'
- ))->setAttribute('type','button')->addClass('btn-info btn-sm');
+ ))->setAttribute('type','button')->addClass('btn-info btn-sm')->setHelp(
+ 'The <b>Source Port Range</b> for a connection is typically random '.
+ 'and almost never equal to the destination port. '.
+ 'In most cases this setting must remain at its default value, <b>any</b>.');
}
$portValues = ['' => gettext('(other)'), 'any' => gettext('any')];
-
foreach ($wkports as $port => $portName) {
$portValues[$port] = $portName.' ('. $port .')';
}
- $group = new Form_Group($name .' port range');
+ $group = new Form_Group($name .' Port Range');
$group->addClass($type . 'portrange');
@@ -1374,16 +1374,7 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) {
(isset($portValues[ $pconfig[$type .'endport'] ]) ? null : $pconfig[$type .'endport'])
))->setHelp('Custom');
-
- if ($type == 'src')
- $group->setHelp('Specify the source port or port range for this rule. This is '.
- 'usually random and almost never equal to the destination port range (and '.
- 'should usually be <b>any</b>). The "To" field may be left '.
- 'empty if only filtering a single port.');
- else
- $group->setHelp('Specify the destination port or port range for this rule. ' .
- 'The "To" field may be left empty if only filtering a '.
- 'single port.');
+ $group->setHelp(sprintf('Specify the %s port or port range for this rule. The "To" field may be left empty if only filtering a single port.',strtolower($name)));
$group->addClass(($type == 'src') ? 'srcprtr':'dstprtr');
$section->add($group);
@@ -1803,7 +1794,7 @@ events.push(function() {
} else {
text = "<?=gettext('Display Advanced');?>";
}
- $('#btnsrcadv').html('<i class="fa fa-cog"></i> ' + text);
+ $('#btnsrctoggle').html('<i class="fa fa-cog"></i> ' + text);
}
function typesel_change() {
@@ -1889,7 +1880,7 @@ events.push(function() {
if ($('#proto').find(":selected").index() <= 2) {
hideClass('dstprtr', false);
- hideInput('btnsrcadv', false);
+ hideInput('btnsrctoggle', false);
if ((($('#srcbeginport').val() == "any") || ($('#srcbeginport').val() == "")) &&
(($('#srcendport').val() == "any") || ($('#srcendport').val() == ""))) {
srcportsvisible = false;
@@ -1898,7 +1889,7 @@ events.push(function() {
}
} else {
hideClass('dstprtr', true);
- hideInput('btnsrcadv', true);
+ hideInput('btnsrctoggle', true);
srcportsvisible = false;
}
@@ -1934,7 +1925,7 @@ events.push(function() {
ext_change();
});
- $('#btnsrcadv').click(function() {
+ $('#btnsrctoggle').click(function() {
srcportsvisible = !srcportsvisible;
show_source_port_range();
});
diff --git a/src/usr/local/www/firewall_schedule.php b/src/usr/local/www/firewall_schedule.php
index e90c7ff..1c7b866 100644
--- a/src/usr/local/www/firewall_schedule.php
+++ b/src/usr/local/www/firewall_schedule.php
@@ -3,7 +3,7 @@
* firewall_schedule.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/firewall_schedule_edit.php b/src/usr/local/www/firewall_schedule_edit.php
index 2168631..dcabeed 100644
--- a/src/usr/local/www/firewall_schedule_edit.php
+++ b/src/usr/local/www/firewall_schedule_edit.php
@@ -3,7 +3,7 @@
* firewall_schedule_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/firewall_shaper.php b/src/usr/local/www/firewall_shaper.php
index 6abb201..54f38bb 100644
--- a/src/usr/local/www/firewall_shaper.php
+++ b/src/usr/local/www/firewall_shaper.php
@@ -3,7 +3,7 @@
* firewall_shaper.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/firewall_shaper_queues.php b/src/usr/local/www/firewall_shaper_queues.php
index 27e4283..d91e16c 100644
--- a/src/usr/local/www/firewall_shaper_queues.php
+++ b/src/usr/local/www/firewall_shaper_queues.php
@@ -3,7 +3,7 @@
* firewall_shaper_queues.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/firewall_shaper_vinterface.php b/src/usr/local/www/firewall_shaper_vinterface.php
index 171c44b..74526e9 100644
--- a/src/usr/local/www/firewall_shaper_vinterface.php
+++ b/src/usr/local/www/firewall_shaper_vinterface.php
@@ -3,7 +3,7 @@
* firewall_shaper_vinterface.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/firewall_shaper_wizards.php b/src/usr/local/www/firewall_shaper_wizards.php
index 7c79141..440f8c8 100644
--- a/src/usr/local/www/firewall_shaper_wizards.php
+++ b/src/usr/local/www/firewall_shaper_wizards.php
@@ -3,7 +3,7 @@
* firewall_shaper_wizards.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/firewall_virtual_ip.php b/src/usr/local/www/firewall_virtual_ip.php
index ad6cc57..33a1f4f 100644
--- a/src/usr/local/www/firewall_virtual_ip.php
+++ b/src/usr/local/www/firewall_virtual_ip.php
@@ -3,7 +3,7 @@
* firewall_virtual_ip.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/firewall_virtual_ip_edit.php b/src/usr/local/www/firewall_virtual_ip_edit.php
index 8bd2d89..02ff722 100644
--- a/src/usr/local/www/firewall_virtual_ip_edit.php
+++ b/src/usr/local/www/firewall_virtual_ip_edit.php
@@ -3,7 +3,7 @@
* firewall_virtual_ip_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
@@ -72,7 +72,6 @@ if (isset($id) && $a_vip[$id]) {
$pconfig['advskew'] = $a_vip[$id]['advskew'];
$pconfig['advbase'] = $a_vip[$id]['advbase'];
$pconfig['password'] = $a_vip[$id]['password'];
- $pconfig['range'] = $a_vip[$id]['range'];
$pconfig['subnet'] = $a_vip[$id]['subnet'];
$pconfig['subnet_bits'] = $a_vip[$id]['subnet_bits'];
$pconfig['noexpand'] = $a_vip[$id]['noexpand'];
@@ -210,14 +209,8 @@ if ($_POST) {
$vipent['mode'] = $_POST['mode'];
$vipent['interface'] = $_POST['interface'];
- /* ProxyARP specific fields */
- if ($_POST['mode'] === "proxyarp") {
- if ($_POST['type'] == "range") {
- $vipent['range']['from'] = $_POST['range_from'];
- $vipent['range']['to'] = $_POST['range_to'];
-
- }
-
+ /* ProxyARP & Other specific fields */
+ if (($_POST['mode'] === "proxyarp") || ($_POST['mode'] === "other")) {
$vipent['noexpand'] = isset($_POST['noexpand']);
}
@@ -373,7 +366,7 @@ $section->addInput(new Form_Select(
$section->addInput(new Form_Select(
'type',
'Address type',
- ((!$pconfig['range'] && $pconfig['subnet_bits'] == 32) || (!isset($pconfig['subnet']))) ? 'single':'network',
+ (!isset($pconfig['subnet'])) ? 'single':'network',
array(
'single' => gettext('Single address'),
'network' => gettext('Network')
@@ -508,10 +501,12 @@ events.push(function() {
$('#address_note').html("<?=$proxyarphelp?>");
disableInput('type', false);
disableInput('subnet_bits', ($('#type').val() == 'single'));
+ hideCheckbox('noexpand', false);
} else {
$('#address_note').html('');
disableInput('type', false);
disableInput('subnet_bits', ($('#type').val() == 'single'));
+ hideCheckbox('noexpand', false);
}
}
diff --git a/src/usr/local/www/foot.inc b/src/usr/local/www/foot.inc
index c21e794..5037860 100644
--- a/src/usr/local/www/foot.inc
+++ b/src/usr/local/www/foot.inc
@@ -3,7 +3,7 @@
* foot.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/getserviceproviders.php b/src/usr/local/www/getserviceproviders.php
index 2ae719a..12e3fa1 100644
--- a/src/usr/local/www/getserviceproviders.php
+++ b/src/usr/local/www/getserviceproviders.php
@@ -3,7 +3,7 @@
* getserviceproviders.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Vinicius Coque <vinicius.coque@bluepex.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/getstats.php b/src/usr/local/www/getstats.php
index fd8d88d..9bc913f 100644
--- a/src/usr/local/www/getstats.php
+++ b/src/usr/local/www/getstats.php
@@ -3,7 +3,7 @@
* getstats.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2009 Bill Marquette
* All rights reserved.
*
diff --git a/src/usr/local/www/graph.php b/src/usr/local/www/graph.php
index 1578418..f5ec63e 100644
--- a/src/usr/local/www/graph.php
+++ b/src/usr/local/www/graph.php
@@ -3,7 +3,7 @@
* graph.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004-2006 T. Lechat <dev@lechat.org>
* Copyright (c) 2004-2006 Jonathan Watt <jwatt@jwatt.org>
* All rights reserved.
diff --git a/src/usr/local/www/graph_cpu.php b/src/usr/local/www/graph_cpu.php
index 58e2575..ac5538f 100644
--- a/src/usr/local/www/graph_cpu.php
+++ b/src/usr/local/www/graph_cpu.php
@@ -3,7 +3,7 @@
* graph_cpu.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004-2006 T. Lechat <dev@lechat.org>
* Copyright (c) 2004-2006 Jonathan Watt <jwatt@jwatt.org>
* All rights reserved.
diff --git a/src/usr/local/www/guiconfig.inc b/src/usr/local/www/guiconfig.inc
index 06f8701..38a6c17 100644
--- a/src/usr/local/www/guiconfig.inc
+++ b/src/usr/local/www/guiconfig.inc
@@ -3,7 +3,7 @@
* guiconfig.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -27,6 +27,7 @@
/* THIS MUST BE ABOVE ALL OTHER CODE */
if (!$nocsrf) {
function csrf_startup() {
+ global $config;
csrf_conf('rewrite-js', '/csrf/csrf-magic.js');
$timeout_minutes = isset($config['system']['webgui']['session_timeout']) ? $config['system']['webgui']['session_timeout'] : 240;
csrf_conf('expires', $timeout_minutes * 60);
diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc
index b4cd4a2..dbbf15c 100644
--- a/src/usr/local/www/head.inc
+++ b/src/usr/local/www/head.inc
@@ -3,7 +3,7 @@
* head.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -212,9 +212,7 @@ $system_menu[] = array(gettext("Advanced"), "/system_advanced_admin.php");
$system_menu[] = array(gettext("Update"), "/pkg_mgr_install.php?id=firmware");
$system_menu[] = array(gettext("General Setup"), "/system.php");
$system_menu[] = array(gettext("High Avail. Sync"), "/system_hasync.php");
-if ($g['platform'] == $g['product_name'] or $g['platform'] == "nanobsd") {
- $system_menu[] = array(gettext("Package Manager"), "/pkg_mgr_installed.php");
-}
+$system_menu[] = array(gettext("Package Manager"), "/pkg_mgr_installed.php");
$system_menu[] = array(gettext("Setup Wizard"), "/wizard.php?xml=setup_wizard.xml");
$system_menu[] = array(gettext("Routing"), "/system_gateways.php");
$system_menu[] = array(gettext("Cert. Manager"), "/system_camanager.php");
@@ -241,7 +239,10 @@ foreach ($opts as $oif => $odescr) {
$interfaces_menu[] = array(htmlspecialchars($odescr), "/interfaces.php?if={$oif}");
}
}
-$interfaces_menu = msort(array_merge($interfaces_menu, return_ext_menu("Interfaces")), 0);
+
+// Interface list no longer sorted per Redmine #6753
+// $interfaces_menu = msort(array_merge($interfaces_menu, return_ext_menu("Interfaces")), 0);
+$interfaces_menu = array_merge($interfaces_menu, return_ext_menu("Interfaces"));
// Firewall
$firewall_menu = array();
@@ -299,17 +300,13 @@ $status_menu[] = array(gettext("Dashboard"), "/index.php");
$status_menu[] = array(gettext("Gateways"), "/status_gateways.php");
$status_menu[] = array(gettext("DHCP Leases"), "/status_dhcp_leases.php");
$status_menu[] = array(gettext("DHCPv6 Leases"), "/status_dhcpv6_leases.php");
-$status_menu[] = array(gettext("Filter Reload"), "/status_filter_reload.php");
+$status_menu[] = array(gettext("Filter Reload"), "/status_filter_reload.php?user=true");
$status_menu[] = array(gettext("Interfaces"), "/status_interfaces.php");
$status_menu[] = array(gettext("IPsec"), "/status_ipsec.php");
$status_menu[] = array(gettext("Load Balancer"), "/status_lb_pool.php");
$status_menu[] = array(gettext("NTP"), "/status_ntpd.php");
$status_menu[] = array(gettext("OpenVPN"), "/status_openvpn.php");
-
-if ($g['platform'] == $g['product_name']) {
- $status_menu[] = array(gettext("Package Logs"), "/status_pkglogs.php");
-}
-
+$status_menu[] = array(gettext("Package Logs"), "/status_pkglogs.php");
$status_menu[] = array(gettext("Queues"), "/status_queues.php");
$status_menu[] = array(gettext("Services"), "/status_services.php");
$status_menu[] = array(gettext("System Logs"), "/status_logs.php");
@@ -365,14 +362,6 @@ $diagnostics_menu[] = array(gettext("System Activity"), "/diag_system_activity.p
$diagnostics_menu[] = array(gettext("Traceroute"), "/diag_traceroute.php");
$diagnostics_menu[] = array(gettext("Packet Capture"), "/diag_packet_capture.php");
-if ($g['platform'] == "nanobsd") {
- $diagnostics_menu[] = array(gettext("NanoBSD"), "/diag_nanobsd.php");
-}
-
-if (isset($config['system']['developer'])) {
- $diagnostics_menu[] = array(gettext("Restart HTTPD"), "/restart_httpd.php", "style" => "font-weight: bold; color: yellow;");
-}
-
$diagnostics_menu = msort(array_merge($diagnostics_menu, return_ext_menu("Diagnostics")), 0);
$gold_menu = array();
@@ -650,7 +639,7 @@ if (are_notices_pending()):?>
<a href="<?=htmlspecialchars($notice['url'])?>"><?=htmlspecialchars($notice['id'])?></a> -
<?php endif;?>
</b>
- <?=htmlspecialchars($notice['notice'])?>
+ <?=str_replace("\n", "<br/>", htmlspecialchars($notice['notice']))?>
<i>@ <?=date('Y-m-d H:i:s', $notice['time'])?></i>
</li>
<?php endforeach;?>
diff --git a/src/usr/local/www/help.php b/src/usr/local/www/help.php
index 6d64b89..9954067 100644
--- a/src/usr/local/www/help.php
+++ b/src/usr/local/www/help.php
@@ -3,7 +3,7 @@
* help.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -81,7 +81,6 @@ $helppages = array(
'status_logs_filter_summary.php' => 'https://doc.pfsense.org/index.php/Firewall_Logs',
'status_logs_settings.php' => 'https://doc.pfsense.org/index.php/Log_Settings',
'status_logs_vpn.php' => 'https://doc.pfsense.org/index.php/PPTP_VPN_Logs',
- 'diag_nanobsd.php' => 'https://doc.pfsense.org/index.php/NanoBSD_Diagnostics',
'diag_ping.php' => 'https://doc.pfsense.org/index.php/Ping_Host',
'status_pkglogs.php' => 'https://doc.pfsense.org/index.php/Package_Logs',
'diag_tables.php' => 'https://doc.pfsense.org/index.php/Tables',
diff --git a/src/usr/local/www/ifstats.php b/src/usr/local/www/ifstats.php
index 8f1c300..c06c51d 100644
--- a/src/usr/local/www/ifstats.php
+++ b/src/usr/local/www/ifstats.php
@@ -3,7 +3,7 @@
* ifstats.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/includes/functions.inc.php b/src/usr/local/www/includes/functions.inc.php
index 144648c..3f727fb 100644
--- a/src/usr/local/www/includes/functions.inc.php
+++ b/src/usr/local/www/includes/functions.inc.php
@@ -3,7 +3,7 @@
* functions.inc.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/index.php b/src/usr/local/www/index.php
index 8ff71eb..2995ad8 100644
--- a/src/usr/local/www/index.php
+++ b/src/usr/local/www/index.php
@@ -3,7 +3,7 @@
* index.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -155,19 +155,15 @@ if (file_exists("/usr/sbin/swapinfo")) {
## If packages are installed lets resync
if (file_exists('/conf/needs_package_sync')) {
if ($config['installedpackages'] <> '' && is_array($config['installedpackages']['package'])) {
- if ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd") {
- ## If the user has logged into webGUI quickly while the system is booting then do not redirect them to
- ## the package reinstall page. That is about to be done by the boot script anyway.
- ## The code in head.inc will put up a notice to the user.
- if (!platform_booting()) {
- header('Location: pkg_mgr_install.php?mode=reinstallall');
- exit;
- }
+ ## If the user has logged into webGUI quickly while the system is booting then do not redirect them to
+ ## the package reinstall page. That is about to be done by the boot script anyway.
+ ## The code in head.inc will put up a notice to the user.
+ if (!platform_booting()) {
+ header('Location: pkg_mgr_install.php?mode=reinstallall');
+ exit;
}
} else {
- conf_mount_rw();
@unlink('/conf/needs_package_sync');
- conf_mount_ro();
}
}
@@ -211,8 +207,7 @@ if ($fd) {
or preg_match("/.*(VIA Padlock)/", $dmesgl, $matches)
or preg_match("/^safe.: (\w.*)/", $dmesgl, $matches)
or preg_match("/^ubsec.: (.*?),/", $dmesgl, $matches)
- or preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches)
- or preg_match("/^glxsb.: (.*?),/", $dmesgl, $matches)) {
+ or preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches)) {
$hwcrypto = $matches[1];
break;
}
diff --git a/src/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php
index 2e5bf0d..18be1a0 100644
--- a/src/usr/local/www/interfaces.php
+++ b/src/usr/local/www/interfaces.php
@@ -3,7 +3,7 @@
* interfaces.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Daniel S. Haischt
* All rights reserved.
*
@@ -467,7 +467,6 @@ if ($_POST['apply']) {
} else {
$pconfig['track6-prefix-id'] = 0;
}
- conf_mount_rw();
/* filter out spaces from descriptions */
$_POST['descr'] = remove_bad_chars($_POST['descr']);
@@ -692,6 +691,8 @@ if ($_POST['apply']) {
}
}
if ($_POST['ipaddrv6']) {
+ $_POST['ipaddrv6'] = addrtolower($_POST['ipaddrv6']);
+
if (!is_ipaddrv6($_POST['ipaddrv6'])) {
$input_errors[] = gettext("A valid IPv6 address must be specified.");
} else {
@@ -1392,7 +1393,6 @@ if ($_POST['apply']) {
handle_wireless_post();
}
- conf_mount_ro();
write_config();
if (file_exists("{$g['tmp_path']}/.interfaces.apply")) {
@@ -1774,7 +1774,8 @@ $section->addClass('staticv4');
$section->addInput(new Form_IpAddress(
'ipaddr',
'IPv4 Address',
- $pconfig['ipaddr']
+ $pconfig['ipaddr'],
+ 'V4'
))->addMask('subnet', $pconfig['subnet'], 32);
$group = new Form_Group('IPv4 Upstream gateway');
@@ -1807,7 +1808,8 @@ $section->addClass('staticv6');
$section->addInput(new Form_IpAddress(
'ipaddrv6',
'IPv6 address',
- $pconfig['ipaddrv6']
+ $pconfig['ipaddrv6'],
+ 'V6'
))->addMask('subnetv6', $pconfig['subnetv6'], 128);
$group = new Form_Group('IPv6 Upstream gateway');
@@ -1852,7 +1854,8 @@ $modal->addInput(new Form_Input(
$modal->addInput(new Form_IpAddress(
'gatewayip6',
'Gateway IPv6',
- null
+ null,
+ 'V6'
));
$modal->addInput(new Form_Input(
@@ -1919,7 +1922,8 @@ $section->addInput(new Form_Input(
$section->addInput(new Form_IpAddress(
'alias-address',
'Alias IPv4 address',
- $pconfig['alias-address']
+ $pconfig['alias-address'],
+ 'V4'
))->addMask('alias-subnet', $pconfig['alias-subnet'], 32)->setHelp('The value in this field is used as a fixed alias IPv4 address by the DHCP client.');
$section->addInput(new Form_Input(
@@ -2203,7 +2207,8 @@ $group->add(new Form_Input(
$group->add(new Form_IpAddress(
'adv_dhcp6_id_assoc_statement_address',
null,
- $pconfig['adv_dhcp6_id_assoc_statement_address']
+ $pconfig['adv_dhcp6_id_assoc_statement_address'],
+ 'V6'
))->sethelp('IPv6 address');
$group->add(new Form_Input(
@@ -2243,7 +2248,8 @@ $group->add(new Form_Input(
$group->add(new Form_IpAddress(
'adv_dhcp6_id_assoc_statement_prefix',
null,
- $pconfig['adv_dhcp6_id_assoc_statement_prefix']
+ $pconfig['adv_dhcp6_id_assoc_statement_prefix'],
+ 'V6'
))->sethelp('IPv6 prefix');
$group->add(new Form_Input(
@@ -2688,13 +2694,15 @@ $section->addPassword(new Form_Input(
$section->addInput(new Form_IpAddress(
'pptp_local0',
'Local IP address',
- $pconfig['pptp_localip'][0]
+ $pconfig['pptp_localip'][0],
+ 'V4'
))->addMask('pptp_subnet0', $pconfig['pptp_subnet'][0]);
$section->addInput(new Form_IpAddress(
'pptp_remote0',
'Remote IP address',
- $pconfig['pptp_remote'][0]
+ $pconfig['pptp_remote'][0],
+ 'V4'
));
$section->addInput(new Form_Checkbox(
@@ -3163,7 +3171,8 @@ $modal->addInput(new Form_Input(
$modal->addInput(new Form_IpAddress(
'gatewayip',
'Gateway IPv4',
- null
+ null,
+ 'V4'
));
$modal->addInput(new Form_Input(
@@ -3350,7 +3359,8 @@ events.push(function() {
}
function report_failure(request, textStatus, errorThrown) {
- if (textStatus === "error" && request.getResponseHeader("Content-Type") === "text/plain") {
+ contenttype = ";"+request.getResponseHeader("Content-Type")+";";
+ if (textStatus === "error" && contenttype.indexOf(";text/plain;") !== -1) {
alert(request.responseText);
} else {
alert("The IPv4 gateway could not be created.");
diff --git a/src/usr/local/www/interfaces_assign.php b/src/usr/local/www/interfaces_assign.php
index cfa4fe5..b647fea 100644
--- a/src/usr/local/www/interfaces_assign.php
+++ b/src/usr/local/www/interfaces_assign.php
@@ -3,7 +3,7 @@
* interfaces_assign.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -403,12 +403,12 @@ if (isset($_POST['add']) && isset($_POST['if_add'])) {
if (is_array($config['dhcpd']) && is_array($config['dhcpd'][$id])) {
unset($config['dhcpd'][$id]);
- services_dhcpd_configure();
+ services_dhcpd_configure('inet');
}
if (is_array($config['dhcpdv6']) && is_array($config['dhcpdv6'][$id])) {
unset($config['dhcpdv6'][$id]);
- services_dhcpdv6_configure();
+ services_dhcpd_configure('inet6');
}
if (count($config['filter']['rule']) > 0) {
@@ -577,7 +577,9 @@ display_top_tabs($tab_array);
<br />
<?php
-print_info_box(gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown."), 'info', false);
+print_info_box(gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown.") .
+ '<br/><br/>' .
+ gettext("Wireless interfaces must be created on the Wireless tab before they can be assigned."), 'info', false);
?>
<?php include("foot.inc")?>
diff --git a/src/usr/local/www/interfaces_bridge.php b/src/usr/local/www/interfaces_bridge.php
index d928e91..c9631d7 100644
--- a/src/usr/local/www/interfaces_bridge.php
+++ b/src/usr/local/www/interfaces_bridge.php
@@ -3,7 +3,7 @@
* interfaces_bridge.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_bridge_edit.php b/src/usr/local/www/interfaces_bridge_edit.php
index cef6abe..3385a84 100644
--- a/src/usr/local/www/interfaces_bridge_edit.php
+++ b/src/usr/local/www/interfaces_bridge_edit.php
@@ -3,7 +3,7 @@
* interfaces_bridge_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_gif.php b/src/usr/local/www/interfaces_gif.php
index 9096ea4..1797092 100644
--- a/src/usr/local/www/interfaces_gif.php
+++ b/src/usr/local/www/interfaces_gif.php
@@ -3,7 +3,7 @@
* interfaces_gif.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_gif_edit.php b/src/usr/local/www/interfaces_gif_edit.php
index 36ddcba..c225fe7 100644
--- a/src/usr/local/www/interfaces_gif_edit.php
+++ b/src/usr/local/www/interfaces_gif_edit.php
@@ -3,7 +3,7 @@
* interfaces_gif_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_gre.php b/src/usr/local/www/interfaces_gre.php
index dbafbdf..a69edd6 100644
--- a/src/usr/local/www/interfaces_gre.php
+++ b/src/usr/local/www/interfaces_gre.php
@@ -3,7 +3,7 @@
* interfaces_gre.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_gre_edit.php b/src/usr/local/www/interfaces_gre_edit.php
index 3a768b8..e2be503 100644
--- a/src/usr/local/www/interfaces_gre_edit.php
+++ b/src/usr/local/www/interfaces_gre_edit.php
@@ -3,7 +3,7 @@
* interfaces_gre_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -60,6 +60,10 @@ if ($_POST) {
unset($input_errors);
$pconfig = $_POST;
+ $pconfig['tunnel-local-addr'] = addrtolower($_POST['tunnel-local-addr']);
+ $pconfig['tunnel-remote-addr'] = addrtolower($_POST['tunnel-remote-addr']);
+ $pconfig['remote-addr'] = addrtolower($_POST['remote-addr']);
+
/* input validation */
$reqdfields = explode(" ", "if remote-addr tunnel-local-addr tunnel-remote-addr tunnel-remote-net");
$reqdfieldsn = array(gettext("Parent interface"), gettext("Remote tunnel endpoint IP address"), gettext("Local tunnel IP address"), gettext("Remote tunnel IP address"), gettext("Remote tunnel network"));
diff --git a/src/usr/local/www/interfaces_groups.php b/src/usr/local/www/interfaces_groups.php
index 197134e..51f4bd6 100644
--- a/src/usr/local/www/interfaces_groups.php
+++ b/src/usr/local/www/interfaces_groups.php
@@ -3,7 +3,7 @@
* interfaces_groups.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_groups_edit.php b/src/usr/local/www/interfaces_groups_edit.php
index c6edf42..73f63d6 100644
--- a/src/usr/local/www/interfaces_groups_edit.php
+++ b/src/usr/local/www/interfaces_groups_edit.php
@@ -3,7 +3,7 @@
* interfaces_groups_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_lagg.php b/src/usr/local/www/interfaces_lagg.php
index b6f9f8a..c521558 100644
--- a/src/usr/local/www/interfaces_lagg.php
+++ b/src/usr/local/www/interfaces_lagg.php
@@ -3,7 +3,7 @@
* interfaces_lagg.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_lagg_edit.php b/src/usr/local/www/interfaces_lagg_edit.php
index afd2c1d..c4428b7 100644
--- a/src/usr/local/www/interfaces_lagg_edit.php
+++ b/src/usr/local/www/interfaces_lagg_edit.php
@@ -3,7 +3,7 @@
* interfaces_lagg_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_ppps.php b/src/usr/local/www/interfaces_ppps.php
index f18034d..19afc48 100644
--- a/src/usr/local/www/interfaces_ppps.php
+++ b/src/usr/local/www/interfaces_ppps.php
@@ -3,7 +3,7 @@
* interfaces_ppps.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/interfaces_ppps_edit.php b/src/usr/local/www/interfaces_ppps_edit.php
index 710a0f4..894607e 100644
--- a/src/usr/local/www/interfaces_ppps_edit.php
+++ b/src/usr/local/www/interfaces_ppps_edit.php
@@ -3,7 +3,7 @@
* interfaces_ppps_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Gabriel B. <gnoahb@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/interfaces_qinq.php b/src/usr/local/www/interfaces_qinq.php
index 0420d9f..63fa1b4 100644
--- a/src/usr/local/www/interfaces_qinq.php
+++ b/src/usr/local/www/interfaces_qinq.php
@@ -3,7 +3,7 @@
* interfaces_qinq.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_qinq_edit.php b/src/usr/local/www/interfaces_qinq_edit.php
index 0208f34..5ae39ee 100644
--- a/src/usr/local/www/interfaces_qinq_edit.php
+++ b/src/usr/local/www/interfaces_qinq_edit.php
@@ -3,7 +3,7 @@
* interfaces_qinq_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/interfaces_vlan.php b/src/usr/local/www/interfaces_vlan.php
index c4236b7..e733dd3 100644
--- a/src/usr/local/www/interfaces_vlan.php
+++ b/src/usr/local/www/interfaces_vlan.php
@@ -3,7 +3,7 @@
* interfaces_vlan.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -131,7 +131,7 @@ display_top_tabs($tab_array);
<td>
<a class="fa fa-pencil" title="<?=gettext('Edit VLAN')?>" role="button" href="interfaces_vlan_edit.php?id=<?=$i?>"></a>
<!-- <a class="btn btn-danger btn-xs" role="button" href="interfaces_vlan.php?act=del&amp;id=<?=$i?>"><?=gettext('Delete')?></a></td> -->
- <a class="fa fa-trash" title="<?=gettext('Delete VLAN')?>" role="button" id="del-<?=$i?>"></a>
+ <a class="fa fa-trash no-confirm" title="<?=gettext('Delete VLAN')?>" role="button" id="del-<?=$i?>"></a>
</td>
</tr>
<?php
@@ -159,15 +159,23 @@ display_top_tabs($tab_array);
'tagging will still work, but the reduced MTU may cause problems.<br />See the '.
'%s handbook for information on supported cards.'), $g['product_name']), 'info', false); ?>
</div>
+
+<?php
+ $delmsg = gettext("Are you sure you want to delete this VLAN?");
+?>
+
<script type="text/javascript">
//<![CDATA[
events.push(function() {
// Select 'delete button' clicks, extract the id, set the hidden input values and submit
$('[id^=del-]').click(function(event) {
- $('#act').val('del');
- $('#id').val(this.id.replace("del-", ""));
- $(this).parents('form').submit();
+ if (confirm("<?=$delmsg?>")) {
+ $('#act').val('del');
+ $('#id').val(this.id.replace("del-", ""));
+ $(this).parents('form').submit();
+ }
});
+
});
//]]>
</script>
diff --git a/src/usr/local/www/interfaces_vlan_edit.php b/src/usr/local/www/interfaces_vlan_edit.php
index 7698aa7..7e7b16e 100644
--- a/src/usr/local/www/interfaces_vlan_edit.php
+++ b/src/usr/local/www/interfaces_vlan_edit.php
@@ -3,7 +3,7 @@
* interfaces_vlan_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/interfaces_wireless.php b/src/usr/local/www/interfaces_wireless.php
index 2144e29..dafe49d 100644
--- a/src/usr/local/www/interfaces_wireless.php
+++ b/src/usr/local/www/interfaces_wireless.php
@@ -3,7 +3,7 @@
* interfaces_wireless.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Erik Fonnesbeck
* All rights reserved.
*
diff --git a/src/usr/local/www/interfaces_wireless_edit.php b/src/usr/local/www/interfaces_wireless_edit.php
index 65b3e25..419f9c6 100644
--- a/src/usr/local/www/interfaces_wireless_edit.php
+++ b/src/usr/local/www/interfaces_wireless_edit.php
@@ -3,7 +3,7 @@
* interfaces_wireless_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Erik Fonnesbeck
* All rights reserved.
*
@@ -95,7 +95,7 @@ if ($_POST) {
}
if (!$clone['cloneif']) {
- $clone_id = 1;
+ $clone_id = 0;
do {
$clone_exists = false;
$clone['cloneif'] = "{$_POST['if']}_wlan{$clone_id}";
@@ -148,13 +148,11 @@ function build_parent_list() {
global $g;
$parentlist = array();
- $portlist = get_interface_list();
+ $portlist = interface_list_wireless();
$count = 0;
- foreach ($portlist as $ifn => $ifinfo) {
- if (preg_match($g['wireless_regex'], $ifn)) {
- $parentlist[$ifn] = htmlspecialchars($ifn . ' (' . $ifinfo['mac'] . ')');
- $count++;
- }
+ foreach ($portlist as $ifn) {
+ $parentlist[$ifn['if']] = htmlspecialchars($ifn['descr']);
+ $count++;
}
if ($count > 0) {
diff --git a/src/usr/local/www/js/pfSense.js b/src/usr/local/www/js/pfSense.js
index 2098dbe..8047d51 100644
--- a/src/usr/local/www/js/pfSense.js
+++ b/src/usr/local/www/js/pfSense.js
@@ -2,7 +2,7 @@
* pfSense.js
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -234,6 +234,11 @@ $(function() {
// Focus first input
$(':input:enabled:visible:first').focus();
+ $(".resizable").each(function() {
+ $(this).css('height', 80).resizable({minHeight: 80, minWidth: 200}).parent().css('padding-bottom', 0);
+ $(this).css('height', 78);
+ });
+
// Run in-page defined events
while (func = window.events.shift())
func();
diff --git a/src/usr/local/www/js/pfSenseHelpers.js b/src/usr/local/www/js/pfSenseHelpers.js
index 25a7e62..1744a5b 100644
--- a/src/usr/local/www/js/pfSenseHelpers.js
+++ b/src/usr/local/www/js/pfSenseHelpers.js
@@ -2,7 +2,7 @@
* pfSenseHelpers.js
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -58,14 +58,6 @@ function hideClass(s_class, hide) {
$('.' + s_class).show();
}
-// Hides all elements of the specified class assigned to a group. This will usually be a group
-function hideGroupClass(s_class, hide) {
- if (hide)
- $('.' + s_class).parent().parent().parent().hide();
- else
- $('.' + s_class).parent().parent().parent().show();
-}
-
function hideSelect(id, hide) {
if (hide)
$('#' + id).parent('div').parent('div').addClass('hidden');
@@ -80,7 +72,7 @@ function hideMultiCheckbox(id, hide) {
$("[name=" + id + "]").parent().removeClass('hidden');
}
-// Hides the <div> in which the specified IP address element lives so that the input, its label and help text are hidden
+// Hides the <div> in which the specified IP address element lives so that the input, any mask selector, its label and help text are hidden
function hideIpAddress(id, hide) {
if (hide)
$('#' + id).parent().parent().parent('div').addClass('hidden');
@@ -294,6 +286,7 @@ function add_row() {
// Clone it
var newGroup = lastRepeatableGroup.clone();
+
// Increment the suffix number for each input element in the new group
$(newGroup).find('input').each(function() {
$(this).prop("id", bumpStringInt(this.id));
@@ -328,7 +321,7 @@ function add_row() {
// And for "for" tags
// $(newGroup).find('label').attr('for', bumpStringInt($(newGroup).find('label').attr('for')));
- $(newGroup).find('label').text(""); // Clear the label. We only want it on the very first row
+ $(newGroup).find('label:first').text(""); // Clear the label. We only want it on the very first row
// Insert the updated/cloned row
$(lastRepeatableGroup).after(newGroup);
diff --git a/src/usr/local/www/js/traffic-graphs.js b/src/usr/local/www/js/traffic-graphs.js
index 91acbfa..fcda786 100644
--- a/src/usr/local/www/js/traffic-graphs.js
+++ b/src/usr/local/www/js/traffic-graphs.js
@@ -1,6 +1,6 @@
/*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -204,4 +204,4 @@ function draw_graph(refreshInterval, then) {
});
-} \ No newline at end of file
+}
diff --git a/src/usr/local/www/license.php b/src/usr/local/www/license.php
index 601a5cd..d31c31d 100644
--- a/src/usr/local/www/license.php
+++ b/src/usr/local/www/license.php
@@ -3,7 +3,7 @@
* license.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/load_balancer_monitor.php b/src/usr/local/www/load_balancer_monitor.php
index 8a6cd9a..a6875ca 100644
--- a/src/usr/local/www/load_balancer_monitor.php
+++ b/src/usr/local/www/load_balancer_monitor.php
@@ -3,7 +3,7 @@
* load_balancer_monitor.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/load_balancer_monitor_edit.php b/src/usr/local/www/load_balancer_monitor_edit.php
index ad8e96f..7c24f8e 100644
--- a/src/usr/local/www/load_balancer_monitor_edit.php
+++ b/src/usr/local/www/load_balancer_monitor_edit.php
@@ -3,7 +3,7 @@
* load_balancer_monitor_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/load_balancer_pool.php b/src/usr/local/www/load_balancer_pool.php
index 1b98c70..d9788cd 100644
--- a/src/usr/local/www/load_balancer_pool.php
+++ b/src/usr/local/www/load_balancer_pool.php
@@ -3,7 +3,7 @@
* load_balancer_pool.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/load_balancer_pool_edit.php b/src/usr/local/www/load_balancer_pool_edit.php
index 36f4450..c1afb3b 100644
--- a/src/usr/local/www/load_balancer_pool_edit.php
+++ b/src/usr/local/www/load_balancer_pool_edit.php
@@ -3,7 +3,7 @@
* load_balancer_pool_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/load_balancer_setting.php b/src/usr/local/www/load_balancer_setting.php
index 036b6b5..9ae4a95 100644
--- a/src/usr/local/www/load_balancer_setting.php
+++ b/src/usr/local/www/load_balancer_setting.php
@@ -3,7 +3,7 @@
* load_balancer_setting.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* Copyright (c) 2012 Pierre POMES <pierre.pomes@gmail.com>.
* All rights reserved.
diff --git a/src/usr/local/www/load_balancer_virtual_server.php b/src/usr/local/www/load_balancer_virtual_server.php
index 60a7275..f07c7ac 100644
--- a/src/usr/local/www/load_balancer_virtual_server.php
+++ b/src/usr/local/www/load_balancer_virtual_server.php
@@ -3,7 +3,7 @@
* load_balancer_virtual_server.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/load_balancer_virtual_server_edit.php b/src/usr/local/www/load_balancer_virtual_server_edit.php
index 84aa6ae..f4722ce 100644
--- a/src/usr/local/www/load_balancer_virtual_server_edit.php
+++ b/src/usr/local/www/load_balancer_virtual_server_edit.php
@@ -3,7 +3,7 @@
* load_balancer_virtual_server_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/pkg.php b/src/usr/local/www/pkg.php
index 9a7d2bd..b5cf67e 100644
--- a/src/usr/local/www/pkg.php
+++ b/src/usr/local/www/pkg.php
@@ -3,7 +3,7 @@
* pkg.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/pkg_edit.php b/src/usr/local/www/pkg_edit.php
index c0ef630..7a98908 100644
--- a/src/usr/local/www/pkg_edit.php
+++ b/src/usr/local/www/pkg_edit.php
@@ -3,7 +3,7 @@
* pkg_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/pkg_mgr.php b/src/usr/local/www/pkg_mgr.php
index 4326471..cbb7a33 100644
--- a/src/usr/local/www/pkg_mgr.php
+++ b/src/usr/local/www/pkg_mgr.php
@@ -3,7 +3,7 @@
* pkg_mgr.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Marcello Coutinho
* All rights reserved.
*
diff --git a/src/usr/local/www/pkg_mgr_install.php b/src/usr/local/www/pkg_mgr_install.php
index e1b55b5..f0ef8e9 100644
--- a/src/usr/local/www/pkg_mgr_install.php
+++ b/src/usr/local/www/pkg_mgr_install.php
@@ -3,7 +3,7 @@
* pkg_mgr_install.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -77,16 +77,17 @@ if ($_REQUEST['ajax']) {
// When we do a reinstallall, it is technically possible that we might catch the system in-between
// packages, hence the de-bounce here
+ for ($idx=0;$idx<5 && !isvalidpid($pidfile); $idx++) {
+ usleep(200000);
+ }
+
if (!isvalidpid($pidfile)) {
- usleep(100000);
- if (!isvalidpid($pidfile)) {
- $running = "stopped";
- // The log files may not be complete when the process terminates so we need wait until we see the
- // exit status (__RC=x)
- waitfor_string_in_file($_REQUEST['logfilename'] . '.txt', "__RC=", 10);
- filter_configure();
- send_event("service restart packages");
- }
+ $running = "stopped";
+ // The log files may not be complete when the process terminates so we need wait until we see the
+ // exit status (__RC=x)
+ waitfor_string_in_file($_REQUEST['logfilename'] . '.txt', "__RC=", 10);
+ filter_configure();
+ send_event("service restart packages");
}
$pidarray = array('pid' => $running);
@@ -132,6 +133,8 @@ if ($_REQUEST['ajax']) {
} else {
$resparray['log'] = "not_ready";
print(json_encode($resparray));
+ // file_put_contents("/root/update.log", json_encode($resparray), FILE_APPEND);
+ // file_put_contents("/root/update.log", "\r\n---------------------------------------------------------------\r\n", FILE_APPEND);
exit;
}
@@ -159,6 +162,9 @@ if ($_REQUEST['ajax']) {
// Glob all the arrays we have made together, and convert to JSON
print(json_encode($resparray + $pidarray + $statusarray + $progarray));
+// file_put_contents("/root/update.log", json_encode($resparray + $pidarray + $statusarray + $progarray), FILE_APPEND);
+// file_put_contents("/root/update.log", "\r\n---------------------------------------------------------------\r\n", FILE_APPEND);
+
exit;
}
@@ -236,7 +242,7 @@ $tab_array = array();
if ($firmwareupdate) {
$pgtitle = array(gettext("System"), gettext("Update"), gettext("System Update"));
- $tab_array[] = array(gettext("System Update"), true, "");
+ $tab_array[] = array(gettext("System Update"), true, "pkg_mgr_install.php?id=firmware");
$tab_array[] = array(gettext("Update Settings"), false, "system_update_settings.php");
} else {
$pgtitle = array(gettext("System"), gettext("Package Manager"), gettext("Package Installer"));
@@ -420,7 +426,7 @@ if ($confirmed):
</div>
<div class="panel-body">
- <textarea rows="15" class="form-control" id="output" name="output"><?=$_POST['output']?></textarea>
+ <textarea rows="15" class="form-control" id="output" name="output"><?=($completed ? $_POST['output'] : gettext("Please wait while the update system initializes"))?></textarea>
</div>
</div>
<?php
@@ -439,6 +445,9 @@ if ($confirmed && !$completed) {
$progbar = true;
$upgrade_script = "/usr/local/sbin/{$g['product_name']}-upgrade -y -l {$logfilename}.txt -p {$g['tmp_path']}/{$g['product_name']}-upgrade.sock";
+ // Remove the log file before starting
+ unlink_if_exists($logfilename);
+
switch ($pkgmode) {
case 'delete':
mwexec_bg("{$upgrade_script} -r {$pkgname}");
@@ -540,7 +549,7 @@ function show_info() {
$('#final').addClass("alert-info");
if ("<?=$pkgmode?>" != "reinstallall") {
$('#final').html("<p><?=$pkg_wait_txt?>" + "</p><p>" +
- "<?=gettext("This may take several minutes!")?>" + "</p>");
+ "<?=gettext("This may take several minutes. Do not leave or refresh the page!")?>" + "</p>");
} else {
$('#final').html("<p><?=gettext('Please wait while the reinstallation of all packages completes.')?>" + "</p><p>" +
"<?=gettext("This may take several minutes!")?>" + "</p>");
@@ -581,6 +590,8 @@ function get_firmware_versions()
$('#confirmlabel').text( "<?=$confirmlabel?>");
$('#pkgconfirm').show();
}
+ } else {
+ $('#uptodate').html('<span class="text-danger">' + 'Unable to check for updates' + "</span>");
}
});
}
@@ -609,7 +620,7 @@ function getLogsStatus() {
// alert("JSON data: " + JSON.stringify(json));
- if (json.log != "not ready") {
+ if (json.log != "not_ready") {
// Write the log file to the "output" textarea
$('#output').html(json.log);
scrollToBottom();
@@ -702,7 +713,7 @@ function startCountdown() {
events.push(function() {
if ("<?=$start_polling?>") {
- setTimeout(getLogsStatus, 1000);
+ setTimeout(getLogsStatus, 3000);
show_info();
}
diff --git a/src/usr/local/www/pkg_mgr_installed.php b/src/usr/local/www/pkg_mgr_installed.php
index 8c862ad..261de70 100644
--- a/src/usr/local/www/pkg_mgr_installed.php
+++ b/src/usr/local/www/pkg_mgr_installed.php
@@ -3,7 +3,7 @@
* pkg_mgr_installed.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/restart_httpd.php b/src/usr/local/www/restart_httpd.php
deleted file mode 100644
index a8588bc..0000000
--- a/src/usr/local/www/restart_httpd.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/*
- * restart_httpd.php
- *
- * part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
- * Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com>
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-##|+PRIV
-##|*IDENT=page-diagnostics-restart-httpd
-##|*NAME=Diagnostics: Restart Web Server Daemon
-##|*DESCR=Allow access to the 'Diagnostics: Restart Web Server Daemon' page.
-##|*MATCH=restart_httpd.php*
-##|-PRIV
-
-require_once("guiconfig.inc");
-
-$pgtitle = array(gettext("Restarting httpd"));
-include("head.inc");
-?>
-
-<form>
-<?php include_once("fbegin.inc"); ?>
-
-<?=gettext("Mounting file systems read/write");?>...
-<?php flush(); sleep(1); conf_mount_rw(); ?>
-<?=gettext("Done");?>.<br />
-<?=gettext("Forcing all PHP file permissions to 0755");?>...
-<?php flush(); sleep(1); system('/bin/chmod -R 0755 /usr/local/www/*.php'); ?>
-<?=gettext("Done");?>.<br />
-<?=gettext("Mounting file systems read only");?>...
-<?php flush(); sleep(1); conf_mount_ro(); ?>
-<?=gettext("Done");?>.<br />
-<?=gettext("Restarting mini_httpd");?>...
-<?php flush(); sleep(1); system_webgui_start(); ?>
-<?=gettext("Done");?>.<br />
-
-<?php
-include("foot.inc");
-?>
diff --git a/src/usr/local/www/services_captiveportal.php b/src/usr/local/www/services_captiveportal.php
index a31e2fa..cdfbebd 100644
--- a/src/usr/local/www/services_captiveportal.php
+++ b/src/usr/local/www/services_captiveportal.php
@@ -3,7 +3,7 @@
* services_captiveportal.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -341,7 +341,6 @@ if ($_POST) {
$cpzoneid = $newcp['zoneid'];
}
- $oldifaces = explode(",", $newcp['interface']);
if (is_array($_POST['cinterface'])) {
$newcp['interface'] = implode(",", $_POST['cinterface']);
}
@@ -449,19 +448,8 @@ if ($_POST) {
write_config();
- /* Clear up unselected interfaces */
- $newifaces = explode(",", $newcp['interface']);
- $toremove = array_diff($oldifaces, $newifaces);
-
- if (!empty($toremove)) {
- foreach ($toremove as $removeif) {
- $removeif = get_real_interface($removeif);
- mwexec("/sbin/ipfw zone {$cpzoneid} mdel {$removeif}");
- }
- }
-
captiveportal_configure_zone($newcp);
- unset($newcp, $newifaces, $toremove);
+ unset($newcp);
filter_configure();
header("Location: services_captiveportal_zones.php");
exit;
@@ -688,7 +676,7 @@ $section->addInput(new Form_Input(
'number',
$pconfig['bwdefaultup']
))->setHelp('If this option is set, the captive portal will restrict each user who logs in to the specified default bandwidth. ' .
- 'RADIUS can override the default settings. Leave empty or set to 0 for no limit.');
+ 'RADIUS can override the default settings. Leave empty for no limit.');
$form->add($section);
diff --git a/src/usr/local/www/services_captiveportal_filemanager.php b/src/usr/local/www/services_captiveportal_filemanager.php
index 8d48c31..e4fc420 100644
--- a/src/usr/local/www/services_captiveportal_filemanager.php
+++ b/src/usr/local/www/services_captiveportal_filemanager.php
@@ -3,7 +3,7 @@
* services_captiveportal_filemanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005-2006 Jonathan De Graeve (jonathan.de.graeve@imelda.be)
* Copyright (c) 2005-2006 Paul Taylor (paultaylor@winn-dixie.com)
* All rights reserved.
@@ -52,7 +52,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone)) {
header("Location: services_captiveportal_zones.php");
@@ -120,10 +120,8 @@ if ($_POST) {
}
}
} else if (($_GET['act'] == "del") && !empty($cpzone) && $a_element[$_GET['id']]) {
- conf_mount_rw();
@unlink("{$g['captiveportal_element_path']}/" . $a_element[$_GET['id']]['name']);
@unlink("{$g['captiveportal_path']}/" . $a_element[$_GET['id']]['name']);
- conf_mount_ro();
unset($a_element[$_GET['id']]);
write_config();
header("Location: services_captiveportal_filemanager.php?zone={$cpzone}");
diff --git a/src/usr/local/www/services_captiveportal_hostname.php b/src/usr/local/www/services_captiveportal_hostname.php
index e0c513f..7de5912 100644
--- a/src/usr/local/www/services_captiveportal_hostname.php
+++ b/src/usr/local/www/services_captiveportal_hostname.php
@@ -3,7 +3,7 @@
* services_captiveportal_hostname.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,7 +43,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
@@ -75,15 +75,16 @@ if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) {
}
$sn = (is_ipaddrv6($ip)) ? 128 : 32;
if (is_ipaddr($ip)) {
- $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $ip);
- if (is_array($ipfw)) {
- captiveportal_free_dn_ruleno($ipfw['dnpipe']);
- pfSense_pipe_action("pipe delete {$ipfw['dnpipe']}");
- pfSense_pipe_action("pipe delete " . ($ipfw['dnpipe']+1));
- }
+ $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$ip}/{$sn}");
+
+ pfSense_ipfw_table("{$cpzone}_allowed_up", IP_FW_TABLE_XDEL, "{$ip}/{$sn}");
+ pfSense_ipfw_table("{$cpzone}_allowed_down", IP_FW_TABLE_XDEL, "{$ip}/{$sn}");
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 3, $ip, $sn);
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 4, $ip, $sn);
+ if (is_array($rule) && !empty($rule['pipe'])) {
+ captiveportal_free_dn_ruleno($rule['pipe']);
+ pfSense_ipfw_pipe("pipe delete {$rule['pipe']}");
+ pfSense_ipfw_pipe("pipe delete " . ($rule['pipe']+1));
+ }
}
}
diff --git a/src/usr/local/www/services_captiveportal_hostname_edit.php b/src/usr/local/www/services_captiveportal_hostname_edit.php
index 86712d6..3149ac2 100644
--- a/src/usr/local/www/services_captiveportal_hostname_edit.php
+++ b/src/usr/local/www/services_captiveportal_hostname_edit.php
@@ -3,7 +3,7 @@
* services_captiveportal_hostname_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -47,7 +47,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
$cpzoneid = $config['captiveportal'][$cpzone]['zoneid'];
@@ -142,7 +142,7 @@ if ($_POST) {
$rules = captiveportal_allowedhostname_configure();
@file_put_contents("{$g['tmp_path']}/hostname_rules", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} {$g['tmp_path']}/hostname_rules", true);
+ mwexec("/sbin/ipfw {$g['tmp_path']}/hostname_rules", true);
unset($rules);
header("Location: services_captiveportal_hostname.php?zone={$cpzone}");
diff --git a/src/usr/local/www/services_captiveportal_ip.php b/src/usr/local/www/services_captiveportal_ip.php
index bbf08c5..648c629 100644
--- a/src/usr/local/www/services_captiveportal_ip.php
+++ b/src/usr/local/www/services_captiveportal_ip.php
@@ -3,7 +3,7 @@
* services_captiveportal_ip.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com>
* All rights reserved.
*
@@ -43,7 +43,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
@@ -71,14 +71,15 @@ if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) {
if (isset($config['captiveportal'][$cpzone]['enable'])) {
$mask = (!empty($ipent['sn'])) ? $ipent['sn'] : 32;
- $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $ipent['ip']);
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 3, $ipent['ip'], $mask);
- pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 4, $ipent['ip'], $mask);
+ $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$ipent['ip']}/{$mask}");
- if (is_array($ipfw)) {
- captiveportal_free_dn_ruleno($ipfw['dnpipe']);
- pfSense_pipe_action("pipe delete {$ipfw['dnpipe']}");
- pfSense_pipe_action("pipe delete " . ($ipfw['dnpipe']+1));
+ pfSense_ipfw_table("{$cpzone}_allowed_up", IP_FW_TABLE_XDEL, "{$ipent['ip']}/{$mask}");
+ pfSense_ipfw_table("{$cpzone}_allowed_down", IP_FW_TABLE_XDEL, "{$ipent['ip']}/{$mask}");
+
+ if (is_array($rule) && !empty($rule['pipe'])) {
+ captiveportal_free_dn_ruleno($rule['pipe']);
+ pfSense_ipfw_pipe("pipe delete {$rule['pipe']}");
+ pfSense_ipfw_pipe("pipe delete " . ($rule['pipe']+1));
}
}
diff --git a/src/usr/local/www/services_captiveportal_ip_edit.php b/src/usr/local/www/services_captiveportal_ip_edit.php
index 91a7713..420faae 100644
--- a/src/usr/local/www/services_captiveportal_ip_edit.php
+++ b/src/usr/local/www/services_captiveportal_ip_edit.php
@@ -3,7 +3,7 @@
* services_captiveportal_ip_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com>
* All rights reserved.
*
@@ -51,7 +51,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
@@ -167,25 +167,28 @@ if ($_POST) {
if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko")) {
$rules = "";
$cpzoneid = $a_cp[$cpzone]['zoneid'];
- unset($ipfw);
+
+ unset($rule);
if (isset($oldip) && isset($oldmask)) {
- $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $oldip);
- $rules .= "table 3 delete {$oldip}/{$oldmask}\n";
- $rules .= "table 4 delete {$oldip}/{$oldmask}\n";
- if (is_array($ipfw)) {
- $rules .= "pipe delete {$ipfw['dnpipe']}\n";
- $rules .= "pipe delete " . ($ipfw['dnpipe']+1 . "\n");
+ $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$oldip}/{$oldmask}");
+
+ $rules .= "table {$cpzone}_allowed_up delete {$oldip}/{$oldmask}\n";
+ $rules .= "table {$cpzone}_allowed_down delete {$oldip}/{$oldmask}\n";
+
+ if (is_array($rule) && !empty($rule['pipe'])) {
+ $rules .= "pipe delete {$rule['pipe']}\n";
+ $rules .= "pipe delete " . ($rule['pipe']+1 . "\n");
}
}
$rules .= captiveportal_allowedip_configure_entry($ip);
- if (is_array($ipfw)) {
- captiveportal_free_dn_ruleno($ipfw['dnpipe']);
+ if (is_array($rule) && !empty($rule['pipe'])) {
+ captiveportal_free_dn_ruleno($rule['pipe']);
}
$uniqid = uniqid("{$cpzone}_allowed");
@file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp");
@unlink("{$g['tmp_path']}/{$uniqid}_tmp");
}
diff --git a/src/usr/local/www/services_captiveportal_mac.php b/src/usr/local/www/services_captiveportal_mac.php
index 366e949..acfff96 100644
--- a/src/usr/local/www/services_captiveportal_mac.php
+++ b/src/usr/local/www/services_captiveportal_mac.php
@@ -3,7 +3,7 @@
* services_captiveportal_mac.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com>
* All rights reserved.
*
@@ -44,7 +44,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
@@ -73,7 +73,7 @@ if ($_POST) {
$rules = captiveportal_passthrumac_configure();
if (!empty($rules)) {
@file_put_contents("{$g['tmp_path']}/passthrumac_gui", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} {$g['tmp_path']}/passthrumac_gui");
+ mwexec("/sbin/ipfw {$g['tmp_path']}/passthrumac_gui");
@unlink("{$g['tmp_path']}/passthrumac_gui");
}
$savemsg = get_std_save_message($retval);
@@ -120,7 +120,7 @@ if ($_POST) {
$rules = captiveportal_passthrumac_delete_entry($a_passthrumacs[$idx]);
$uniqid = uniqid("{$cpzone}_mac");
file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp");
@unlink("{$g['tmp_path']}/{$uniqid}_tmp");
unset($a_passthrumacs[$idx]);
write_config();
@@ -141,7 +141,7 @@ if ($_GET['act'] == "del") {
$rules = captiveportal_passthrumac_delete_entry($a_passthrumacs[$_GET['id']]);
$uniqid = uniqid("{$cpzone}_mac");
file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp");
@unlink("{$g['tmp_path']}/{$uniqid}_tmp");
unset($a_passthrumacs[$_GET['id']]);
write_config();
@@ -170,7 +170,7 @@ $tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_fil
display_top_tabs($tab_array, true);
?>
<div class="table-responsive">
- <table class="table table-hover table-striped table-condensed table-rowdblclickedit">
+ <table class="table table-hover table-striped table-condensed sortable-theme-bootstrap table-rowdblclickedit" data-sortable>
<thead>
<tr>
<th><?=gettext('Action')?></th>
diff --git a/src/usr/local/www/services_captiveportal_mac_edit.php b/src/usr/local/www/services_captiveportal_mac_edit.php
index e3da8c6..91d01e0 100644
--- a/src/usr/local/www/services_captiveportal_mac_edit.php
+++ b/src/usr/local/www/services_captiveportal_mac_edit.php
@@ -3,7 +3,7 @@
* services_captiveportal_mac_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com>
* All rights reserved.
*
@@ -54,7 +54,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
@@ -172,7 +172,7 @@ if ($_POST) {
$rules .= captiveportal_passthrumac_configure_entry($mac);
$uniqid = uniqid("{$cpzone}_macedit");
file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules);
- mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp");
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp");
@unlink("{$g['tmp_path']}/{$uniqid}_tmp");
unset($cpzoneid);
}
diff --git a/src/usr/local/www/services_captiveportal_vouchers.php b/src/usr/local/www/services_captiveportal_vouchers.php
index b6cf157..4ce7982 100644
--- a/src/usr/local/www/services_captiveportal_vouchers.php
+++ b/src/usr/local/www/services_captiveportal_vouchers.php
@@ -3,7 +3,7 @@
* services_captiveportal_vouchers.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
@@ -43,7 +43,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if ($_REQUEST['generatekey']) {
exec("/usr/bin/openssl genrsa 64 > /tmp/key64.private");
@@ -290,65 +290,28 @@ if ($_POST) {
}
if ($newvoucher['vouchersyncpass'] && $newvoucher['vouchersyncusername'] &&
$newvoucher['vouchersyncport'] && $newvoucher['vouchersyncdbip']) {
- // Synchronize the voucher DB from the master node
- require_once("XML/RPC2/Client.php");
-
- $protocol = "http";
- if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) &&
- $config['system']['webgui']['protocol'] == "https") {
- $protocol = "https";
- }
- if ($protocol == "https" || $newvoucher['vouchersyncport'] == "443") {
- $url = "https://{$newvoucher['vouchersyncdbip']}";
- } else {
- $url = "http://{$newvoucher['vouchersyncdbip']}";
- }
- $url .= ":{$newvoucher['vouchersyncport']}/xmlrpc.php";
+ // Synchronize the voucher DB from the master node
$execcmd = <<<EOF
+ global \$config;
\$toreturn = array();
\$toreturn['voucher'] = \$config['voucher']['$cpzone'];
unset(\$toreturn['vouchersyncport'], \$toreturn['vouchersyncpass'], \$toreturn['vouchersyncusername'], \$toreturn['vouchersyncdbip']);
EOF;
-
- $options = array(
- 'prefix' => 'pfsense.',
- 'sslverify' => false,
- 'connectionTimeout' => 240
- );
-
- log_error(sprintf(gettext("voucher XMLRPC sync data %s"), $url));
- $cli = XML_RPC2_Client::create($url, $options);
- if (!is_object($cli)) {
- $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url);
- log_error($error);
- file_notice("sync_settings", $error, "Settings Sync", "");
- $input_errors[] = $error;
- } else {
- try {
- $resp = $cli->exec_php($newvoucher['vouchersyncusername'], $newvoucher['vouchersyncpass'], $execcmd);
- } catch (XML_RPC2_FaultException $e) {
- // The XMLRPC server returns a XMLRPC error
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", "");
- $input_errors[] = $error;
- } catch (Exception $e) {
- // Other errors (HTTP or networking problems...)
- $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage();
- log_error($error);
- file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), "");
- $input_errors[] = $error;
- }
+ require_once("xmlrpc_client.inc");
+ $rpc_client = new pfsense_xmlrpc_client();
+ $rpc_client->setConnectionData(
+ $newvoucher['vouchersyncdbip'], $newvoucher['vouchersyncport'],
+ $newvoucher['vouchersyncusername'], $newvoucher['vouchersyncpass']);
+ $rpc_client->set_noticefile("CaptivePortalVoucherSync");
+ $resp = $rpc_client->xmlrpc_exec_php($execcmd);
+ if ($resp == null) {
+ $input_errors[] = $rpc_client->get_error();
}
if (!$input_errors) {
- if (!is_array($resp)) {
- if ($resp == "Authentication failed") {
- $input_errors[] = gettext("Could not synchronize the voucher database: Authentication Failed.");
- }
- } else {
+ if (is_array($resp)) {
log_error(sprintf(gettext("The Captive Portal voucher database has been synchronized with %s (pfsense.exec_php)."), $url));
// If we received back the voucher roll and other information then store it.
if ($resp['voucher']['roll']) {
diff --git a/src/usr/local/www/services_captiveportal_vouchers_edit.php b/src/usr/local/www/services_captiveportal_vouchers_edit.php
index 8a69439..3912e74 100644
--- a/src/usr/local/www/services_captiveportal_vouchers_edit.php
+++ b/src/usr/local/www/services_captiveportal_vouchers_edit.php
@@ -3,7 +3,7 @@
* services_captiveportal_vouchers_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
@@ -38,7 +38,7 @@ $cpzone = $_GET['zone'];
if (isset($_POST['zone'])) {
$cpzone = $_POST['zone'];
}
-$cpzone = strtolower($cpzone);
+$cpzone = strtolower(htmlspecialchars($cpzone));
if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) {
header("Location: services_captiveportal_zones.php");
diff --git a/src/usr/local/www/services_captiveportal_zones.php b/src/usr/local/www/services_captiveportal_zones.php
index 64b70ab..2a9fc67 100644
--- a/src/usr/local/www/services_captiveportal_zones.php
+++ b/src/usr/local/www/services_captiveportal_zones.php
@@ -3,7 +3,7 @@
* services_captiveportal_zones.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -41,7 +41,7 @@ if (!is_array($config['captiveportal'])) {
$a_cp = &$config['captiveportal'];
if ($_GET['act'] == "del" && !empty($_GET['zone'])) {
- $cpzone = htmlspecialchars($_GET['zone']);
+ $cpzone = strtolower(htmlspecialchars($_GET['zone']));
if ($a_cp[$cpzone]) {
$cpzoneid = $a_cp[$cpzone]['zoneid'];
unset($a_cp[$cpzone]['enable']);
diff --git a/src/usr/local/www/services_captiveportal_zones_edit.php b/src/usr/local/www/services_captiveportal_zones_edit.php
index ef4df0b..6e9ae88 100644
--- a/src/usr/local/www/services_captiveportal_zones_edit.php
+++ b/src/usr/local/www/services_captiveportal_zones_edit.php
@@ -3,7 +3,7 @@
* services_captiveportal_zones_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -62,7 +62,7 @@ if ($_POST) {
}
if (!$input_errors) {
- $cpzone = strtolower($_POST['zone']);
+ $cpzone = strtolower(htmlspecialchars($_POST['zone']));
$a_cp[$cpzone] = array();
$a_cp[$cpzone]['zone'] = str_replace(" ", "", $_POST['zone']);
$a_cp[$cpzone]['descr'] = $_POST['descr'];
diff --git a/src/usr/local/www/services_checkip.php b/src/usr/local/www/services_checkip.php
index cf740c2..b59d3d1 100644
--- a/src/usr/local/www/services_checkip.php
+++ b/src/usr/local/www/services_checkip.php
@@ -3,7 +3,7 @@
* services_checkip.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -156,9 +156,12 @@ endforeach; ?>
</a>
</nav>
-<?php
-print_info_box(gettext('The first (highest in list) enabled check ip service will be used to ' .
- 'check IP addresses for Dynamic DNS services, and ' .
- 'RFC 2136 entries that have the "Use public IP" option enabled.'));
+<div class="infoblock">
+ <?php print_info_box(gettext(
+ 'The first (highest in list) enabled check ip service will be used to ' .
+ 'check IP addresses for Dynamic DNS services, and ' .
+ 'RFC 2136 entries that have the "Use public IP" option enabled.'
+ ), 'info', false); ?>
+</div>
-include("foot.inc");
+<?php include("foot.inc");
diff --git a/src/usr/local/www/services_checkip_edit.php b/src/usr/local/www/services_checkip_edit.php
index 99ba7a3..932366e 100644
--- a/src/usr/local/www/services_checkip_edit.php
+++ b/src/usr/local/www/services_checkip_edit.php
@@ -3,7 +3,7 @@
* services_checkip_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php
index a9451b0..c9c275a 100644
--- a/src/usr/local/www/services_dhcp.php
+++ b/src/usr/local/www/services_dhcp.php
@@ -3,7 +3,7 @@
* services_dhcp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -175,6 +175,7 @@ if (is_array($dhcpdconf)) {
$pconfig['ddnsdomainkeyname'] = $dhcpdconf['ddnsdomainkeyname'];
$pconfig['ddnsdomainkey'] = $dhcpdconf['ddnsdomainkey'];
$pconfig['ddnsupdate'] = isset($dhcpdconf['ddnsupdate']);
+ $pconfig['ddnsforcehostname'] = isset($dhcpdconf['ddnsforcehostname']);
$pconfig['mac_allow'] = $dhcpdconf['mac_allow'];
$pconfig['mac_deny'] = $dhcpdconf['mac_deny'];
list($pconfig['ntp1'], $pconfig['ntp2']) = $dhcpdconf['ntpserver'];
@@ -541,6 +542,7 @@ if (isset($_POST['save'])) {
$dhcpdconf['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname'];
$dhcpdconf['ddnsdomainkey'] = $_POST['ddnsdomainkey'];
$dhcpdconf['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
+ $dhcpdconf['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false;
$dhcpdconf['mac_allow'] = $_POST['mac_allow'];
$dhcpdconf['mac_deny'] = $_POST['mac_deny'];
@@ -632,6 +634,10 @@ if ($act == "delpool") {
if ($act == "del") {
if ($a_maps[$_GET['id']]) {
+ /* Remove static ARP entry, if necessary */
+ if (isset($a_maps[$_GET['id']]['arp_table_static_entry'])) {
+ mwexec("/usr/sbin/arp -d " . escapeshellarg($a_maps[$_GET['id']]['ipaddr']));
+ }
unset($a_maps[$_GET['id']]);
write_config();
if (isset($config['dhcpd'][$if]['enable'])) {
@@ -840,13 +846,15 @@ $group = new Form_Group('Range');
$group->add(new Form_IpAddress(
'range_from',
null,
- $pconfig['range_from']
+ $pconfig['range_from'],
+ 'V4'
))->setHelp('From');
$group->add(new Form_IpAddress(
'range_to',
null,
- $pconfig['range_to']
+ $pconfig['range_to'],
+ 'V4'
))->setHelp('To');
$section->add($group);
@@ -884,21 +892,24 @@ $section = new Form_Section('Servers');
$section->addInput(new Form_IpAddress(
'wins1',
'WINS servers',
- $pconfig['wins1']
-))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'WINS Server 1');
+ $pconfig['wins1'],
+ 'V4'
+))->setAttribute('placeholder', 'WINS Server 1');
$section->addInput(new Form_IpAddress(
'wins2',
null,
- $pconfig['wins2']
-))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'WINS Server 2');
+ $pconfig['wins2'],
+ 'V4'
+))->setAttribute('placeholder', 'WINS Server 2');
for ($idx=1; $idx<=4; $idx++) {
$section->addInput(new Form_IpAddress(
'dns' . $idx,
($idx == 1) ? 'DNS servers':null,
- $pconfig['dns' . $idx]
- ))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'DNS Server ' . $idx)->setHelp(($idx == 4) ? 'Leave blank to use the system default DNS servers: this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the System / General Setup page.':'');
+ $pconfig['dns' . $idx],
+ 'V4'
+ ))->setAttribute('placeholder', 'DNS Server ' . $idx)->setHelp(($idx == 4) ? 'Leave blank to use the system default DNS servers: this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the System / General Setup page.':'');
}
$form->add($section);
@@ -908,7 +919,8 @@ $section = new Form_Section('Other Options');
$section->addInput(new Form_IpAddress(
'gateway',
'Gateway',
- $pconfig['gateway']
+ $pconfig['gateway'],
+ 'V4'
))->setPattern('[.a-zA-Z0-9_]+')
->setHelp('The default is to use the IP on this interface of the firewall as the gateway. Specify an alternate gateway here if this is not the correct gateway for the network. Type "none" for no gateway assignment.');
@@ -944,7 +956,8 @@ if (!is_numeric($pool) && !($act == "newpool")) {
$section->addInput(new Form_IpAddress(
'failover_peerip',
'Failover peer IP',
- $pconfig['failover_peerip']
+ $pconfig['failover_peerip'],
+ 'V4'
))->setHelp('Leave blank to disable. Enter the interface IP address of the other machine. Machines must be using CARP. ' .
'Interface\'s advskew determines whether the DHCPd process is Primary or Secondary. Ensure one machine\'s advskew &lt; 20 (and the other is &gt; 20).');
}
@@ -1002,10 +1015,18 @@ $section->addInput(new Form_Input(
))->setHelp('Leave blank to disable dynamic DNS registration.' . '<br />' .
'Enter the dynamic DNS domain which will be used to register client names in the DNS server.');
+$section->addInput(new Form_Checkbox(
+ 'ddnsforcehostname',
+ 'DDNS Hostnames',
+ 'Force dynamic DNS hostname to be the same as configured hostname for Static Mappings',
+ $pconfig['ddnsforcehostname']
+))->setHelp('Default registers host name option supplied by DHCP client.');
+
$section->addInput(new Form_IpAddress(
'ddnsdomainprimary',
'Primary DDNS address',
- $pconfig['ddnsdomainprimary']
+ $pconfig['ddnsdomainprimary'],
+ 'V4'
))->setHelp('Primary domain name server IP address for the dynamic domain name.');
$section->addInput(new Form_Input(
@@ -1069,14 +1090,16 @@ $section->addInput(new Form_StaticText(
$section->addInput(new Form_IpAddress(
'ntp1',
'NTP Server 1',
- $pconfig['ntp1']
-))->setPattern('[.a-zA-Z0-9_]+');
+ $pconfig['ntp1'],
+ 'V4'
+))->setPattern('[.a-zA-Z0-9-]+');
$section->addInput(new Form_IpAddress(
'ntp2',
'NTP Server 2',
- $pconfig['ntp2']
-))->setPattern('[.a-zA-Z0-9_]+');
+ $pconfig['ntp2'],
+ 'V4'
+))->setPattern('[.a-zA-Z0-9-]+');
// Advanced TFTP
$btnadv = new Form_Button(
@@ -1146,7 +1169,8 @@ $section->addInput(new Form_Checkbox(
$section->addInput(new Form_IpAddress(
'nextserver',
'Next Server',
- $pconfig['nextserver']
+ $pconfig['nextserver'],
+ 'V4'
))->setHelp('Enter the IP address of the next server');
$section->addInput(new Form_Input(
@@ -1381,7 +1405,7 @@ events.push(function() {
// On page load decide the initial state based on the data.
if (ispageload) {
<?php
- if (!$pconfig['ddnsupdate'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) &&
+ if (!$pconfig['ddnsupdate'] && !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) &&
empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkey'])) {
$showadv = false;
} else {
@@ -1396,6 +1420,7 @@ events.push(function() {
hideCheckbox('ddnsupdate', !showadvdns);
hideInput('ddnsdomain', !showadvdns);
+ hideCheckbox('ddnsforcehostname', !showadvdns);
hideInput('ddnsdomainprimary', !showadvdns);
hideInput('ddnsdomainkeyname', !showadvdns);
hideInput('ddnsdomainkey', !showadvdns);
diff --git a/src/usr/local/www/services_dhcp_edit.php b/src/usr/local/www/services_dhcp_edit.php
index 53dd933..c332159 100644
--- a/src/usr/local/www/services_dhcp_edit.php
+++ b/src/usr/local/www/services_dhcp_edit.php
@@ -3,7 +3,7 @@
* services_dhcp_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -110,6 +110,7 @@ if (isset($id) && $a_maps[$id]) {
$pconfig['ddnsdomainkeyname'] = $a_maps[$id]['ddnsdomainkeyname'];
$pconfig['ddnsdomainkey'] = $a_maps[$id]['ddnsdomainkey'];
$pconfig['ddnsupdate'] = isset($a_maps[$id]['ddnsupdate']);
+ $pconfig['ddnsforcehostname'] = isset($a_maps[$id]['ddnsforcehostname']);
list($pconfig['ntp1'], $pconfig['ntp2']) = $a_maps[$id]['ntpserver'];
$pconfig['tftp'] = $a_maps[$id]['tftp'];
} else {
@@ -136,6 +137,7 @@ if (isset($id) && $a_maps[$id]) {
$pconfig['ddnsdomainkeyname'] = $_GET['ddnsdomainkeyname'];
$pconfig['ddnsdomainkey'] = $_GET['ddnsdomainkey'];
$pconfig['ddnsupdate'] = isset($_GET['ddnsupdate']);
+ $pconfig['ddnsforcehostname'] = isset($_GET['ddnsforcehostname']);
$pconfig['ntp1'] = $_GET['ntp1'];
$pconfig['ntp2'] = $_GET['ntp2'];
$pconfig['tftp'] = $_GET['tftp'];
@@ -173,8 +175,8 @@ if ($_POST) {
}
}
- if (($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr']))) {
- $input_errors[] = gettext("A valid IP address must be specified.");
+ if (($_POST['ipaddr'] && !is_ipaddrv4($_POST['ipaddr']))) {
+ $input_errors[] = gettext("A valid IPv4 address must be specified.");
}
if (($_POST['mac'] && !is_macaddr($_POST['mac']))) {
@@ -232,10 +234,10 @@ if ($_POST) {
}
if (($_POST['gateway'] && !is_ipaddrv4($_POST['gateway']))) {
- $input_errors[] = gettext("A valid IP address must be specified for the gateway.");
+ $input_errors[] = gettext("A valid IPv4 address must be specified for the gateway.");
}
if (($_POST['wins1'] && !is_ipaddrv4($_POST['wins1'])) || ($_POST['wins2'] && !is_ipaddrv4($_POST['wins2']))) {
- $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary WINS servers.");
+ $input_errors[] = gettext("A valid IPv4 address must be specified for the primary/secondary WINS servers.");
}
$parent_ip = get_interface_ip($POST['if']);
@@ -249,7 +251,7 @@ if ($_POST) {
($_POST['dns2'] && !is_ipaddrv4($_POST['dns2'])) ||
($_POST['dns3'] && !is_ipaddrv4($_POST['dns3'])) ||
($_POST['dns4'] && !is_ipaddrv4($_POST['dns4']))) {
- $input_errors[] = gettext("A valid IP address must be specified for each of the DNS servers.");
+ $input_errors[] = gettext("A valid IPV4 address must be specified for each of the DNS servers.");
}
if ($_POST['deftime'] && (!is_numeric($_POST['deftime']) || ($_POST['deftime'] < 60))) {
@@ -262,7 +264,7 @@ if ($_POST) {
$input_errors[] = gettext("A valid domain name must be specified for the dynamic DNS registration.");
}
if (($_POST['ddnsdomain'] && !is_ipaddrv4($_POST['ddnsdomainprimary']))) {
- $input_errors[] = gettext("A valid primary domain name server IP address must be specified for the dynamic domain name.");
+ $input_errors[] = gettext("A valid primary domain name server IPv4 address must be specified for the dynamic domain name.");
}
if (($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname']) ||
($_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey'])) {
@@ -279,13 +281,19 @@ if ($_POST) {
}
if (($_POST['ntp1'] && !is_ipaddrv4($_POST['ntp1'])) || ($_POST['ntp2'] && !is_ipaddrv4($_POST['ntp2']))) {
- $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary NTP servers.");
+ $input_errors[] = gettext("A valid IPv4 address must be specified for the primary/secondary NTP servers.");
}
if ($_POST['tftp'] && !is_ipaddrv4($_POST['tftp']) && !is_domain($_POST['tftp']) && !filter_var($_POST['tftp'], FILTER_VALIDATE_URL)) {
- $input_errors[] = gettext("A valid IP address, hostname or URL must be specified for the TFTP server.");
+ $input_errors[] = gettext("A valid IPv4 address, hostname or URL must be specified for the TFTP server.");
}
if (($_POST['nextserver'] && !is_ipaddrv4($_POST['nextserver']))) {
- $input_errors[] = gettext("A valid IP address must be specified for the network boot server.");
+ $input_errors[] = gettext("A valid IPv4 address must be specified for the network boot server.");
+ }
+ if (isset($_POST['arp_table_static_entry']) && empty($_POST['mac'])) {
+ $input_errors[] = gettext("A valid MAC address must be specified for use with static ARP.");
+ }
+ if (isset($_POST['arp_table_static_entry']) && empty($_POST['ipaddr'])) {
+ $input_errors[] = gettext("A valid IPv4 address must be specified for use with static ARP.");
}
if (!$input_errors) {
@@ -331,6 +339,7 @@ if ($_POST) {
$mapent['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname'];
$mapent['ddnsdomainkey'] = $_POST['ddnsdomainkey'];
$mapent['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
+ $mapent['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false;
unset($mapent['ntpserver']);
if ($_POST['ntp1']) {
@@ -362,6 +371,13 @@ if ($_POST) {
}
}
+ /* Configure static ARP entry, or remove ARP entry if this host is dynamic. See https://redmine.pfsense.org/issues/6821 */
+ if ($mapent['arp_table_static_entry']) {
+ mwexec("/usr/sbin/arp -S " . escapeshellarg($mapent['ipaddr']) . " " . escapeshellarg($mapent['mac']));
+ } else {
+ mwexec("/usr/sbin/arp -d " . escapeshellarg($mapent['ipaddr']));
+ }
+
header("Location: services_dhcp.php?if={$if}");
exit;
}
@@ -424,7 +440,8 @@ $section->addInput(new Form_Input(
$section->addInput(new Form_IpAddress(
'ipaddr',
'IP Address',
- $pconfig['ipaddr']
+ $pconfig['ipaddr'],
+ 'V4'
))->setHelp('If an IPv4 address is entered, the address must be outside of the pool.' . '<br />' .
'If no IPv4 address is given, one will be dynamically allocated from the pool.');
@@ -578,6 +595,13 @@ $section->addInput(new Form_Checkbox(
$pconfig['ddnsupdate']
));
+$section->addInput(new Form_Checkbox(
+ 'ddnsforcehostname',
+ 'DDNS Hostname',
+ 'Make dynamic DNS registered hostname the same as Hostname above.',
+ $pconfig['ddnsforcehostname']
+));
+
$section->addInput(new Form_Input(
'ddnsdomain',
'DDNS Domain',
@@ -588,7 +612,8 @@ $section->addInput(new Form_Input(
$section->addInput(new Form_IpAddress(
'ddnsdomainprimary',
'DDNS Server IP',
- $pconfig['ddnsdomainprimary']
+ $pconfig['ddnsdomainprimary'],
+ 'V4'
))->setHelp('Enter the primary domain name server IP address for the dynamic domain name.');
$section->addInput(new Form_Input(
@@ -678,7 +703,7 @@ events.push(function() {
// On page load decide the initial state based on the data.
if (ispageload) {
<?php
- if (!$pconfig['ddnsupdate'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) &&
+ if (!$pconfig['ddnsupdate'] && !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) &&
empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkey'])) {
$showadv = false;
} else {
@@ -692,6 +717,7 @@ events.push(function() {
}
hideCheckbox('ddnsupdate', !showadvdns);
+ hideCheckbox('ddnsforcehostname', !showadvdns);
hideInput('ddnsdomain', !showadvdns);
hideInput('ddnsdomainprimary', !showadvdns);
hideInput('ddnsdomainkeyname', !showadvdns);
diff --git a/src/usr/local/www/services_dhcp_relay.php b/src/usr/local/www/services_dhcp_relay.php
index 949fe3c..fa1018c 100644
--- a/src/usr/local/www/services_dhcp_relay.php
+++ b/src/usr/local/www/services_dhcp_relay.php
@@ -3,7 +3,7 @@
* services_dhcp_relay.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2004 Justin Ellison <justin@techadvise.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/services_dhcpv6.php b/src/usr/local/www/services_dhcpv6.php
index 7bcc846..14965ef 100644
--- a/src/usr/local/www/services_dhcpv6.php
+++ b/src/usr/local/www/services_dhcpv6.php
@@ -3,7 +3,7 @@
* services_dhcpv6.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
@@ -75,11 +75,6 @@ if (!$g['services_dhcp_server_enable']) {
exit;
}
-/* Fix failover DHCP problem
- * http://article.gmane.org/gmane.comp.security.firewalls.pfsense.support/18749
- */
-ini_set("memory_limit", "64M");
-
$if = $_GET['if'];
if ($_POST['if']) {
$if = $_POST['if'];
@@ -139,6 +134,7 @@ if (is_array($config['dhcpdv6'][$if])) {
$pconfig['ddnsdomainkeyname'] = $config['dhcpdv6'][$if]['ddnsdomainkeyname'];
$pconfig['ddnsdomainkey'] = $config['dhcpdv6'][$if]['ddnsdomainkey'];
$pconfig['ddnsupdate'] = isset($config['dhcpdv6'][$if]['ddnsupdate']);
+ $pconfig['ddnsforcehostname'] = isset($config['dhcpdv6'][$if]['ddnsforcehostname']);
$pconfig['ddnsreverse'] = isset($config['dhcpdv6'][$if]['ddnsreverse']);
$pconfig['ddnsclientupdates'] = $config['dhcpdv6'][$if]['ddnsclientupdates'];
list($pconfig['ntp1'], $pconfig['ntp2']) = $config['dhcpdv6'][$if]['ntpserver'];
@@ -249,24 +245,30 @@ if (isset($_POST['apply'])) {
}
}
+ $range_from_to_ok = true;
+
if ($_POST['range_from']) {
if (!is_ipaddrv6($_POST['range_from'])) {
$input_errors[] = gettext("A valid range must be specified.");
+ $range_from_to_ok = false;
} elseif ($config['interfaces'][$if]['ipaddrv6'] == 'track6' &&
!Net_IPv6::isInNetmask($_POST['range_from'], '::', $ifcfgsn)) {
$input_errors[] = sprintf(gettext(
"The prefix (upper %s bits) must be zero. Use the form %s"),
$ifcfgsn, $str_help_mask);
+ $range_from_to_ok = false;
}
}
if ($_POST['range_to']) {
if (!is_ipaddrv6($_POST['range_to'])) {
$input_errors[] = gettext("A valid range must be specified.");
+ $range_from_to_ok = false;
} elseif ($config['interfaces'][$if]['ipaddrv6'] == 'track6' &&
!Net_IPv6::isInNetmask($_POST['range_to'], '::', $ifcfgsn)) {
$input_errors[] = sprintf(gettext(
"The prefix (upper %s bits) must be zero. Use the form %s"),
$ifcfgsn, $str_help_mask);
+ $range_from_to_ok = false;
}
}
if (($_POST['gateway'] && !is_ipaddrv6($_POST['gateway']))) {
@@ -319,7 +321,7 @@ if (isset($_POST['apply'])) {
}
// Disallow a range that includes the virtualip
- if (is_array($config['virtualip']['vip'])) {
+ if ($range_from_to_ok && is_array($config['virtualip']['vip'])) {
foreach ($config['virtualip']['vip'] as $vip) {
if ($vip['interface'] == $if) {
if ($vip['subnetv6'] && is_inrange_v6($vip['subnetv6'], $_POST['range_from'], $_POST['range_to'])) {
@@ -424,6 +426,7 @@ if (isset($_POST['apply'])) {
$config['dhcpdv6'][$if]['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname'];
$config['dhcpdv6'][$if]['ddnsdomainkey'] = $_POST['ddnsdomainkey'];
$config['dhcpdv6'][$if]['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false;
+ $config['dhcpdv6'][$if]['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false;
$config['dhcpdv6'][$if]['ddnsreverse'] = ($_POST['ddnsreverse']) ? true : false;
$config['dhcpdv6'][$if]['ddnsclientupdates'] = $_POST['ddnsclientupdates'];
@@ -750,11 +753,19 @@ $section->addInput(new Form_Input(
$pconfig['ddnsdomain']
))->setHelp('Leave blank to disable dynamic DNS registration. Enter the dynamic DNS domain which will be used to register client names in the DNS server.');
+$section->addInput(new Form_Checkbox(
+ 'ddnsforcehostname',
+ 'DDNS Hostnames',
+ 'Force dynamic DNS hostname to be the same as configured hostname for Static Mappings',
+ $pconfig['ddnsforcehostname']
+))->setHelp('Default registers host name option supplied by DHCP client.');
+
$section->addInput(new Form_IpAddress(
'ddnsdomainprimary',
'DDNS Server IP',
- $pconfig['ddnsdomainprimary']
-))->setHelp('Enter the primary domain name server IP address for the dynamic domain name.');
+ $pconfig['ddnsdomainprimary'],
+ 'V4'
+))->setHelp('Enter the primary domain name server IPv4 address for the dynamic domain name.');
$section->addInput(new Form_Input(
'ddnsdomainkeyname',
@@ -1043,6 +1054,7 @@ events.push(function() {
if (ispageload) {
<?php
if (!$pconfig['ddnsupdate'] &&
+ !$pconfig['ddnsforcehostname'] &&
empty($pconfig['ddnsdomain']) &&
empty($pconfig['ddnsdomainprimary']) &&
empty($pconfig['ddnsdomainkeyname']) &&
@@ -1062,6 +1074,7 @@ events.push(function() {
hideCheckbox('ddnsupdate', !showadvdns);
hideInput('ddnsdomain', !showadvdns);
+ hideCheckbox('ddnsforcehostname', !showadvdns);
hideInput('ddnsdomainprimary', !showadvdns);
hideInput('ddnsdomainkeyname', !showadvdns);
hideInput('ddnsdomainkey', !showadvdns);
diff --git a/src/usr/local/www/services_dhcpv6_edit.php b/src/usr/local/www/services_dhcpv6_edit.php
index 8dde1f9..3882e0f 100644
--- a/src/usr/local/www/services_dhcpv6_edit.php
+++ b/src/usr/local/www/services_dhcpv6_edit.php
@@ -3,7 +3,7 @@
* services_dhcpv6_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/services_dhcpv6_relay.php b/src/usr/local/www/services_dhcpv6_relay.php
index cfeef93..a80b529 100644
--- a/src/usr/local/www/services_dhcpv6_relay.php
+++ b/src/usr/local/www/services_dhcpv6_relay.php
@@ -3,7 +3,7 @@
* services_dhcpv6_relay.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2004 Justin Ellison <justin@techadvise.com>
* Copyright (c) 2010 Seth Mos
* All rights reserved.
diff --git a/src/usr/local/www/services_dnsmasq.php b/src/usr/local/www/services_dnsmasq.php
index 8f82bfa..fb74e7b 100644
--- a/src/usr/local/www/services_dnsmasq.php
+++ b/src/usr/local/www/services_dnsmasq.php
@@ -3,7 +3,7 @@
* services_dnsmasq.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com>
* All rights reserved.
*
@@ -37,6 +37,36 @@ require_once("filter.inc");
require_once("shaper.inc");
require_once("system.inc");
+// Sort host entries for display in alphabetical order
+function hostcmp($a, $b) {
+ return strcasecmp($a['host'], $b['host']);
+}
+
+function hosts_sort() {
+ global $a_hosts;
+
+ if (!is_array($a_hosts)) {
+ return;
+ }
+
+ usort($a_hosts, "hostcmp");
+}
+
+// Sort domain entries for display in alphabetical order
+function domaincmp($a, $b) {
+ return strcasecmp($a['domain'], $b['domain']);
+}
+
+function domains_sort() {
+ global $a_domainOverrides;
+
+ if (!is_array($a_domainOverrides)) {
+ return;
+ }
+
+ usort($a_domainOverrides, "domaincmp");
+}
+
$pconfig['enable'] = isset($config['dnsmasq']['enable']);
$pconfig['regdhcp'] = isset($config['dnsmasq']['regdhcp']);
$pconfig['regdhcpstatic'] = isset($config['dnsmasq']['regdhcpstatic']);
@@ -46,8 +76,8 @@ $pconfig['domain_needed'] = isset($config['dnsmasq']['domain_needed']);
$pconfig['no_private_reverse'] = isset($config['dnsmasq']['no_private_reverse']);
$pconfig['port'] = $config['dnsmasq']['port'];
$pconfig['custom_options'] = $config['dnsmasq']['custom_options'];
-
$pconfig['strictbind'] = isset($config['dnsmasq']['strictbind']);
+
if (!empty($config['dnsmasq']['interface'])) {
$pconfig['interface'] = explode(",", $config['dnsmasq']['interface']);
} else {
@@ -63,8 +93,23 @@ if (!is_array($config['dnsmasq']['domainoverrides'])) {
}
$a_hosts = &$config['dnsmasq']['hosts'];
+
+// Add a temporary index so we don't lose the order after sorting
+for ($idx=0; $idx<count($a_hosts); $idx++) {
+ $a_hosts[$idx]['idx'] = $idx;
+}
+
+hosts_sort();
+
$a_domainOverrides = &$config['dnsmasq']['domainoverrides'];
+// Add a temporary index so we don't lose the order after sorting
+for ($idx=0; $idx<count($a_domainOverrides); $idx++) {
+ $a_domainOverrides[$idx]['idx'] = $idx;
+}
+
+domains_sort();
+
if ($_POST) {
if ($_POST['apply']) {
$retval = 0;
@@ -341,8 +386,8 @@ foreach ($a_hosts as $i => $hostent):
<?=htmlspecialchars($hostent['descr'])?>
</td>
<td>
- <a class="fa fa-pencil" title="<?=gettext('Edit host override')?>" href="services_dnsmasq_edit.php?id=<?=$i?>"></a>
- <a class="fa fa-trash" title="<?=gettext('Delete host override')?>" href="services_dnsmasq.php?type=host&amp;act=del&amp;id=<?=$i?>"></a>
+ <a class="fa fa-pencil" title="<?=gettext('Edit host override')?>" href="services_dnsmasq_edit.php?id=<?=$hostent['idx']?>"></a>
+ <a class="fa fa-trash" title="<?=gettext('Delete host override')?>" href="services_dnsmasq.php?type=host&amp;act=del&amp;id=<?=$hostent['idx']?>"></a>
</td>
</tr>
@@ -413,8 +458,8 @@ foreach ($a_domainOverrides as $i => $doment):
<?=htmlspecialchars($doment['descr'])?>
</td>
<td>
- <a class="fa fa-pencil" title="<?=gettext('Edit domain override')?>" href="services_dnsmasq_domainoverride_edit.php?id=<?=$i?>"></a>
- <a class="fa fa-trash" title="<?=gettext('Delete domain override')?>" href="services_dnsmasq.php?act=del&amp;type=doverride&amp;id=<?=$i?>"></a>
+ <a class="fa fa-pencil" title="<?=gettext('Edit domain override')?>" href="services_dnsmasq_domainoverride_edit.php?id=<?=$doment['idx']?>"></a>
+ <a class="fa fa-trash" title="<?=gettext('Delete domain override')?>" href="services_dnsmasq.php?act=del&amp;type=doverride&amp;id=<?=$doment['idx']?>"></a>
</td>
</tr>
<?php
diff --git a/src/usr/local/www/services_dnsmasq_domainoverride_edit.php b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php
index 4fbb82e..7512e25 100644
--- a/src/usr/local/www/services_dnsmasq_domainoverride_edit.php
+++ b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php
@@ -3,7 +3,7 @@
* services_dnsmasq_domainoverride_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/services_dnsmasq_edit.php b/src/usr/local/www/services_dnsmasq_edit.php
index ea559fe..1d7062a 100644
--- a/src/usr/local/www/services_dnsmasq_edit.php
+++ b/src/usr/local/www/services_dnsmasq_edit.php
@@ -3,7 +3,7 @@
* services_dnsmasq_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com>
* All rights reserved.
*
@@ -31,20 +31,6 @@
##|*MATCH=services_dnsmasq_edit.php*
##|-PRIV
-function hostcmp($a, $b) {
- return strcasecmp($a['host'], $b['host']);
-}
-
-function hosts_sort() {
- global $g, $config;
-
- if (!is_array($config['dnsmasq']['hosts'])) {
- return;
- }
-
- usort($config['dnsmasq']['hosts'], "hostcmp");
-}
-
require_once("guiconfig.inc");
if (!is_array($config['dnsmasq']['hosts'])) {
@@ -139,6 +125,7 @@ if ($_POST) {
}
}
}
+
/* check for overlaps */
foreach ($a_hosts as $hostent) {
if (isset($id) && ($a_hosts[$id]) && ($a_hosts[$id] === $hostent)) {
@@ -167,7 +154,6 @@ if ($_POST) {
} else {
$a_hosts[] = $hostent;
}
- hosts_sort();
mark_subsystem_dirty('hosts');
diff --git a/src/usr/local/www/services_dyndns.php b/src/usr/local/www/services_dyndns.php
index 9284c3c..a8f17f2 100644
--- a/src/usr/local/www/services_dyndns.php
+++ b/src/usr/local/www/services_dyndns.php
@@ -3,7 +3,7 @@
* services_dyndns.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -33,10 +33,11 @@ if (!is_array($config['dyndnses']['dyndns'])) {
}
$a_dyndns = &$config['dyndnses']['dyndns'];
+global $dyndns_split_domain_types;
if ($_GET['act'] == "del") {
$conf = $a_dyndns[$_GET['id']];
- if ($conf['type'] == "namecheap") {
+ if (in_array($conf['type'], $dyndns_split_domain_types)) {
$hostname = $conf['host'] . "." . $conf['domainname'];
} else {
$hostname = $conf['host'];
@@ -96,7 +97,7 @@ display_top_tabs($tab_array);
<?php
$i = 0;
foreach ($a_dyndns as $dyndns):
- if ($dyndns['type'] == "namecheap") {
+ if (in_array($dyndns['type'], $dyndns_split_domain_types)) {
$hostname = $dyndns['host'] . "." . $dyndns['domainname'];
} else {
$hostname = $dyndns['host'];
diff --git a/src/usr/local/www/services_dyndns_edit.php b/src/usr/local/www/services_dyndns_edit.php
index 060d624..55860f0 100644
--- a/src/usr/local/www/services_dyndns_edit.php
+++ b/src/usr/local/www/services_dyndns_edit.php
@@ -3,7 +3,7 @@
* services_dyndns_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -76,6 +76,7 @@ if (isset($id) && isset($a_dyndns[$id])) {
}
if ($_POST) {
+ global $dyndns_split_domain_types;
unset($input_errors);
$pconfig = $_POST;
@@ -96,7 +97,7 @@ if ($_POST) {
$reqdfieldsn[] = gettext("Password");
$reqdfields[] = "username";
$reqdfieldsn[] = gettext("Username");
- if ($pconfig['type'] == "namecheap") {
+ if (in_array($pconfig['type'], $dyndns_split_domain_types)) {
$reqdfields[] = "domainname";
$reqdfieldsn[] = gettext("Domain name");
}
@@ -149,7 +150,7 @@ if ($_POST) {
$dyndns['type'] = $_POST['type'];
$dyndns['username'] = $_POST['username'];
if ($_POST['passwordfld'] != DMYPWD) {
- $dyndns['password'] = $_POST['passwordfld'];
+ $dyndns['password'] = base64_encode($_POST['passwordfld']);
} else {
$dyndns['password'] = $a_dyndns[$id]['password'];;
}
@@ -302,7 +303,7 @@ $group->setHelp('Enter the complete fully qualified domain name. Example: myhost
'he.net tunnelbroker: Enter the tunnel ID.' . '<br />' .
'GleSYS: Enter the record ID.' . '<br />' .
'DNSimple: Enter only the domain name.' . '<br />' .
- 'Namecheap: Enter the hostname and the domain separately, with the domain being the domain or subdomain zone being handled by Namecheap.');
+ 'Namecheap, Cloudflare, GratisDNS: Enter the hostname and the domain separately, with the domain being the domain or subdomain zone being handled by the provider.');
$section->add($group);
@@ -459,6 +460,9 @@ events.push(function() {
hideInput('ttl', false);
break;
case "namecheap":
+ case "cloudflare-v6":
+ case "cloudflare":
+ case "gratisdns":
hideGroupInput('domainname', false);
hideInput('resultmatch', true);
hideInput('updateurl', true);
diff --git a/src/usr/local/www/services_igmpproxy.php b/src/usr/local/www/services_igmpproxy.php
index 7a8db1d..f3b8775 100644
--- a/src/usr/local/www/services_igmpproxy.php
+++ b/src/usr/local/www/services_igmpproxy.php
@@ -3,7 +3,7 @@
* services_igmpproxy.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/services_igmpproxy_edit.php b/src/usr/local/www/services_igmpproxy_edit.php
index c862424..9c7d495 100644
--- a/src/usr/local/www/services_igmpproxy_edit.php
+++ b/src/usr/local/www/services_igmpproxy_edit.php
@@ -3,7 +3,7 @@
* services_igmpproxy_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -224,7 +224,7 @@ foreach ($item as $ww) {
null,
$address,
['placeholder' => 'Address']
- ))->sethelp($tracker == $rows ? 'Network/CIDR':null)->addMask('address_subnet' . $tracker, $address_subnet)->setWidth(4)->setPattern('[a-zA-Z0-9\_\.\:]+');
+ ))->sethelp($tracker == $rows ? 'Network/CIDR':null)->addMask('address_subnet' . $tracker, $address_subnet)->setWidth(4)->setPattern('[a-zA-Z0-9_.:]+');
$group->add(new Form_Button(
'deleterow' . $counter,
diff --git a/src/usr/local/www/services_ntpd.php b/src/usr/local/www/services_ntpd.php
index c25d1b0..8f170bf 100644
--- a/src/usr/local/www/services_ntpd.php
+++ b/src/usr/local/www/services_ntpd.php
@@ -3,7 +3,7 @@
* services_ntpd.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Dagorlad
* All rights reserved.
*
@@ -68,6 +68,7 @@ if ($_POST) {
unset($config['ntpd']['prefer']);
unset($config['ntpd']['noselect']);
+ unset($config['ntpd']['ispool']);
$timeservers = '';
for ($i = 0; $i < NUMTIMESERVERS; $i++) {
@@ -80,6 +81,9 @@ if ($_POST) {
if (!empty($_POST["servselect{$i}"])) {
$config['ntpd']['noselect'] .= "{$tserver} ";
}
+ if (!empty($_POST["servispool{$i}"])) {
+ $config['ntpd']['ispool'] .= "{$tserver} ";
+ }
}
}
if (trim($timeservers) == "") {
@@ -218,6 +222,7 @@ $section->addInput(new Form_Select(
$timeservers = explode(' ', $config['system']['timeservers']);
$maxrows = max(count($timeservers), 1);
+$auto_pool_suffix = "pool.ntp.org";
for ($counter=0; $counter < $maxrows; $counter++) {
$group = new Form_Group($counter == 0 ? 'Time Servers':'');
$group->addClass('repeatable');
@@ -244,6 +249,14 @@ for ($counter=0; $counter < $maxrows; $counter++) {
isset($config['ntpd']['noselect']) && isset($timeservers[$counter]) && substr_count($config['ntpd']['noselect'], $timeservers[$counter])
))->sethelp('No Select');
+ $group->add(new Form_Checkbox(
+ 'servispool' . $counter,
+ null,
+ null,
+ (substr_compare($timeservers[$counter], $auto_pool_suffix, strlen($timeservers[$counter]) - strlen($auto_pool_suffix), strlen($auto_pool_suffix)) === 0)
+ || (isset($config['ntpd']['ispool']) && isset($timeservers[$counter]) && substr_count($config['ntpd']['ispool'], $timeservers[$counter]))
+ ))->sethelp('Is a Pool');
+
$group->add(new Form_Button(
'deleterow' . $counter,
'Delete',
@@ -264,9 +277,10 @@ $section->addInput(new Form_Button(
$section->addInput(new Form_StaticText(
null,
$btnaddrow
-))->setHelp('For best results three to five servers should be configured here.' . '<br />' .
- 'The prefer option indicates that NTP should favor the use of this server more than all others.' . '<br />' .
- 'The no select option indicates that NTP should not use this server for time, but stats for this server will be collected and displayed.');
+))->setHelp('For best results three to five servers should be configured here, or at least one pool.' . '<br />' .
+ 'The <b>Prefer</b> option indicates that NTP should favor the use of this server more than all others.' . '<br />' .
+ 'The <b>No Select</b> option indicates that NTP should not use this server for time, but stats for this server will be collected and displayed.' . '<br />' .
+ 'The <b>Is a Pool</b> option indicates this entry is a pool of NTP servers and not a single address. This is assumed for *.pool.ntp.org.');
$section->addInput(new Form_Input(
'ntporphan',
diff --git a/src/usr/local/www/services_ntpd_acls.php b/src/usr/local/www/services_ntpd_acls.php
index 1c3fb7f..a69a2a1 100644
--- a/src/usr/local/www/services_ntpd_acls.php
+++ b/src/usr/local/www/services_ntpd_acls.php
@@ -3,7 +3,7 @@
* services_ntpd_acls.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Dagorlad
* All rights reserved.
*
diff --git a/src/usr/local/www/services_ntpd_gps.php b/src/usr/local/www/services_ntpd_gps.php
index 4cda5b5..971d57e 100644
--- a/src/usr/local/www/services_ntpd_gps.php
+++ b/src/usr/local/www/services_ntpd_gps.php
@@ -3,7 +3,7 @@
* services_ntpd_gps.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Dagorlad
* All rights reserved.
*
diff --git a/src/usr/local/www/services_ntpd_pps.php b/src/usr/local/www/services_ntpd_pps.php
index c70e676..da987f7 100644
--- a/src/usr/local/www/services_ntpd_pps.php
+++ b/src/usr/local/www/services_ntpd_pps.php
@@ -3,7 +3,7 @@
* services_ntpd_pps.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Dagorlad
* All rights reserved.
*
diff --git a/src/usr/local/www/services_pppoe.php b/src/usr/local/www/services_pppoe.php
index 5aa0874..a8b0f03 100644
--- a/src/usr/local/www/services_pppoe.php
+++ b/src/usr/local/www/services_pppoe.php
@@ -3,7 +3,7 @@
* services_pppoe.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/services_pppoe_edit.php b/src/usr/local/www/services_pppoe_edit.php
index afcf478..633af97 100644
--- a/src/usr/local/www/services_pppoe_edit.php
+++ b/src/usr/local/www/services_pppoe_edit.php
@@ -3,7 +3,7 @@
* services_pppoe_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/services_rfc2136.php b/src/usr/local/www/services_rfc2136.php
index 7d009bf..c7ef152 100644
--- a/src/usr/local/www/services_rfc2136.php
+++ b/src/usr/local/www/services_rfc2136.php
@@ -3,7 +3,7 @@
* services_rfc2136.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/services_rfc2136_edit.php b/src/usr/local/www/services_rfc2136_edit.php
index 9153949..41a7c5b 100644
--- a/src/usr/local/www/services_rfc2136_edit.php
+++ b/src/usr/local/www/services_rfc2136_edit.php
@@ -3,7 +3,7 @@
* services_rfc2136_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/services_router_advertisements.php b/src/usr/local/www/services_router_advertisements.php
index e2df3e4..c805876 100644
--- a/src/usr/local/www/services_router_advertisements.php
+++ b/src/usr/local/www/services_router_advertisements.php
@@ -3,7 +3,7 @@
* services_router_advertisements.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
@@ -38,11 +38,6 @@ if (!$g['services_dhcp_server_enable']) {
exit;
}
-/* Fix failover DHCP problem
- * http://article.gmane.org/gmane.comp.security.firewalls.pfsense.support/18749
- */
-ini_set("memory_limit", "64M");
-
$if = $_GET['if'];
if ($_POST['if']) {
$if = $_POST['if'];
@@ -436,7 +431,7 @@ for ($idx=1; $idx<=3; $idx++) {
'radns' . $idx,
'Server ' . $idx,
$pconfig['radns' . $idx]
- ))->setPattern('[a-zA-Z0-9\_\.\:]+')->setHelp(($idx < 3) ? '':'Leave blank to use the system default DNS servers - this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the General page');
+ ))->setPattern('[a-zA-Z0-9_.:]+')->setHelp(($idx < 3) ? '':'Leave blank to use the system default DNS servers - this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the General page');
}
$section->addInput(new Form_Input(
diff --git a/src/usr/local/www/services_snmp.php b/src/usr/local/www/services_snmp.php
index 69c770d..66caf4f 100644
--- a/src/usr/local/www/services_snmp.php
+++ b/src/usr/local/www/services_snmp.php
@@ -3,7 +3,7 @@
* services_snmp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -71,7 +71,11 @@ $pconfig['hostres'] = isset($config['snmpd']['modules']['hostres']);
$pconfig['bridge'] = isset($config['snmpd']['modules']['bridge']);
$pconfig['ucd'] = isset($config['snmpd']['modules']['ucd']);
$pconfig['regex'] = isset($config['snmpd']['modules']['regex']);
-$pconfig['bindip'] = $config['snmpd']['bindip'];
+if (empty($config['snmpd']['bindip'])) {
+ $pconfig['bindip'] = array();
+} else {
+ $pconfig['bindip'] = explode(",", $config['snmpd']['bindip']);
+}
if ($_POST) {
@@ -151,7 +155,9 @@ if ($_POST) {
$config['snmpd']['modules']['bridge'] = $_POST['bridge'] ? true : false;
$config['snmpd']['modules']['ucd'] = $_POST['ucd'] ? true : false;
$config['snmpd']['modules']['regex'] = $_POST['regex'] ? true : false;
- $config['snmpd']['bindip'] = $_POST['bindip'];
+ if (is_array($_POST['bindip']) && !empty($_POST['bindip'])) {
+ $config['snmpd']['bindip'] = implode(",", $_POST['bindip']);
+ }
write_config();
@@ -161,17 +167,28 @@ if ($_POST) {
}
}
-function build_iplist() {
- $listenips = get_possible_listen_ips();
- $iplist = array();
- $iplist[''] = 'All';
+function build_if_list($selectedifs) {
+ $interface_addresses = get_possible_listen_ips(true);
+ $iflist = array('options' => array(), 'selected' => array());
+
+ $iflist['options']['all'] = gettext("All");
+ if (empty($selectedifs) || empty($selectedifs[0]) || in_array("all", $selectedifs)) {
+ array_push($iflist['selected'], "all");
+ }
+
+ foreach ($interface_addresses as $laddr => $ldescr) {
+ if (is_ipaddr(get_interface_ip($laddr))) {
+ $iflist['options'][$laddr] = htmlspecialchars($ldescr);
+ }
- foreach ($listenips as $lip => $ldescr) {
- $iplist[$lip] = $ldescr;
+ if ($selectedifs && in_array($laddr, $selectedifs)) {
+ array_push($iflist['selected'], $laddr);
+ }
}
- unset($listenips);
- return($iplist);
+ unset($interface_addresses);
+
+ return($iflist);
}
$pgtitle = array(gettext("Services"), gettext("SNMP"));
@@ -325,11 +342,14 @@ $form->add($section);
$section = new Form_Section('Interface Binding');
+$iflist = build_if_list($pconfig['bindip']);
+
$section->addInput(new Form_Select(
'bindip',
- 'Bind Interface',
- $pconfig['bindip'],
- build_iplist()
+ 'Bind Interfaces',
+ $iflist['selected'],
+ $iflist['options'],
+ true
));
$form->add($section);
diff --git a/src/usr/local/www/services_unbound.php b/src/usr/local/www/services_unbound.php
index 37f5c91..b79548c 100644
--- a/src/usr/local/www/services_unbound.php
+++ b/src/usr/local/www/services_unbound.php
@@ -3,7 +3,7 @@
* services_unbound.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2014 Warren Baker (warren@pfsense.org)
* All rights reserved.
*
@@ -285,7 +285,7 @@ $section->addInput(new Form_Select(
$activeiflist['selected'],
$activeiflist['options'],
true
-))->addClass('general')->setHelp('Interface IPs used by the DNS Resolver for responding to queries from clients. If an interface has both IPv4 and IPv6 IPs, both are used. Queries to other interface IPs not selected below are discarded. ' .
+))->addClass('general', 'resizable')->setHelp('Interface IPs used by the DNS Resolver for responding to queries from clients. If an interface has both IPv4 and IPv6 IPs, both are used. Queries to other interface IPs not selected below are discarded. ' .
'The default behavior is to respond to queries on every available IPv4 and IPv6 address.');
$outiflist = build_if_list($pconfig['outgoing_interface']);
@@ -296,7 +296,7 @@ $section->addInput(new Form_Select(
$outiflist['selected'],
$outiflist['options'],
true
-))->addClass('general')->setHelp('Utilize different network interface(s) that the DNS Resolver will use to send queries to authoritative servers and receive their replies. By default all interfaces are used.');
+))->addClass('general', 'resizable')->setHelp('Utilize different network interface(s) that the DNS Resolver will use to send queries to authoritative servers and receive their replies. By default all interfaces are used.');
$section->addInput(new Form_Select(
'system_domain_local_zone_type',
diff --git a/src/usr/local/www/services_unbound_acls.php b/src/usr/local/www/services_unbound_acls.php
index fdaf0b2..bec6357 100644
--- a/src/usr/local/www/services_unbound_acls.php
+++ b/src/usr/local/www/services_unbound_acls.php
@@ -3,7 +3,7 @@
* services_unbound_acls.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2014 Warren Baker (warren@pfsense.org)
* All rights reserved.
*
diff --git a/src/usr/local/www/services_unbound_advanced.php b/src/usr/local/www/services_unbound_advanced.php
index bed84f3..14bb376 100644
--- a/src/usr/local/www/services_unbound_advanced.php
+++ b/src/usr/local/www/services_unbound_advanced.php
@@ -3,7 +3,7 @@
* services_unbound_advanced.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2014 Warren Baker (warren@pfsense.org)
* All rights reserved.
*
diff --git a/src/usr/local/www/services_unbound_domainoverride_edit.php b/src/usr/local/www/services_unbound_domainoverride_edit.php
index 55274d4..f204684 100644
--- a/src/usr/local/www/services_unbound_domainoverride_edit.php
+++ b/src/usr/local/www/services_unbound_domainoverride_edit.php
@@ -3,7 +3,7 @@
* services_unbound_domainoverride_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2014 Warren Baker (warren@decoy.co.za)
* Copyright (c) 2003-2005 Bob Zoller <bob@kludgebox.com>
* All rights reserved.
@@ -133,7 +133,7 @@ $section->addInput(new Form_IpAddress(
'IP Address',
$pconfig['ip']
))->setHelp('IP address of the authoritative DNS server for this domain. e.g.: 192.168.100.100' . '<br />' .
- 'To use a non-default port for communication, append an \'@\' with the port number.')->setPattern('[a-zA-Z0-9\@\.\:]+');
+ 'To use a non-default port for communication, append an \'@\' with the port number.')->setPattern('[a-zA-Z0-9@.:]+');
$section->addInput(new Form_Input(
'descr',
diff --git a/src/usr/local/www/services_unbound_host_edit.php b/src/usr/local/www/services_unbound_host_edit.php
index 2b16380..93e01fe 100644
--- a/src/usr/local/www/services_unbound_host_edit.php
+++ b/src/usr/local/www/services_unbound_host_edit.php
@@ -3,7 +3,7 @@
* services_unbound_host_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2014 Warren Baker (warren@decoy.co.za)
* Copyright (c) 2003-2005 Bob Zoller <bob@kludgebox.com>
* All rights reserved.
diff --git a/src/usr/local/www/services_wol.php b/src/usr/local/www/services_wol.php
index 23832c0..7aefd0b 100644
--- a/src/usr/local/www/services_wol.php
+++ b/src/usr/local/www/services_wol.php
@@ -3,7 +3,7 @@
* services_wol.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/services_wol_edit.php b/src/usr/local/www/services_wol_edit.php
index 0616a0d..bce57fc 100644
--- a/src/usr/local/www/services_wol_edit.php
+++ b/src/usr/local/www/services_wol_edit.php
@@ -3,7 +3,7 @@
* services_wol_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/shortcuts.inc b/src/usr/local/www/shortcuts.inc
index 291eeb9..6f668bd 100644
--- a/src/usr/local/www/shortcuts.inc
+++ b/src/usr/local/www/shortcuts.inc
@@ -3,7 +3,7 @@
* shortcuts.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -247,10 +247,6 @@ $shortcuts['ntp']['log'] = "status_logs.php?logfile=ntpd";
$shortcuts['ntp']['status'] = "status_ntpd.php";
$shortcuts['ntp']['service'] = "ntpd";
-$shortcuts['pptps'] = array();
-$shortcuts['pptps']['main'] = "vpn_pptp.php";
-$shortcuts['pptps']['log'] = "status_logs_vpn.php";
-
$shortcuts['pppoes'] = array();
$shortcuts['pppoes']['main'] = "services_pppoe.php";
$shortcuts['pppoes']['log'] = "status_logs_vpn.php?vpntype=poes";
diff --git a/src/usr/local/www/shortcuts/pkg_upnp.inc b/src/usr/local/www/shortcuts/pkg_upnp.inc
index 909bc04..16f286d 100644
--- a/src/usr/local/www/shortcuts/pkg_upnp.inc
+++ b/src/usr/local/www/shortcuts/pkg_upnp.inc
@@ -3,7 +3,7 @@
* pkg_upnp.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/stats.php b/src/usr/local/www/stats.php
index 117f930..bccb98c 100644
--- a/src/usr/local/www/stats.php
+++ b/src/usr/local/www/stats.php
@@ -3,7 +3,7 @@
* stats.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/status.php b/src/usr/local/www/status.php
index a4a8c20..da2c762 100644
--- a/src/usr/local/www/status.php
+++ b/src/usr/local/www/status.php
@@ -3,7 +3,7 @@
* status.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://neon1.net/m0n0wall)
@@ -165,7 +165,7 @@ defCmdT("System Uptime", "/usr/bin/uptime");
defCmdT("Interfaces", "/sbin/ifconfig -a");
defCmdT("Interface Statistics", "/usr/bin/netstat -nWi");
defCmdT("Top Process Info", "/usr/bin/top | /usr/bin/head -n5");
-defCmdT("Processes", "/bin/ps xauww");
+defCmdT("Processes", "/bin/ps xauwwd");
defCmdT("Mounted Filesystems", "/sbin/mount");
defCmdT("Free Disk Space", "/bin/df -hi");
defCmdT("Routing tables", "/usr/bin/netstat -nWr");
@@ -185,7 +185,7 @@ defCmdT("pf Info", "/sbin/pfctl -si");
defCmdT("pf Show All", "/sbin/pfctl -sa");
defCmdT("pf Queues", "/sbin/pfctl -s queue -v");
defCmdT("pf OSFP", "/sbin/pfctl -s osfp");
-defCmdT("pfsync Stats", "/usr/bin/netstat -s -ppfsync");
+defCmdT("Network Protocol Statistics", "/usr/bin/netstat -s");
defCmdT("pftop Default", "/usr/local/sbin/pftop -a -b");
defCmdT("pftop Long", "/usr/local/sbin/pftop -w 150 -a -b -v long");
defCmdT("pftop Queue", "/usr/local/sbin/pftop -w 150 -a -b -v queue");
diff --git a/src/usr/local/www/status_captiveportal.php b/src/usr/local/www/status_captiveportal.php
index 02de882..bf9b81b 100644
--- a/src/usr/local/www/status_captiveportal.php
+++ b/src/usr/local/www/status_captiveportal.php
@@ -3,7 +3,7 @@
* status_captiveportal.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -61,7 +61,7 @@ if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid'])) {
}
if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid) && isset($_GET['id'])) {
- captiveportal_disconnect_client($_GET['id']);
+ captiveportal_disconnect_client($_GET['id'], 6);
header("Location: status_captiveportal.php?zone={$cpzone}");
exit;
}
diff --git a/src/usr/local/www/status_captiveportal_expire.php b/src/usr/local/www/status_captiveportal_expire.php
index 1b6ccdf..d1e1292 100644
--- a/src/usr/local/www/status_captiveportal_expire.php
+++ b/src/usr/local/www/status_captiveportal_expire.php
@@ -3,7 +3,7 @@
* status_captiveportal_expire.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_captiveportal_test.php b/src/usr/local/www/status_captiveportal_test.php
index a353844..13363af 100644
--- a/src/usr/local/www/status_captiveportal_test.php
+++ b/src/usr/local/www/status_captiveportal_test.php
@@ -3,7 +3,7 @@
* status_captiveportal_test.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_captiveportal_voucher_rolls.php b/src/usr/local/www/status_captiveportal_voucher_rolls.php
index a27a05f..4f3e7a8 100644
--- a/src/usr/local/www/status_captiveportal_voucher_rolls.php
+++ b/src/usr/local/www/status_captiveportal_voucher_rolls.php
@@ -3,7 +3,7 @@
* status_captiveportal_voucher_rolls.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_captiveportal_vouchers.php b/src/usr/local/www/status_captiveportal_vouchers.php
index e77c2d5..63b39d1 100644
--- a/src/usr/local/www/status_captiveportal_vouchers.php
+++ b/src/usr/local/www/status_captiveportal_vouchers.php
@@ -3,7 +3,7 @@
* status_captiveportal_vouchers.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Marcel Wiget <mwiget@mac.com>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_carp.php b/src/usr/local/www/status_carp.php
index 8b0311f..eb5070d 100644
--- a/src/usr/local/www/status_carp.php
+++ b/src/usr/local/www/status_carp.php
@@ -3,7 +3,7 @@
* status_carp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/status_dhcp_leases.php b/src/usr/local/www/status_dhcp_leases.php
index dff4804..3f148a9 100644
--- a/src/usr/local/www/status_dhcp_leases.php
+++ b/src/usr/local/www/status_dhcp_leases.php
@@ -3,7 +3,7 @@
* status_dhcp_leases.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_dhcpv6_leases.php b/src/usr/local/www/status_dhcpv6_leases.php
index 6fa390d..1357b9f 100644
--- a/src/usr/local/www/status_dhcpv6_leases.php
+++ b/src/usr/local/www/status_dhcpv6_leases.php
@@ -3,7 +3,7 @@
* status_dhcpv6_leases.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2011 Seth Mos
* All rights reserved.
*
@@ -159,8 +159,15 @@ $cleanpattern = "'/^ia-.. /, /^}/ !d; s,;$,,; s, *, ,g'";
/* Join each block in single line */
$splitpattern = "'{printf $0}; $0 ~ /^\}/ {printf \"\\n\"}'";
-/* stuff the leases file in a proper format into a array by line */
-exec("{$sed} {$cleanpattern} {$leasesfile} | {$awk} {$splitpattern}", $leases_content);
+if (is_file($leasesfile)) {
+ /* stuff the leases file in a proper format into an array by line */
+ exec("{$sed} {$cleanpattern} {$leasesfile} | {$awk} {$splitpattern}", $leases_content);
+ $leasesfile_found = true;
+} else {
+ $leases_content = array();
+ $leasesfile_found = false;
+}
+
$leases_count = count($leases_content);
exec("/usr/sbin/ndp -an", $rawdata);
$ndpdata = array();
@@ -415,7 +422,7 @@ if (count($pools) > 0) {
/* only print pool status when we have one */
}
-if (empty($leases)) {
+if (!$leasesfile_found) {
print_info_box(gettext("No leases file found. Is the DHCPv6 server active?"), 'warning', false);
}
diff --git a/src/usr/local/www/status_filter_reload.php b/src/usr/local/www/status_filter_reload.php
index dd7c3ec..edc3ec4 100644
--- a/src/usr/local/www/status_filter_reload.php
+++ b/src/usr/local/www/status_filter_reload.php
@@ -3,7 +3,7 @@
* status_filter_reload.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -55,7 +55,6 @@ if ($_POST['syncfilter']) {
include("head.inc");
?>
-
<div class="panel panel-default">
<div class="panel-heading"><h2 class="panel-title"><?=gettext("Filter Reload");?></h2></div>
<div class="panel-body">
@@ -69,19 +68,19 @@ if ($config['hasync'] && $config['hasync']["synchronizetoip"] != ""): ?>
endif;
?>
</form>
-
<br />
-
- <div id="status" class="panel panel-default">
- <?=$status; ?>
- </div>
-
- <div id="doneurl">
+ <div id="doneurl"></div>
+ <br />
+ <div class="panel panel-default">
+ <div class="panel-heading"><h2 class="panel-title"><?=gettext("Reload status")?></h2></div>
+ <div class="panel-body" id="status">
+ </div>
</div>
-
<br/>
+<?php if (!$_GET['user']) { ?>
<div id="reloadinfo"><?=gettext("This page will automatically refresh every 3 seconds until the filter is done reloading."); ?></div>
+<?php } ?>
</div>
</div>
@@ -98,23 +97,21 @@ function update_data(obj) {
var result_text = obj.content;
var result_text_split = result_text.split("|");
result_text = result_text_split[1];
- result_text = result_text.replace("\n", "");
- result_text = result_text.replace("\r", "");
+
if (result_text) {
- $('#status').html(result_text + '...');
+ $('#status').html('<pre>' + result_text + '</pre>');
} else {
- $('#status').html('<?=gettext("Obtaining filter status...");?>');
+ $('#status').html('<pre>' + '<?=gettext("Obtaining filter status...");?>' + '</pre>');
}
- if (result_text == "Initializing") {
- $('#status').html('<?=gettext("Initializing...");?>');
- } else if (result_text == "Done") {
- $('#status').effect('highlight');
- $('#status').html('<?=gettext("Done. The filter rules have been reloaded.");?>');
+
+ if (result_text.endsWith("Done\n")) {
$('#reloadinfo').css("visibility", "hidden");
$('#doneurl').css("visibility", "visible");
$('#doneurl').html("<p><a href='status_queues.php'><?=gettext("Queue Status");?><\/a><\/p>");
+ $('#reloadinfo').html("");
+ } else {
+ window.setTimeout('update_status_thread()', 1500);
}
- window.setTimeout('update_status_thread()', 2500);
}
//]]>
</script>
@@ -163,12 +160,15 @@ if (typeof getURL == 'undefined') {
contentType : http_request.getResponseHeader("Content-Type") } );
}
}
+
http_request.open('GET', url, true);
http_request.send(null);
}
}
-window.setTimeout('update_status_thread()', 2500);
+if ("<?=$_GET['user']?>" != "true") {
+ window.setTimeout('update_status_thread()', 1500);
+ }
//]]>
</script>
diff --git a/src/usr/local/www/status_gateway_groups.php b/src/usr/local/www/status_gateway_groups.php
index 17c7522..d1989b2 100644
--- a/src/usr/local/www/status_gateway_groups.php
+++ b/src/usr/local/www/status_gateway_groups.php
@@ -3,7 +3,7 @@
* status_gateway_groups.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_gateways.php b/src/usr/local/www/status_gateways.php
index 4663ad0..ab9fe07 100644
--- a/src/usr/local/www/status_gateways.php
+++ b/src/usr/local/www/status_gateways.php
@@ -3,7 +3,7 @@
* status_gateways.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_graph.php b/src/usr/local/www/status_graph.php
index f4a7a8c..4a36037 100644
--- a/src/usr/local/www/status_graph.php
+++ b/src/usr/local/www/status_graph.php
@@ -3,7 +3,7 @@
* status_graph.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_graph_cpu.php b/src/usr/local/www/status_graph_cpu.php
index 5e66f90..9c4637d 100644
--- a/src/usr/local/www/status_graph_cpu.php
+++ b/src/usr/local/www/status_graph_cpu.php
@@ -3,7 +3,7 @@
* status_graph_cpu.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_interfaces.php b/src/usr/local/www/status_interfaces.php
index 0a7d6b7..42be7df 100644
--- a/src/usr/local/www/status_interfaces.php
+++ b/src/usr/local/www/status_interfaces.php
@@ -3,7 +3,7 @@
* status_interfaces.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -124,7 +124,7 @@ foreach ($ifdescrs as $ifdescr => $ifname):
showDef($ifinfo['subnetv6'], gettext('Subnet mask IPv6'), $ifinfo['subnetv6']);
showDef($ifinfo['gatewayv6'], gettext("Gateway IPv6"), $config['interfaces'][$ifdescr]['gatewayv6'] . " " . $ifinfo['gatewayv6']);
- if ($ifdescr == "wan" && file_exists("{$g['varetc_path']}/resolv.conf")) {
+ if ($ifdescr == "wan" && file_exists("{$g['etc_path']}/resolv.conf")) {
$dns_servers = get_dns_servers();
$dnscnt = 0;
foreach ($dns_servers as $dns) {
diff --git a/src/usr/local/www/status_ipsec.php b/src/usr/local/www/status_ipsec.php
index bcc0515..da2c265 100644
--- a/src/usr/local/www/status_ipsec.php
+++ b/src/usr/local/www/status_ipsec.php
@@ -3,7 +3,7 @@
* status_ipsec.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_ipsec_leases.php b/src/usr/local/www/status_ipsec_leases.php
index e025ebf..9f9e70d 100644
--- a/src/usr/local/www/status_ipsec_leases.php
+++ b/src/usr/local/www/status_ipsec_leases.php
@@ -3,7 +3,7 @@
* status_ipsec_leases.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/status_ipsec_sad.php b/src/usr/local/www/status_ipsec_sad.php
index 3c7c852..0df5216 100644
--- a/src/usr/local/www/status_ipsec_sad.php
+++ b/src/usr/local/www/status_ipsec_sad.php
@@ -3,7 +3,7 @@
* status_ipsec_sad.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_ipsec_spd.php b/src/usr/local/www/status_ipsec_spd.php
index 7061c2f..1488b27 100644
--- a/src/usr/local/www/status_ipsec_spd.php
+++ b/src/usr/local/www/status_ipsec_spd.php
@@ -3,7 +3,7 @@
* status_ipsec_spd.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_lb_pool.php b/src/usr/local/www/status_lb_pool.php
index cd5b2d4..911e891 100644
--- a/src/usr/local/www/status_lb_pool.php
+++ b/src/usr/local/www/status_lb_pool.php
@@ -3,7 +3,7 @@
* status_lb_pool.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_lb_vs.php b/src/usr/local/www/status_lb_vs.php
index aab1cca..c28feca 100644
--- a/src/usr/local/www/status_lb_vs.php
+++ b/src/usr/local/www/status_lb_vs.php
@@ -3,7 +3,7 @@
* status_lb_vs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_logs.php b/src/usr/local/www/status_logs.php
index 3350fec..7435974 100644
--- a/src/usr/local/www/status_logs.php
+++ b/src/usr/local/www/status_logs.php
@@ -3,7 +3,7 @@
* status_logs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_logs_common.inc b/src/usr/local/www/status_logs_common.inc
index 736c98e..f35b9a2 100644
--- a/src/usr/local/www/status_logs_common.inc
+++ b/src/usr/local/www/status_logs_common.inc
@@ -3,7 +3,7 @@
* status_logs_common.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_logs_filter.php b/src/usr/local/www/status_logs_filter.php
index 4c0a3d2..4c37c91 100644
--- a/src/usr/local/www/status_logs_filter.php
+++ b/src/usr/local/www/status_logs_filter.php
@@ -3,7 +3,7 @@
* status_logs_filter.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_logs_filter_dynamic.php b/src/usr/local/www/status_logs_filter_dynamic.php
index 21d7074..4ea4d4a 100644
--- a/src/usr/local/www/status_logs_filter_dynamic.php
+++ b/src/usr/local/www/status_logs_filter_dynamic.php
@@ -3,7 +3,7 @@
* status_logs_filter_dynamic.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_logs_filter_summary.php b/src/usr/local/www/status_logs_filter_summary.php
index 1220c0b..124d190 100644
--- a/src/usr/local/www/status_logs_filter_summary.php
+++ b/src/usr/local/www/status_logs_filter_summary.php
@@ -3,7 +3,7 @@
* status_logs_filter_summary.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/status_logs_settings.php b/src/usr/local/www/status_logs_settings.php
index b073d2f..33881ed 100644
--- a/src/usr/local/www/status_logs_settings.php
+++ b/src/usr/local/www/status_logs_settings.php
@@ -3,7 +3,7 @@
* status_logs_settings.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -51,6 +51,10 @@ $pconfig['relayd'] = isset($config['syslog']['relayd']);
$pconfig['hostapd'] = isset($config['syslog']['hostapd']);
$pconfig['logall'] = isset($config['syslog']['logall']);
$pconfig['system'] = isset($config['syslog']['system']);
+$pconfig['resolver'] = isset($config['syslog']['resolver']);
+$pconfig['ppp'] = isset($config['syslog']['ppp']);
+$pconfig['routing'] = isset($config['syslog']['routing']);
+$pconfig['ntpd'] = isset($config['syslog']['ntpd']);
$pconfig['enable'] = isset($config['syslog']['enable']);
$pconfig['logdefaultblock'] = !isset($config['syslog']['nologdefaultblock']);
$pconfig['logdefaultpass'] = isset($config['syslog']['nologdefaultpass']);
@@ -125,6 +129,10 @@ if ($_POST['resetlogs'] == gettext("Reset Log Files")) {
$config['syslog']['hostapd'] = $_POST['hostapd'] ? true : false;
$config['syslog']['logall'] = $_POST['logall'] ? true : false;
$config['syslog']['system'] = $_POST['system'] ? true : false;
+ $config['syslog']['resolver'] = $_POST['resolver'] ? true : false;
+ $config['syslog']['ppp'] = $_POST['ppp'] ? true : false;
+ $config['syslog']['routing'] = $_POST['routing'] ? true : false;
+ $config['syslog']['ntpd'] = $_POST['ntpd'] ? true : false;
$config['syslog']['disablelocallogging'] = $_POST['disablelocallogging'] ? true : false;
$config['syslog']['enable'] = $_POST['enable'] ? true : false;
$oldnologdefaultblock = isset($config['syslog']['nologdefaultblock']);
@@ -305,7 +313,7 @@ $section->addInput(new Form_Select(
$section->addInput(new Form_Checkbox(
'disablelocallogging',
'Local Logging',
- $g['platform'] == $g['product_name'] ? "Disable writing log files to the local disk" : "Disable writing log files to the local RAM disk",
+ "Disable writing log files to the local disk",
$pconfig['disablelocallogging']
));
@@ -397,44 +405,72 @@ $group->add(new Form_MultiCheckbox(
));
$group->add(new Form_MultiCheckbox(
+ 'resolver',
+ null,
+ 'DNS Events (Resolver/unbound, Forwarder/dnsmasq, filterdns)',
+ $pconfig['resolver']
+));
+
+$group->add(new Form_MultiCheckbox(
'dhcp',
null,
- 'DHCP service events',
+ 'DHCP Events (DHCP Daemon, DHCP Relay, DHCP Client)',
$pconfig['dhcp']
));
$group->add(new Form_MultiCheckbox(
+ 'ppp',
+ null,
+ 'PPP Events (PPPoE WAN Client, L2TP WAN Client, PPTP WAN Client)',
+ $pconfig['ppp']
+));
+
+$group->add(new Form_MultiCheckbox(
'portalauth',
null,
- 'Portal Auth events',
+ 'Captive Portal Events',
$pconfig['portalauth']
));
$group->add(new Form_MultiCheckbox(
'vpn',
null,
- 'VPN (PPTP, IPsec, OpenVPN) events',
+ 'VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)',
$pconfig['vpn']
));
$group->add(new Form_MultiCheckbox(
'dpinger',
null,
- 'Gateway Monitor events',
+ 'Gateway Monitor Events',
$pconfig['dpinger']
));
$group->add(new Form_MultiCheckbox(
+ 'routing',
+ null,
+ 'Routing Daemon Events (RADVD, UPnP, RIP, OSPF, BGP)',
+ $pconfig['routing']
+));
+
+$group->add(new Form_MultiCheckbox(
'relayd',
null,
- 'Server Load Balancer events',
+ 'Server Load Balancer Events (relayd)',
$pconfig['relayd']
));
$group->add(new Form_MultiCheckbox(
+ 'ntpd',
+ null,
+ 'Network Time Protocol Events (NTP Daemon, NTP Client)',
+ $pconfig['ntpd']
+));
+
+$group->add(new Form_MultiCheckbox(
'hostapd',
null,
- 'Wireless events',
+ 'Wireless Events (hostapd)',
$pconfig['hostapd']
));
@@ -478,6 +514,10 @@ events.push(function() {
disableInput('dpinger', hide);
disableInput('relayd', hide);
disableInput('hostapd', hide);
+ disableInput('resolver', hide);
+ disableInput('ppp', hide);
+ disableInput('routing', hide);
+ disableInput('ntpd', hide);
}
// ---------- On initial page load ------------------------------------------------------------
diff --git a/src/usr/local/www/status_logs_vpn.php b/src/usr/local/www/status_logs_vpn.php
index bd191db..ea8c178 100644
--- a/src/usr/local/www/status_logs_vpn.php
+++ b/src/usr/local/www/status_logs_vpn.php
@@ -3,7 +3,7 @@
* status_logs_vpn.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/status_ntpd.php b/src/usr/local/www/status_ntpd.php
index 6924abc..56725ab 100644
--- a/src/usr/local/www/status_ntpd.php
+++ b/src/usr/local/www/status_ntpd.php
@@ -3,7 +3,7 @@
* status_ntpd.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2013 Dagorlad
* All rights reserved.
*
@@ -45,10 +45,28 @@ if (!isset($config['ntpd']['noquery'])) {
$ntpq_servers = array();
foreach ($ntpq_output as $line) {
$server = array();
+ $status_char = substr($line, 0, 1);
+ $line = substr($line, 1);
+ $peerinfo = preg_split("/[\s\t]+/", $line);
+
+ $server['server'] = $peerinfo[0];
+ $server['refid'] = $peerinfo[1];
+ $server['stratum'] = $peerinfo[2];
+ $server['type'] = $peerinfo[3];
+ $server['when'] = $peerinfo[4];
+ $server['poll'] = $peerinfo[5];
+ $server['reach'] = $peerinfo[6];
+ $server['delay'] = $peerinfo[7];
+ $server['offset'] = $peerinfo[8];
+ $server['jitter'] = $peerinfo[9];
- switch (substr($line, 0, 1)) {
+ switch ($status_char) {
case " ":
- $server['status'] = gettext("Unreach/Pending");
+ if ($server['refid'] == ".POOL.") {
+ $server['status'] = gettext("Pool Placeholder");
+ } else {
+ $server['status'] = gettext("Unreach/Pending");
+ }
break;
case "*":
$server['status'] = gettext("Active Peer");
@@ -73,20 +91,6 @@ if (!isset($config['ntpd']['noquery'])) {
break;
}
- $line = substr($line, 1);
- $peerinfo = preg_split("/[\s\t]+/", $line);
-
- $server['server'] = $peerinfo[0];
- $server['refid'] = $peerinfo[1];
- $server['stratum'] = $peerinfo[2];
- $server['type'] = $peerinfo[3];
- $server['when'] = $peerinfo[4];
- $server['poll'] = $peerinfo[5];
- $server['reach'] = $peerinfo[6];
- $server['delay'] = $peerinfo[7];
- $server['offset'] = $peerinfo[8];
- $server['jitter'] = $peerinfo[9];
-
$ntpq_servers[] = $server;
}
diff --git a/src/usr/local/www/status_openvpn.php b/src/usr/local/www/status_openvpn.php
index 0ff285f..c643b20 100644
--- a/src/usr/local/www/status_openvpn.php
+++ b/src/usr/local/www/status_openvpn.php
@@ -3,7 +3,7 @@
* status_openvpn.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc.
* All rights reserved.
*
@@ -139,10 +139,12 @@ include("head.inc"); ?>
<td colspan="2">
<table>
<tr>
- <td>
<?php $ssvc = find_service_by_openvpn_vpnid($server['vpnid']); ?>
- <?= get_service_status_icon($ssvc, true, true); ?>
- <?= get_service_control_links($ssvc); ?>
+ <td>
+ <?= gettext("Status") . ": " . get_service_status_icon($ssvc, false, true, false, "service_state"); ?>
+ </td>
+ <td>
+ <?= gettext("Actions") . ": " . get_service_control_links($ssvc); ?>
</td>
</tr>
</table>
diff --git a/src/usr/local/www/status_pkglogs.php b/src/usr/local/www/status_pkglogs.php
index 1bf209a..3070557 100644
--- a/src/usr/local/www/status_pkglogs.php
+++ b/src/usr/local/www/status_pkglogs.php
@@ -3,7 +3,7 @@
* status_pkglogs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -49,9 +49,9 @@ $i = 0;
$pkgwithlogging = false;
$apkg = $_GET['pkg'];
if (!$apkg) { // If we aren't looking for a specific package, locate the first package that handles logging.
- if ($config['installedpackages']['package'] <> "") {
+ if (isset($config['installedpackages']['package'])) {
foreach ($config['installedpackages']['package'] as $package) {
- if (is_array($package['logging'])) {
+ if (isset($package['logging']['logfilename']) && $package['logging']['logfilename'] != '') {
$pkgwithlogging = true;
$apkg = $package['name'];
$apkgid = $i;
diff --git a/src/usr/local/www/status_queues.php b/src/usr/local/www/status_queues.php
index dfee786..53bac63 100644
--- a/src/usr/local/www/status_queues.php
+++ b/src/usr/local/www/status_queues.php
@@ -3,7 +3,7 @@
* status_queues.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/status_services.php b/src/usr/local/www/status_services.php
index b241b141..f589d88 100644
--- a/src/usr/local/www/status_services.php
+++ b/src/usr/local/www/status_services.php
@@ -3,7 +3,7 @@
* status_services.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -107,21 +107,11 @@ if (count($services) > 0) {
<td>
<?=$service['name']?>
</td>
-
<td>
<?=$service['description']?>
</td>
-<?php
- // if service is running then listr else listbg
- $bgclass = null;
- $running = false;
-
- if (get_service_status($service)) {
- $running = true;
- }
-?>
<td>
- <?=$running ? '<span class="text-success">' . gettext("Running") . '</span>':'<span class="text-danger">' . gettext("Stopped") . '</span>'?>
+ <?= get_service_status_icon($service, false, true, false, "state"); ?>
</td>
<td>
<?=get_service_control_links($service)?>
diff --git a/src/usr/local/www/status_upnp.php b/src/usr/local/www/status_upnp.php
index c5c3faa..7bc223a 100644
--- a/src/usr/local/www/status_upnp.php
+++ b/src/usr/local/www/status_upnp.php
@@ -3,7 +3,7 @@
* status_upnp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/status_wireless.php b/src/usr/local/www/status_wireless.php
index 1d9da5b..8516ff0 100644
--- a/src/usr/local/www/status_wireless.php
+++ b/src/usr/local/www/status_wireless.php
@@ -3,7 +3,7 @@
* status_wireless.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/system.php b/src/usr/local/www/system.php
index 6b0e9a9..b588256 100644
--- a/src/usr/local/www/system.php
+++ b/src/usr/local/www/system.php
@@ -3,7 +3,7 @@
* system.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
@@ -67,6 +67,7 @@ $pconfig['statusmonitoringsettingspanel'] = isset($config['system']['webgui']['s
$pconfig['webguihostnamemenu'] = $config['system']['webgui']['webguihostnamemenu'];
$pconfig['dnslocalhost'] = isset($config['system']['dnslocalhost']);
$pconfig['dashboardperiod'] = isset($config['widgets']['period']) ? $config['widgets']['period']:"10";
+$pconfig['loginshowhost'] = isset($config['system']['webgui']['loginshowhost']);
if (!$pconfig['timezone']) {
if (isset($g['default_timezone']) && !empty($g['default_timezone'])) {
@@ -124,6 +125,8 @@ if ($_POST) {
unset($config['system']['webgui']['webguicss']);
}
+ $config['system']['webgui']['loginshowhost'] = $_POST['loginshowhost'] ? true:false;
+
if ($_POST['webguifixedmenu']) {
$config['system']['webgui']['webguifixedmenu'] = $_POST['webguifixedmenu'];
} else {
@@ -487,6 +490,13 @@ gen_associatedpanels_fields(
$pconfig['statusmonitoringsettingspanel']);
gen_webguileftcolumnhyper_field($section, $pconfig['webguileftcolumnhyper']);
+$section->addInput(new Form_Checkbox(
+ 'loginshowhost',
+ 'Login hostname',
+ 'Show hostname on login banner',
+ $pconfig['loginshowhost']
+));
+
$section->addInput(new Form_Input(
'dashboardperiod',
'Dashboard update period',
diff --git a/src/usr/local/www/system_advanced_admin.php b/src/usr/local/www/system_advanced_admin.php
index 205d3ea..b7207c4 100644
--- a/src/usr/local/www/system_advanced_admin.php
+++ b/src/usr/local/www/system_advanced_admin.php
@@ -3,7 +3,7 @@
* system_advanced_admin.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -270,7 +270,6 @@ if ($_POST) {
$savemsg .= sprintf("<br />" . gettext("One moment...redirecting to %s in 20 seconds."), $url);
}
- conf_mount_rw();
setup_serial_port();
// Restart DNS in case dns rebinding toggled
if (isset($config['dnsmasq']['enable'])) {
@@ -278,7 +277,6 @@ if ($_POST) {
} elseif (isset($config['unbound']['enable'])) {
services_unbound_configure();
}
- conf_mount_ro();
}
}
diff --git a/src/usr/local/www/system_advanced_firewall.php b/src/usr/local/www/system_advanced_firewall.php
index 858f5b8..b70ddcb 100644
--- a/src/usr/local/www/system_advanced_firewall.php
+++ b/src/usr/local/www/system_advanced_firewall.php
@@ -3,7 +3,7 @@
* system_advanced_firewall.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
diff --git a/src/usr/local/www/system_advanced_misc.php b/src/usr/local/www/system_advanced_misc.php
index cb58a02..817b745 100644
--- a/src/usr/local/www/system_advanced_misc.php
+++ b/src/usr/local/www/system_advanced_misc.php
@@ -3,7 +3,7 @@
* system_advanced_misc.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -73,7 +73,6 @@ if (!empty($config['system']['powerd_normal_mode'])) {
}
$crypto_modules = array(
- 'glxsb' => gettext("AMD Geode LX Security Block"),
'aesni' => gettext("AES-NI CPU-based Acceleration"));
$thermal_hardware_modules = array(
@@ -256,7 +255,7 @@ if ($_POST) {
// Add/Remove RAM disk periodic backup cron jobs according to settings and installation type.
// Remove the cron jobs on full install if not using RAM disk.
// Add the cron jobs on all others if the periodic backup option is set. Otherwise the cron job is removed.
- if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) {
+ if (!isset($config['system']['use_mfs_tmpvar'])) {
install_cron_job("/etc/rc.backup_rrd.sh", false);
install_cron_job("/etc/rc.backup_dhcpleases.sh", false);
} else {
@@ -498,7 +497,7 @@ $section->addInput(new Form_Checkbox(
'use_mfs_tmpvar',
'Use RAM Disks',
'Use memory file system for /tmp and /var',
- ($pconfig['use_mfs_tmpvar'] || $g['platform'] != $g['product_name'])
+ $pconfig['use_mfs_tmpvar']
))->setHelp('Set this to use /tmp and /var as RAM disks (memory file '.
'system disks) on a full install rather than use the hard disk. Setting this will '.
'cause the data in /tmp and /var to be lost, including log data. RRD '.
@@ -544,22 +543,20 @@ $section->addInput(new Form_Input(
$form->add($section);
-if ($g['platform'] == "pfSense") {
- $section = new Form_Section('Hardware Settings');
+$section = new Form_Section('Hardware Settings');
- $opts = array(0.5, 1, 2, 3, 4, 5, 7.5, 10, 15, 20, 30, 60);
- $vals = array( 6, 12, 24, 36, 48, 60, 90, 120, 180, 240, 241, 242);
+$opts = array(0.5, 1, 2, 3, 4, 5, 7.5, 10, 15, 20, 30, 60);
+$vals = array( 6, 12, 24, 36, 48, 60, 90, 120, 180, 240, 241, 242);
- $section->addInput(new Form_Select(
- 'harddiskstandby',
- 'Hard disk standby time',
- $pconfig['harddiskstandby'],
- ['' => gettext("Always on")] + array_combine($opts, $vals)
- ))->setHelp("Puts the hard disk into standby mode when the selected number of minutes has elapsed since the last access." . "<br />" .
- "<strong> Do not set this for CF cards.</strong>");
+$section->addInput(new Form_Select(
+ 'harddiskstandby',
+ 'Hard disk standby time',
+ $pconfig['harddiskstandby'],
+ ['' => gettext("Always on")] + array_combine($opts, $vals)
+))->setHelp("Puts the hard disk into standby mode when the selected number of minutes has elapsed since the last access." . "<br />" .
+ "<strong> Do not set this for CF cards.</strong>");
- $form->add($section);
-}
+$form->add($section);
$section = new Form_Section('Installation Feedback');
diff --git a/src/usr/local/www/system_advanced_network.php b/src/usr/local/www/system_advanced_network.php
index 38a7004..bf0b715 100644
--- a/src/usr/local/www/system_advanced_network.php
+++ b/src/usr/local/www/system_advanced_network.php
@@ -3,7 +3,7 @@
* system_advanced_network.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
diff --git a/src/usr/local/www/system_advanced_notifications.php b/src/usr/local/www/system_advanced_notifications.php
index 17092f2..4acbabb 100644
--- a/src/usr/local/www/system_advanced_notifications.php
+++ b/src/usr/local/www/system_advanced_notifications.php
@@ -3,7 +3,7 @@
* system_advanced_notifications.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/system_advanced_sysctl.php b/src/usr/local/www/system_advanced_sysctl.php
index ab9af0e..3ab51fd 100644
--- a/src/usr/local/www/system_advanced_sysctl.php
+++ b/src/usr/local/www/system_advanced_sysctl.php
@@ -3,7 +3,7 @@
* system_advanced_sysctl.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
diff --git a/src/usr/local/www/system_authservers.php b/src/usr/local/www/system_authservers.php
index 171b3cc..6be6589 100644
--- a/src/usr/local/www/system_authservers.php
+++ b/src/usr/local/www/system_authservers.php
@@ -3,7 +3,7 @@
* system_authservers.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -254,14 +254,14 @@ if ($_POST) {
gettext("Hostname or IP"),
gettext("Services"));
- if ($pconfig['radisu_srvcs'] == "both" ||
- $pconfig['radisu_srvcs'] == "auth") {
+ if ($pconfig['radius_srvcs'] == "both" ||
+ $pconfig['radius_srvcs'] == "auth") {
$reqdfields[] = "radius_auth_port";
$reqdfieldsn[] = gettext("Authentication port");
}
- if ($pconfig['radisu_srvcs'] == "both" ||
- $pconfig['radisu_srvcs'] == "acct") {
+ if ($pconfig['radius_srvcs'] == "both" ||
+ $pconfig['radius_srvcs'] == "acct") {
$reqdfields[] = "radius_acct_port";
$reqdfieldsn[] = gettext("Accounting port");
}
@@ -643,7 +643,7 @@ $group->add(new Form_Input(
$group->add(new Form_Input(
'ldap_bindpw',
'Password',
- 'text',
+ 'password',
$pconfig['ldap_bindpw']
));
$section->add($group);
@@ -733,7 +733,7 @@ $section->addInput(new Form_Input(
$section->addInput(new Form_Input(
'radius_secret',
'Shared Secret',
- 'text',
+ 'password',
$pconfig['radius_secret']
));
diff --git a/src/usr/local/www/system_camanager.php b/src/usr/local/www/system_camanager.php
index d9112b1..0d5c753 100644
--- a/src/usr/local/www/system_camanager.php
+++ b/src/usr/local/www/system_camanager.php
@@ -3,7 +3,7 @@
* system_camanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -75,13 +75,15 @@ if ($act == "del") {
exit;
}
+ /* Only remove CA reference when deleting. It can be reconnected if a new matching CA is imported */
$index = count($a_cert) - 1;
for (;$index >= 0; $index--) {
if ($a_cert[$index]['caref'] == $a_ca[$id]['refid']) {
- unset($a_cert[$index]);
+ unset($a_cert[$index]['caref']);
}
}
+ /* Remove any CRLs for this CA, there is no way to recover the connection once the CA has been removed. */
$index = count($a_crl) - 1;
for (;$index >= 0; $index--) {
if ($a_crl[$index]['caref'] == $a_ca[$id]['refid']) {
@@ -173,6 +175,9 @@ if ($_POST) {
if ($_POST['key'] && strstr($_POST['key'], "ENCRYPTED")) {
$input_errors[] = gettext("Encrypted private keys are not yet supported.");
}
+ if (cert_get_modulus($_POST['cert'], false) != prv_get_modulus($_POST['key'], false)) {
+ $input_errors[] = gettext("The submitted private key does not match the submitted certificate data.");
+ }
}
if ($pconfig['method'] == "internal") {
$reqdfields = explode(" ",
@@ -359,6 +364,7 @@ if (!($act == "new" || $act == "edit" || $act == gettext("Save") || $input_error
<th><?=gettext("Issuer")?></th>
<th><?=gettext("Certificates")?></th>
<th><?=gettext("Distinguished Name")?></th>
+ <th><?=gettext("In Use")?></th>
<th><?=gettext("Actions")?></th>
</tr>
</thead>
@@ -407,13 +413,29 @@ foreach ($a_ca as $i => $ca):
<?=gettext("Valid From")?>: <b><?=$startdate ?></b><br /><?=gettext("Valid Until")?>: <b><?=$enddate ?></b>
</small>
</td>
- <td>
+ <td class="text-nowrap">
+ <?php if (is_openvpn_server_ca($ca['refid'])): ?>
+ <?=gettext("OpenVPN Server")?><br/>
+ <?php endif?>
+ <?php if (is_openvpn_client_ca($ca['refid'])): ?>
+ <?=gettext("OpenVPN Client")?><br/>
+ <?php endif?>
+ <?php if (is_ipsec_peer_ca($ca['refid'])): ?>
+ <?=gettext("IPsec Tunnel")?><br/>
+ <?php endif?>
+ <?php if (is_ldap_peer_ca($ca['refid'])): ?>
+ <?=gettext("LDAP Server")?>
+ <?php endif?>
+ </td>
+ <td class="text-nowrap">
<a class="fa fa-pencil" title="<?=gettext("Edit CA")?>" href="system_camanager.php?act=edit&amp;id=<?=$i?>"></a>
<a class="fa fa-certificate" title="<?=gettext("Export CA")?>" href="system_camanager.php?act=exp&amp;id=<?=$i?>"></a>
<?php if ($ca['prv']): ?>
<a class="fa fa-key" title="<?=gettext("Export key")?>" href="system_camanager.php?act=expkey&amp;id=<?=$i?>"></a>
<?php endif?>
- <a class="fa fa-trash" title="<?=gettext("Delete CA")?>" href="system_camanager.php?act=del&amp;id=<?=$i?>"></a>
+ <?php if (!ca_in_use($ca['refid'])): ?>
+ <a class="fa fa-trash" title="<?=gettext("Delete CA and its CRLs")?>" href="system_camanager.php?act=del&amp;id=<?=$i?>"></a>
+ <?php endif?>
</td>
</tr>
<?php endforeach; ?>
diff --git a/src/usr/local/www/system_certmanager.php b/src/usr/local/www/system_certmanager.php
index f5fa3ca..4c3ac5c 100644
--- a/src/usr/local/www/system_certmanager.php
+++ b/src/usr/local/www/system_certmanager.php
@@ -3,7 +3,7 @@
* system_certmanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -231,6 +231,9 @@ if ($_POST) {
if ($_POST['cert'] && (!strstr($_POST['cert'], "BEGIN CERTIFICATE") || !strstr($_POST['cert'], "END CERTIFICATE"))) {
$input_errors[] = gettext("This certificate does not appear to be valid.");
}
+ if (cert_get_modulus($_POST['cert'], false) != prv_get_modulus($_POST['key'], false)) {
+ $input_errors[] = gettext("The submitted private key does not match the submitted certificate data.");
+ }
}
if ($pconfig['method'] == "internal") {
@@ -454,7 +457,7 @@ if ($_POST) {
write_config();
}
- if ($userid) {
+ if ($userid && !$input_errors) {
post_redirect("system_usermanager.php", array('act' => 'edit', 'userid' => $userid));
exit;
}
diff --git a/src/usr/local/www/system_crlmanager.php b/src/usr/local/www/system_crlmanager.php
index efb79f5..58ea4cd 100644
--- a/src/usr/local/www/system_crlmanager.php
+++ b/src/usr/local/www/system_crlmanager.php
@@ -3,7 +3,7 @@
* system_crlmanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -505,7 +505,7 @@ if ($act == "new" || $act == gettext("Save") || $input_errors) {
$ca_certs = array();
foreach ($a_cert as $cert) {
- if ($cert['caref'] == $crl['caref']) {
+ if ($cert['caref'] == $crl['caref'] && !is_cert_revoked($cert, $id)) {
$ca_certs[] = $cert;
}
}
diff --git a/src/usr/local/www/system_gateway_groups.php b/src/usr/local/www/system_gateway_groups.php
index 8d17dfa..c8f956d 100644
--- a/src/usr/local/www/system_gateway_groups.php
+++ b/src/usr/local/www/system_gateway_groups.php
@@ -3,7 +3,7 @@
* system_gateway_groups.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/system_gateway_groups_edit.php b/src/usr/local/www/system_gateway_groups_edit.php
index 858205b..60c704c 100644
--- a/src/usr/local/www/system_gateway_groups_edit.php
+++ b/src/usr/local/www/system_gateway_groups_edit.php
@@ -3,7 +3,7 @@
* system_gateway_groups_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
diff --git a/src/usr/local/www/system_gateways.php b/src/usr/local/www/system_gateways.php
index b8452ed..9eb95de 100644
--- a/src/usr/local/www/system_gateways.php
+++ b/src/usr/local/www/system_gateways.php
@@ -3,7 +3,7 @@
* system_gateways.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>
* All rights reserved.
*
@@ -119,6 +119,14 @@ function delete_gateway_item($id) {
return;
}
+ /* If the removed gateway was the default route, remove the default route */
+ if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) &&
+ !isset($a_gateways[$id]['disabled']) &&
+ isset($a_gateways[$id]['defaultgw'])) {
+ $inet = (!is_ipaddrv4($a_gateways[$id]['gateway']) ? '-inet6' : '-inet');
+ mwexec("/sbin/route delete {$inet} default");
+ }
+
/* NOTE: Cleanup static routes for the interface route if any */
if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) &&
$gateway['gateway'] != $a_gateways[$id]['gateway'] &&
@@ -195,6 +203,12 @@ if (isset($_POST['del_x'])) {
if ($ok_to_toggle) {
if ($disable_gw) {
$a_gateway_item[$realid]['disabled'] = true;
+ /* If the disabled gateway was the default route, remove the default route */
+ if (!empty($a_gateway_item[$realid]) && is_ipaddr($a_gateway_item[$realid]['gateway']) &&
+ isset($a_gateway_item[$realid]['defaultgw'])) {
+ $inet = (!is_ipaddrv4($a_gateway_item[$realid]['gateway']) ? '-inet6' : '-inet');
+ mwexec("/sbin/route delete {$inet} default");
+ }
} else {
unset($a_gateway_item[$realid]['disabled']);
}
@@ -235,7 +249,7 @@ display_top_tabs($tab_array);
<div class="panel-heading"><h2 class="panel-title"><?=gettext('Gateways')?></h2></div>
<div class="panel-body">
<div class="table-responsive">
- <table class="table table-striped tabel-hover table-condensed table-rowdblclickedit">
+ <table class="table table-striped table-hover table-condensed table-rowdblclickedit">
<thead>
<tr>
<th></th>
diff --git a/src/usr/local/www/system_gateways_edit.php b/src/usr/local/www/system_gateways_edit.php
index cba670c..0903aea 100644
--- a/src/usr/local/www/system_gateways_edit.php
+++ b/src/usr/local/www/system_gateways_edit.php
@@ -3,7 +3,7 @@
* system_gateways_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -494,6 +494,15 @@ if ($_POST) {
if (isset($_POST['disabled'])) {
$gateway['disabled'] = true;
+ /* Check if the gateway was enabled but changed to disabled. */
+ if ((isset($realid) && $a_gateway_item[$realid]) && ($pconfig['disabled'] == false)) {
+ /* If the disabled gateway was the default route, remove the default route */
+ if (is_ipaddr($gateway['gateway']) &&
+ isset($gateway['defaultgw'])) {
+ $inet = (!is_ipaddrv4($gateway['gateway']) ? '-inet6' : '-inet');
+ mwexec("/sbin/route delete {$inet} default");
+ }
+ }
} else {
unset($gateway['disabled']);
}
@@ -850,12 +859,12 @@ events.push(function() {
<?php
if (!(!empty($pconfig['latencylow']) || !empty($pconfig['latencyhigh']) ||
!empty($pconfig['losslow']) || !empty($pconfig['losshigh']) || !empty($pconfig['data_payload']) ||
- (isset($pconfig['weight']) && $pconfig['weight'] > 1) ||
- (isset($pconfig['interval']) && !($pconfig['interval'] == $dpinger_default['interval'])) ||
- (isset($pconfig['loss_interval']) && !($pconfig['loss_interval'] == $dpinger_default['loss_interval'])) ||
- (isset($pconfig['time_period']) && !($pconfig['time_period'] == $dpinger_default['time_period'])) ||
- (isset($pconfig['alert_interval']) && !($pconfig['alert_interval'] == $dpinger_default['alert_interval'])) ||
- (isset($pconfig['nonlocalgateway']) && $pconfig['nonlocalgateway']))) {
+ (!empty($pconfig['weight']) && $pconfig['weight'] > 1) ||
+ (!empty($pconfig['interval']) && !($pconfig['interval'] == $dpinger_default['interval'])) ||
+ (!empty($pconfig['loss_interval']) && !($pconfig['loss_interval'] == $dpinger_default['loss_interval'])) ||
+ (!empty($pconfig['time_period']) && !($pconfig['time_period'] == $dpinger_default['time_period'])) ||
+ (!empty($pconfig['alert_interval']) && !($pconfig['alert_interval'] == $dpinger_default['alert_interval'])) ||
+ (!empty($pconfig['nonlocalgateway']) && $pconfig['nonlocalgateway']))) {
$showadv = false;
} else {
$showadv = true;
diff --git a/src/usr/local/www/system_groupmanager.php b/src/usr/local/www/system_groupmanager.php
index 072a5d1..d103863 100644
--- a/src/usr/local/www/system_groupmanager.php
+++ b/src/usr/local/www/system_groupmanager.php
@@ -3,7 +3,7 @@
* system_groupmanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Paul Taylor <paultaylor@winn-dixie.com>
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
@@ -73,9 +73,7 @@ if ($act == "delgroup") {
exit;
}
- conf_mount_rw();
local_group_del($a_group[$id]);
- conf_mount_ro();
$groupdeleted = $a_group[$id]['name'];
unset($a_group[$id]);
write_config();
@@ -124,9 +122,7 @@ if (isset($_GET['dellall_x'])) {
if (!empty($del_groups)) {
foreach ($del_groups as $groupid) {
if (isset($a_group[$groupid]) && $a_group[$groupid]['scope'] != "system") {
- conf_mount_rw();
local_group_del($a_group[$groupid]);
- conf_mount_ro();
unset($a_group[$groupid]);
}
}
@@ -203,9 +199,7 @@ if (isset($_POST['save'])) {
admin_groups_sort();
- conf_mount_rw();
local_group_set($group);
- conf_mount_ro();
/* Refresh users in this group since their privileges may have changed. */
if (is_array($group['member'])) {
diff --git a/src/usr/local/www/system_groupmanager_addprivs.php b/src/usr/local/www/system_groupmanager_addprivs.php
index 07faab5..ad07c1c 100644
--- a/src/usr/local/www/system_groupmanager_addprivs.php
+++ b/src/usr/local/www/system_groupmanager_addprivs.php
@@ -3,7 +3,7 @@
* system_groupmanager_addprivs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Daniel S. Haischt.
* All rights reserved.
*
diff --git a/src/usr/local/www/system_hasync.php b/src/usr/local/www/system_hasync.php
index e6b9890..cc80028 100644
--- a/src/usr/local/www/system_hasync.php
+++ b/src/usr/local/www/system_hasync.php
@@ -3,7 +3,7 @@
* system_hasync.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/system_routes.php b/src/usr/local/www/system_routes.php
index fe66f9f..cac6cce 100644
--- a/src/usr/local/www/system_routes.php
+++ b/src/usr/local/www/system_routes.php
@@ -3,7 +3,7 @@
* system_routes.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/system_routes_edit.php b/src/usr/local/www/system_routes_edit.php
index 290e9aa..b86522e 100644
--- a/src/usr/local/www/system_routes_edit.php
+++ b/src/usr/local/www/system_routes_edit.php
@@ -3,7 +3,7 @@
* system_routes_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/system_update_settings.php b/src/usr/local/www/system_update_settings.php
index 8d46099..7b3d5bc 100644
--- a/src/usr/local/www/system_update_settings.php
+++ b/src/usr/local/www/system_update_settings.php
@@ -3,7 +3,7 @@
* system_update_settings.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -76,11 +76,6 @@ $gitcfg = $config['system']['gitsync'];
$pgtitle = array(gettext("System"), gettext("Update"), gettext("Update Settings"));
-exec("/usr/bin/fetch -q -o {$g['tmp_path']}/manifest \"{$g['update_manifest']}\"");
-if (file_exists("{$g['tmp_path']}/manifest")) {
- $preset_urls_split = explode("\n", file_get_contents("{$g['tmp_path']}/manifest"));
-}
-
// Create an array of repo names and descriptions to populate the "Branch" selector
function build_repo_list() {
global $repos;
@@ -147,7 +142,7 @@ $section->addInput(new Form_Checkbox(
$form->add($section);
-if (file_exists("/usr/local/bin/git") && $g['platform'] == $g['product_name']) {
+if (file_exists("/usr/local/bin/git")) {
$section = new Form_Section('GitSync');
$section->addInput(new Form_Checkbox(
diff --git a/src/usr/local/www/system_user_settings.php b/src/usr/local/www/system_user_settings.php
index 60b0932..7cf5c17 100644
--- a/src/usr/local/www/system_user_settings.php
+++ b/src/usr/local/www/system_user_settings.php
@@ -3,7 +3,7 @@
* system_user_settings.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/system_usermanager.php b/src/usr/local/www/system_usermanager.php
index 80265b1..fca8657 100644
--- a/src/usr/local/www/system_usermanager.php
+++ b/src/usr/local/www/system_usermanager.php
@@ -3,7 +3,7 @@
* system_usermanager.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc.
* Copyright (c) 2005 Paul Taylor <paultaylor@winn-dixie.com>
* All rights reserved.
@@ -91,9 +91,7 @@ if ($_GET['act'] == "deluser") {
if ($_GET['username'] == $_SESSION['Username']) {
$delete_errors[] = sprintf(gettext("Cannot delete user %s because you are currently logged in as that user."), $_GET['username']);
} else {
- conf_mount_rw();
local_user_del($a_user[$id]);
- conf_mount_ro();
$userdeleted = $a_user[$id]['name'];
unset($a_user[$id]);
write_config();
@@ -122,12 +120,10 @@ if (isset($_POST['dellall'])) {
if ($a_user[$userid]['name'] == $_SESSION['Username']) {
$delete_errors[] = sprintf(gettext("Cannot delete user %s because you are currently logged in as that user."), $a_user[$userid]['name']);
} else {
- conf_mount_rw();
$deleted_users = $deleted_users . $comma . $a_user[$userid]['name'];
$comma = ", ";
$deleted_count++;
local_user_del($a_user[$userid]);
- conf_mount_ro();
unset($a_user[$userid]);
}
} else {
@@ -276,7 +272,6 @@ if ($_POST['save']) {
if (!$input_errors) {
- conf_mount_rw();
$userent = array();
if (isset($id) && $a_user[$id]) {
$userent = $a_user[$id];
@@ -427,7 +422,6 @@ if ($_POST['save']) {
run_plugins("/etc/inc/privhooks");
}
- conf_mount_ro();
pfSenseHeader("system_usermanager.php");
}
@@ -741,7 +735,7 @@ if ($act == "new" || $act == "edit" || $input_errors):
'text',
$pconfig['expires']
))->setHelp('Leave blank if the account shouldn\'t expire, otherwise enter '.
- 'the expiration date');
+ 'the expiration date as MM/DD/YYYY');
$section->addInput(new Form_Checkbox(
'customsettings',
diff --git a/src/usr/local/www/system_usermanager_addprivs.php b/src/usr/local/www/system_usermanager_addprivs.php
index fe29e5f..ee6d416 100644
--- a/src/usr/local/www/system_usermanager_addprivs.php
+++ b/src/usr/local/www/system_usermanager_addprivs.php
@@ -3,7 +3,7 @@
* system_usermanager_addprivs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2006 Daniel S. Haischt.
* All rights reserved.
*
@@ -60,7 +60,6 @@ uasort($spriv_list, "admusercmp");
if ($_POST) {
- conf_mount_rw();
unset($input_errors);
$pconfig = $_POST;
@@ -87,14 +86,12 @@ if ($_POST) {
local_user_set($a_user);
$retval = write_config();
$savemsg = get_std_save_message($retval);
- conf_mount_ro();
post_redirect("system_usermanager.php", array('act' => 'edit', 'userid' => $userid));
exit;
}
- conf_mount_ro();
}
function build_priv_list() {
diff --git a/src/usr/local/www/system_usermanager_passwordmg.php b/src/usr/local/www/system_usermanager_passwordmg.php
index db3a862..a06868a 100644
--- a/src/usr/local/www/system_usermanager_passwordmg.php
+++ b/src/usr/local/www/system_usermanager_passwordmg.php
@@ -3,7 +3,7 @@
* system_usermanager_passwordmg.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/system_usermanager_settings.php b/src/usr/local/www/system_usermanager_settings.php
index 393ec76..5a4e322 100644
--- a/src/usr/local/www/system_usermanager_settings.php
+++ b/src/usr/local/www/system_usermanager_settings.php
@@ -3,7 +3,7 @@
* system_usermanager_settings.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Bill Marquette <bill.marquette@gmail.com>
* All rights reserved.
*
@@ -188,8 +188,8 @@ $section->addInput(new Form_Input(
'risk!');
$auth_servers = array();
-foreach (auth_get_authserver_list() as $auth_server) {
- $auth_servers[ $auth_server['name'] ] = $auth_server['name'];
+foreach (auth_get_authserver_list() as $idx_authserver => $auth_server) {
+ $auth_servers[ $idx_authserver ] = $auth_server['name'];
}
$section->addInput(new Form_Select(
diff --git a/src/usr/local/www/uploadconfig.php b/src/usr/local/www/uploadconfig.php
index a91a813..fbe7dc3 100644
--- a/src/usr/local/www/uploadconfig.php
+++ b/src/usr/local/www/uploadconfig.php
@@ -4,7 +4,7 @@
* uploadconfig.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/vendor/filebrowser/browser.php b/src/usr/local/www/vendor/filebrowser/browser.php
index 54ab942..8ca1217 100644
--- a/src/usr/local/www/vendor/filebrowser/browser.php
+++ b/src/usr/local/www/vendor/filebrowser/browser.php
@@ -3,7 +3,7 @@
require_once("guiconfig.inc");
/*
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
+ Copyright (C) 2013-2015 Rubicon Communications, LLC (Netgate)
*/
// Fetch a list of directories and files inside a given directory
diff --git a/src/usr/local/www/vpn_ipsec.php b/src/usr/local/www/vpn_ipsec.php
index 2a6d838..64b628d 100644
--- a/src/usr/local/www/vpn_ipsec.php
+++ b/src/usr/local/www/vpn_ipsec.php
@@ -3,7 +3,7 @@
* vpn_ipsec.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/vpn_ipsec_keys.php b/src/usr/local/www/vpn_ipsec_keys.php
index f3f5711..46b2e7a 100644
--- a/src/usr/local/www/vpn_ipsec_keys.php
+++ b/src/usr/local/www/vpn_ipsec_keys.php
@@ -3,7 +3,7 @@
* vpn_ipsec_keys.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/vpn_ipsec_keys_edit.php b/src/usr/local/www/vpn_ipsec_keys_edit.php
index 6c92f6e..03fc8fc 100644
--- a/src/usr/local/www/vpn_ipsec_keys_edit.php
+++ b/src/usr/local/www/vpn_ipsec_keys_edit.php
@@ -3,7 +3,7 @@
* vpn_ipsec_keys_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally based on m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/vpn_ipsec_mobile.php b/src/usr/local/www/vpn_ipsec_mobile.php
index c336928..05df61d 100644
--- a/src/usr/local/www/vpn_ipsec_mobile.php
+++ b/src/usr/local/www/vpn_ipsec_mobile.php
@@ -3,7 +3,7 @@
* vpn_ipsec_mobile.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
diff --git a/src/usr/local/www/vpn_ipsec_phase1.php b/src/usr/local/www/vpn_ipsec_phase1.php
index a9fb081..64de38f 100644
--- a/src/usr/local/www/vpn_ipsec_phase1.php
+++ b/src/usr/local/www/vpn_ipsec_phase1.php
@@ -3,7 +3,7 @@
* vpn_ipsec_phase1.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -395,14 +395,6 @@ if ($_POST) {
$input_errors[] = gettext("Encryption Algorithm AES-GCM can only be used with IKEv2");
}
- if (!empty($_POST['ealgo']) && isset($config['system']['crypto_hardware'])) {
- if ($config['system']['crypto_hardware'] == "glxsb") {
- if ($_POST['ealgo'] == "aes" && $_POST['ealgo_keylen'] != "128") {
- $input_errors[] = gettext("Only 128 bit AES can be used where the glxsb crypto accelerator is enabled.");
- }
- }
- }
-
/* auth backend for mobile eap-radius VPNs should be a RADIUS server */
if (($pconfig['authentication_method'] == 'eap-radius') && $pconfig['mobile']) {
if (!empty($config['ipsec']['client']['user_source'])) {
@@ -667,7 +659,7 @@ $section->addInput(new Form_Select(
'iketype',
'Key Exchange version',
$pconfig['iketype'],
- array("ikev1" => "V1", "ikev2" => "V2", "auto" => gettext("Auto"))
+ array("ikev1" => "IKEv1", "ikev2" => "IKEv2", "auto" => gettext("Auto"))
))->setHelp('Select the Internet Key Exchange protocol version to be used. Auto uses IKEv2 when initiator, and accepts either IKEv1 or IKEv2 as responder.');
$section->addInput(new Form_Select(
diff --git a/src/usr/local/www/vpn_ipsec_phase2.php b/src/usr/local/www/vpn_ipsec_phase2.php
index 940f782..43a1a6f 100644
--- a/src/usr/local/www/vpn_ipsec_phase2.php
+++ b/src/usr/local/www/vpn_ipsec_phase2.php
@@ -3,7 +3,7 @@
* vpn_ipsec_phase2.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc
* All rights reserved.
*
@@ -97,6 +97,7 @@ if ($ph2found === true) {
if (isset($ph2['mobile'])) {
$pconfig['mobile'] = true;
+ $pconfig['remoteid_type'] = "mobile";
}
} else {
$pconfig['ikeid'] = $_GET['ikeid'];
@@ -114,6 +115,7 @@ if ($ph2found === true) {
/* mobile client */
if ($_GET['mobile']) {
$pconfig['mobile']=true;
+ $pconfig['remoteid_type'] = "mobile";
}
}
@@ -333,13 +335,6 @@ if ($_POST) {
$input_errors[] = gettext("At least one encryption algorithm must be selected.");
} else {
foreach ($ealgos as $ealgo) {
- if (isset($config['system']['crypto_hardware'])) {
- if ($config['system']['crypto_hardware'] == "glxsb") {
- if ($ealgo['name'] == "aes" && $ealgo['keylen'] != "128") {
- $input_errors[] = gettext("Only 128 bit AES can be used where the glxsb crypto accelerator is enabled.");
- }
- }
- }
if (empty($pconfig['halgos'])) {
if (!strpos($ealgo['name'], "gcm")) {
$input_errors[] = gettext("At least one hashing algorithm needs to be selected.");
diff --git a/src/usr/local/www/vpn_ipsec_settings.php b/src/usr/local/www/vpn_ipsec_settings.php
index 3875779..4360837 100644
--- a/src/usr/local/www/vpn_ipsec_settings.php
+++ b/src/usr/local/www/vpn_ipsec_settings.php
@@ -3,7 +3,7 @@
* vpn_ipsec_settings.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/vpn_l2tp.php b/src/usr/local/www/vpn_l2tp.php
index 8645218..1adf21b 100644
--- a/src/usr/local/www/vpn_l2tp.php
+++ b/src/usr/local/www/vpn_l2tp.php
@@ -3,7 +3,7 @@
* vpn_l2tp.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/vpn_l2tp_users.php b/src/usr/local/www/vpn_l2tp_users.php
index 1ec0ffd..3bfaec1 100644
--- a/src/usr/local/www/vpn_l2tp_users.php
+++ b/src/usr/local/www/vpn_l2tp_users.php
@@ -3,7 +3,7 @@
* vpn_l2tp_users.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/vpn_l2tp_users_edit.php b/src/usr/local/www/vpn_l2tp_users_edit.php
index b0be760..92b2e9a 100644
--- a/src/usr/local/www/vpn_l2tp_users_edit.php
+++ b/src/usr/local/www/vpn_l2tp_users_edit.php
@@ -3,7 +3,7 @@
* vpn_l2tp_users_edit.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/vpn_openvpn_client.php b/src/usr/local/www/vpn_openvpn_client.php
index 185d515..157b0c9 100644
--- a/src/usr/local/www/vpn_openvpn_client.php
+++ b/src/usr/local/www/vpn_openvpn_client.php
@@ -3,7 +3,7 @@
* vpn_openvpn_client.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc.
* All rights reserved.
*
diff --git a/src/usr/local/www/vpn_openvpn_csc.php b/src/usr/local/www/vpn_openvpn_csc.php
index 4bafa9c..74d4c7a 100644
--- a/src/usr/local/www/vpn_openvpn_csc.php
+++ b/src/usr/local/www/vpn_openvpn_csc.php
@@ -3,7 +3,7 @@
* vpn_openvpn_csc.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc.
* All rights reserved.
*
diff --git a/src/usr/local/www/vpn_openvpn_server.php b/src/usr/local/www/vpn_openvpn_server.php
index 140e248..81861b1 100644
--- a/src/usr/local/www/vpn_openvpn_server.php
+++ b/src/usr/local/www/vpn_openvpn_server.php
@@ -3,7 +3,7 @@
* vpn_openvpn_server.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2008 Shrew Soft Inc.
* All rights reserved.
*
@@ -1183,6 +1183,7 @@ else:
<tr>
<th><?=gettext("Protocol / Port")?></th>
<th><?=gettext("Tunnel Network")?></th>
+ <th><?=gettext("Crypto")?></th>
<th><?=gettext("Description")?></th>
<th><?=gettext("Actions")?></th>
</tr>
@@ -1202,7 +1203,10 @@ else:
<?=htmlspecialchars($server['tunnel_networkv6'])?>
</td>
<td>
- <?=htmlspecialchars($server['description'])?>
+ <?=sprintf("Crypto: %s/%s<br/>D-H Params: %d bits", $server['crypto'], $server['digest'], $server['dh_length'])?><br />
+ </td>
+ <td>
+ <?=htmlspecialchars(sprintf('%s (%s)', $server['description'], $server['dev_mode']))?>
</td>
<td>
<a class="fa fa-pencil" title="<?=gettext('Edit server')?>" href="vpn_openvpn_server.php?act=edit&amp;id=<?=$i?>"></a>
diff --git a/src/usr/local/www/widgets/include/captiveportal.inc b/src/usr/local/www/widgets/include/captiveportal.inc
index 9d8ccaa..bcc61d8 100644
--- a/src/usr/local/www/widgets/include/captiveportal.inc
+++ b/src/usr/local/www/widgets/include/captiveportal.inc
@@ -3,7 +3,7 @@
* captiveportal.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/carp_status.inc b/src/usr/local/www/widgets/include/carp_status.inc
index d49e09e..675e53b 100644
--- a/src/usr/local/www/widgets/include/carp_status.inc
+++ b/src/usr/local/www/widgets/include/carp_status.inc
@@ -3,7 +3,7 @@
* carp_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/dyn_dns_status.inc b/src/usr/local/www/widgets/include/dyn_dns_status.inc
index 140326f..628fbc6 100644
--- a/src/usr/local/www/widgets/include/dyn_dns_status.inc
+++ b/src/usr/local/www/widgets/include/dyn_dns_status.inc
@@ -3,7 +3,7 @@
* dyn_dns_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/gateways.inc b/src/usr/local/www/widgets/include/gateways.inc
index b0f93f5..b2a1577 100644
--- a/src/usr/local/www/widgets/include/gateways.inc
+++ b/src/usr/local/www/widgets/include/gateways.inc
@@ -3,7 +3,7 @@
* gateways.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/gmirror_status.inc b/src/usr/local/www/widgets/include/gmirror_status.inc
index 62e9867..7a9b5c7 100644
--- a/src/usr/local/www/widgets/include/gmirror_status.inc
+++ b/src/usr/local/www/widgets/include/gmirror_status.inc
@@ -3,7 +3,7 @@
* gmirror_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/installed_packages.inc b/src/usr/local/www/widgets/include/installed_packages.inc
index f09fb1c..ca9d757 100644
--- a/src/usr/local/www/widgets/include/installed_packages.inc
+++ b/src/usr/local/www/widgets/include/installed_packages.inc
@@ -3,7 +3,7 @@
* installed_packages.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/interface_statistics.inc b/src/usr/local/www/widgets/include/interface_statistics.inc
index d1812b4..25edeb3 100644
--- a/src/usr/local/www/widgets/include/interface_statistics.inc
+++ b/src/usr/local/www/widgets/include/interface_statistics.inc
@@ -3,7 +3,7 @@
* interface_statistics.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/interfaces.inc b/src/usr/local/www/widgets/include/interfaces.inc
index 60b5890..e17add4 100644
--- a/src/usr/local/www/widgets/include/interfaces.inc
+++ b/src/usr/local/www/widgets/include/interfaces.inc
@@ -3,7 +3,7 @@
* interfaces.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/ipsec.inc b/src/usr/local/www/widgets/include/ipsec.inc
index fe0fff2..d2d4e2d 100644
--- a/src/usr/local/www/widgets/include/ipsec.inc
+++ b/src/usr/local/www/widgets/include/ipsec.inc
@@ -3,7 +3,7 @@
* ipsec.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/load_balancer.inc b/src/usr/local/www/widgets/include/load_balancer.inc
index e7fdbd6..017a40e 100644
--- a/src/usr/local/www/widgets/include/load_balancer.inc
+++ b/src/usr/local/www/widgets/include/load_balancer.inc
@@ -3,7 +3,7 @@
* load_balancer.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/log.inc b/src/usr/local/www/widgets/include/log.inc
index 2863b00..c55fb44 100644
--- a/src/usr/local/www/widgets/include/log.inc
+++ b/src/usr/local/www/widgets/include/log.inc
@@ -3,7 +3,7 @@
* log.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/ntp_status.inc b/src/usr/local/www/widgets/include/ntp_status.inc
index 91246fe..df85090 100644
--- a/src/usr/local/www/widgets/include/ntp_status.inc
+++ b/src/usr/local/www/widgets/include/ntp_status.inc
@@ -3,7 +3,7 @@
* ntp_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/openvpn.inc b/src/usr/local/www/widgets/include/openvpn.inc
index 1d9a862..65ce59b 100644
--- a/src/usr/local/www/widgets/include/openvpn.inc
+++ b/src/usr/local/www/widgets/include/openvpn.inc
@@ -3,7 +3,7 @@
* openvpn.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/services_status.inc b/src/usr/local/www/widgets/include/services_status.inc
index 22296c9..7d13c53 100644
--- a/src/usr/local/www/widgets/include/services_status.inc
+++ b/src/usr/local/www/widgets/include/services_status.inc
@@ -3,7 +3,7 @@
* services_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/smart_status.inc b/src/usr/local/www/widgets/include/smart_status.inc
index 367fffd..6b236b2 100644
--- a/src/usr/local/www/widgets/include/smart_status.inc
+++ b/src/usr/local/www/widgets/include/smart_status.inc
@@ -3,7 +3,7 @@
* smart_status.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/thermal_sensors.inc b/src/usr/local/www/widgets/include/thermal_sensors.inc
index 74d6f1f..192214a 100644
--- a/src/usr/local/www/widgets/include/thermal_sensors.inc
+++ b/src/usr/local/www/widgets/include/thermal_sensors.inc
@@ -3,7 +3,7 @@
* thermal_sensors.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/traffic_graph.inc b/src/usr/local/www/widgets/include/traffic_graph.inc
index 0371c8c..4870060 100644
--- a/src/usr/local/www/widgets/include/traffic_graph.inc
+++ b/src/usr/local/www/widgets/include/traffic_graph.inc
@@ -3,7 +3,7 @@
* traffic_graph.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/include/wake_on_lan.inc b/src/usr/local/www/widgets/include/wake_on_lan.inc
index 2f3389e..1120b4b 100644
--- a/src/usr/local/www/widgets/include/wake_on_lan.inc
+++ b/src/usr/local/www/widgets/include/wake_on_lan.inc
@@ -3,7 +3,7 @@
* wake_on_lan.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/javascript/ipsec.js b/src/usr/local/www/widgets/javascript/ipsec.js
index c61d8d5..bb3837c 100644
--- a/src/usr/local/www/widgets/javascript/ipsec.js
+++ b/src/usr/local/www/widgets/javascript/ipsec.js
@@ -2,7 +2,7 @@
* ipsec.js
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/javascript/thermal_sensors.js b/src/usr/local/www/widgets/javascript/thermal_sensors.js
index bbb7e9a..2ee8c3e 100644
--- a/src/usr/local/www/widgets/javascript/thermal_sensors.js
+++ b/src/usr/local/www/widgets/javascript/thermal_sensors.js
@@ -2,7 +2,7 @@
* thermal_sensors.js
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/javascript/traffic_graph.js b/src/usr/local/www/widgets/javascript/traffic_graph.js
index a393e6e..d0f7ee0 100644
--- a/src/usr/local/www/widgets/javascript/traffic_graph.js
+++ b/src/usr/local/www/widgets/javascript/traffic_graph.js
@@ -2,7 +2,7 @@
* traffic_graph.js
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php
index 75b27b1..65c8b4a 100644
--- a/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2007 Sam Wenham
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
@@ -48,7 +48,7 @@ if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid'])) {
}
if (($_GET['act'] == "del") && !empty($cpzone) && isset($cpzoneid)) {
- captiveportal_disconnect_client($_GET['id']);
+ captiveportal_disconnect_client($_GET['id'], 6);
}
unset($cpzone);
diff --git a/src/usr/local/www/widgets/widgets/carp_status.widget.php b/src/usr/local/www/widgets/widgets/carp_status.widget.php
index fd97b94..ecf2e08 100644
--- a/src/usr/local/www/widgets/widgets/carp_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/carp_status.widget.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2007 Sam Wenham
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
index 2c1a7b7..850cae9 100644
--- a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2013 Stanley P. Miller \ stan-qaz
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,6 +21,7 @@
*/
$nocsrf = true;
+global $dyndns_split_domain_types;
require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
@@ -51,7 +52,7 @@ if ($_REQUEST['getdyndnsstatus']) {
echo "|";
}
$cache_sep = ":";
- if ($dyndns['type'] == "namecheap") {
+ if (in_array($dyndns['type'], $dyndns_split_domain_types)) {
$hostname = $dyndns['host'] . "." . $dyndns['domainname'];
} elseif (empty($dyndns['type'])) {
/* RFC2136, add some dummy values */
@@ -64,21 +65,33 @@ if ($_REQUEST['getdyndnsstatus']) {
}
$filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($hostname) . "{$dyndns['id']}.cache";
+ $filename_v6 = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($hostname) . "{$dyndns['id']}_v6.cache";
if (file_exists($filename)) {
- if (($dyndns['type'] == '_rfc2136_') && (!isset($dyndns['usepublicip']))) {
- $ipaddr = get_interface_ip(get_failover_interface($dyndns['interface']));
- } else {
- $ipaddr = dyndnsCheckIP($dyndns['interface']);
- }
- $cached_ip_s = explode($cache_sep, file_get_contents($filename));
+ $ipaddr = dyndnsCheckIP($dyndns['interface']);
+ $cached_ip_s = explode(":", file_get_contents($filename));
$cached_ip = $cached_ip_s[0];
- if (trim($ipaddr) != trim($cached_ip)) {
+
+ if ($ipaddr != $cached_ip) {
print('<span class="text-danger">');
} else {
print('<span class="text-success">');
}
+
print(htmlspecialchars($cached_ip));
print('</span>');
+ } else if (file_exists($filename_v6)) {
+ $ipv6addr = get_interface_ipv6($dyndns['interface']);
+ $cached_ipv6_s = explode("|", file_get_contents($filename_v6));
+ $cached_ipv6 = $cached_ipv6_s[0];
+
+ if ($ipv6addr != $cached_ipv6) {
+ print('<span class="text-danger">');
+ } else {
+ print('<span class="text-success">');
+ }
+
+ print(htmlspecialchars($cached_ipv6));
+ print('</span>');
} else {
print('N/A ' . date("H:i:s"));
}
@@ -100,7 +113,7 @@ if ($_REQUEST['getdyndnsstatus']) {
<tbody>
<?php $dyndnsid = 0; foreach ($all_dyndns as $dyndns):
- if ($dyndns['type'] == "namecheap") {
+ if (in_array($dyndns['type'], $dyndns_split_domain_types)) {
$hostname = $dyndns['host'] . "." . $dyndns['domainname'];
} elseif (empty($dyndns['type'])) {
/* RFC2136, add some dummy values */
diff --git a/src/usr/local/www/widgets/widgets/gateways.widget.php b/src/usr/local/www/widgets/widgets/gateways.widget.php
index 4bb5b67..28aed43 100644
--- a/src/usr/local/www/widgets/widgets/gateways.widget.php
+++ b/src/usr/local/www/widgets/widgets/gateways.widget.php
@@ -4,7 +4,7 @@
*
* part of pfSense (https://www.pfsense.org)
* Copyright (c) 2008 Seth Mos
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/widgets/widgets/gmirror_status.widget.php b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php
index 6c3380b..046e9f3 100644
--- a/src/usr/local/www/widgets/widgets/gmirror_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php
@@ -3,7 +3,7 @@
* gmirror_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/widgets/widgets/installed_packages.widget.php b/src/usr/local/www/widgets/widgets/installed_packages.widget.php
index 90dd1be..1840d6f 100644
--- a/src/usr/local/www/widgets/widgets/installed_packages.widget.php
+++ b/src/usr/local/www/widgets/widgets/installed_packages.widget.php
@@ -6,7 +6,7 @@
* Copyright (c) Scott Dale
* Copyright (c) 2004-2005 T. Lechat <dev@lechat.org>
* Copyright (c) Jonathan Watt <jwatt@jwatt.org>
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* originally part of m0n0wall (http://m0n0.ch/wall)
diff --git a/src/usr/local/www/widgets/widgets/interface_statistics.widget.php b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php
index bfaa82e..0dac8cd 100644
--- a/src/usr/local/www/widgets/widgets/interface_statistics.widget.php
+++ b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php
@@ -3,7 +3,7 @@
* interface_statistics.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Scott Dale
* Copyright (c) 2004-2005 T. Lechat <dev@lechat.org>
* Copyright (c) 2004-2005 Jonathan Watt <jwatt@jwatt.org>
diff --git a/src/usr/local/www/widgets/widgets/interfaces.widget.php b/src/usr/local/www/widgets/widgets/interfaces.widget.php
index efc2527..0220794 100644
--- a/src/usr/local/www/widgets/widgets/interfaces.widget.php
+++ b/src/usr/local/www/widgets/widgets/interfaces.widget.php
@@ -3,7 +3,7 @@
* interfaces.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Scott Dale
* All rights reserved.
*
diff --git a/src/usr/local/www/widgets/widgets/ipsec.widget.php b/src/usr/local/www/widgets/widgets/ipsec.widget.php
index ce76f9e..81ec8be 100644
--- a/src/usr/local/www/widgets/widgets/ipsec.widget.php
+++ b/src/usr/local/www/widgets/widgets/ipsec.widget.php
@@ -3,7 +3,7 @@
* gmirror_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2004-2005 T. Lechat <dev@lechat.org> (BSD 2 clause)
* Copyright (c) 2007 Jonathan Watt <jwatt@jwatt.org> (BSD 2 clause)
* Copyright (c) 2007 Scott Dale (BSD 2 clause)
diff --git a/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php
index e6fd8e0..2456d6a 100644
--- a/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php
@@ -3,7 +3,7 @@
* load_balancer_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>.
* Copyright (c) 2005-2008 Bill Marquette
* All rights reserved.
diff --git a/src/usr/local/www/widgets/widgets/log.widget.php b/src/usr/local/www/widgets/widgets/log.widget.php
index fab878f..c1cc81e 100644
--- a/src/usr/local/www/widgets/widgets/log.widget.php
+++ b/src/usr/local/www/widgets/widgets/log.widget.php
@@ -3,7 +3,7 @@
* log.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Scott Dale
* All rights reserved.
*
diff --git a/src/usr/local/www/widgets/widgets/ntp_status.widget.php b/src/usr/local/www/widgets/widgets/ntp_status.widget.php
index 29ce025..c23a02f 100644
--- a/src/usr/local/www/widgets/widgets/ntp_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/ntp_status.widget.php
@@ -3,7 +3,7 @@
* ntp_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/openvpn.widget.php b/src/usr/local/www/widgets/widgets/openvpn.widget.php
index 0d555c0..6fdc069 100644
--- a/src/usr/local/www/widgets/widgets/openvpn.widget.php
+++ b/src/usr/local/www/widgets/widgets/openvpn.widget.php
@@ -3,7 +3,7 @@
* openvpn.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/picture.widget.php b/src/usr/local/www/widgets/widgets/picture.widget.php
index 6ceff9b..ae02f0f 100644
--- a/src/usr/local/www/widgets/widgets/picture.widget.php
+++ b/src/usr/local/www/widgets/widgets/picture.widget.php
@@ -3,7 +3,7 @@
* picture.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/rss.widget.php b/src/usr/local/www/widgets/widgets/rss.widget.php
index 3f67fa2..f5100c8 100644
--- a/src/usr/local/www/widgets/widgets/rss.widget.php
+++ b/src/usr/local/www/widgets/widgets/rss.widget.php
@@ -3,7 +3,7 @@
* rss.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/services_status.widget.php b/src/usr/local/www/widgets/widgets/services_status.widget.php
index 5da0adc..1ef5b5b 100644
--- a/src/usr/local/www/widgets/widgets/services_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/services_status.widget.php
@@ -3,7 +3,7 @@
* services_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Sam Wenham
* All rights reserved.
*
@@ -95,7 +95,7 @@ if (count($services) > 0) {
$service_desc = explode(".",$service['description']);
?>
<tr>
- <td><i class="fa fa-<?=get_service_status($service) ? 'check-circle text-success' : 'times-circle text-warning'?>"></i></td>
+ <td><?=get_service_status_icon($service, false, true, false, "state")?></td>
<td><?=$service['dispname']?></td>
<td><?=$service_desc[0]?></td>
<td><?=get_service_control_links($service)?></td>
diff --git a/src/usr/local/www/widgets/widgets/smart_status.widget.php b/src/usr/local/www/widgets/widgets/smart_status.widget.php
index 9f4fc02..d0e2550 100644
--- a/src/usr/local/www/widgets/widgets/smart_status.widget.php
+++ b/src/usr/local/www/widgets/widgets/smart_status.widget.php
@@ -3,7 +3,7 @@
* smart_status.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2012 mkirbst @ pfSense Forum
* All rights reserved.
*
diff --git a/src/usr/local/www/widgets/widgets/system_information.widget.php b/src/usr/local/www/widgets/widgets/system_information.widget.php
index da23d39..c927043 100644
--- a/src/usr/local/www/widgets/widgets/system_information.widget.php
+++ b/src/usr/local/www/widgets/widgets/system_information.widget.php
@@ -3,7 +3,7 @@
* system_information.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Scott Dale
* All rights reserved.
*
@@ -27,6 +27,7 @@
require_once("functions.inc");
require_once("guiconfig.inc");
require_once('notices.inc');
+require_once('system.inc');
include_once("includes/functions.inc.php");
if ($_REQUEST['getupdatestatus']) {
@@ -64,7 +65,7 @@ if ($_REQUEST['getupdatestatus']) {
<?php
break;
case '=':
- print(gettext("The system is on the latest version."));
+ printf('<span class="text-success">%s</span>', gettext("The system is on the latest version."));
break;
case '>':
print(gettext("The system is on a later version than<br />the official release."));
@@ -93,6 +94,21 @@ $filesystems = get_mounted_filesystems();
<td><?php echo htmlspecialchars($config['system']['hostname'] . "." . $config['system']['domain']); ?></td>
</tr>
<tr>
+ <th><?=gettext("System");?></th>
+ <td>
+ <?php
+ $platform = system_identify_specific_platform();
+ if (isset($platform['descr'])) {
+ echo $platform['descr'];
+ } else {
+ echo gettext('Unknown system');
+ }
+ ?>
+ <br />
+ <?=gettext("Serial: ");?><strong><?=system_get_serial();?></strong>
+ </td>
+ </tr>
+ <tr>
<th><?=gettext("Version");?></th>
<td>
<strong><?=$g['product_version_string']?></strong>
@@ -109,36 +125,6 @@ $filesystems = get_mounted_filesystems();
<?php endif; ?>
</td>
</tr>
- <?php if (!$g['hideplatform']): ?>
- <tr>
- <th><?=gettext("Platform");?></th>
- <td>
- <?=htmlspecialchars($g['platform']);?>
- <?php if (($g['platform'] == "nanobsd") && (file_exists("/etc/nanosize.txt"))) {
- echo " (" . htmlspecialchars(trim(file_get_contents("/etc/nanosize.txt"))) . ")";
- } ?>
- </td>
- </tr>
- <?php endif; ?>
- <?php if ($g['platform'] == "nanobsd"): ?>
- <?php
- global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH;
- global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH;
- global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE;
- nanobsd_detect_slice_info();
- $rw = is_writable("/") ? "(rw)" : "(ro)";
- ?>
- <tr>
- <th><?=gettext("NanoBSD Boot Slice");?></th>
- <td>
- <?=htmlspecialchars(nanobsd_friendly_slice_name($BOOT_DEVICE));?> / <?=htmlspecialchars($BOOTFLASH);?><?=$rw;?>
- <?php if ($BOOTFLASH != $ACTIVE_SLICE): ?>
- <br /><br /><?=gettext('Next Boot')?>:<br />
- <?=htmlspecialchars(nanobsd_friendly_slice_name($GLABEL_SLICE));?> / <?=htmlspecialchars($ACTIVE_SLICE);?>
- <?php endif; ?>
- </td>
- </tr>
- <?php endif; ?>
<tr>
<th><?=gettext("CPU Type");?></th>
<td><?=htmlspecialchars(get_single_sysctl("hw.model"))?>
diff --git a/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php
index 0930b06..e776e4e 100644
--- a/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php
+++ b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php
@@ -3,7 +3,7 @@
* thermal_sensors.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php
index 6eab990..2d1af03 100644
--- a/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php
+++ b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php
@@ -3,7 +3,7 @@
* traffic_graphs.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2007 Scott Dale
* Copyright (c) 2004-2005 T. Lechat <dev@lechat.org>
* Copyright (c) 2004-2005 Jonathan Watt <jwatt@jwatt.org>.
diff --git a/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php
index 6a95d44..0930a6a 100644
--- a/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php
+++ b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php
@@ -3,7 +3,7 @@
* wake_on_lan.widget.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2010 Yehuda Katz
* All rights reserved.
*
diff --git a/src/usr/local/www/wizard.php b/src/usr/local/www/wizard.php
index 4f4a969..574c1e1 100644
--- a/src/usr/local/www/wizard.php
+++ b/src/usr/local/www/wizard.php
@@ -3,7 +3,7 @@
* wizard.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/wizards/openvpn_wizard.inc b/src/usr/local/www/wizards/openvpn_wizard.inc
index d9d9235..259d279 100644
--- a/src/usr/local/www/wizards/openvpn_wizard.inc
+++ b/src/usr/local/www/wizards/openvpn_wizard.inc
@@ -3,7 +3,7 @@
* openvpn_wizard.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -203,7 +203,7 @@ function step7_submitphpaction() {
} elseif (has_special_chars($_POST['country']) || has_special_chars($_POST['state']) ||
has_special_chars($_POST['city']) || has_special_chars($_POST['organization'])) {
$stepid--;
- $input_errors[] = "Please do not use special characters in Certificate field names.";
+ $input_errors[] = "Please limit Certificate field names to only the following characters: A-Z, a-z, space, underscore, and dash.";
} elseif (in_array($_POST['descr'], $canames) || in_array($_POST['descr'], $cacns)) {
$stepid--;
$savemsg = "Please enter a different name for the Certificate Authority. A Certificate Authority with that name already exists.";
diff --git a/src/usr/local/www/wizards/openvpn_wizard.xml b/src/usr/local/www/wizards/openvpn_wizard.xml
index d7cea3c..3d898d7 100644
--- a/src/usr/local/www/wizards/openvpn_wizard.xml
+++ b/src/usr/local/www/wizards/openvpn_wizard.xml
@@ -5,7 +5,7 @@
* openvpn_wizard.xml
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -510,27 +510,47 @@
<field>
<name>keylength</name>
<displayname>Key length</displayname>
- <description>&lt;br/&gt;Size of the key which will be generated. The larger the key, the more security it offers, but larger keys are generally slower to use.</description>
+ <description>&lt;br/&gt;Size of the key which will be generated. The larger the key, the more security it offers, but larger keys take considerably more time to generate, and take slightly longer to validate leading to a slight slowdown in setting up new sessions (not always noticeable). As of 2016, 2048 bit is the minimum and most common selection and 4096 is the maximum in common use. For more information see &lt;a href="https://keylength.com"&gt;keylength.com&lt;/a&gt;</description>
<type>select</type>
<value>2048</value>
<bindstofield>ovpnserver->step9->keylength</bindstofield>
<options>
<option>
- <name>512 bits</name>
+ <name>512 bit</name>
<value>512</value>
</option>
<option>
- <name>1024 bits</name>
+ <name>1024 bit</name>
<value>1024</value>
</option>
<option>
- <name>2048 bits</name>
+ <name>2048 bit</name>
<value>2048</value>
</option>
<option>
- <name>4096 bits</name>
+ <name>3072 bit</name>
+ <value>3072</value>
+ </option>
+ <option>
+ <name>4096 bit</name>
<value>4096</value>
</option>
+ <option>
+ <name>7680 bit</name>
+ <value>7680</value>
+ </option>
+ <option>
+ <name>8192 bit</name>
+ <value>8192</value>
+ </option>
+ <option>
+ <name>15360 bit</name>
+ <value>15360</value>
+ </option>
+ <option>
+ <name>16384 bit</name>
+ <value>16384</value>
+ </option>
</options>
</field>
<field>
@@ -685,11 +705,31 @@
<value>2048</value>
</option>
<option>
+ <name>3072 bit</name>
+ <value>3072</value>
+ </option>
+ <option>
<name>4096 bit</name>
<value>4096</value>
</option>
+ <option>
+ <name>7680 bit</name>
+ <value>7680</value>
+ </option>
+ <option>
+ <name>8192 bit</name>
+ <value>8192</value>
+ </option>
+ <option>
+ <name>15360 bit</name>
+ <value>15360</value>
+ </option>
+ <option>
+ <name>16384 bit</name>
+ <value>16384</value>
+ </option>
</options>
- <description>&lt;br/&gt;Length of Diffie-Hellman (DH) key exchange parameters, used for establishing a secure communications channel. As with other such settings, the larger values are more secure, but may be slower in operation.</description>
+ <description>&lt;br/&gt;Length of Diffie-Hellman (DH) key exchange parameters, used for establishing a secure communications channel. The DH parameters are different from key sizes, but as with other such settings, the larger the key, the more security it offers, but larger keys take considerably more time to generate. As of 2016, 2048 bit is a common and typical selection.</description>
</field>
<field>
<name>crypto</name>
diff --git a/src/usr/local/www/wizards/setup_wizard.xml b/src/usr/local/www/wizards/setup_wizard.xml
index 9380d07..d5a3c48 100644
--- a/src/usr/local/www/wizards/setup_wizard.xml
+++ b/src/usr/local/www/wizards/setup_wizard.xml
@@ -5,7 +5,7 @@
* setup_wizard.xml
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,9 +34,7 @@
</field>
</fields>
<stepbeforeformdisplay>
- conf_mount_rw();
unlink_if_exists('/conf/trigger_initial_wizard');
- conf_mount_ro();
</stepbeforeformdisplay>
</step>
<step>
@@ -575,7 +573,7 @@
<type>input</type>
<bindstofield>interfaces->lan->ipaddr</bindstofield>
<description>Type dhcp if this interface uses DHCP to obtain its IP address.</description>
- <validate>^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$</validate>
+ <validate>^(dhcp|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/i</validate>
<message>LAN IP Address field is invalid</message>
</field>
<field>
@@ -590,7 +588,7 @@
</fields>
<stepsubmitphpaction>
<![CDATA[
- if (empty($_POST['lanipaddress']) || !is_ipaddr($_POST['lanipaddress'])) {
+ if (empty($_POST['lanipaddress']) || (!is_ipaddr($_POST['lanipaddress']) && (strtolower($_POST['lanipaddress']) != "dhcp"))) {
print_info_box("Invalid LAN IP address. Please press back in the browser window and correct.");
die;
}
@@ -621,32 +619,39 @@
die;
}
- $ipaddresses_before = ip_range_size_v4($lowestip, $_POST['lanipaddress']);
- $ipaddresses_after = ip_range_size_v4($_POST['lanipaddress'], $highestip);
+ /*
+ If the existing DHCP range on LAN is not in the new subnet or
+ is invalid, then replace the range with a newly crafted one.
+ */
+ if (!ip_in_subnet($config['dhcpd']['lan']['range']['from'], "{$_POST['lanipaddress']}/{$_POST['subnetmask']}") ||
+ !ip_in_subnet($config['dhcpd']['lan']['range']['to'], "{$_POST['lanipaddress']}/{$_POST['subnetmask']}")) {
- if ($ipaddresses_after >= $ipaddresses_before) {
- // The LAN IP is in the 1st half of the subnet, so put DHCP in the 2nd half.
- if ($ipaddresses_after > 30) {
- // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP
- // This case will work out like the old defaults if the user has specified the ".1" address.
- // The range will be something like ".10" to ".245"
- $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress'], 9);
- $config['dhcpd']['lan']['range']['to'] = ip_before($highestip, 10);
- } else {
- // There is not much space in the subnet, so allocate everything above the LAN IP to DHCP.
- $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress']);
- $config['dhcpd']['lan']['range']['to'] = ip_before($highestip);
- }
- } else {
- // The LAN IP is in the 2nd half of the subnet, so put DHCP in the 1st half.
- if ($ipaddresses_before > 30) {
- // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP
- $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip, 10);
- $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress'], 9);
+ $ipaddresses_before = ip_range_size_v4($lowestip, $_POST['lanipaddress']);
+ $ipaddresses_after = ip_range_size_v4($_POST['lanipaddress'], $highestip);
+ if ($ipaddresses_after >= $ipaddresses_before) {
+ // The LAN IP is in the 1st half of the subnet, so put DHCP in the 2nd half.
+ if ($ipaddresses_after > 30) {
+ // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP
+ // This case will work out like the old defaults if the user has specified the ".1" address.
+ // The range will be something like ".10" to ".245"
+ $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress'], 9);
+ $config['dhcpd']['lan']['range']['to'] = ip_before($highestip, 10);
+ } else {
+ // There is not much space in the subnet, so allocate everything above the LAN IP to DHCP.
+ $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress']);
+ $config['dhcpd']['lan']['range']['to'] = ip_before($highestip);
+ }
} else {
- // There is not much space in the subnet, so allocate everything below the LAN IP to DHCP.
- $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip);
- $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress']);
+ // The LAN IP is in the 2nd half of the subnet, so put DHCP in the 1st half.
+ if ($ipaddresses_before > 30) {
+ // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP
+ $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip, 10);
+ $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress'], 9);
+ } else {
+ // There is not much space in the subnet, so allocate everything below the LAN IP to DHCP.
+ $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip);
+ $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress']);
+ }
}
}
]]>
diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
index 40ec18a..f5c0448 100644
--- a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc
@@ -3,7 +3,7 @@
* traffic_shaper_wizard_dedicated.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -132,6 +132,10 @@ function step2_stepbeforeformdisplay() {
$field['typehint'] = "Queueing discipline to apply on the download of this connection.";
$field['options']['option'] = array();
$opts = array();
+ $opts['name'] = "PRIQ";
+ $opts['value'] = "PRIQ";
+ $field['options']['option'][] = $opts;
+ $opts = array();
$opts['name'] = "HFSC";
$opts['value'] = "HFSC";
$field['options']['option'][] = $opts;
@@ -139,10 +143,6 @@ function step2_stepbeforeformdisplay() {
$opts['name'] = "CBQ";
$opts['value'] = "CBQ";
$field['options']['option'][] = $opts;
- $opts = array();
- $opts['name'] = "PRIQ";
- $opts['value'] = "PRIQ";
- $field['options']['option'][] = $opts;
$field['bindstofield'] = "ezshaper->step2->local{$i}downloadscheduler";
$fields[] = $field;
@@ -178,6 +178,10 @@ function step2_stepbeforeformdisplay() {
$field['typehint'] = "Queueing discipline to apply on the upload of this connection.";
$field['options']['option'] = array();
$opts = array();
+ $opts['name'] = "PRIQ";
+ $opts['value'] = "PRIQ";
+ $field['options']['option'][] = $opts;
+ $opts = array();
$opts['name'] = "HFSC";
$opts['value'] = "HFSC";
$field['options']['option'][] = $opts;
@@ -185,10 +189,6 @@ function step2_stepbeforeformdisplay() {
$opts['name'] = "CBQ";
$opts['value'] = "CBQ";
$field['options']['option'][] = $opts;
- $opts = array();
- $opts['name'] = "PRIQ";
- $opts['value'] = "PRIQ";
- $field['options']['option'][] = $opts;
$field['bindstofield'] = "ezshaper->step2->conn{$i}uploadscheduler";
$fields[] = $field;
@@ -630,7 +630,7 @@ function step8_stepsubmitphpaction() {
/* And we're no longer dirty! */
clear_subsystem_dirty('shaper');
- update_filter_reload_status("Initializing");
+ update_filter_reload_status("Initializing", true);
header("Location: status_filter_reload.php");
exit;
}
@@ -696,71 +696,72 @@ function apply_all_chosen_items() {
$upfactor = wizard_get_bandwidthtype_scale($config['ezshaper']['step2']["conn{$i}uploadspeed"]);
$upbw = floatval($config['ezshaper']['step2']["conn{$i}upload"]) * $upfactor;
- if ($config['ezshaper']['step3']['enable']) {
- $voip = true;
- $voipbw = $config['ezshaper']['step3']["conn{$i}upload"];
- $voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"];
- if ($voipbwunit == "%")
- $factor = $upbw/100;
- else
- $factor = wizard_get_bandwidthtype_scale($voipbwunit);
- $remainbw += $voipbw * $factor;
- }
- if ($config['ezshaper']['step4']['enable']) {
- $penalty = true;
- $penaltybw = $config['ezshaper']['step4']['bandwidth'];
- $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
- if ($penaltybwunit == "%")
+ if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) {
+ $voip = true;
+ $voipbw = $config['ezshaper']['step3']["conn{$i}upload"];
+ $voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"];
+ if ($voipbwunit == "%")
+ $factor = $upbw/100;
+ else
+ $factor = wizard_get_bandwidthtype_scale($voipbwunit);
+ $remainbw += $voipbw * $factor;
+ }
+ if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) {
+ $penalty = true;
+ $penaltybw = $config['ezshaper']['step4']['bandwidth'];
+ $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
+ if ($penaltybwunit == "%")
+ $factor = $upbw/100;
+ else
+ $factor = wizard_get_bandwidthtype_scale($penaltybwunit);
+ $remainbw += $penaltybw * $factor;
+ } else {
+ $penalty = false;
+ $penaltybw = 0;
+ }
+ if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) {
+ $p2p = true;
+ if ($config['ezshaper']['step5']['p2pcatchall']) {
+ $p2pcatchall = true;
+ $p2pcatchbw = $config['ezshaper']['step5']['bandwidth'];
+ $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit'];
+ if ($p2pcatchbwunit == "%")
$factor = $upbw/100;
else
- $factor = wizard_get_bandwidthtype_scale($penaltybwunit);
- $remainbw += $penaltybw * $factor;
- } else {
- $penalty = false;
- $penaltybw = 0;
- }
- if ($config['ezshaper']['step5']['enable']) {
- $p2p = true;
- if ($config['ezshaper']['step5']['p2pcatchall']) {
- $p2pcatchall = true;
- $p2pcatchbw = $config['ezshaper']['step5']['bandwidth'];
- $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit'];
- if ($p2pcatchbwunit == "%")
- $factor = $upbw/100;
- else
- $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit);
- $remainbw += $p2pcatchbw * $factor;
- } else {
- $p2pcatchall = false;
- $p2pcatchbw = 0;
- }
+ $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit);
+ $remainbw += $p2pcatchbw * $factor;
} else {
- $p2p = false;
$p2pcatchall = false;
$p2pcatchbw = 0;
}
- if ($config['ezshaper']['step6']['enable']) {
- $games = true;
- } else {
- $games = false;
- }
-
- if ($config['ezshaper']['step7']['enable']) {
- $otherpriority = true;
- } else {
- $otherpriority = false;
- }
- $remainbw = round($remainbw / $upbw * 100, 2);
+ } else {
+ $p2p = false;
+ $p2pcatchall = false;
+ $p2pcatchbw = 0;
+ }
+ if ($config['ezshaper']['step6']['enable']) {
+ $games = true;
+ } else {
+ $games = false;
+ }
- if (intval($remainbw) > 0 && intval($remainbw) > 30) {
- $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue.");
- header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}");
- exit;
- } else {
- $remainbw = 100 - $remainbw;
- }
+ if ($config['ezshaper']['step7']['enable']) {
+ $otherpriority = true;
+ } else {
+ $otherpriority = false;
+ }
if ($sched != "PRIQ") {
+ $remainbw = round($remainbw / $upbw * 100, 2);
+
+ if (intval($remainbw) > 0 && intval($remainbw) > 30) {
+ $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue.");
+ header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}");
+ exit;
+ } else {
+ $remainbw = 100 - $remainbw;
+ }
+
if ($sched == "CBQ")
$q =& new cbq_queue();
else if ($sched == "HFSC")
@@ -1078,7 +1079,7 @@ function apply_all_chosen_items() {
$otherpriority = false;
$remainbw = 0;
- if ($config['ezshaper']['step3']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) {
$voip = true;
$voipbw = $config['ezshaper']['step3']["local{$i}download"];
$voipbwunit = $config['ezshaper']['step3']["local{$i}downloadspeed"];
@@ -1087,43 +1088,43 @@ function apply_all_chosen_items() {
$factor = $downbw/100;
else
$factor = wizard_get_bandwidthtype_scale($voipbwunit);
- $remainbw += floatval($voipbw) * $factor;
- } else
+ $remainbw += floatval($voipbw) * $factor;
+ } else
$remainbw += 32000; /* 32Kbit/s reserved for HFSC link sharing */
- }
- if ($config['ezshaper']['step4']['enable']) {
- $penalty = true;
- $penaltybw = $config['ezshaper']['step4']['bandwidth'];
- $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
- if ($penaltybwunit == "%")
- $factor = $downbw/100;
- else
- $factor = wizard_get_bandwidthtype_scale($penaltybwunit);
- $remainbw += floatval($penaltybw) * $factor;
- } else {
- $penalty = false;
- $penaltybw = 0;
- }
- if ($config['ezshaper']['step5']['enable']) {
- $p2p = true;
- if ($config['ezshaper']['step5']['p2pcatchall']) {
- $p2pcatchall = true;
- $p2pcatchbw = $config['ezshaper']['step5']['bandwidth'];
- $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit'];
- if ($p2pcatchbwunit == "%")
+ }
+ if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) {
+ $penalty = true;
+ $penaltybw = $config['ezshaper']['step4']['bandwidth'];
+ $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
+ if ($penaltybwunit == "%")
$factor = $downbw/100;
else
- $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit);
- $remainbw += floatval($p2pcatchbw) * $factor;
+ $factor = wizard_get_bandwidthtype_scale($penaltybwunit);
+ $remainbw += floatval($penaltybw) * $factor;
} else {
+ $penalty = false;
+ $penaltybw = 0;
+ }
+ if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) {
+ $p2p = true;
+ if ($config['ezshaper']['step5']['p2pcatchall']) {
+ $p2pcatchall = true;
+ $p2pcatchbw = $config['ezshaper']['step5']['bandwidth'];
+ $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit'];
+ if ($p2pcatchbwunit == "%")
+ $factor = $downbw/100;
+ else
+ $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit);
+ $remainbw += floatval($p2pcatchbw) * $factor;
+ } else {
+ $p2pcatchall = false;
+ $p2pcatchbw = 0;
+ }
+ } else {
+ $p2p = false;
$p2pcatchall = false;
$p2pcatchbw = 0;
}
- } else {
- $p2p = false;
- $p2pcatchall = false;
- $p2pcatchbw = 0;
- }
if ($config['ezshaper']['step6']['enable']) {
$games = true;
} else {
@@ -1135,16 +1136,18 @@ function apply_all_chosen_items() {
} else {
$otherpriority = false;
}
- $remainbw = round($remainbw / $downbw * 100, 2);
- if (intval($remainbw) > 0 && intval($remainbw) > 40) {
- $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue.");
- header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}");
- exit;
- } else {
- $remainbw = 100 - $remainbw;
+ if ($sched != "PRIQ") {
+ $remainbw = round($remainbw / $downbw * 100, 2);
+ if (intval($remainbw) > 0 && intval($remainbw) > 40) {
+ $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue.");
+ header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}");
+ exit;
+ } else {
+ $remainbw = 100 - $remainbw;
+ }
+ $downqbw = $downbw;
}
- $downqbw = $downbw;
if (!$p2pcatchall) {
if ($sched == "PRIQ")
$q =& new priq_queue();
diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
index b218643..ce74605 100644
--- a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml
@@ -5,7 +5,7 @@
* traffic_shaper_wizard_dedicated.xml
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
index 99a014b..81e8ac1 100644
--- a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc
@@ -3,7 +3,7 @@
* traffic_shaper_wizard_multi_all.inc
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -155,6 +155,10 @@ function step2_stepbeforeformdisplay() {
$field['typehint'] = "Queueing discipline to apply on this local interface.";
$field['options']['option'] = array();
$opts = array();
+ $opts['name'] = "PRIQ";
+ $opts['value'] = "PRIQ";
+ $field['options']['option'][] = $opts;
+ $opts = array();
$opts['name'] = "HFSC";
$opts['value'] = "HFSC";
$field['options']['option'][] = $opts;
@@ -162,10 +166,6 @@ function step2_stepbeforeformdisplay() {
$opts['name'] = "CBQ";
$opts['value'] = "CBQ";
$field['options']['option'][] = $opts;
- $opts = array();
- $opts['name'] = "PRIQ";
- $opts['value'] = "PRIQ";
- $field['options']['option'][] = $opts;
$field['bindstofield'] = "ezshaper->step2->local{$i}downloadscheduler";
$fields[] = $field;
}
@@ -209,6 +209,10 @@ function step2_stepbeforeformdisplay() {
$field['typehint'] = "Queueing discipline to apply on the upload of this connection.";
$field['options']['option'] = array();
$opts = array();
+ $opts['name'] = "PRIQ";
+ $opts['value'] = "PRIQ";
+ $field['options']['option'][] = $opts;
+ $opts = array();
$opts['name'] = "HFSC";
$opts['value'] = "HFSC";
$field['options']['option'][] = $opts;
@@ -216,10 +220,6 @@ function step2_stepbeforeformdisplay() {
$opts['name'] = "CBQ";
$opts['value'] = "CBQ";
$field['options']['option'][] = $opts;
- $opts = array();
- $opts['name'] = "PRIQ";
- $opts['value'] = "PRIQ";
- $field['options']['option'][] = $opts;
$field['bindstofield'] = "ezshaper->step2->conn{$i}uploadscheduler";
$fields[] = $field;
@@ -696,7 +696,7 @@ function step8_stepsubmitphpaction() {
/* And we're no longer dirty! */
clear_subsystem_dirty('shaper');
- update_filter_reload_status("Initializing");
+ update_filter_reload_status("Initializing", true);
header("Location: status_filter_reload.php");
exit;
}
@@ -762,7 +762,7 @@ function apply_all_chosen_items() {
$upfactor = wizard_get_bandwidthtype_scale($config['ezshaper']['step2']["conn{$i}uploadspeed"]);
$upbw = floatval($config['ezshaper']['step2']["conn{$i}upload"]) * $upfactor;
- if ($config['ezshaper']['step3']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) {
$voip = true;
$voipbw = $config['ezshaper']['step3']["conn{$i}upload"];
$voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"];
@@ -772,7 +772,7 @@ function apply_all_chosen_items() {
$factor = wizard_get_bandwidthtype_scale($voipbwunit);
$remainbw += $voipbw * $factor;
}
- if ($config['ezshaper']['step4']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) {
$penalty = true;
$penaltybw = $config['ezshaper']['step4']['bandwidth'];
$penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
@@ -785,7 +785,7 @@ function apply_all_chosen_items() {
$penalty = false;
$penaltybw = 0;
}
- if ($config['ezshaper']['step5']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) {
$p2p = true;
if ($config['ezshaper']['step5']['p2pcatchall']) {
$p2pcatchall = true;
@@ -817,17 +817,17 @@ function apply_all_chosen_items() {
$otherpriority = false;
}
- $remainbw = round($remainbw / $upbw * 100, 2);
+ if ($sched != "PRIQ") {
+ $remainbw = round($remainbw / $upbw * 100, 2);
- if (intval($remainbw) > 0 && intval($remainbw) > 30) {
- $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue.");
- header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}");
- exit;
- } else {
- $remainbw = 100 - $remainbw;
- }
+ if (intval($remainbw) > 0 && intval($remainbw) > 30) {
+ $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue.");
+ header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}");
+ exit;
+ } else {
+ $remainbw = 100 - $remainbw;
+ }
- if ($sched != "PRIQ") {
if ($sched == "CBQ")
$q =& new cbq_queue();
else if ($sched == "HFSC")
@@ -876,14 +876,14 @@ function apply_all_chosen_items() {
$tmpcf['enabled'] = "on";
If ($sched == "CBQ") {
$tmpcf['borrow'] = "on";
- $tmpcf['bandwidth'] = $remainbw * 0.2;
+ $tmpcf['bandwidth'] = intval($remainbw * 0.2);
$tmpcf['bandwidthtype'] = "%";
}
else if ($sched == "HFSC") {
$lkbw = 0.20 * $remainbw;
- $tmpcf['linkshare3'] = "{$lkbw}%";
+ $tmpcf['linkshare3'] = intval($lkbw) . "%";
$tmpcf['linkshare'] = "on";
- $tmpcf['bandwidth'] = $lkbw;
+ $tmpcf['bandwidth'] = intval($lkbw);
$tmpcf['bandwidthtype'] = "%";
}
array_push($tmppath, "qACK");
@@ -1158,8 +1158,7 @@ function apply_all_chosen_items() {
$otherpriority = false;
$remainbw = 0;
-
- if ($config['ezshaper']['step3']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) {
$voip = true;
$voipbw = $config['ezshaper']['step3']["local{$i}download"];
$voipbwunit = $config['ezshaper']['step3']["local{$i}downloadspeed"];
@@ -1172,7 +1171,7 @@ function apply_all_chosen_items() {
} else
$remainbw += 32000; /* 32Kbit/s reserved for HFSC link sharing */
}
- if ($config['ezshaper']['step4']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) {
$penalty = true;
$penaltybw = $config['ezshaper']['step4']['bandwidth'];
$penaltybwunit = $config['ezshaper']['step4']['bandwidthunit'];
@@ -1185,7 +1184,7 @@ function apply_all_chosen_items() {
$penalty = false;
$penaltybw = 0;
}
- if ($config['ezshaper']['step5']['enable']) {
+ if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) {
$p2p = true;
if ($config['ezshaper']['step5']['p2pcatchall']) {
$p2pcatchall = true;
@@ -1216,17 +1215,19 @@ function apply_all_chosen_items() {
} else {
$otherpriority = false;
}
- $remainbw = round($remainbw / $lanbw * 100, 2);
+ if ($sched != "PRIQ") {
+ $remainbw = round($remainbw / $lanbw * 100, 2);
- if (intval($remainbw) > 0 && intval($remainbw) > 40) {
- $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue.");
- header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}");
- exit;
- } else {
- $remainbw = 100 - $remainbw;
- }
+ if (intval($remainbw) > 0 && intval($remainbw) > 40) {
+ $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue.");
+ header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}");
+ exit;
+ } else {
+ $remainbw = 100 - $remainbw;
+ }
- $lanqbw = $lanbw;
+ $lanqbw = $lanbw;
+ }
if (!$p2pcatchall) {
if ($sched == "PRIQ")
$q =& new priq_queue();
@@ -1256,7 +1257,8 @@ function apply_all_chosen_items() {
//var_dump($input_errors);
$qtmp->wconfig();
- $lanqbw *= 0.8; /* lanqbw - 20% */
+ if ($sched != "PRIQ")
+ $lanqbw *= 0.8; /* lanqbw - 20% */
}
if ($sched != "PRIQ") {
diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
index 08869db..e0a5850 100644
--- a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
+++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml
@@ -5,7 +5,7 @@
* traffic_shaper_wizard_multi_all.xml
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/src/usr/local/www/xmlrpc.php b/src/usr/local/www/xmlrpc.php
index 2d4722f..51ce9cf 100644
--- a/src/usr/local/www/xmlrpc.php
+++ b/src/usr/local/www/xmlrpc.php
@@ -3,7 +3,7 @@
* xmlrpc.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* Copyright (c) 2005 Colin Smith
* All rights reserved.
*
@@ -41,8 +41,10 @@ class pfsense_xmlrpc_server {
private $loop_detected = false;
private $remote_addr;
- private function auth($username, $password) {
+ private function auth() {
global $config;
+ $username = $_SERVER['PHP_AUTH_USER'];
+ $password = $_SERVER['PHP_AUTH_PW'];
$login_ok = false;
if (!empty($username) && !empty($password)) {
@@ -109,7 +111,7 @@ class pfsense_xmlrpc_server {
/* grab sync to ip if enabled */
if (isset($config['hasync']['synchronizetoip']) &&
- $config['hasync']['synchronizetoip'] == $remote_addr) {
+ $config['hasync']['synchronizetoip'] == $this->remote_addr) {
$this->loop_detected = true;
}
}
@@ -117,28 +119,22 @@ class pfsense_xmlrpc_server {
/**
* Get host version information
*
- * @param string $username
- * @param string $password
- *
* @return array
*/
- public function host_firmware_version($username, $password) {
- $this->auth($username, $password);
-
+ public function host_firmware_version($dummy = 1) {
+ $this->auth();
return host_firmware_version();
}
/**
* Executes a PHP block of code
*
- * @param string $username
- * @param string $password
* @param string $code
*
* @return bool
*/
- public function exec_php($username, $password, $code) {
- $this->auth($username, $password);
+ public function exec_php($code) {
+ $this->auth();
eval($code);
if ($toreturn) {
@@ -151,14 +147,12 @@ class pfsense_xmlrpc_server {
/**
* Executes shell commands
*
- * @param string $username
- * @param string $password
* @param string $code
*
* @return bool
*/
- public function exec_shell($username, $password, $code) {
- $this->auth($username, $password);
+ public function exec_shell($code) {
+ $this->auth();
mwexec($code);
return true;
@@ -167,14 +161,12 @@ class pfsense_xmlrpc_server {
/**
* Backup chosen config sections
*
- * @param string $username
- * @param string $password
* @param array $section
*
* @return array
*/
- public function backup_config_section($username, $password, $section) {
- $this->auth($username, $password);
+ public function backup_config_section($section) {
+ $this->auth();
global $config;
@@ -184,14 +176,12 @@ class pfsense_xmlrpc_server {
/**
* Restore defined config section into local config
*
- * @param string $username
- * @param string $password
* @param array $sections
*
* @return bool
*/
- public function restore_config_section($username, $password, $sections) {
- $this->auth($username, $password);
+ public function restore_config_section($sections) {
+ $this->auth();
global $config;
@@ -406,14 +396,12 @@ class pfsense_xmlrpc_server {
/**
* Merge items into installedpackages config section
*
- * @param string $username
- * @param string $password
* @param array $section
*
* @return bool
*/
- public function merge_installedpackages_section($username, $password, $section) {
- $this->auth($username, $password);
+ public function merge_installedpackages_section($section) {
+ $this->auth();
global $config;
@@ -435,14 +423,12 @@ class pfsense_xmlrpc_server {
/**
* Merge items into config
*
- * @param string $username
- * @param string $password
* @param array $section
*
* @return bool
*/
- public function merge_config_section($username, $password, $section) {
- $this->auth($username, $password);
+ public function merge_config_section($section) {
+ $this->auth();
global $config;
@@ -464,13 +450,10 @@ class pfsense_xmlrpc_server {
/**
* Wrapper for filter_configure()
*
- * @param string $username
- * @param string $password
- *
* @return bool
*/
- public function filter_configure($username, $password) {
- $this->auth($username, $password);
+ public function filter_configure() {
+ $this->auth();
global $g, $config;
@@ -523,13 +506,10 @@ class pfsense_xmlrpc_server {
/**
* Wrapper for configuring CARP interfaces
*
- * @param string $username
- * @param string $password
- *
* @return bool
*/
- public function interfaces_carp_configure($username, $password) {
- $this->auth($username, $password);
+ public function interfaces_carp_configure() {
+ $this->auth();
if ($this->loop_detected) {
log_error("Disallowing CARP sync loop");
@@ -544,13 +524,10 @@ class pfsense_xmlrpc_server {
/**
* Wrapper for rc.reboot
*
- * @param string $username
- * @param string $password
- *
* @return bool
*/
- public function reboot($username, $password) {
- $this->auth($username, $password);
+ public function reboot() {
+ $this->auth();
mwexec_bg("/etc/rc.reboot");
@@ -560,14 +537,12 @@ class pfsense_xmlrpc_server {
/**
* Wrapper for get_notices()
*
- * @param string $username
- * @param string $password
* @param string $category
*
* @return bool
*/
- public function get_notices($username, $password, $category = 'all') {
- $this->auth($username, $password);
+ public function get_notices($category = 'all') {
+ $this->auth();
global $g;
diff --git a/tools/build_snapshots.sh b/tools/build_snapshots.sh
index 634ced1..2f546bc 100755
--- a/tools/build_snapshots.sh
+++ b/tools/build_snapshots.sh
@@ -3,7 +3,7 @@
# build_snapshots.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -181,7 +181,7 @@ while [ /bin/true ]; do
snapshot_update_status "${LINE}"
done
- (${BUILDER_ROOT}/build.sh ${NO_UPLOAD} --flash-size '2g 4g' \
+ (${BUILDER_ROOT}/build.sh ${NO_UPLOAD} \
--snapshots ${NO_IMAGES} "memstick memstickadi memstickserial iso" 2>&1) \
| while read -r LINE; do
snapshot_update_status "${LINE}"
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
index 08dc83f..0183e13 100644
--- a/tools/builder_common.sh
+++ b/tools/builder_common.sh
@@ -3,12 +3,7 @@
# builder_common.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
-# All rights reserved.
-#
-# NanoBSD portions of the code
-# Copyright (c) 2005 Poul-Henning Kamp.
-# and copied from nanobsd.sh
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# FreeSBIE portions of the code
@@ -247,6 +242,9 @@ make_world() {
-d ${INSTALLER_CHROOT_DIR} \
|| print_error_pfS
+ # XXX set root password since we don't have nullok enabled
+ pw -R ${INSTALLER_CHROOT_DIR} usermod root -w yes
+
echo ">>> Installing world without bsdinstall for ${TARGET} architecture..." | tee -a ${LOGFILE}
script -aq $LOGFILE ${BUILDER_SCRIPTS}/install_freebsd.sh -K \
-s ${FREEBSD_SRC_DIR} \
@@ -266,341 +264,6 @@ make_world() {
unset makeargs
}
-nanobsd_image_filename() {
- local _size="$1"
- local _type="$2"
-
- echo "$NANOBSD_IMG_TEMPLATE" | sed \
- -e "s,%%SIZE%%,${_size},g" \
- -e "s,%%TYPE%%,${_type},g"
-
- return 0
-}
-
-# This routine originated in nanobsd.sh
-nanobsd_set_flash_details () {
- a1=$(echo $1 | tr '[:upper:]' '[:lower:]')
-
- # Source:
- # SanDisk CompactFlash Memory Card
- # Product Manual
- # Version 10.9
- # Document No. 20-10-00038
- # April 2005
- # Table 2-7
- # NB: notice math error in SDCFJ-4096-388 line.
- #
- case "${a1}" in
- 2048|2048m|2048mb|2g)
- NANO_MEDIASIZE=$((1989999616/512))
- ;;
- 4096|4096m|4096mb|4g)
- NANO_MEDIASIZE=$((3989999616/512))
- ;;
- 8192|8192m|8192mb|8g)
- NANO_MEDIASIZE=$((7989999616/512))
- ;;
- 16384|16384m|16384mb|16g)
- NANO_MEDIASIZE=$((15989999616/512))
- ;;
- *)
- echo "Unknown Flash capacity"
- exit 2
- ;;
- esac
-
- NANO_HEADS=16
- NANO_SECTS=63
-
- echo ">>> [nanoo] $1"
- echo ">>> [nanoo] NANO_MEDIASIZE: $NANO_MEDIASIZE"
- echo ">>> [nanoo] NANO_HEADS: $NANO_HEADS"
- echo ">>> [nanoo] NANO_SECTS: $NANO_SECTS"
- echo ">>> [nanoo] NANO_BOOT0CFG: $NANO_BOOT0CFG"
-}
-
-# This routine originated in nanobsd.sh
-create_nanobsd_diskimage () {
- if [ -z "${1}" ]; then
- echo ">>> ERROR: Type of image has not been specified"
- print_error_pfS
- fi
- if [ -z "${2}" ]; then
- echo ">>> ERROR: Size of image has not been specified"
- print_error_pfS
- fi
-
- if [ "${1}" = "nanobsd" ]; then
- # It's serial
- export NANO_BOOTLOADER="boot/boot0sio"
- elif [ "${1}" = "nanobsd-vga" ]; then
- # It's vga
- export NANO_BOOTLOADER="boot/boot0"
- else
- echo ">>> ERROR: Type of image to create unknown"
- print_error_pfS
- fi
-
- if [ -z "${2}" ]; then
- echo ">>> ERROR: Media size(s) not specified."
- print_error_pfS
- fi
-
- if [ -z "${2}" ]; then
- echo ">>> ERROR: FLASH_SIZE is not set."
- print_error_pfS
- fi
-
- LOGFILE=${BUILDER_LOGS}/${1}.${TARGET}
- # Prepare folder to be put in image
- customize_stagearea_for_image "${1}"
- install_default_kernel ${DEFAULT_KERNEL} "no"
-
- echo ">>> Fixing up NanoBSD Specific items..." | tee -a ${LOGFILE}
-
- local BOOTCONF=${FINAL_CHROOT_DIR}/boot.config
- local LOADERCONF=${FINAL_CHROOT_DIR}/boot/loader.conf
-
- if [ "${1}" = "nanobsd" ]; then
- # Tell loader to use serial console early.
- echo "-S115200 -h" >> ${BOOTCONF}
-
- # Remove old console options if present.
- [ -f "${LOADERCONF}" ] \
- && sed -i "" -Ee "/(console|boot_multicons|boot_serial|hint.uart)/d" ${LOADERCONF}
- # Activate serial console+video console in loader.conf
- echo 'loader_color="NO"' >> ${LOADERCONF}
- echo 'beastie_disable="YES"' >> ${LOADERCONF}
- echo 'boot_serial="YES"' >> ${LOADERCONF}
- echo 'console="comconsole"' >> ${LOADERCONF}
- echo 'comconsole_speed="115200"' >> ${LOADERCONF}
- fi
- echo 'autoboot_delay="5"' >> ${LOADERCONF}
-
- # Old systems will run (pre|post)_upgrade_command from /tmp
- if [ -f ${FINAL_CHROOT_DIR}${PRODUCT_SHARE_DIR}/pre_upgrade_command ]; then
- cp -p \
- ${FINAL_CHROOT_DIR}${PRODUCT_SHARE_DIR}/pre_upgrade_command \
- ${FINAL_CHROOT_DIR}/tmp
- fi
- if [ -f ${FINAL_CHROOT_DIR}${PRODUCT_SHARE_DIR}/post_upgrade_command ]; then
- cp -p \
- ${FINAL_CHROOT_DIR}${PRODUCT_SHARE_DIR}/post_upgrade_command \
- ${FINAL_CHROOT_DIR}/tmp
- fi
-
- mkdir -p ${IMAGES_FINAL_DIR}/nanobsd
-
- for _NANO_MEDIASIZE in ${2}; do
- if [ -z "${_NANO_MEDIASIZE}" ]; then
- continue;
- fi
-
- echo ">>> building NanoBSD(${1}) disk image with size ${_NANO_MEDIASIZE} for platform (${TARGET})..." | tee -a ${LOGFILE}
- echo "" > $BUILDER_LOGS/nanobsd_cmds.sh
-
- IMG="${IMAGES_FINAL_DIR}/nanobsd/$(nanobsd_image_filename ${_NANO_MEDIASIZE} ${1})"
-
- nanobsd_set_flash_details ${_NANO_MEDIASIZE}
-
- # These are defined in FlashDevice and on builder_default.sh
- echo $NANO_MEDIASIZE \
- $NANO_IMAGES \
- $NANO_SECTS \
- $NANO_HEADS \
- $NANO_CODESIZE \
- $NANO_CONFSIZE \
- $NANO_DATASIZE |
-awk '
-{
- printf "# %s\n", $0
-
- # size of cylinder in sectors
- cs = $3 * $4
-
- # number of full cylinders on media
- cyl = int ($1 / cs)
-
- # output fdisk geometry spec, truncate cyls to 1023
- if (cyl <= 1023)
- print "g c" cyl " h" $4 " s" $3
- else
- print "g c" 1023 " h" $4 " s" $3
-
- if ($7 > 0) {
- # size of data partition in full cylinders
- dsl = int (($7 + cs - 1) / cs)
- } else {
- dsl = 0;
- }
-
- # size of config partition in full cylinders
- csl = int (($6 + cs - 1) / cs)
-
- if ($5 == 0) {
- # size of image partition(s) in full cylinders
- isl = int ((cyl - dsl - csl) / $2)
- } else {
- isl = int (($5 + cs - 1) / cs)
- }
-
- # First image partition start at second track
- print "p 1 165 " $3, isl * cs - $3
- c = isl * cs;
-
- # Second image partition (if any) also starts offset one
- # track to keep them identical.
- if ($2 > 1) {
- print "p 2 165 " $3 + c, isl * cs - $3
- c += isl * cs;
- }
-
- # Config partition starts at cylinder boundary.
- print "p 3 165 " c, csl * cs
- c += csl * cs
-
- # Data partition (if any) starts at cylinder boundary.
- if ($7 > 0) {
- print "p 4 165 " c, dsl * cs
- } else if ($7 < 0 && $1 > c) {
- print "p 4 165 " c, $1 - c
- } else if ($1 < c) {
- print "Disk space overcommitted by", \
- c - $1, "sectors" > "/dev/stderr"
- exit 2
- }
-
- # Force slice 1 to be marked active. This is necessary
- # for booting the image from a USB device to work.
- print "a 1"
-}
- ' > ${SCRATCHDIR}/_.fdisk
-
- MNT=${SCRATCHDIR}/_.mnt
- mkdir -p ${MNT}
-
- dd if=/dev/zero of=${IMG} bs=${NANO_SECTS}b \
- count=0 seek=$((${NANO_MEDIASIZE}/${NANO_SECTS})) 2>&1 >> ${LOGFILE}
-
- MD=$(mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS})
- trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
-
- fdisk -i -f ${SCRATCHDIR}/_.fdisk ${MD} 2>&1 >> ${LOGFILE}
- fdisk ${MD} 2>&1 >> ${LOGFILE}
-
- boot0cfg -t 100 -B -b ${FINAL_CHROOT_DIR}/${NANO_BOOTLOADER} ${NANO_BOOT0CFG} ${MD} 2>&1 >> ${LOGFILE}
-
- # Create first image
- bsdlabel -m i386 -w -B -b ${FINAL_CHROOT_DIR}/boot/boot ${MD}s1 2>&1 >> ${LOGFILE}
- bsdlabel -m i386 ${MD}s1 2>&1 >> ${LOGFILE}
- local _label=$(lc ${PRODUCT_NAME})
- newfs -L ${_label}0 ${NANO_NEWFS} /dev/${MD}s1a 2>&1 >> ${LOGFILE}
- mount /dev/ufs/${_label}0 ${MNT}
- if [ $? -ne 0 ]; then
- echo ">>> ERROR: Something wrong happened during mount of first slice image creation. STOPPING!" | tee -a ${LOGFILE}
- print_error_pfS
- fi
- # Consider the unmounting as well
- trap "umount /dev/ufs/${_label}0; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
-
- clone_directory_contents ${FINAL_CHROOT_DIR} ${MNT}
-
- # Set NanoBSD image size
- echo "${_NANO_MEDIASIZE}" > ${MNT}/etc/nanosize.txt
-
- echo "/dev/ufs/${_label}0 / ufs ro,sync,noatime 1 1" > ${MNT}/etc/fstab
- if [ $NANO_CONFSIZE -gt 0 ] ; then
- echo "/dev/ufs/cf /cf ufs ro,sync,noatime 1 1" >> ${MNT}/etc/fstab
- fi
-
- umount ${MNT}
- # Restore the original trap
- trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
-
- # Setting NANO_IMAGES to 1 and NANO_INIT_IMG2 will tell
- # NanoBSD to only create one partition. We default to 2
- # partitions in case anything happens to the first the
- # operator can boot from the 2nd and should be OK.
-
- # Before just going to use dd for duplicate think!
- # The images are created as sparse so lets take advantage
- # of that by just exec some commands.
- if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
- # Duplicate to second image (if present)
- echo ">>> Creating NanoBSD second slice by duplicating first slice." | tee -a ${LOGFILE}
- # Create second image
- dd if=/dev/${MD}s1 of=/dev/${MD}s2 conv=sparse bs=64k 2>&1 >> ${LOGFILE}
- tunefs -L ${_label}1 /dev/${MD}s2a 2>&1 >> ${LOGFILE}
- mount /dev/ufs/${_label}1 ${MNT}
- if [ $? -ne 0 ]; then
- echo ">>> ERROR: Something wrong happened during mount of second slice image creation. STOPPING!" | tee -a ${LOGFILE}
- print_error_pfS
- fi
- # Consider the unmounting as well
- trap "umount /dev/ufs/${_label}1; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
-
- echo "/dev/ufs/${_label}1 / ufs ro,sync,noatime 1 1" > ${MNT}/etc/fstab
- if [ $NANO_CONFSIZE -gt 0 ] ; then
- echo "/dev/ufs/cf /cf ufs ro,sync,noatime 1 1" >> ${MNT}/etc/fstab
- fi
-
- umount ${MNT}
- # Restore the trap back
- trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
- fi
-
- # Create Data slice, if any.
- # Note the changing of the variable to NANO_CONFSIZE
- # from NANO_DATASIZE. We also added glabel support
- # and populate the Product configuration from the /cf
- # directory located in FINAL_CHROOT_DIR
- if [ $NANO_CONFSIZE -gt 0 ] ; then
- echo ">>> Creating /cf area to hold config.xml"
- newfs -L cf ${NANO_NEWFS} /dev/${MD}s3 2>&1 >> ${LOGFILE}
- # Mount data partition and copy contents of /cf
- # Can be used later to create custom default config.xml while building
- mount /dev/ufs/cf ${MNT}
- if [ $? -ne 0 ]; then
- echo ">>> ERROR: Something wrong happened during mount of cf slice image creation. STOPPING!" | tee -a ${LOGFILE}
- print_error_pfS
- fi
- # Consider the unmounting as well
- trap "umount /dev/ufs/cf; mdconfig -d -u ${MD}; return" 1 2 15 EXIT
-
- clone_directory_contents ${FINAL_CHROOT_DIR}/cf ${MNT}
-
- umount ${MNT}
- # Restore the trap back
- trap "mdconfig -d -u ${MD}; return" 1 2 15 EXIT
- else
- ">>> [nanoo] NANO_CONFSIZE is not set. Not adding a /conf partition.. You sure about this??" | tee -a ${LOGFILE}
- fi
-
- mdconfig -d -u $MD
- # Restore default action
- trap "-" 1 2 15 EXIT
-
- # Check each image and ensure that they are over
- # 3 megabytes. If either image is under 20 megabytes
- # in size then error out.
- IMGSIZE=$(stat -f "%z" ${IMG})
- CHECKSIZE="20040710"
- if [ "$IMGSIZE" -lt "$CHECKSIZE" ]; then
- echo ">>> ERROR: Something went wrong when building NanoBSD. The image size is under 20 megabytes!" | tee -a ${LOGFILE}
- print_error_pfS
- fi
-
- # Wrap up the show, Johnny
- echo ">>> NanoBSD Image completed for size: $_NANO_MEDIASIZE." | tee -a ${LOGFILE}
-
- gzip -qf $IMG &
- _bg_pids="${_bg_pids}${_bg_pids:+ }$!"
- done
-
- unset IMG
- unset IMGSIZE
-}
-
# This routine creates a ova image that contains
# a ovf and vmdk file. These files can be imported
# right into vmware or virtual box.
@@ -673,14 +336,15 @@ create_ova_image() {
echo ">>> ERROR: Error mounting temporary vmdk image. STOPPING!" | tee -a ${LOGFILE}
print_error_pfS
fi
- trap "umount ${_mntdir}; mdconfig -d -u ${_md}; return" 1 2 15 EXIT
+ trap "sync; sleep 3; umount ${_mntdir} || umount -f ${_mntdir}; mdconfig -d -u ${_md}; return" 1 2 15 EXIT
echo "Done!" | tee -a ${LOGFILE}
clone_directory_contents ${FINAL_CHROOT_DIR} ${_mntdir}
sync
- umount ${_mntdir} 2>&1 >>${LOGFILE}
+ sleep 3
+ umount ${_mntdir} || umount -f ${_mntdir} >>${LOGFILE} 2>&1
mdconfig -d -u ${_md}
trap "-" 1 2 15 EXIT
@@ -909,34 +573,8 @@ clone_to_staging_area() {
-X ${_exclude_files} \
.
- local _share_repos_path="${SCRATCHDIR}/repo-tmp/${PRODUCT_SHARE_DIR}/pkg/repos"
- rm -rf ${SCRATCHDIR}/repo-tmp >/dev/null 2>&1
- mkdir -p ${_share_repos_path} >/dev/null 2>&1
-
- setup_pkg_repo \
- ${PKG_REPO_DEFAULT} \
- ${_share_repos_path}/${PRODUCT_NAME}-repo.conf \
- ${TARGET} \
- ${TARGET_ARCH}
-
- cp -f ${PKG_REPO_DEFAULT%%.conf}.descr ${_share_repos_path}
-
- # Add additional repos
- for _template in ${PKG_REPO_BASE}/${PRODUCT_NAME}-repo-*.conf; do
- _template_filename=$(basename ${_template})
- setup_pkg_repo \
- ${_template} \
- ${_share_repos_path}/${_template_filename} \
- ${TARGET} \
- ${TARGET_ARCH}
- cp -f ${_template%%.conf}.descr ${_share_repos_path}
- done
-
- core_pkg_create repo "" ${CORE_PKG_VERSION} ${SCRATCHDIR}/repo-tmp
-
core_pkg_create rc "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
core_pkg_create base "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
- core_pkg_create base-nanobsd "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
core_pkg_create default-config "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
local DEFAULTCONF=${STAGE_CHROOT_DIR}/conf.default/config.xml
@@ -971,6 +609,15 @@ clone_to_staging_area() {
# Make sure pkg is present
pkg_bootstrap ${STAGE_CHROOT_DIR}
+ # Make sure correct repo is available on tmp dir
+ mkdir -p ${STAGE_CHROOT_DIR}/tmp/pkg-repos
+ setup_pkg_repo \
+ ${PKG_REPO_DEFAULT} \
+ ${STAGE_CHROOT_DIR}/tmp/pkg-repos/repo.conf \
+ ${TARGET} \
+ ${TARGET_ARCH} \
+ staging
+
echo "Done!"
}
@@ -1004,8 +651,7 @@ customize_stagearea_for_image() {
if [ -n "$2" ]; then
_default_config="$2"
- elif [ "${_image_type}" = "nanobsd" -o \
- "${_image_type}" = "memstickserial" -o \
+ elif [ "${_image_type}" = "memstickserial" -o \
"${_image_type}" = "memstickadi" ]; then
_default_config="default-config-serial"
elif [ "${_image_type}" = "ova" ]; then
@@ -1018,24 +664,7 @@ customize_stagearea_for_image() {
create_final_staging_area
pkg_chroot_add ${FINAL_CHROOT_DIR} rc
- pkg_chroot_add ${FINAL_CHROOT_DIR} repo
-
- if [ "${_image_type}" = "nanobsd" -o \
- "${_image_type}" = "nanobsd-vga" ]; then
-
- mkdir -p ${FINAL_CHROOT_DIR}/root/var/db \
- ${FINAL_CHROOT_DIR}/root/var/cache \
- ${FINAL_CHROOT_DIR}/var/db/pkg \
- ${FINAL_CHROOT_DIR}/var/cache/pkg
- mv -f ${FINAL_CHROOT_DIR}/var/db/pkg ${FINAL_CHROOT_DIR}/root/var/db
- mv -f ${FINAL_CHROOT_DIR}/var/cache/pkg ${FINAL_CHROOT_DIR}/root/var/cache
- ln -sf ../../root/var/db/pkg ${FINAL_CHROOT_DIR}/var/db/pkg
- ln -sf ../../root/var/cache/pkg ${FINAL_CHROOT_DIR}/var/cache/pkg
-
- pkg_chroot_add ${FINAL_CHROOT_DIR} base-nanobsd
- else
- pkg_chroot_add ${FINAL_CHROOT_DIR} base
- fi
+ pkg_chroot_add ${FINAL_CHROOT_DIR} base
if [ "${_image_type}" = "iso" -o \
"${_image_type}" = "memstick" -o \
@@ -1071,17 +700,24 @@ customize_stagearea_for_image() {
${BUILDER_TOOLS}/templates/custom_logos/${_image_variant}/*.png \
${FINAL_CHROOT_DIR}/usr/local/share/${PRODUCT_NAME}/custom_logos
fi
+
+ # Remove temporary repo conf
+ rm -rf ${FINAL_CHROOT_DIR}/tmp/pkg-repos
}
create_distribution_tarball() {
mkdir -p ${INSTALLER_CHROOT_DIR}/usr/freebsd-dist
- tar -C ${FINAL_CHROOT_DIR} --exclude ./install --exclude ./pkgs \
+ echo -n ">>> Creating distribution tarball... " | tee -a ${LOGFILE}
+ tar -C ${FINAL_CHROOT_DIR} --exclude ./pkgs \
-cJf ${INSTALLER_CHROOT_DIR}/usr/freebsd-dist/base.txz .
+ echo "Done!" | tee -a ${LOGFILE}
+ echo -n ">>> Creating manifest... " | tee -a ${LOGFILE}
(cd ${INSTALLER_CHROOT_DIR}/usr/freebsd-dist && \
sh ${FREEBSD_SRC_DIR}/release/scripts/make-manifest.sh base.txz) \
> ${INSTALLER_CHROOT_DIR}/usr/freebsd-dist/MANIFEST
+ echo "Done!" | tee -a ${LOGFILE}
}
create_iso_image() {
@@ -1398,7 +1034,12 @@ pkg_chroot() {
/sbin/mount -t devfs devfs ${_root}/dev
cp -f /etc/resolv.conf ${_root}/etc/resolv.conf
touch ${BUILDER_LOGS}/install_pkg_install_ports.txt
- script -aq ${BUILDER_LOGS}/install_pkg_install_ports.txt pkg -c ${_root} $@ >/dev/null 2>&1
+ local _params=""
+ if [ -f "${_root}/tmp/pkg-repos/repo.conf" ]; then
+ _params="--repo-conf-dir /tmp/pkg-repos "
+ fi
+ script -aq ${BUILDER_LOGS}/install_pkg_install_ports.txt \
+ pkg -c ${_root} ${_params}$@ >/dev/null 2>&1
local result=$?
rm -f ${_root}/etc/resolv.conf
/sbin/umount -f ${_root}/dev
@@ -2009,18 +1650,34 @@ poudriere_bulk() {
mkdir -p /usr/local/etc/poudriere.d
if [ -f "${BUILDER_TOOLS}/conf/pfPorts/make.conf" ]; then
- cp -f "${BUILDER_TOOLS}/conf/pfPorts/make.conf" /usr/local/etc/poudriere.d/${POUDRIERE_PORTS_NAME}-make.conf
+ cp -f "${BUILDER_TOOLS}/conf/pfPorts/make.conf" \
+ /usr/local/etc/poudriere.d/${POUDRIERE_PORTS_NAME}-make.conf
fi
+ cat <<EOF >>/usr/local/etc/poudriere.d/${POUDRIERE_PORTS_NAME}-make.conf
+PKG_REPO_BRANCH_DEVEL=${PKG_REPO_BRANCH_DEVEL}
+PKG_REPO_BRANCH_RELEASE=${PKG_REPO_BRANCH_RELEASE}
+PKG_REPO_SERVER_DEVEL=${PKG_REPO_SERVER_DEVEL}
+PKG_REPO_SERVER_RELEASE=${PKG_REPO_SERVER_RELEASE}
+POUDRIERE_PORTS_NAME=${POUDRIERE_PORTS_NAME}
+PRODUCT_NAME=${PRODUCT_NAME}
+EOF
+
# Change version of pfSense meta ports for snapshots
if [ -z "${_IS_RELEASE}" ]; then
local _meta_pkg_version="$(echo "${PRODUCT_VERSION}" | sed 's,DEVELOPMENT,ALPHA,')-${DATESTRING}"
sed -i '' \
-e "/^DISTVERSION/ s,^.*,DISTVERSION= ${_meta_pkg_version}," \
-e "/^PORTREVISION=/d" \
- /usr/local/poudriere/ports/${POUDRIERE_PORTS_NAME}/security/${PRODUCT_NAME}/Makefile
+ /usr/local/poudriere/ports/${POUDRIERE_PORTS_NAME}/security/${PRODUCT_NAME}/Makefile \
+ /usr/local/poudriere/ports/${POUDRIERE_PORTS_NAME}/sysutils/${PRODUCT_NAME}-repo/Makefile
fi
+ # Copy over pkg repo templates to pfSense-repo
+ mkdir -p /usr/local/poudriere/ports/${POUDRIERE_PORTS_NAME}/sysutils/${PRODUCT_NAME}-repo/files
+ cp -f ${BUILDER_TOOLS}/templates/pkg_repos/* \
+ /usr/local/poudriere/ports/${POUDRIERE_PORTS_NAME}/sysutils/${PRODUCT_NAME}-repo/files
+
for jail_arch in ${_archs}; do
jail_name=$(poudriere_jail_name ${jail_arch})
@@ -2120,16 +1777,6 @@ snapshots_create_sha256() {
create_sha256 ${_img}
snapshots_create_latest_symlink ${_img}
done
-
- for NANOTYPE in nanobsd nanobsd-vga; do
- for FILESIZE in ${FLASH_SIZE}; do
- FILENAMEFULL="$(nanobsd_image_filename ${FILESIZE} ${NANOTYPE}).gz"
-
- if [ -f $IMAGES_FINAL_DIR/nanobsd/$FILENAMEFULL ]; then
- create_sha256 $IMAGES_FINAL_DIR/nanobsd/$FILENAMEFULL
- fi
- done
- done
}
snapshots_scp_files() {
@@ -2146,7 +1793,6 @@ snapshots_scp_files() {
# Ensure directory(s) are available
ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/installer"
- ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/nanobsd"
if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/virtualization"
fi
@@ -2154,8 +1800,6 @@ snapshots_scp_files() {
ssh ${RSYNCUSER}@${_rsyncip} "chmod -R ug+rw ${RSYNCPATH}/."
rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/installer/* \
${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/installer/
- rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/nanobsd/* \
- ${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/nanobsd/
if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/virtualization/* \
${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/virtualization/
diff --git a/tools/builder_defaults.sh b/tools/builder_defaults.sh
index 4543edd..9d6c307 100644
--- a/tools/builder_defaults.sh
+++ b/tools/builder_defaults.sh
@@ -3,7 +3,7 @@
# builder_defaults.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -54,18 +54,9 @@ fi
# Make sure pkg will not be interactive
export ASSUME_ALWAYS_YES=true
-# Architecture, supported ARCH values are:
-# Tier 1: i386, AMD64, and PC98
-# Tier 2: ARM, PowerPC, ia64, Sparc64 and sun4v
-# Tier 3: MIPS and S/390
-# Tier 4: None at the moment
-# Source: http://www.freebsd.org/doc/en/articles/committers-guide/archs.html
-export TARGET=${TARGET:-"`uname -m`"}
-export TARGET_ARCH=${TARGET_ARCH:-${TARGET}}
-# Set TARGET_ARCH_CONF_DIR
-if [ "$TARGET_ARCH" = "" ]; then
- export TARGET_ARCH=`uname -p`
-fi
+# Architecture
+export TARGET=${TARGET:-"$(uname -m)"}
+export TARGET_ARCH=${TARGET_ARCH:-"$(uname -p)"}
# Directory to be used for writing temporary information
export SCRATCHDIR=${SCRATCHDIR:-"${BUILDER_ROOT}/tmp"}
@@ -81,8 +72,8 @@ export PRODUCT_SRC=${PRODUCT_SRC:-"${BUILDER_ROOT}/src"}
export PRODUCT_EMAIL=${PRODUCT_EMAIL:-"coreteam@pfsense.org"}
export XML_ROOTOBJ=${XML_ROOTOBJ:-$(echo "${PRODUCT_NAME}" | tr '[[:upper:]]' '[[:lower:]]')}
-if [ "${PRODUCT_NAME}" = "pfSense" -a "${BUILD_AUTHORIZED_BY_ELECTRIC_SHEEP_FENCING}" != "yes" ]; then
- echo ">>>ERROR: According the following license, only Electric Sheep Fencing can build genuine pfSense® software"
+if [ "${PRODUCT_NAME}" = "pfSense" -a "${BUILD_AUTHORIZED_BY_NETGATE}" != "yes" ]; then
+ echo ">>>ERROR: According the following license, only Netgate can build genuine pfSense® software"
echo ""
cat ${BUILDER_ROOT}/LICENSE
exit 1
@@ -143,7 +134,7 @@ export KERNEL_BUILD_PATH=${KERNEL_BUILD_PATH:-"${SCRATCHDIR}/kernels"}
# Do not touch builder /usr/obj
export MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX:-"${SCRATCHDIR}/obj"}
-export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs glxsb if_stf coretemp amdtemp aesni sfxge hwpmc vmm nmdm ix ixv"}
+export MODULES_OVERRIDE=${MODULES_OVERRIDE:-"i2c ipmi ndis ipfw ipdivert dummynet fdescfs opensolaris zfs if_stf coretemp amdtemp aesni sfxge hwpmc vmm nmdm ix ixv"}
# Area that the final image will appear in
export IMAGES_FINAL_DIR=${IMAGES_FINAL_DIR:-"${SCRATCHDIR}/${PRODUCT_NAME}/"}
@@ -180,25 +171,6 @@ export OVA_SWAP_PART_SIZE_IN_GB=${OVA_SWAP_PART_SIZE_IN_GB:-"0"}
export OVA_TMP=${OVA_TMP:-"${SCRATCHDIR}/ova_tmp"}
# end of OVF
-# Number of code images on media (1 or 2)
-export NANO_IMAGES=2
-# 0 -> Leave second image all zeroes so it compresses better.
-# 1 -> Initialize second image with a copy of the first
-export NANO_INIT_IMG2=1
-export NANO_NEWFS="-b 4096 -f 512 -i 8192 -O1"
-export FLASH_SIZE=${FLASH_SIZE:-"2g"}
-# Size of code file system in 512 bytes sectors
-# If zero, size will be as large as possible.
-export NANO_CODESIZE=0
-# Size of data file system in 512 bytes sectors
-# If zero: no partition configured.
-# If negative: max size possible
-export NANO_DATASIZE=0
-# Size of Product /conf partition # 102400 = 50 megabytes.
-export NANO_CONFSIZE=102400
-# packet is OK for 90% of embedded
-export NANO_BOOT0CFG="-o packet -s 1 -m 3"
-
# NOTE: Date string is used for creating file names of images
# The file is used for sharing the same value with build_snapshots.sh
export DATESTRINGFILE=${DATESTRINGFILE:-"$SCRATCHDIR/version.snapshots"}
@@ -274,11 +246,10 @@ export PKG_RSYNC_HOSTNAME=${PKG_RSYNC_HOSTNAME:-${STAGING_HOSTNAME}}
export PKG_RSYNC_USERNAME=${PKG_RSYNC_USERNAME:-"wwwsync"}
export PKG_RSYNC_SSH_PORT=${PKG_RSYNC_SSH_PORT:-"22"}
export PKG_RSYNC_DESTDIR=${PKG_RSYNC_DESTDIR:-"/staging/ce/packages"}
-export PKG_RSYNC_LOGS=${PKG_RSYNC_LOGS:-"/staging/ce/packages/logs/${POUDRIERE_BRANCH}/${TARGET}"}
# Final packages server
if [ -n "${_IS_RELEASE}" ]; then
- export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"files01.nyi.netgate.com files02.nyi.netgate.com"}
+ export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"files01.nyi.netgate.com files02.nyi.netgate.com files03.nyi.netgate.com"}
export PKG_FINAL_RSYNC_DESTDIR=${PKG_FINAL_RSYNC_DESTDIR:-"/usr/local/www/pkg"}
else
export PKG_FINAL_RSYNC_HOSTNAME=${PKG_FINAL_RSYNC_HOSTNAME:-"beta.pfsense.org"}
@@ -310,7 +281,8 @@ else
export PKG_REPO_SIGN_KEY=${PKG_REPO_SIGN_KEY:-"beta${PRODUCT_NAME_SUFFIX}"}
fi
# Command used to sign pkg repo
-export PKG_REPO_SIGNING_COMMAND=${PKG_REPO_SIGNING_COMMAND:-"ssh sign@codesigner.netgate.com sudo ./sign.sh ${PKG_REPO_SIGN_KEY}"}
+: ${PKG_REPO_SIGNING_COMMAND="ssh sign@codesigner.netgate.com sudo ./sign.sh ${PKG_REPO_SIGN_KEY}"}
+export PKG_REPO_SIGNING_COMMAND
export DO_NOT_SIGN_PKG_REPO=${DO_NOT_SIGN_PKG_REPO:-}
# Define base package version, based on date for snaps
@@ -319,7 +291,7 @@ export CORE_PKG_PATH=${CORE_PKG_PATH:-"${SCRATCHDIR}/${PRODUCT_NAME}_${POUDRIERE
export CORE_PKG_REAL_PATH="${CORE_PKG_PATH}/.real_${DATESTRING}"
export CORE_PKG_ALL_PATH="${CORE_PKG_PATH}/All"
-export PKG_REPO_BASE=${PKG_REPO_BASE:-"${FREEBSD_SRC_DIR}/release/pkg_repos"}
+export PKG_REPO_BASE=${PKG_REPO_BASE:-"${BUILDER_TOOLS}/templates/pkg_repos"}
export PKG_REPO_DEFAULT=${PKG_REPO_DEFAULT:-"${PKG_REPO_BASE}/${PRODUCT_NAME}-repo.conf"}
export PKG_REPO_PATH=${PKG_REPO_PATH:-"/usr/local/etc/pkg/repos/${PRODUCT_NAME}.conf"}
@@ -344,9 +316,6 @@ export MEMSTICK_VARIANTS=${MEMSTICK_VARIANTS:-}
export VARIANTIMAGES=""
export VARIANTUPDATES=""
-# nanobsd templates
-export NANOBSD_IMG_TEMPLATE=${NANOBSD_IMG_TEMPLATE:-"${PRODUCT_NAME}${PRODUCT_NAME_SUFFIX}-${PRODUCT_VERSION}${PRODUCT_REVISION:+-p}${PRODUCT_REVISION}-%%SIZE%%-${TARGET}-%%TYPE%%${TIMESTAMP_SUFFIX}.img"}
-
# Rsync data to send snapshots
export RSYNCUSER=${RSYNCUSER:-"snapshots"}
export RSYNCPATH=${RSYNCPATH:-"/usr/local/www/snapshots/${TARGET}/${PRODUCT_NAME}_${GIT_REPO_BRANCH_OR_TAG}"}
@@ -363,7 +332,7 @@ else
fi
if [ "${PRODUCT_NAME}" = "pfSense" ]; then
- export VENDOR_NAME=${VENDOR_NAME:-"Electric Sheep Fencing, LLC"}
+ export VENDOR_NAME=${VENDOR_NAME:-"Rubicon Communications, LLC (Netgate)"}
export OVF_INFO=${OVF_INFO:-"pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router. In addition to being a powerful, flexible firewalling and routing platform, it includes a long list of related features and a package system allowing further expandability without adding bloat and potential security vulnerabilities to the base distribution. pfSense is a popular project with more than 1 million downloads since its inception, and proven in countless installations ranging from small home networks protecting a PC and an Xbox to large corporations, universities and other organizations protecting thousands of network devices."}
else
export VENDOR_NAME=${VENDOR_NAME:-"nonSense"}
diff --git a/tools/conf/pfPorts/make.conf b/tools/conf/pfPorts/make.conf
index 9a24cf6..2b13dae 100644
--- a/tools/conf/pfPorts/make.conf
+++ b/tools/conf/pfPorts/make.conf
@@ -2,7 +2,7 @@
OPTIONS_UNSET_FORCE= X11 DOCS EXAMPLES MAN INFO MANPAGES
# Individual ports options
-devel_php56-pfSense-module_UNSET_FORCE= IPFW
+devel_php56-pfSense-module_SET_FORCE= IPFW
www_elinks_UNSET_FORCE= FASTMEM
diff --git a/tools/conf/pfPorts/poudriere_bulk b/tools/conf/pfPorts/poudriere_bulk
index 4b8b410..6c30344 100644
--- a/tools/conf/pfPorts/poudriere_bulk
+++ b/tools/conf/pfPorts/poudriere_bulk
@@ -24,7 +24,9 @@ sysutils/%%PRODUCT_NAME%%-builder
sysutils/lsof
sysutils/tmux
sysutils/xe-guest-utilities
+www/pound
dns/%%PRODUCT_NAME%%-pkg-bind9
+net/%%PRODUCT_NAME%%-pkg-cellular
net/%%PRODUCT_NAME%%-pkg-pfBlockerNG
net/%%PRODUCT_NAME%%-pkg-haproxy
net/%%PRODUCT_NAME%%-pkg-haproxy-devel
@@ -72,3 +74,4 @@ sysutils/%%PRODUCT_NAME%%-pkg-syslog-ng
net/%%PRODUCT_NAME%%-pkg-Status_Traffic_Totals
sysutils/stress
net/bird
+net/hping
diff --git a/tools/scripts/generate-privdefs.php b/tools/scripts/generate-privdefs.php
index bc94843..c8e2421 100755
--- a/tools/scripts/generate-privdefs.php
+++ b/tools/scripts/generate-privdefs.php
@@ -4,7 +4,7 @@
* generate-privdefs.php
*
* part of pfSense (https://www.pfsense.org)
- * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+ * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/tools/scripts/update_pot.sh b/tools/scripts/update_pot.sh
index cffd6e1..aa6e27a 100755
--- a/tools/scripts/update_pot.sh
+++ b/tools/scripts/update_pot.sh
@@ -3,7 +3,7 @@
# update_pot.sh
#
# part of pfSense (https://www.pfsense.org)
-# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC
+# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/tools/templates/core_pkg/base-nanobsd/exclude_files b/tools/templates/core_pkg/base-nanobsd/exclude_files
deleted file mode 100644
index 0cd0f41..0000000
--- a/tools/templates/core_pkg/base-nanobsd/exclude_files
+++ /dev/null
@@ -1,31 +0,0 @@
-./boot.config
-./boot/loader.conf
-./boot/loader.conf.local
-./boot/modules/bwi_v3_ucode.ko
-./cf/conf/config.xml
-./cf/conf/enableserial_force
-./cf/conf/trigger_initial_wizard
-./conf.default/config.xml
-./etc/bogons
-./etc/bogonsv6
-./etc/dh-parameters.1024
-./etc/dh-parameters.2048
-./etc/dh-parameters.4096
-./etc/fstab
-./etc/group
-./etc/hosts
-./etc/master.passwd
-./etc/passwd
-./etc/platform
-./etc/pwd.db
-./etc/rc.conf
-./etc/spwd.db
-./etc/syslog.conf
-./media
-./mnt
-./proc
-./sys
-./tmp
-./usr/local/share/%%PRODUCT_NAME%%/base.mtree
-./usr/local/share/%%PRODUCT_NAME%%/base.txz
-./usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf
diff --git a/tools/templates/core_pkg/base-nanobsd/metadir/+DEINSTALL b/tools/templates/core_pkg/base-nanobsd/metadir/+DEINSTALL
deleted file mode 100644
index 715125f..0000000
--- a/tools/templates/core_pkg/base-nanobsd/metadir/+DEINSTALL
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-if [ "${2}" != "DEINSTALL" ]; then
- exit 0
-fi
-
-echo "===> Keeping a copy of current version mtree"
-
-# Check if there is a current mtree to be saved
-if [ ! -f /usr/local/share/%%PRODUCT_NAME%%/base.mtree ]; then
- echo "===> Current mtree file not found"
- exit 1
-fi
-
-[ -f /usr/local/share/%%PRODUCT_NAME%%/base.mtree.previous ] \
- && rm -f /usr/local/share/%%PRODUCT_NAME%%/base.mtree.previous
-
-cp -f /usr/local/share/%%PRODUCT_NAME%%/base.mtree \
- /usr/local/share/%%PRODUCT_NAME%%/base.mtree.previous
-
-exit $?
diff --git a/tools/templates/core_pkg/base-nanobsd/metadir/+DESC b/tools/templates/core_pkg/base-nanobsd/metadir/+DESC
deleted file mode 100644
index 34b9159..0000000
--- a/tools/templates/core_pkg/base-nanobsd/metadir/+DESC
+++ /dev/null
@@ -1,3 +0,0 @@
-%%PRODUCT_NAME%% core files
-
-WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/base-nanobsd/metadir/+INSTALL b/tools/templates/core_pkg/base-nanobsd/metadir/+INSTALL
deleted file mode 100644
index a2d9d82..0000000
--- a/tools/templates/core_pkg/base-nanobsd/metadir/+INSTALL
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-if [ "${2}" != "POST-INSTALL" ]; then
- exit 0
-fi
-
-if [ ! -f /usr/local/share/%%PRODUCT_NAME%%/base.txz ]; then
- echo "===> ERROR: base tarball not found!"
- exit 1
-fi
-
-echo nanobsd > /etc/platform
-
-echo "===> Removing schg flag from base files"
-
-# Cleanup schg flags
-chflags -R noschg \
- /boot \
- /bin \
- /sbin \
- /usr/bin \
- /usr/sbin \
- /libexec \
- /lib \
- /usr/lib >/dev/null 2>&1
-
-echo "===> Extracting new base tarball"
-
-# Install new base files
-tar -C / -xJPUf /usr/local/share/%%PRODUCT_NAME%%/base.txz
-
-echo "===> Removing static obsoleted files"
-
-# Set IFS to \n to deal with filenames containing spaces
-oIFS=${IFS}
-IFS="
-"
-
-PLATFORM=$(cat /etc/platform)
-
-# Process obsolete files
-if [ -f /etc/%%PRODUCT_NAME%%.obsoletedfiles ]; then
- for f in $(cat /etc/%%PRODUCT_NAME%%.obsoletedfiles); do
- if [ -n "${f}" -a -d "${f}" ]; then
- chflags -R noschg "${f}"
- rm -rf "${f}"
- elif [ -n "${f}" -a -f "${f}" ]; then
- chflags noschg "${f}"
- rm -f "${f}"
- elif [ -n "${f}" -a -L "${f}" ]; then
- rm -f "${f}"
- fi
- done
-fi
-
-# Restore IFS
-IFS=${oIFS}
-
-exit 0
diff --git a/tools/templates/core_pkg/base-nanobsd/metadir/+MANIFEST b/tools/templates/core_pkg/base-nanobsd/metadir/+MANIFEST
deleted file mode 100644
index 19229a3..0000000
--- a/tools/templates/core_pkg/base-nanobsd/metadir/+MANIFEST
+++ /dev/null
@@ -1,16 +0,0 @@
-name: "%%PRODUCT_NAME%%-base-nanobsd"
-version: "%%VERSION%%"
-origin: "security/%%PRODUCT_NAME%%-base-nanobsd"
-comment: <<EOD
-%%PRODUCT_NAME%% core files
-EOD
-maintainer: development@pfsense.org
-prefix: /usr/local
-deps: {
-"%%PRODUCT_NAME%%-rc": {origin: "security/%%PRODUCT_NAME%%-rc", version: "%%VERSION%%"},
-"%%PRODUCT_NAME%%-repo": {origin: "security/%%PRODUCT_NAME%%-repo", version: "%%VERSION%%"}
-}
-categories [ security, ]
-licenselogic: single
-licenses: [ APACHE20, ]
-options: { }
diff --git a/tools/templates/core_pkg/base-nanobsd/pkg-plist b/tools/templates/core_pkg/base-nanobsd/pkg-plist
deleted file mode 100644
index f531fae..0000000
--- a/tools/templates/core_pkg/base-nanobsd/pkg-plist
+++ /dev/null
@@ -1,2 +0,0 @@
-share/%%PRODUCT_NAME%%/base.txz
-share/%%PRODUCT_NAME%%/base.mtree
diff --git a/tools/templates/core_pkg/base/exclude_files b/tools/templates/core_pkg/base/exclude_files
index 4797353..1cbae17 100644
--- a/tools/templates/core_pkg/base/exclude_files
+++ b/tools/templates/core_pkg/base/exclude_files
@@ -33,5 +33,6 @@
./tmp
./usr/local/share/%%PRODUCT_NAME%%/base.mtree
./usr/local/share/%%PRODUCT_NAME%%/base.txz
+./usr/local/share/%%PRODUCT_NAME%%/pkg
./usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf
./var/db/pkg
diff --git a/tools/templates/core_pkg/base/metadir/+INSTALL b/tools/templates/core_pkg/base/metadir/+INSTALL
index aa3fa89..4f53a35 100644
--- a/tools/templates/core_pkg/base/metadir/+INSTALL
+++ b/tools/templates/core_pkg/base/metadir/+INSTALL
@@ -36,8 +36,6 @@ oIFS=${IFS}
IFS="
"
-PLATFORM=$(cat /etc/platform)
-
# Process obsolete files
if [ -f /etc/%%PRODUCT_NAME%%.obsoletedfiles ]; then
for f in $(cat /etc/%%PRODUCT_NAME%%.obsoletedfiles); do
diff --git a/tools/templates/core_pkg/base/metadir/+MANIFEST b/tools/templates/core_pkg/base/metadir/+MANIFEST
index 3e0a111..131620e 100644
--- a/tools/templates/core_pkg/base/metadir/+MANIFEST
+++ b/tools/templates/core_pkg/base/metadir/+MANIFEST
@@ -8,7 +8,6 @@ maintainer: development@pfsense.org
prefix: /usr/local
deps: {
"%%PRODUCT_NAME%%-rc": {origin: "security/%%PRODUCT_NAME%%-rc", version: "%%VERSION%%"},
-"%%PRODUCT_NAME%%-repo": {origin: "security/%%PRODUCT_NAME%%-repo", version: "%%VERSION%%"}
}
categories [ security, ]
licenselogic: single
diff --git a/tools/templates/core_pkg/kernel/metadir/+DEINSTALL b/tools/templates/core_pkg/kernel/metadir/+DEINSTALL
index fa2cb42..aab42e4 100644
--- a/tools/templates/core_pkg/kernel/metadir/+DEINSTALL
+++ b/tools/templates/core_pkg/kernel/metadir/+DEINSTALL
@@ -7,7 +7,8 @@ fi
echo "===> Keeping a copy of current kernel in /boot/kernel.old"
# Check if there is a current kernel to be moved
-if [ ! -f /boot/kernel/kernel.gz ]; then
+if [ ! -f /boot/kernel/kernel.gz ] \
+ && [ ! -f /boot/kernel/kernel ]; then
echo "ERROR: Current kernel not found"
exit 1
fi
diff --git a/tools/templates/core_pkg/repo/metadir/+DESC b/tools/templates/core_pkg/repo/metadir/+DESC
deleted file mode 100644
index ec6bbc5..0000000
--- a/tools/templates/core_pkg/repo/metadir/+DESC
+++ /dev/null
@@ -1,3 +0,0 @@
-%%PRODUCT_NAME%% pkg repository configuration (stable)
-
-WWW: %%PRODUCT_URL%%
diff --git a/tools/templates/core_pkg/repo/metadir/+INSTALL b/tools/templates/core_pkg/repo/metadir/+INSTALL
deleted file mode 100644
index 8e67eca..0000000
--- a/tools/templates/core_pkg/repo/metadir/+INSTALL
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-if [ "${2}" != "POST-INSTALL" ]; then
- exit 0
-fi
-
-if [ ! -f /usr/local/share/%%PRODUCT_NAME%%/pkg/repos/%%PRODUCT_NAME%%-repo.conf ]; then
- echo "===> ERROR: Default repo conf not found!"
- exit 1
-fi
-
-if [ ! -L /usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf ]; then
- if [ -f /usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf ]; then
- rm -f /usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf
- fi
- mkdir -p /usr/local/etc/pkg/repos
- ln -sf \
- /usr/local/share/%%PRODUCT_NAME%%/pkg/repos/%%PRODUCT_NAME%%-repo.conf \
- /usr/local/etc/pkg/repos/%%PRODUCT_NAME%%.conf
-fi
-
-exit 0
diff --git a/tools/templates/core_pkg/repo/metadir/+MANIFEST b/tools/templates/core_pkg/repo/metadir/+MANIFEST
deleted file mode 100644
index bcec7f2..0000000
--- a/tools/templates/core_pkg/repo/metadir/+MANIFEST
+++ /dev/null
@@ -1,15 +0,0 @@
-name: "%%PRODUCT_NAME%%-repo"
-version: "%%VERSION%%"
-origin: "security/%%PRODUCT_NAME%%-repo"
-comment: <<EOD
-%%PRODUCT_NAME%% pkg repository configuration (stable)
-EOD
-maintainer: development@pfsense.org
-prefix: /usr/local
-deps: {
-
-}
-categories [ security, ]
-licenselogic: single
-licenses: [ APACHE20, ]
-options: { }
diff --git a/tools/templates/pkg_repos/pfSense-repo-devel.conf b/tools/templates/pkg_repos/pfSense-repo-devel.conf
new file mode 100644
index 0000000..c4e69fa
--- /dev/null
+++ b/tools/templates/pkg_repos/pfSense-repo-devel.conf
@@ -0,0 +1,17 @@
+FreeBSD: { enabled: no }
+
+%%PRODUCT_NAME%%-core: {
+ url: "%%PKG_REPO_SERVER_DEVEL%%/%%PRODUCT_NAME%%_%%PKG_REPO_BRANCH_DEVEL%%_%%ARCH%%-core",
+ mirror_type: "srv",
+ signature_type: "fingerprints",
+ fingerprints: "/usr/local/share/%%PRODUCT_NAME%%/keys/pkg",
+ enabled: yes
+}
+
+%%PRODUCT_NAME%%: {
+ url: "%%PKG_REPO_SERVER_DEVEL%%/%%PRODUCT_NAME%%_%%PKG_REPO_BRANCH_DEVEL%%_%%ARCH%%-%%POUDRIERE_PORTS_NAME%%",
+ mirror_type: "srv",
+ signature_type: "fingerprints",
+ fingerprints: "/usr/local/share/%%PRODUCT_NAME%%/keys/pkg",
+ enabled: yes
+}
diff --git a/tools/templates/pkg_repos/pfSense-repo-devel.descr b/tools/templates/pkg_repos/pfSense-repo-devel.descr
new file mode 100644
index 0000000..c2c9eb2
--- /dev/null
+++ b/tools/templates/pkg_repos/pfSense-repo-devel.descr
@@ -0,0 +1 @@
+Development Snapshots (Experimental)
diff --git a/tools/templates/pkg_repos/pfSense-repo.conf b/tools/templates/pkg_repos/pfSense-repo.conf
new file mode 100644
index 0000000..c4e69fa
--- /dev/null
+++ b/tools/templates/pkg_repos/pfSense-repo.conf
@@ -0,0 +1,17 @@
+FreeBSD: { enabled: no }
+
+%%PRODUCT_NAME%%-core: {
+ url: "%%PKG_REPO_SERVER_DEVEL%%/%%PRODUCT_NAME%%_%%PKG_REPO_BRANCH_DEVEL%%_%%ARCH%%-core",
+ mirror_type: "srv",
+ signature_type: "fingerprints",
+ fingerprints: "/usr/local/share/%%PRODUCT_NAME%%/keys/pkg",
+ enabled: yes
+}
+
+%%PRODUCT_NAME%%: {
+ url: "%%PKG_REPO_SERVER_DEVEL%%/%%PRODUCT_NAME%%_%%PKG_REPO_BRANCH_DEVEL%%_%%ARCH%%-%%POUDRIERE_PORTS_NAME%%",
+ mirror_type: "srv",
+ signature_type: "fingerprints",
+ fingerprints: "/usr/local/share/%%PRODUCT_NAME%%/keys/pkg",
+ enabled: yes
+}
diff --git a/tools/templates/pkg_repos/pfSense-repo.descr b/tools/templates/pkg_repos/pfSense-repo.descr
new file mode 100644
index 0000000..e892126
--- /dev/null
+++ b/tools/templates/pkg_repos/pfSense-repo.descr
@@ -0,0 +1 @@
+Stable (Default)
OpenPOWER on IntegriCloud