summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Wollison <doug@wollison.net>2015-11-12 19:23:57 -0500
committerDoug Wollison <doug@wollison.net>2015-11-12 19:23:57 -0500
commit92a3a73967713bfb8e5422c5166e323529811505 (patch)
tree71fb602a5478fd505c74b42b2a6c9739f8199d2d
parent722376855b596496b8fbabb60b692d11395261a4 (diff)
parent67bfaf25c99526f5934085b680f96a6aaac71737 (diff)
downloadpfsense-92a3a73967713bfb8e5422c5166e323529811505.zip
pfsense-92a3a73967713bfb8e5422c5166e323529811505.tar.gz
Merge remote-tracking branch 'pfsense/master'
-rw-r--r--src/conf.default/config.xml4
-rw-r--r--src/etc/inc/globals.inc6
-rw-r--r--src/etc/inc/pkg-utils.inc93
-rw-r--r--src/etc/inc/upgrade_config.inc90
-rw-r--r--src/etc/inc/vpn.inc4
-rw-r--r--src/etc/pfSense.obsoletedfiles24
-rwxr-xr-xsrc/etc/rc.bootup16
-rw-r--r--src/usr/local/share/pbi-keys/pfSense-BETA.ssl14
-rw-r--r--src/usr/local/share/pfSense/pre_upgrade_command1
-rw-r--r--src/usr/local/www/diag_ipsec.php8
-rw-r--r--src/usr/local/www/firewall_nat_out_edit.php4
-rw-r--r--src/usr/local/www/guiconfig.inc2
-rwxr-xr-xsrc/usr/local/www/head.inc11
-rw-r--r--src/usr/local/www/interfaces_assign.php4
-rw-r--r--src/usr/local/www/interfaces_groups_edit.php13
-rw-r--r--src/usr/local/www/system_advanced_admin.php23
16 files changed, 230 insertions, 87 deletions
diff --git a/src/conf.default/config.xml b/src/conf.default/config.xml
index 9408e2e..7831f18 100644
--- a/src/conf.default/config.xml
+++ b/src/conf.default/config.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<pfsense>
- <version>12.3</version>
+ <version>12.7</version>
<lastchange/>
<system>
<optimization>normal</optimization>
@@ -252,7 +252,7 @@
</monitor_type>
</load_balancer>
<widgets>
- <sequence>system_information-container:col1:show,captive_portal_status-container:col1:none,carp_status-container:col1:none,cpu_graphs-container:col1:none,gateways-container:col1:none,gmirror_status-container:col1:none,installed_packages-container:col1:none,interface_statistics-container:col1:none,interfaces-container:col2:show,ipsec-container:col2:none,load_balancer_status-container:col2:none,log-container:col2:none,picture-container:col2:none,rss-container:col2:none,services_status-container:col2:none,traffic_graphs-container:col2:none</sequence>
+ <sequence>system_information:col1:show,interfaces:col2:show</sequence>
</widgets>
<openvpn/>
<dnshaper/>
diff --git a/src/etc/inc/globals.inc b/src/etc/inc/globals.inc
index ccaf61c..c63d499 100644
--- a/src/etc/inc/globals.inc
+++ b/src/etc/inc/globals.inc
@@ -72,7 +72,7 @@ $g = array(
"disablecrashreporter" => false,
"crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php",
"debug" => false,
- "latest_config" => "12.6",
+ "latest_config" => "12.7",
"nopkg_platforms" => array("cdrom"),
"minimum_ram_warning" => "101",
"minimum_ram_warning_text" => "128 MB",
@@ -156,8 +156,8 @@ $sysctls = array("net.inet.ip.portrange.first" => "1024",
"net.inet6.ip6.rfc6204w3" => 1,
"net.enc.out.ipsec_bpf_mask" => "0x0001",
"net.enc.out.ipsec_filter_mask" => "0x0001",
- "net.enc.in.ipsec_bpf_mask" => "0x0003",
- "net.enc.in.ipsec_filter_mask" => "0x0003",
+ "net.enc.in.ipsec_bpf_mask" => "0x0002",
+ "net.enc.in.ipsec_filter_mask" => "0x0002",
"net.key.preferred_oldsa" => "0",
"net.inet.carp.senderr_demotion_factor" => 0, /* Do not demote CARP for interface send errors */
"net.pfsync.carp_demotion_factor" => 0 /* Do not demote CARP for pfsync errors */
diff --git a/src/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc
index c818671..4f82bf2 100644
--- a/src/etc/inc/pkg-utils.inc
+++ b/src/etc/inc/pkg-utils.inc
@@ -1,10 +1,7 @@
<?php
-/****h* pfSense/pkg-utils
- NAME
- pkg-utils.inc - Package subsystem
- DESCRIPTION
- This file contains various functions used by the pfSense package system.
-*/
+/*
+ * pkg-utils.inc
+ */
/* ====================================================================
* Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved.
* Copyright (c) 2005-2006 Colin Smith (ethethlay@gmail.com)
@@ -91,11 +88,6 @@ if (!function_exists("pkg_debug")) {
}
}
-global $g;
-if (!isset($g['platform'])) {
- $g['platform'] = trim(file_get_contents("/etc/platform"));
-}
-
/* Remove pkg_prefix from package name if it's present */
function pkg_remove_prefix(&$pkg_name) {
global $g;
@@ -310,15 +302,20 @@ function is_pkg_installed($pkg_name) {
}
/* Install package, $pkg_name should not contain prefix */
-function pkg_install($pkg_name) {
+function pkg_install($pkg_name, $force = false) {
global $g;
$result = false;
pkg_remove_prefix($pkg_name);
+ $pkg_force = "";
+ if ($force) {
+ $pkg_force = "-f ";
+ }
+
pkg_debug("Installing package {$pkg_name}\n");
- if (!is_pkg_installed($pkg_name)) {
- $result = pkg_call("install -y " . $g['pkg_prefix'] . $pkg_name);
+ if ($force || !is_pkg_installed($pkg_name)) {
+ $result = pkg_call("install -y " . $pkg_force . $g['pkg_prefix'] . $pkg_name);
/* Cleanup cacke to free disk space */
pkg_call("clean -y");
}
@@ -1020,11 +1017,71 @@ function delete_package_xml($package_name, $when = "post-deinstall") {
conf_mount_ro();
}
-function pkg_reinstall_all() {
- global $g, $config;
+/*
+ * Used during upgrade process or retore backup process, verify all
+ * packages installed in config.xml and install pkg accordingly
+ */
+function package_reinstall_all() {
+ global $g, $config, $static_output, $pkg_interface;
- // XXX: implement
- return;
+ if (!isset($config['installedpackages']['package']) ||
+ !is_array($config['installedpackages']['package'])) {
+ return true;
+ }
+
+ $upgrade = (file_exists('/conf/needs_package_sync') && platform_booting());
+
+ /* During boot after upgrade, wait for internet connection */
+ if ($upgrade) {
+ $static_output .= gettext("Waiting for internet connection to update pkg metadata and fini package reinstallation");
+ update_output_window($static_output);
+ while (true) {
+ if (pkg_update(true)) {
+ break;
+ }
+ $static_output .= '.';
+ update_output_window($static_output);
+ sleep(1);
+ }
+ $static_output .= "\n";
+ update_output_window($static_output);
+ } else {
+ if (!pkg_update()) {
+ return false;
+ }
+ }
+
+ $pkg_info = get_pkg_info();
+
+ foreach ($config['installedpackages']['package'] as $package) {
+ $found = false;
+ $internal_name = get_package_internal_name($package);
+ foreach ($pkg_info as $pkg) {
+ pkg_remove_prefix($pkg['name']);
+ if ($pkg['name'] == $internal_name) {
+ $found = true;
+ break;
+ }
+ }
+
+ if (!$found) {
+ if (!function_exists("file_notice")) {
+ require_once("notices.inc");
+ }
+
+ file_notice(gettext("Package reinstall"),
+ sprintf(gettext("Package %s does not exist in current %s version and it has been removed."), $package['name'], $g['product_name']));
+ uninstall_package($package['name']);
+ }
+ }
+
+ /* Obsoleted packages were removed, lets reinstall all remaining */
+ foreach ($config['installedpackages']['package'] as $package) {
+ $internal_name = get_package_internal_name($package);
+ pkg_install($internal_name, true);
+ }
+
+ return true;
}
function stop_packages() {
diff --git a/src/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc
index 6d9833e..ffb5ec5 100644
--- a/src/etc/inc/upgrade_config.inc
+++ b/src/etc/inc/upgrade_config.inc
@@ -715,54 +715,50 @@ function upgrade_040_to_041() {
$config['sysctl']['item'][8]['descr'] = gettext("Maximum outgoing TCP datagram size");
$config['sysctl']['item'][8]['value'] = "default";
- $config['sysctl']['item'][9]['tunable'] = "net.inet.ip.fastforwarding";
- $config['sysctl']['item'][9]['descr'] = gettext("Fastforwarding (see http://lists.freebsd.org/pipermail/freebsd-net/2004-January/002534.html)");
+ $config['sysctl']['item'][9]['tunable'] = "net.inet.tcp.delayed_ack";
+ $config['sysctl']['item'][9]['descr'] = gettext("Do not delay ACK to try and piggyback it onto a data packet");
$config['sysctl']['item'][9]['value'] = "default";
- $config['sysctl']['item'][10]['tunable'] = "net.inet.tcp.delayed_ack";
- $config['sysctl']['item'][10]['descr'] = gettext("Do not delay ACK to try and piggyback it onto a data packet");
+ $config['sysctl']['item'][10]['tunable'] = "net.inet.udp.maxdgram";
+ $config['sysctl']['item'][10]['descr'] = gettext("Maximum outgoing UDP datagram size");
$config['sysctl']['item'][10]['value'] = "default";
- $config['sysctl']['item'][11]['tunable'] = "net.inet.udp.maxdgram";
- $config['sysctl']['item'][11]['descr'] = gettext("Maximum outgoing UDP datagram size");
+ $config['sysctl']['item'][11]['tunable'] = "net.link.bridge.pfil_onlyip";
+ $config['sysctl']['item'][11]['descr'] = gettext("Handling of non-IP packets which are not passed to pfil (see if_bridge(4))");
$config['sysctl']['item'][11]['value'] = "default";
- $config['sysctl']['item'][12]['tunable'] = "net.link.bridge.pfil_onlyip";
- $config['sysctl']['item'][12]['descr'] = gettext("Handling of non-IP packets which are not passed to pfil (see if_bridge(4))");
+ $config['sysctl']['item'][12]['tunable'] = "net.link.tap.user_open";
+ $config['sysctl']['item'][12]['descr'] = gettext("Allow unprivileged access to tap(4) device nodes");
$config['sysctl']['item'][12]['value'] = "default";
- $config['sysctl']['item'][13]['tunable'] = "net.link.tap.user_open";
- $config['sysctl']['item'][13]['descr'] = gettext("Allow unprivileged access to tap(4) device nodes");
+ $config['sysctl']['item'][13]['tunable'] = "kern.randompid";
+ $config['sysctl']['item'][13]['descr'] = gettext("Randomize PID's (see src/sys/kern/kern_fork.c: sysctl_kern_randompid())");
$config['sysctl']['item'][13]['value'] = "default";
- $config['sysctl']['item'][15]['tunable'] = "kern.randompid";
- $config['sysctl']['item'][15]['descr'] = gettext("Randomize PID's (see src/sys/kern/kern_fork.c: sysctl_kern_randompid())");
+ $config['sysctl']['item'][14]['tunable'] = "net.inet.tcp.inflight.enable";
+ $config['sysctl']['item'][14]['descr'] = gettext("The system will attempt to calculate the bandwidth delay product for each connection and limit the amount of data queued to the network to just the amount required to maintain optimum throughput. ");
+ $config['sysctl']['item'][14]['value'] = "default";
+
+ $config['sysctl']['item'][15]['tunable'] = "net.inet.icmp.icmplim";
+ $config['sysctl']['item'][15]['descr'] = gettext("Set ICMP Limits");
$config['sysctl']['item'][15]['value'] = "default";
- $config['sysctl']['item'][16]['tunable'] = "net.inet.tcp.inflight.enable";
- $config['sysctl']['item'][16]['descr'] = gettext("The system will attempt to calculate the bandwidth delay product for each connection and limit the amount of data queued to the network to just the amount required to maintain optimum throughput. ");
+ $config['sysctl']['item'][16]['tunable'] = "net.inet.tcp.tso";
+ $config['sysctl']['item'][16]['descr'] = gettext("TCP Offload engine");
$config['sysctl']['item'][16]['value'] = "default";
- $config['sysctl']['item'][17]['tunable'] = "net.inet.icmp.icmplim";
- $config['sysctl']['item'][17]['descr'] = gettext("Set ICMP Limits");
+ $config['sysctl']['item'][17]['tunable'] = "net.inet.ip.portrange.first";
+ $config['sysctl']['item'][17]['descr'] = "Set the ephemeral port range starting port";
$config['sysctl']['item'][17]['value'] = "default";
- $config['sysctl']['item'][18]['tunable'] = "net.inet.tcp.tso";
- $config['sysctl']['item'][18]['descr'] = gettext("TCP Offload engine");
+ $config['sysctl']['item'][18]['tunable'] = "hw.syscons.kbd_reboot";
+ $config['sysctl']['item'][18]['descr'] = "Enables ctrl+alt+delete";
$config['sysctl']['item'][18]['value'] = "default";
- $config['sysctl']['item'][19]['tunable'] = "net.inet.ip.portrange.first";
- $config['sysctl']['item'][19]['descr'] = "Set the ephemeral port range starting port";
+ $config['sysctl']['item'][19]['tunable'] = "kern.ipc.maxsockbuf";
+ $config['sysctl']['item'][19]['descr'] = "Maximum socket buffer size";
$config['sysctl']['item'][19]['value'] = "default";
- $config['sysctl']['item'][20]['tunable'] = "hw.syscons.kbd_reboot";
- $config['sysctl']['item'][20]['descr'] = "Enables ctrl+alt+delete";
- $config['sysctl']['item'][20]['value'] = "default";
-
- $config['sysctl']['item'][21]['tunable'] = "kern.ipc.maxsockbuf";
- $config['sysctl']['item'][21]['descr'] = "Maximum socket buffer size";
- $config['sysctl']['item'][21]['value'] = "default";
-
}
}
@@ -4052,5 +4048,43 @@ function upgrade_125_to_126() {
}
}
+// prior to v2.3 <widgets><sequence> contains a list of widgets with display types:
+// none, close, hide, & show
+// v2.3 & later uses:
+// close & open
+// widgets not in use are simply not in the list
+function upgrade_126_to_127() {
+ global $config;
+
+ if (!isset($config['widgets']['sequence'])) {
+ return;
+ }
+
+ $cur_widgets = explode(',', trim($config['widgets']['sequence']));
+ $new_widgets = array();
+
+ foreach ($cur_widgets as $widget) {
+ list($file, $col, $display) = explode(':', $widget);
+
+ switch ($display) {
+ case 'hide':
+ $display = 'close';
+ break;
+ case 'show':
+ $display = 'open';
+ break;
+ default:
+ continue 2;
+ }
+
+ /* Remove '-container' from widget name */
+ $file = preg_replace('/-container$/', '', $file);
+
+ $new_widgets[] = "{$file}:{$col}:{$display}";
+ }
+
+ $config['widgets']['sequence'] = implode(',', $new_widgets);
+
+}
?>
diff --git a/src/etc/inc/vpn.inc b/src/etc/inc/vpn.inc
index 7421942..3a6e63a 100644
--- a/src/etc/inc/vpn.inc
+++ b/src/etc/inc/vpn.inc
@@ -1425,7 +1425,7 @@ EOD;
/* manage process */
if ($restart === true) {
- mwexec("/usr/local/sbin/ipsec restart --conf {$g['varetc_path']}/ipsec/ipsec.conf", false);
+ mwexec("/usr/local/sbin/ipsec restart", false);
} else {
if (isvalidpid("{$g['varrun_path']}/starter.charon.pid")) {
/* Update configuration changes */
@@ -1433,7 +1433,7 @@ EOD;
mwexec("/usr/local/sbin/ipsec rereadall", false);
mwexec("/usr/local/sbin/ipsec reload", false);
} else {
- mwexec("/usr/local/sbin/ipsec start --conf {$g['varetc_path']}/ipsec/ipsec.conf", false);
+ mwexec("/usr/local/sbin/ipsec start", false);
}
}
diff --git a/src/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles
index 7d2f10f..16440ed 100644
--- a/src/etc/pfSense.obsoletedfiles
+++ b/src/etc/pfSense.obsoletedfiles
@@ -215,6 +215,7 @@
/usr/bin/ntpq
/usr/bin/objcopy
/usr/bin/objdump
+/usr/bin/pbisyscmd
/usr/bin/pfbtops
/usr/bin/pic
/usr/bin/post-grohtml
@@ -636,8 +637,28 @@
/usr/local/sbin/mini_httpd
/usr/local/sbin/mpd
/usr/local/sbin/olsrd
+/usr/local/sbin/pbi
+/usr/local/sbin/pbi-crashhandler
+/usr/local/sbin/pbi_add
+/usr/local/sbin/pbi_addrepo
+/usr/local/sbin/pbi_autobuild
+/usr/local/sbin/pbi_browser
+/usr/local/sbin/pbi_create
+/usr/local/sbin/pbi_delete
+/usr/local/sbin/pbi_deleterepo
+/usr/local/sbin/pbi_icon
+/usr/local/sbin/pbi_indextool
+/usr/local/sbin/pbi_info
+/usr/local/sbin/pbi_listrepo
+/usr/local/sbin/pbi_makepatch
+/usr/local/sbin/pbi_makeport
/usr/local/sbin/pbi_makeport_chroot
+/usr/local/sbin/pbi_makerepo
+/usr/local/sbin/pbi_metatool
+/usr/local/sbin/pbi_patch
/usr/local/sbin/pbi_pbid
+/usr/local/sbin/pbi_update
+/usr/local/sbin/pbi_update_hashdir
/usr/local/sbin/pfsense-upgrade.sh
/usr/local/sbin/pfsense-upgrade-GUI.sh
/usr/local/sbin/pftpx
@@ -715,6 +736,7 @@
/usr/local/share/locale/zh_TW.Big5
/usr/local/share/misc
/usr/local/share/nls
+/usr/local/share/pbi-keys
/usr/local/share/sgml
/usr/local/share/skel
/usr/local/share/strongswan/templates/config/plugins/smp.conf
@@ -837,6 +859,7 @@
/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.inc
/usr/local/www/wizards/traffic_shaper_wizard_multi_lan.xml
/usr/local/www/wlan_strong_key_generator
+/usr/pbi
/usr/sbin/arlcontrol
/usr/sbin/audit
/usr/sbin/auditd
@@ -967,6 +990,7 @@
/usr/share/zoneinfo/GMT
/usr/share/zoneinfo.tgz
/var/db/dhclient.leases.sis1
+/var/db/pbi
/var/db/rrd/71
/var/db/rrd/index.html
/var/dhcpd/lib/libc.so.6
diff --git a/src/etc/rc.bootup b/src/etc/rc.bootup
index e4a83f1..478e3f5 100755
--- a/src/etc/rc.bootup
+++ b/src/etc/rc.bootup
@@ -393,16 +393,14 @@ if (file_exists("/sbin/shutdown.old")) {
}
/* Resync / Reinstall packages if need be */
-if (file_exists('/conf/needs_package_sync')) {
- if ($config['installedpackages'] <> '' && is_array($config['installedpackages']['package'])) {
- require_once("pkg-utils.inc");
- if ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd") {
- mark_subsystem_dirty('packagelock');
- pkg_reinstall_all();
- clear_subsystem_dirty('packagelock');
- }
+if (file_exists('/conf/needs_package_sync') &&
+ ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd")) {
+ require_once("pkg-utils.inc");
+ mark_subsystem_dirty('packagelock');
+ if (package_reinstall_all()) {
+ @unlink('/conf/needs_package_sync');
}
- @unlink('/conf/needs_package_sync');
+ clear_subsystem_dirty('packagelock');
}
/* Give syslogd a kick after everything else has been initialized, otherwise it can occasionally
diff --git a/src/usr/local/share/pbi-keys/pfSense-BETA.ssl b/src/usr/local/share/pbi-keys/pfSense-BETA.ssl
deleted file mode 100644
index 69ced3a..0000000
--- a/src/usr/local/share/pbi-keys/pfSense-BETA.ssl
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvl/Zi/Lj5p4cofA9pCIg
-ylSFUNZAIrJHhWE4x1jHr43Ez24RbbNQu2BfsaOGaCOnxBDk6xRNHkxWjUdFQIkc
-0R5lTLDiOnuJLB4nbA1FjVdygIeiikYHPnTQO2zaBAHX0O2k/ywNds+4HeKpf29S
-7NtqIeePMt8MlSqXJdyopZynAa+EF53q/0ude9fzvpITOtSogaJ78jlr3mLQmLeF
-+flXBfV6sTe7bvVseFng+SuY8iAIsQqq58QrSlPcA7O2qNBlscqfJNFrZ2OCU4nZ
-7sXKqPWtIyZqCgH8XKv0ALwaDUt/F+XoAfod8kADXqhkIafx5dnbJ1ro0hffxi8Z
-SLia6heHvxLb2Ia9S7tteC3yaSa/Assq7anKefRpEDpSJFWTI+imdjHjteNpKrYz
-8WDPl5Rn3cOYgU1n73w+O9Km2VtO7Szhi6gh+EJ6+NXOmoUA4LHhVZYtfR3wFQtu
-jWazGigk3g0kXRh/wA7YLiLHbsgNT6zAnIk34UVx9agugYEUUjpsCAKUOxUSZNx7
-H0ow1zRNaE3cyMQAuxXy4opTnls9hiS5TpN1dstxviPgNj8/udykzJyeGFRVo5Tu
-iCcmBGizyK8n+9M1O5SAPpInukK5uR2sYYJhO8B8SOQTkbsBO55nip6wDQQx2ewE
-Rsvesuw3X/Mq/5hJ2DT8StkCAwEAAQ==
------END PUBLIC KEY-----
diff --git a/src/usr/local/share/pfSense/pre_upgrade_command b/src/usr/local/share/pfSense/pre_upgrade_command
index 66fbbbe..3a5f817 100644
--- a/src/usr/local/share/pfSense/pre_upgrade_command
+++ b/src/usr/local/share/pfSense/pre_upgrade_command
@@ -15,6 +15,7 @@ echo $PRIOR_VERSION > /tmp/pre_upgrade_version
# 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 }')
if [ ! -d "${pbi_prefix}" ]; then
continue
diff --git a/src/usr/local/www/diag_ipsec.php b/src/usr/local/www/diag_ipsec.php
index 4de20ee..f039df7 100644
--- a/src/usr/local/www/diag_ipsec.php
+++ b/src/usr/local/www/diag_ipsec.php
@@ -390,10 +390,10 @@ if (is_array($status)) {
</td>
<td>
<?php
- print(gettext("Bytes-In: ") . htmlspecialchars($childsa['bytes-in']) . '<br/>');
- print(gettext("Packets-In: ") . htmlspecialchars($childsa['packets-in']) . '<br/>');
- print(gettext("Bytes-Out: ") . htmlspecialchars($childsa['bytes-out']) . '<br/>');
- print(gettext("Packets-Out: ") . htmlspecialchars($childsa['packets-out']) . '<br/>');
+ print(gettext("Bytes-In: ") . htmlspecialchars(number_format($childsa['bytes-in'])) . ' (' . htmlspecialchars(format_bytes($childsa['bytes-in'])) . ')<br/>');
+ print(gettext("Packets-In: ") . htmlspecialchars(number_format($childsa['packets-in'])) . '<br/>');
+ print(gettext("Bytes-Out: ") . htmlspecialchars(number_format($childsa['bytes-out'])) . ' (' . htmlspecialchars(format_bytes($childsa['bytes-out'])) . ')<br/>');
+ print(gettext("Packets-Out: ") . htmlspecialchars(number_format($childsa['packets-out'])) . '<br/>');
?>
</td>
<td>
diff --git a/src/usr/local/www/firewall_nat_out_edit.php b/src/usr/local/www/firewall_nat_out_edit.php
index a91fddd..8d44ee3 100644
--- a/src/usr/local/www/firewall_nat_out_edit.php
+++ b/src/usr/local/www/firewall_nat_out_edit.php
@@ -665,14 +665,14 @@ if ($has_created_time || $has_updated_time) {
if ($has_created_time) {
$section->addInput(new Form_StaticText(
'Created',
- date(gettext("n/j/y H:i:s"), $a_out[$id]['created']['time']) . gettext("by") . $a_out[$id]['created']['username']
+ date(gettext("n/j/y H:i:s"), $a_out[$id]['created']['time']) . gettext(" by ") . $a_out[$id]['created']['username']
));
}
if ($has_updated_time) {
$section->addInput(new Form_StaticText(
'Updated',
- date(gettext("n/j/y H:i:s"), $a_out[$id]['updated']['time']) . gettext("by") . $a_out[$id]['updated']['username']
+ date(gettext("n/j/y H:i:s"), $a_out[$id]['updated']['time']) . gettext(" by ") . $a_out[$id]['updated']['username']
));
}
diff --git a/src/usr/local/www/guiconfig.inc b/src/usr/local/www/guiconfig.inc
index 363395a..ed66599 100644
--- a/src/usr/local/www/guiconfig.inc
+++ b/src/usr/local/www/guiconfig.inc
@@ -700,7 +700,7 @@ function dump_clog($logfile, $tail, $withorig = true, $grepfor = "", $grepinvert
$entry_text = ($logent[3] == $config['system']['hostname']) ? "" : $logent[3] . " ";
$entry_text .= htmlspecialchars($logent[4] . " " . $logent[5]);
}
- echo "<td>{$entry_date_time}</td>\n";
+ echo "<td style=\"white-space:nowrap;\">{$entry_date_time}</td>\n";
echo "<td>{$entry_text}</td>\n";
} else {
echo "<td>" . htmlspecialchars($logent[5]) . "</td>\n";
diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc
index d8dcb88..fe8d34c 100755
--- a/src/usr/local/www/head.inc
+++ b/src/usr/local/www/head.inc
@@ -67,12 +67,21 @@ if (isset($config['system']['webgui']['pagenamefirst'])) {
} else {
$tabtitle = $config['system']['hostname'] . "." . $config['system']['domain'] . " - " . $pagetitle;
}
+
+$cssfile = "/bootstrap/css/pfSense.css";
+
+if (isset($config['system']['webgui']['webguicss'])) {
+ if(file_exists("bootstrap/css/" . $config['system']['webgui']['webguicss'])) {
+ $cssfile = "/bootstrap/css/" . $config['system']['webgui']['webguicss'];
+ }
+}
+
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
- <link rel="stylesheet" href="/bootstrap/css/pfSense.css" />
+ <link rel="stylesheet" href="<?=$cssfile?>" />
<link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="sortable/sortable-theme-bootstrap.css">
<title><?=$tabtitle?></title>
diff --git a/src/usr/local/www/interfaces_assign.php b/src/usr/local/www/interfaces_assign.php
index e84f3de..f6ec51b 100644
--- a/src/usr/local/www/interfaces_assign.php
+++ b/src/usr/local/www/interfaces_assign.php
@@ -555,7 +555,7 @@ display_top_tabs($tab_array);
<?php if ($ifname != 'wan'):?>
<button type="submit" name="del[<?=$ifname?>]" class="btn btn-danger btn-sm" title="<?=gettext("Delete interface")?>">
<i class="fa fa-trash icon-embed-btn"></i>
- <?=gettext("Delete I/F")?>
+ <?=gettext("Delete")?>
</button>
<?php endif;?>
</td>
@@ -579,7 +579,7 @@ display_top_tabs($tab_array);
<td>
<button type="submit" name="add" title="<?=gettext("Add selected interface")?>" value="add interface" class="btn btn-success btn-sm" >
<i class="fa fa-plus icon-embed-btn"></i>
- <?=gettext("Add I/F")?>
+ <?=gettext("Add")?>
</button>
</td>
</tr>
diff --git a/src/usr/local/www/interfaces_groups_edit.php b/src/usr/local/www/interfaces_groups_edit.php
index 3ae6677..9735213 100644
--- a/src/usr/local/www/interfaces_groups_edit.php
+++ b/src/usr/local/www/interfaces_groups_edit.php
@@ -126,7 +126,18 @@ if ($_POST) {
}
}
- $members = isset($_POST['members']) ? join(' ', $_POST['members']) : "";
+ if (isset($_POST['members'])) {
+ foreach ($_POST['members'] as $member ) {
+ if ($isfirst > 0)
+ $members .= " ";
+
+ $members .= $member[0];
+ $isfirst++;
+ }
+ }
+ else {
+ $members = "";
+ }
if (!$input_errors) {
$ifgroupentry = array();
diff --git a/src/usr/local/www/system_advanced_admin.php b/src/usr/local/www/system_advanced_admin.php
index a730d0a..5f3c105 100644
--- a/src/usr/local/www/system_advanced_admin.php
+++ b/src/usr/local/www/system_advanced_admin.php
@@ -74,6 +74,7 @@ require_once("filter.inc");
require_once("shaper.inc");
$pconfig['webguiproto'] = $config['system']['webgui']['protocol'];
+$pconfig['webguicss'] = $config['system']['webgui']['webguicss'];
$pconfig['webguiport'] = $config['system']['webgui']['port'];
$pconfig['max_procs'] = ($config['system']['webgui']['max_procs']) ? $config['system']['webgui']['max_procs'] : 2;
$pconfig['ssl-certref'] = $config['system']['webgui']['ssl-certref'];
@@ -160,6 +161,12 @@ if ($_POST) {
$restart_webgui = true;
}
+ if ($_POST['webguicss']) {
+ $config['system']['webgui']['webguicss'] = $_POST['webguicss'];
+ } else {
+ unset($config['system']['primaryconsole']);
+ }
+
if ($_POST['webgui-redirect'] == "yes") {
$config['system']['webgui']['disablehttpredirect'] = true;
$restart_webgui = true;
@@ -470,6 +477,22 @@ $section->addInput(new Form_Checkbox(
'by the current page. Check this box to display the current page followed by the '.
'host name.');
+$csslist = array();
+$css = glob("bootstrap/css/*.css");
+foreach ($css as $file) {
+ $file = basename($file);
+ if(substr($file, 0, 9) !== 'bootstrap') {
+ $csslist[$file] = $file;
+ }
+}
+
+$section->addInput(new Form_Select(
+ 'webguicss',
+ 'Web configurator style sheet',
+ $pconfig['webguicss'],
+ $csslist
+))->setHelp("Choose an alternative css file (if installed) to change the appearance of the Web configurator. css files are located in /usr/local/www/bootstrap/css");
+
$form->add($section);
$section = new Form_Section('Secure Shell');
OpenPOWER on IntegriCloud