diff options
-rw-r--r-- | conf.default/config.xml | 5 | ||||
-rw-r--r-- | etc/devd.conf | 5 | ||||
-rw-r--r-- | etc/inc/filter.inc | 7 | ||||
-rw-r--r-- | etc/inc/globals.inc | 1 | ||||
-rw-r--r-- | etc/inc/interfaces.inc | 53 | ||||
-rw-r--r-- | etc/inc/services.inc | 1 | ||||
-rw-r--r-- | etc/inc/shaper.inc | 2 | ||||
-rw-r--r-- | etc/inc/upgrade_config.inc | 4 | ||||
-rw-r--r-- | etc/inc/vpn.inc | 1 | ||||
-rw-r--r-- | etc/inc/vslb.inc | 3 | ||||
-rwxr-xr-x | sbin/dhclient-script | 7 | ||||
-rwxr-xr-x | usr/local/sbin/ppp-linkdown | 8 | ||||
-rwxr-xr-x | usr/local/sbin/ppp-linkup | 23 | ||||
-rwxr-xr-x | usr/local/www/interfaces_assign.php | 2 | ||||
-rwxr-xr-x | usr/local/www/interfaces_qinq.php | 1 | ||||
-rwxr-xr-x | usr/local/www/interfaces_qinq_edit.php | 7 | ||||
-rw-r--r-- | usr/local/www/status_rrd_graph_img.php | 44 | ||||
-rw-r--r-- | usr/local/www/system_usermanager.php | 2 |
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 />"; } |