summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf.default/config.xml5
-rw-r--r--etc/devd.conf5
-rw-r--r--etc/inc/filter.inc7
-rw-r--r--etc/inc/globals.inc1
-rw-r--r--etc/inc/interfaces.inc53
-rw-r--r--etc/inc/services.inc1
-rw-r--r--etc/inc/shaper.inc2
-rw-r--r--etc/inc/upgrade_config.inc4
-rw-r--r--etc/inc/vpn.inc1
-rw-r--r--etc/inc/vslb.inc3
-rwxr-xr-xsbin/dhclient-script7
-rwxr-xr-xusr/local/sbin/ppp-linkdown8
-rwxr-xr-xusr/local/sbin/ppp-linkup23
-rwxr-xr-xusr/local/www/interfaces_assign.php2
-rwxr-xr-xusr/local/www/interfaces_qinq.php1
-rwxr-xr-xusr/local/www/interfaces_qinq_edit.php7
-rw-r--r--usr/local/www/status_rrd_graph_img.php44
-rw-r--r--usr/local/www/system_usermanager.php2
18 files changed, 108 insertions, 68 deletions
diff --git a/conf.default/config.xml b/conf.default/config.xml
index 42662f7..b291c38 100644
--- a/conf.default/config.xml
+++ b/conf.default/config.xml
@@ -101,11 +101,6 @@
<value>default</value>
</item>
<item>
- <descr><![CDATA[Verbosity of the rndtest driver (0: do not display results on console)]]></descr>
- <tunable>kern.rndtest.verbose</tunable>
- <value>default</value>
- </item>
- <item>
<descr><![CDATA[Randomize PID's (see src/sys/kern/kern_fork.c: sysctl_kern_randompid())]]></descr>
<tunable>kern.randompid</tunable>
<value>default</value>
diff --git a/etc/devd.conf b/etc/devd.conf
index 7c63591..244af48 100644
--- a/etc/devd.conf
+++ b/etc/devd.conf
@@ -39,10 +39,7 @@ detach 100 {
};
#
-# Try to start dhclient on Ethernet like interfaces when the link comes
-# up. Only devices that are configured to support DHCP will actually
-# run it. No link down rule exists because dhclient automaticly exits
-# when the link goes down.
+# Signal upper levels that an event happened on ethernet class interface
#
notify 0 {
match "system" "IFNET";
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index 6ba15e7..81dbd9a 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -1989,7 +1989,7 @@ function filter_generate_user_rule($rule) {
} else
$aline['flags'] .= "keep state ";
- if($noadvoptions == false)
+ if($noadvoptions == false || $l7_present)
if( (isset($rule['source-track']) and $rule['source-track'] <> "") or
(isset($rule['max']) and $rule['max'] <> "") or
(isset($rule['max-src-nodes']) and $rule['max-src-nodes'] <> "") or
@@ -1998,7 +1998,7 @@ function filter_generate_user_rule($rule) {
(isset($rule['max-src-conn-rates']) and $rule['max-src-conn-rates'] <> "") or
(isset($rule['max-src-states']) and $rule['max-src-states'] <> "") or
(isset($rule['statetimeout']) and $rule['statetimeout'] <> "") or
- isset($rule['sloppy'])) {
+ isset($rule['sloppy']) or $l7_present) {
$aline['flags'] .= "( ";
if (isset($rule['sloppy']))
$aline['flags'] .= "sloppy ";
@@ -2022,6 +2022,9 @@ function filter_generate_user_rule($rule) {
$aline['flags'] .= "/" . $rule['max-src-conn-rates'] . ", overload <virusprot> flush global ";
}
+ if(!empty($aline['divert']))
+ $aline['flags'] .= "max-packets 8 ";
+
$aline['flags'] .= " ) ";
}
}
diff --git a/etc/inc/globals.inc b/etc/inc/globals.inc
index da1a87f..6993148 100644
--- a/etc/inc/globals.inc
+++ b/etc/inc/globals.inc
@@ -153,7 +153,6 @@ $sysctls = array("net.inet.ip.portrange.first" => "1024",
"net.link.bridge.pfil_member" => "1",
"net.link.bridge.pfil_bridge" => "0",
"net.link.tap.user_open" => "1",
- "kern.rndtest.verbose" => "0",
"kern.randompid" => "347",
"net.inet.ip.intr_queue_maxlen" => "1000",
"hw.syscons.kbd_reboot" => "0",
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index 1ef597b..b312e67 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -255,6 +255,7 @@ function interface_qinq_configure(&$vlan, $fd = NULL) {
/* make sure the parent is converted to ng_vlan(4) and is up */
interfaces_bring_up($qinqif);
+ pfSense_ngctl_attach(".", $qinqif);
if (!empty($vlanif) && does_interface_exist($vlanif)) {
fwrite($fd, "shutdown {$qinqif}qinq:\n");
exec("/usr/sbin/ngctl msg {$qinqif}qinq: gettable", $result);
@@ -364,7 +365,7 @@ function interfaces_create_wireless_clones() {
echo " done.\n";
}
-function interfaces_bridge_configure() {
+function interfaces_bridge_configure($checkmember = 0) {
global $config;
$i = 0;
@@ -372,6 +373,10 @@ function interfaces_bridge_configure() {
foreach ($config['bridges']['bridged'] as $bridge) {
if(empty($bridge['bridgeif']))
$bridge['bridgeif'] = "bridge{$i}";
+ if ($checkmember == 1 && (strstr($bridge['members'], "gif") || strstr($bridge['members'], "gre")))
+ continue;
+ if ($checkmember == 2 && !strstr($bridge['members'], "gif") && !strstr($bridge['members'], "gre"))
+ continue;
/* XXX: Maybe we should report any errors?! */
interface_bridge_configure($bridge);
$i++;
@@ -685,13 +690,17 @@ function interface_lagg_configure(&$lagg) {
return $laggif;
}
-function interfaces_gre_configure() {
+function interfaces_gre_configure($checkparent = 0) {
global $config;
if (is_array($config['gres']['gre']) && count($config['gres']['gre'])) {
foreach ($config['gres']['gre'] as $i => $gre) {
if(empty($gre['greif']))
$gre['greif'] = "gre{$i}";
+ if ($checkparent == 1 && strstr($gre['if'], "vip"))
+ continue;
+ if ($checkparent == 2 && !strstr($gre['if'], "vip"))
+ continue;
/* XXX: Maybe we should report any errors?! */
interface_gre_configure($gre);
}
@@ -743,13 +752,17 @@ function interface_gre_configure(&$gre, $grekey = "") {
return $greif;
}
-function interfaces_gif_configure() {
+function interfaces_gif_configure($checkparent = 0) {
global $config;
if (is_array($config['gifs']['gif']) && count($config['gifs']['gif'])) {
foreach ($config['gifs']['gif'] as $i => $gif) {
if(empty($gif['gifif']))
$gre['gifif'] = "gif{$i}";
+ if ($checkparent == 1 && strstr($gif['if'], "vip"))
+ continue;
+ if ($checkparent == 2 && !strstr($gif['if'], "vip"))
+ continue;
/* XXX: Maybe we should report any errors?! */
interface_gif_configure($gif);
}
@@ -854,12 +867,30 @@ function interfaces_configure() {
/* create the unconfigured wireless clones */
interfaces_create_wireless_clones();
+ /*
+ * NOTE: The following function parameter consists of
+ * 1 - Do not load gre/gif/bridge with parent/member as vip
+ * 2 - Do load gre/gif/bridge with parent/member as vip
+ */
+
/* set up GRE virtual interfaces */
- interfaces_gre_configure();
+ interfaces_gre_configure(1);
/* set up GIF virtual interfaces */
- interfaces_gif_configure();
-
+ interfaces_gif_configure(1);
+
+ /* set up BRIDGe virtual interfaces */
+ interfaces_bridge_configure(1);
+
+ /* bring up vip interfaces */
+ interfaces_vips_configure();
+
+ /* set up GRE virtual interfaces */
+ interfaces_gre_configure(2);
+
+ /* set up GIF virtual interfaces */
+ interfaces_gif_configure(2);
+
foreach ($delayed_list as $if => $ifname) {
if ($g['booting'])
echo "Configuring {$ifname} interface...";
@@ -873,7 +904,7 @@ function interfaces_configure() {
}
/* set up BRIDGe virtual interfaces */
- interfaces_bridge_configure();
+ interfaces_bridge_configure(2);
foreach ($bridge_list as $if => $ifname) {
if ($g['booting'])
@@ -887,9 +918,6 @@ function interfaces_configure() {
echo "done.\n";
}
- /* bring up vip interfaces */
- interfaces_vips_configure();
-
/* configure interface groups */
interfaces_group_setup();
@@ -2519,7 +2547,8 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
// Need code to handle MLPPP if we ever use $realhwif for MLPPP handling
$realhwif = $realhwif_array[0];
- if (!$g['booting']) {
+
+ if (!$g['booting'] && !substr($realif, 0, 4) == "ovpn") {
/* remove all IPv4 addresses */
while (mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " -alias", true) == 0);
while (mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 -alias", true) == 0);
@@ -2665,7 +2694,7 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven
} else if (substr($realif, 0, 3) == "gif") {
if (is_array($config['gifs']['gif'])) {
foreach ($config['gifs']['gif'] as $gif)
- if($gif['gifif'] == $interface)
+ if($gif['gifif'] == $realif)
interface_gif_configure($gif);
}
} else if (substr($realif, 0, 4) == "ovpn") {
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index bc18355..266a291 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -818,6 +818,7 @@ EOD;
$realif = get_real_interface($ifn);
$igmpconf .= "phyint {$realif} disabled\n";
}
+ $igmpconf .= "\n";
$igmpfl = fopen($g['tmp_path'] . "/igmpproxy.conf", "w");
if (!$igmpfl) {
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index a0fb0e4..c9f41f3 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -3743,7 +3743,7 @@ function layer7_start_l7daemon() {
mwexec("/bin/kill -HUP {$l7pid[0]}");
} else {
// XXX: Hardcoded number of packets to garbage collect and queue length..
- $ipfw_classifyd_init = "/usr/local/sbin/ipfw-classifyd -n 5 -q 700 -c {$path} -p " . $l7rules->GetRPort() . " -P /usr/local/share/protocols";
+ $ipfw_classifyd_init = "/usr/local/sbin/ipfw-classifyd -n 8 -q 700 -c {$path} -p " . $l7rules->GetRPort() . " -P /usr/local/share/protocols";
mwexec_bg($ipfw_classifyd_init);
}
}
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index b3b8fb9..77a8682 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -685,10 +685,6 @@ function upgrade_040_to_041() {
$config['sysctl']['item'][13]['descr'] = "Allow unprivileged access to tap(4) device nodes";
$config['sysctl']['item'][13]['value'] = "default";
- $config['sysctl']['item'][14]['tunable'] = "kern.rndtest.verbose";
- $config['sysctl']['item'][14]['descr'] = "Verbosity of the rndtest driver (0: do not display results on console)";
- $config['sysctl']['item'][14]['value'] = "default";
-
$config['sysctl']['item'][15]['tunable'] = "kern.randompid";
$config['sysctl']['item'][15]['descr'] = "Randomize PID's (see src/sys/kern/kern_fork.c: sysctl_kern_randompid())";
$config['sysctl']['item'][15]['value'] = "default";
diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc
index c10cb01..d08b60b 100644
--- a/etc/inc/vpn.inc
+++ b/etc/inc/vpn.inc
@@ -946,6 +946,7 @@ EOD;
file_put_contents("{$g['varetc_path']}/filterdns-ipsec.hosts", $hostnames);
killbypid("{$g['varrun_path']}/filterdns-ipsec.pid");
+ sleep(1);
mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-ipsec.pid -i {$interval} -c {$g['varetc_path']}/filterdns-ipsec.hosts -d 1");
}
diff --git a/etc/inc/vslb.inc b/etc/inc/vslb.inc
index 55bcfdf..79978c0 100644
--- a/etc/inc/vslb.inc
+++ b/etc/inc/vslb.inc
@@ -241,6 +241,9 @@ function relayd_configure() {
$conf .= " listen on {$vs_a[$i]['ipaddr']} port {$vs_a[$i]['port']}\n";
$conf .= " forward to <{$vs_a[$i]['pool']}> port {$pools[$vs_a[$i]['pool']]['port']} {$check_a[$pools[$vs_a[$i]['pool']]['monitor']]} timeout 1000\n";
+ if (isset($conf['system']['lb_use_sticky']))
+ $conf .= " sticky-address\n";
+
# sitedown MUST use the same port as the primary pool - sucks, but it's a relayd thing
if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0)
$conf .= " forward to <{$vs_a[$i]['sitedown']}> port {$pools[$vs_a[$i]['pool']]['port']} {$check_a[$pools[$vs_a[$i]['pool']]['monitor']]} timeout 1000\n";
diff --git a/sbin/dhclient-script b/sbin/dhclient-script
index f1c77f2..08699ba 100755
--- a/sbin/dhclient-script
+++ b/sbin/dhclient-script
@@ -230,16 +230,19 @@ add_new_resolv_conf() {
if [ -f "/var/etc/nameserver_$interface" ]; then
# Remove old entries
for nameserver in `cat /var/etc/nameserver_$interface`; do
- $ROUTE delete $nameserver
+ $ROUTE delete $nameserver >/dev/null 2>&1
done
fi
if [ -n "$new_domain_name_servers" ]; then
/bin/rm -f /var/etc/nameserver_$interface
+ ALLOWOVERRIDE=`/usr/bin/grep dnsallowoverride /conf/config.xml | /usr/bin/wc -l`
for nameserver in $new_domain_name_servers; do
# Add a route to the nameserver out the correct interface
# so that mulitple wans work correctly with multiple dns
# also backup the nameserver for later route removal
- echo $nameserver >>/var/etc/nameserver_$interface
+ if [ $ALLOWOVERRIDE -gt 0 ]; then
+ echo $nameserver >>/var/etc/nameserver_$interface
+ fi
$ROUTE add $nameserver -iface $interface
done
echo $new_domain_name >/var/etc/searchdomain_$interface
diff --git a/usr/local/sbin/ppp-linkdown b/usr/local/sbin/ppp-linkdown
index 4d4db42..f6a78b9 100755
--- a/usr/local/sbin/ppp-linkdown
+++ b/usr/local/sbin/ppp-linkdown
@@ -9,7 +9,13 @@ fi
/sbin/pfctl -b $3 -b $4
# delete the node just in case mpd cannot do that
/usr/sbin/ngctl shutdown $1:
-/bin/rm -f /var/etc/nameserver_$1
+if [ -f "/var/etc/nameserver_$1" ]; then
+ # Remove old entries
+ for nameserver in `cat /var/etc/nameserver_$1`; do
+ /sbin/route delete $nameserver >/dev/null 2>&1
+ done
+ /bin/rm -f /var/etc/nameserver_$1
+fi
# Do not remove gateway used during filter reload.
/bin/rm -f /tmp/$1_router
/bin/rm -f /tmp/$1up
diff --git a/usr/local/sbin/ppp-linkup b/usr/local/sbin/ppp-linkup
index a9c0f32..94d9b16 100755
--- a/usr/local/sbin/ppp-linkup
+++ b/usr/local/sbin/ppp-linkup
@@ -1,16 +1,19 @@
#!/bin/sh
-# write nameservers to file
-if [ $6 = "dns1" ]; then
- echo $7 > /var/etc/nameserver_$1
- /sbin/route delete $7
- /sbin/route add $7 $4
-fi
+ALLOWOVERRIDE=`/usr/bin/grep dnsallowoverride /conf/config.xml | /usr/bin/wc -l`
+if [ $ALLOWOVERRIDE -gt 0 ]; then
+ # write nameservers to file
+ if [ $6 = "dns1" ]; then
+ echo $7 > /var/etc/nameserver_$1
+ /sbin/route delete $7
+ /sbin/route add $7 $4
+ fi
-if [ $8 = "dns2" ]; then
- echo $9 >> /var/etc/nameserver_$1
- /sbin/route delete $9
- /sbin/route add $9 $4
+ if [ $8 = "dns2" ]; then
+ echo $9 >> /var/etc/nameserver_$1
+ /sbin/route delete $9
+ /sbin/route add $9 $4
+ fi
fi
# let the configuration system know that the ip has changed.
diff --git a/usr/local/www/interfaces_assign.php b/usr/local/www/interfaces_assign.php
index 5dca193..714feb4 100755
--- a/usr/local/www/interfaces_assign.php
+++ b/usr/local/www/interfaces_assign.php
@@ -441,7 +441,7 @@ if(file_exists("/var/run/interface_mismatch_reboot_needed"))
$descr .= " (" . $portinfo['descr'] . ")";
echo htmlspecialchars($descr);
} elseif ($portinfo['isgif']) {
- $descr = "GRE {$portinfo['remote-addr']}";
+ $descr = "GIF {$portinfo['remote-addr']}";
if ($portinfo['descr'])
$descr .= " (" . $portinfo['descr'] . ")";
echo htmlspecialchars($descr);
diff --git a/usr/local/www/interfaces_qinq.php b/usr/local/www/interfaces_qinq.php
index 04ac908..5a234a5 100755
--- a/usr/local/www/interfaces_qinq.php
+++ b/usr/local/www/interfaces_qinq.php
@@ -73,6 +73,7 @@ if ($_GET['act'] == "del") {
}
mwexec("/usr/sbin/ngctl shutdown {$qinq['vlanif']}qinq:");
mwexec("/usr/sbin/ngctl shutdown {$qinq['vlanif']}:");
+ mwexec("/sbin/ifconfig {$qinq['vlanif']} destroy");
unset($a_qinqs[$id]);
write_config();
diff --git a/usr/local/www/interfaces_qinq_edit.php b/usr/local/www/interfaces_qinq_edit.php
index 2ffbac9..f47b055 100755
--- a/usr/local/www/interfaces_qinq_edit.php
+++ b/usr/local/www/interfaces_qinq_edit.php
@@ -223,7 +223,7 @@ var newrow = new Array(9999);
var rowsize = new Array(9999);
for (i = 0; i < 9999; i++) {
- rowname[i] = '';
+ rowname[i] = 'members';
rowtype[i] = 'select';
newrow[i] = '';
rowsize[i] = '30';
@@ -362,12 +362,11 @@ function removeRow(el) {
if ($members <> "") {
$item = explode(" ", $members);
foreach($item as $ww) {
- $members = $item[$counter];
- $tracker = $counter;
+ $member = $item[$counter];
?>
<tr>
<td class="vtable">
- <input name="members<?php echo $tracker; ?>" class="formselect" id="members<?php echo $tracker; ?>" value="<? echo $members;?>">
+ <input name="members<?php echo $counter; ?>" class="formselect" id="members<?php echo $counter; ?>" value="<? echo $member;?>">
</td>
<td>
<a onclick="removeRow(this); return false;" href="#"><img border="0" src="/themes/<?echo $g['theme'];?>/images/icons/icon_x.gif" /></a>
diff --git a/usr/local/www/status_rrd_graph_img.php b/usr/local/www/status_rrd_graph_img.php
index 553a629..d7e828e 100644
--- a/usr/local/www/status_rrd_graph_img.php
+++ b/usr/local/www/status_rrd_graph_img.php
@@ -186,31 +186,34 @@ if ($altq_list_queues[$curif]) {
$speedlimit = ($upstream + $downstream);
+/* Set default colors explicity, the theme can then override them below.
+ This prevents missing colors in themes from crashing the graphs. */
+$colortrafficup = array("666666", "CCCCCC", "b36666", "bd9090");
+$colortrafficdown = array("990000", "CC0000", "b36666", "bd9090");
+$colorpacketsup = array("666666", "CCCCCC", "b36666", "bd9090");
+$colorpacketsdown = array("990000", "CC0000", "b36666", "bd9090");
+$colortraffic95 = array("660000", "FF0000");
+$colorstates = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorprocessor = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colormemory = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorqueuesup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
+$colorqueuesdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
+$colorqueuesdropup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
+$colorqueuesdropdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
+$colorqualityrtt = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
+$colorqualityloss = "ee0000";
+$colorwireless = array('333333','a83c3c','999999');
+$colorspamdtime = array('DDDDFF', 'AAAAFF', 'DDDDFF', '000066');
+$colorspamdconn = array('00AA00BB', 'FFFFFFFF', '00660088', 'FFFFFF88', '006600');
+$colorvpnusers = array('990000');
+$colorcaptiveportalusers = array('990000');
+
/* select theme colors if the inclusion file exists */
$rrdcolors = "{$g['www_path']}/themes/{$g['theme']}/rrdcolors.inc.php";
if(file_exists($rrdcolors)) {
include($rrdcolors);
} else {
log_error(sprintf(gettext("rrdcolors.inc.php for theme %s does not exist, using defaults!"),$g['theme']));
- $colortrafficup = array("666666", "CCCCCC", "b36666", "bd9090");
- $colortrafficdown = array("990000", "CC0000", "b36666", "bd9090");
- $colorpacketsup = array("666666", "CCCCCC", "b36666", "bd9090");
- $colorpacketsdown = array("990000", "CC0000", "b36666", "bd9090");
- $colortraffic95 = array("660000", "FF0000");
- $colorstates = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
- $colorprocessor = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
- $colormemory = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
- $colorqueuesup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
- $colorqueuesdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
- $colorqueuesdropup = array('000000','7B0000','990000','BB0000','CC0000','D90000','EE0000','FF0000','CC0000');
- $colorqueuesdropdown = array('000000','7B7B7B','999999','BBBBBB','CCCCCC','D9D9D9','EEEEEE','FFFFFF','CCCCCC');
- $colorqualityrtt = array('990000','a83c3c','b36666','bd9090','cccccc','000000');
- $colorqualityloss = "ee0000";
- $colorwireless = array('333333','a83c3c','999999');
- $colorspamdtime = array('DDDDFF', 'AAAAFF', 'DDDDFF', '000066');
- $colorspamdconn = array('00AA00BB', 'FFFFFFFF', '00660088', 'FFFFFF88', '006600');
- $colorvpnusers = array('990000');
- $colorcaptiveportalusers = array('990000');
}
switch ($curstyle) {
@@ -351,7 +354,8 @@ if((strstr($curdatabase, "-traffic.rrd")) && (file_exists("$rrddbpath$curdatabas
$graphcmd .= "CDEF:\"$curif-bytes_t6=$curif-bytes_in6_t_pass,$curif-bytes_out6_t_block,+\" ";
$graphcmd .= "VDEF:\"$curif-in_bits_95=$curif-in_bits,95,PERCENT\" ";
$graphcmd .= "CDEF:\"$curif-out_bits_mul=$curif-out_bits,$multiplier,*\" ";
- $graphcmd .= "VDEF:\"$curif-out_bits_95=$curif-out_bits_mul,95,PERCENT\" ";
+ $perc = $multiplier > 0 ? "95" : "5";
+ $graphcmd .= "VDEF:\"$curif-out_bits_95=$curif-out_bits_mul,{$perc},PERCENT\" ";
$graphcmd .= "AREA:\"$curif-in_bits_block#{$colortrafficdown[1]}:$curif-in-block\" ";
$graphcmd .= "AREA:\"$curif-in_bits_pass#{$colortrafficdown[0]}:$curif-in-pass:STACK\" ";
diff --git a/usr/local/www/system_usermanager.php b/usr/local/www/system_usermanager.php
index cdc4078..d810cb9 100644
--- a/usr/local/www/system_usermanager.php
+++ b/usr/local/www/system_usermanager.php
@@ -897,7 +897,7 @@ function sshkeyClicked(obj) {
if (!$input_errors) {
// all values are okay --> saving changes
$config['system']['user'][$userindex[$HTTP_SERVER_VARS['AUTH_USER']]]['password'] = crypt(trim($_POST['passwordfld1']));
-
+ local_user_set($config['system']['user'][$userindex[$HTTP_SERVER_VARS['AUTH_USER']]]);
write_config();
$savemsg = gettext("Password successfully changed") . "<br />";
}
OpenPOWER on IntegriCloud