diff options
author | Doug Wollison <doug@wollison.net> | 2015-11-12 19:23:57 -0500 |
---|---|---|
committer | Doug Wollison <doug@wollison.net> | 2015-11-12 19:23:57 -0500 |
commit | 92a3a73967713bfb8e5422c5166e323529811505 (patch) | |
tree | 71fb602a5478fd505c74b42b2a6c9739f8199d2d | |
parent | 722376855b596496b8fbabb60b692d11395261a4 (diff) | |
parent | 67bfaf25c99526f5934085b680f96a6aaac71737 (diff) | |
download | pfsense-92a3a73967713bfb8e5422c5166e323529811505.zip pfsense-92a3a73967713bfb8e5422c5166e323529811505.tar.gz |
Merge remote-tracking branch 'pfsense/master'
-rw-r--r-- | src/conf.default/config.xml | 4 | ||||
-rw-r--r-- | src/etc/inc/globals.inc | 6 | ||||
-rw-r--r-- | src/etc/inc/pkg-utils.inc | 93 | ||||
-rw-r--r-- | src/etc/inc/upgrade_config.inc | 90 | ||||
-rw-r--r-- | src/etc/inc/vpn.inc | 4 | ||||
-rw-r--r-- | src/etc/pfSense.obsoletedfiles | 24 | ||||
-rwxr-xr-x | src/etc/rc.bootup | 16 | ||||
-rw-r--r-- | src/usr/local/share/pbi-keys/pfSense-BETA.ssl | 14 | ||||
-rw-r--r-- | src/usr/local/share/pfSense/pre_upgrade_command | 1 | ||||
-rw-r--r-- | src/usr/local/www/diag_ipsec.php | 8 | ||||
-rw-r--r-- | src/usr/local/www/firewall_nat_out_edit.php | 4 | ||||
-rw-r--r-- | src/usr/local/www/guiconfig.inc | 2 | ||||
-rwxr-xr-x | src/usr/local/www/head.inc | 11 | ||||
-rw-r--r-- | src/usr/local/www/interfaces_assign.php | 4 | ||||
-rw-r--r-- | src/usr/local/www/interfaces_groups_edit.php | 13 | ||||
-rw-r--r-- | src/usr/local/www/system_advanced_admin.php | 23 |
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'); |