From 4e4de1d1af14cd8849418ca46c144966a8129a4c Mon Sep 17 00:00:00 2001 From: Ermal Date: Sat, 14 May 2011 13:59:11 +0000 Subject: Resolves #1529. Check if the file exists before opening it. --- etc/inc/pfsense-utils.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc index 255691a..47015af 100644 --- a/etc/inc/pfsense-utils.inc +++ b/etc/inc/pfsense-utils.inc @@ -2191,7 +2191,9 @@ function filter_rules_compare($a, $b) { ******/ function load_mac_manufacturer_table() { /* load MAC-Manufacture data from the file */ - $macs=file("/usr/local/share/nmap/nmap-mac-prefixes"); + $macs = false; + if (file_exists("/usr/local/share/nmap/nmap-mac-prefixes")) + $macs=file("/usr/local/share/nmap/nmap-mac-prefixes"); if ($macs){ foreach ($macs as $line){ if (preg_match('/([0-9A-Fa-f]{6}) (.*)$/', $line, $matches)){ -- cgit v1.1 From 24fa000b3803abe22e2234d3e04d59cd64eb5546 Mon Sep 17 00:00:00 2001 From: Warren Baker Date: Mon, 16 May 2011 16:24:45 +0200 Subject: Remove Total users graph this has become redundant and replaced with a cumulative result. --- etc/inc/rrd.inc | 35 ----------------------------------- 1 file changed, 35 deletions(-) (limited to 'etc/inc') diff --git a/etc/inc/rrd.inc b/etc/inc/rrd.inc index 2406753..4d1c456 100644 --- a/etc/inc/rrd.inc +++ b/etc/inc/rrd.inc @@ -742,42 +742,7 @@ function enable_rrd_graphing() { $rrdupdatesh .= "# polling Captive Portal for number of logged in users\n"; $rrdupdatesh .= "CP=`$php -q $captiveportal_gather loggedin`\n"; $rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$captiveportalloggedin \${CP}\n"; - - $ifname= "captiveportal"; - if (!file_exists("$rrddbpath$ifname$captiveportaltotalusers")) { - $rrdcreate = "$rrdtool create $rrddbpath$ifname$captiveportaltotalusers --step $rrdcaptiveportalinterval "; - $rrdcreate .= "DS:totalusers:GAUGE:$captiveportalvalid:0:10000 "; - $rrdcreate .= "RRA:AVERAGE:0.5:1:1000 "; - $rrdcreate .= "RRA:AVERAGE:0.5:5:1100 "; - $rrdcreate .= "RRA:AVERAGE:0.5:60:1175 "; - $rrdcreate .= "RRA:AVERAGE:0.5:720:3000 "; - $rrdcreate .= "RRA:MIN:0.5:1:1000 "; - $rrdcreate .= "RRA:MIN:0.5:5:1100 "; - $rrdcreate .= "RRA:MIN:0.5:60:1175 "; - $rrdcreate .= "RRA:MIN:0.5:720:3000 "; - $rrdcreate .= "RRA:MAX:0.5:1:1000 "; - $rrdcreate .= "RRA:MAX:0.5:5:1100 "; - $rrdcreate .= "RRA:MAX:0.5:60:1175 "; - $rrdcreate .= "RRA:MAX:0.5:720:3000 "; - $rrdcreate .= "RRA:LAST:0.5:1:1000 "; - $rrdcreate .= "RRA:LAST:0.5:5:1100 "; - $rrdcreate .= "RRA:LAST:0.5:60:1175 "; - $rrdcreate .= "RRA:LAST:0.5:720:3000 "; - create_new_rrd($rrdcreate); - } - - /* enter UNKNOWN values in the RRD so it knows we rebooted. */ - if($g['booting']) { - mwexec("$rrdtool update $rrddbpath$ifname$captiveportaltotalusers N:U"); - } - - /* the Captive Portal stats gathering function. */ - $rrdupdatesh .= "\n"; - $rrdupdatesh .= "# polling Captive Portal for number of concurrent users\n"; - $rrdupdatesh .= "CP=`$php -q $captiveportal_gather total`\n"; - $rrdupdatesh .= "$rrdtool update $rrddbpath$ifname$captiveportaltotalusers \${CP}\n"; - } $rrdupdatesh .= "sleep 60\n"; -- cgit v1.1 From a7af5ddccec097ced8c1cb2348415a6e5a2f5c5a Mon Sep 17 00:00:00 2001 From: jim-p Date: Tue, 17 May 2011 14:04:08 -0400 Subject: Don't put an empty PSK into the file, and try to avoid extra whitespace to be safe. --- etc/inc/vpn.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/vpn.inc b/etc/inc/vpn.inc index b414d4a..f595c9b 100644 --- a/etc/inc/vpn.inc +++ b/etc/inc/vpn.inc @@ -265,7 +265,8 @@ function vpn_ipsec_configure($ipchg = false) break; } - $pskconf .= "{$peerid_data}\t{$ph1ent['pre-shared-key']}\n"; + if (!empty($peerid_data) && !empty($ph1ent['pre-shared-key'])) + $pskconf .= trim($peerid_data) . "\t" . trim($ph1ent['pre-shared-key']) . "\n"; } } -- cgit v1.1 From 098820e224964ac8e2a93e8e4cb5ebe866ad258d Mon Sep 17 00:00:00 2001 From: Ermal Date: Tue, 17 May 2011 21:47:20 +0000 Subject: Ticket #1534. Check if a rc file exists before trying to run it. Also return if we execute a stop command through rc file to be consistent with the start_service function. --- etc/inc/service-utils.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc index 895eb57..4c09899 100644 --- a/etc/inc/service-utils.inc +++ b/etc/inc/service-utils.inc @@ -122,7 +122,10 @@ function stop_service($name) { if(!empty($service['prefix'])) { $prefix =& $service['prefix']; } - mwexec_bg("{$prefix}{$service['rcfile']} stop"); + if(file_exists("{$prefix}{$service['rcfile']}")) { + mwexec_bg("{$prefix}{$service['rcfile']} stop"); + } + return; } if (!empty($service['stopcmd'])) eval($service['stopcmd']); -- cgit v1.1 From 8bf2e9e5399bb96f6fd819bbb1ad5e5dbabc70a7 Mon Sep 17 00:00:00 2001 From: Ermal Date: Tue, 17 May 2011 22:08:21 +0000 Subject: Test for null names passed to these functions as a safety precaution. --- etc/inc/service-utils.inc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'etc/inc') diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc index 4c09899..57e5472 100644 --- a/etc/inc/service-utils.inc +++ b/etc/inc/service-utils.inc @@ -114,6 +114,9 @@ function stop_service($name) { global $config; global $rcfileprefix; + if (empty($name)) + return; + if ($config['installedpackages']['service']) { foreach($config['installedpackages']['service'] as $service) { if(strtolower($service['name']) == strtolower($name)) { @@ -147,6 +150,9 @@ function stop_service($name) { function restart_service($name) { global $config; + if (empty($name)) + return; + stop_service($name); start_service($name); -- cgit v1.1 From b27ade8ebd36bb3e8df55d121b7071167136d19d Mon Sep 17 00:00:00 2001 From: Ermal Date: Tue, 17 May 2011 22:19:12 +0000 Subject: Test for null names passed to these functions as a safety precaution. --- etc/inc/service-utils.inc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'etc/inc') diff --git a/etc/inc/service-utils.inc b/etc/inc/service-utils.inc index 57e5472..57b1719 100644 --- a/etc/inc/service-utils.inc +++ b/etc/inc/service-utils.inc @@ -82,6 +82,9 @@ function start_service($name) { global $config; global $rcfileprefix; + if (empty($name)) + return; + /* make sure service is stopped before starting */ stop_service($name); sleep(2); -- cgit v1.1 From 7eea44079f4609e30ff0478f4d0c0ea34593f7cd Mon Sep 17 00:00:00 2001 From: Ermal Date: Tue, 17 May 2011 22:23:54 +0000 Subject: When uninstalling a service actually stop it first. --- etc/inc/pkg-utils.inc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'etc/inc') diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc index 5c21428..d475a40 100644 --- a/etc/inc/pkg-utils.inc +++ b/etc/inc/pkg-utils.inc @@ -42,6 +42,7 @@ require_once("globals.inc"); require_once("xmlrpc.inc"); +require_once("service-utils.inc"); if(file_exists("/cf/conf/use_xmlreader")) require_once("xmlreader.inc"); else @@ -324,6 +325,8 @@ function uninstall_package($pkg_name) { } } + stop_service($pkg_name); + $id = get_pkg_id($pkg_name); if ($id >= 0) { $pkg_depends =& $config['installedpackages']['package'][$id]['depends_on_package']; -- cgit v1.1 From 7171b7b65dfe9b4a93220b31d689c0fa7e1da40e Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 18 May 2011 12:53:10 -0400 Subject: Fix PPTP server radius settings upgrade from 1.2.3. Fixes #1292 --- etc/inc/globals.inc | 2 +- etc/inc/upgrade_config.inc | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/globals.inc b/etc/inc/globals.inc index 2168765..7037933 100644 --- a/etc/inc/globals.inc +++ b/etc/inc/globals.inc @@ -91,7 +91,7 @@ $g = array( "disablecrashreporter" => false, "crashreporterurl" => "http://crashreporter.pfsense.org/crash_reporter.php", "debug" => false, - "latest_config" => "7.7", + "latest_config" => "7.8", "nopkg_platforms" => array("cdrom"), "minimum_ram_warning" => "101", "minimum_ram_warning_text" => "128 MB", diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc index 3e280d3..1d88880 100644 --- a/etc/inc/upgrade_config.inc +++ b/etc/inc/upgrade_config.inc @@ -2455,4 +2455,21 @@ function upgrade_076_to_077() { } } +function upgrade_077_to_078() { + if (is_array($config['pptpd']) && is_array($config['pptpd']['radius']) + && !is_array($config['pptpd']['radius']['server'])) { + $radarr = array(); + $radsvr = array(); + $radsvr['ip'] = $config['pptpd']['radius']['server']; + $radsvr['secret'] = $config['pptpd']['radius']['secret']; + $radsvr['port'] = 1812; + $radsvr['acctport'] = 1813; + $radsvr['enable'] = isset($config['pptpd']['radius']['enable']); + $radarr['accounting'] = isset($config['pptpd']['radius']['accounting']); + if ($radarr['accounting']) + $radarr['acct_update'] = $radsvr['ip']; + $radarr['server'] = $radsvr; + $config['pptpd']['radius'] = $radarr; + } +} ?> -- cgit v1.1 From 77b70d6bc47d6dd5da4022dc62614d7ec4a82b3f Mon Sep 17 00:00:00 2001 From: Ermal Date: Wed, 18 May 2011 19:43:52 +0000 Subject: Disable the default route switching code since its causing more issues than solving. It needs more work to get re-enabled. --- etc/inc/gwlb.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/gwlb.inc b/etc/inc/gwlb.inc index 9bf162c..93c7140 100644 --- a/etc/inc/gwlb.inc +++ b/etc/inc/gwlb.inc @@ -272,6 +272,7 @@ function return_gateways_array($disabled = false) { $gateways_arr = array(); + if (0) { $i = 0; /* Process/add all the configured gateways. */ if (is_array($config['gateways']['gateway_item'])) { @@ -303,6 +304,7 @@ function return_gateways_array($disabled = false) { $i++; } } + } /* Loop through all interfaces with a gateway and add it to a array */ if ($disabled == false) @@ -568,4 +570,4 @@ function get_interface_gateway($interface, &$dynamic = false) { return ($gw); } -?> \ No newline at end of file +?> -- cgit v1.1 From ee7f1647b9b12ed6daa480cccdb456d2b3cc86b3 Mon Sep 17 00:00:00 2001 From: Ermal Date: Wed, 18 May 2011 20:35:43 +0000 Subject: Correct default code disabling! Ponty-hat: myself --- etc/inc/gwlb.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'etc/inc') diff --git a/etc/inc/gwlb.inc b/etc/inc/gwlb.inc index 93c7140..9b4c32b 100644 --- a/etc/inc/gwlb.inc +++ b/etc/inc/gwlb.inc @@ -272,7 +272,6 @@ function return_gateways_array($disabled = false) { $gateways_arr = array(); - if (0) { $i = 0; /* Process/add all the configured gateways. */ if (is_array($config['gateways']['gateway_item'])) { @@ -304,7 +303,6 @@ function return_gateways_array($disabled = false) { $i++; } } - } /* Loop through all interfaces with a gateway and add it to a array */ if ($disabled == false) @@ -369,6 +367,7 @@ function return_gateway_groups_array() { $gateways_arr = return_gateways_array(); $gateway_groups_array = array(); + if (0) { /* * NOTE: The code below is meant to replace the default gateway when it goes down. * This facilitates services running on pfSense itself and are not handled by a PBR to continue working. @@ -402,6 +401,7 @@ function return_gateway_groups_array() { } } unset($upgw, $dfltgwfound, $dfltgwdown, $gwname, $gwsttng); + } if (is_array($config['gateways']['gateway_group'])) { foreach($config['gateways']['gateway_group'] as $group) { -- cgit v1.1 From ce107ca58c61c8f166e672a5ad93fa2daee7bec4 Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 18 May 2011 16:56:12 -0400 Subject: When converting 1.2.3 LB pools to 2.0 gateway groups, strip invalid characters from the group names and update any rules referencing the old name. Fixes #1515 --- etc/inc/upgrade_config.inc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc index 1d88880..a158ded 100644 --- a/etc/inc/upgrade_config.inc +++ b/etc/inc/upgrade_config.inc @@ -1804,13 +1804,26 @@ function upgrade_053_to_054() { $lbpool_srv_arr = array(); $gateway_group_arr = array(); $gateways = return_gateways_array(); + $group_name_changes = array(); if (! is_array($config['gateways']['gateway_item'])) $config['gateways']['gateway_item'] = array(); $a_gateways =& $config['gateways']['gateway_item']; foreach($lbpool_arr as $lbpool) { if($lbpool['type'] == "gateway") { - $gateway_group['name'] = $lbpool['name']; + // Gateway Groups have to have valid names in pf, old lb pools did not. Clean them up. + $group_name = ereg_replace("[^A-Za-z0-9]", "", $lbpool['name'] ); + // If we made and changes, check for collisions and note the change. + if ($group_name != $lbpool['name']) { + // Make sure the name isn't already in use. + foreach ($gateway_group_arr as $gwg) { + // If the name is in use, add some random bits to avoid collision. + if ($gwg['name'] == $group_name) + $group_name .= uniqid(); + } + $group_name_changes[$lbpool['name']] = $group_name; + } + $gateway_group['name'] = $group_name; $gateway_group['descr'] = $lbpool['descr']; $gateway_group['trigger'] = "down"; $gateway_group['item'] = array(); @@ -1855,6 +1868,11 @@ function upgrade_053_to_054() { // Only set the gateway group array if we converted any if (count($gateway_group_arr) != 0) { $config['gateways']['gateway_group'] = $gateway_group_arr; + // Update any rules that had a gateway change, if any. + if (count($group_name_changes) > 0) + foreach ($config['filter']['rule'] as & $rule) + if (!empty($rule["gateway"]) && array_key_exists($rule["gateway"], $group_name_changes)) + $rule["gateway"] = $group_name_changes[$rule["gateway"]]; } } -- cgit v1.1 From 941baf1e268f9e4483983a14c55de1b3cc20efea Mon Sep 17 00:00:00 2001 From: Ermal Date: Wed, 18 May 2011 22:49:07 +0000 Subject: When uninstalling packages try to remove even any rc files created by packages. --- etc/inc/pkg-utils.inc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'etc/inc') diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc index d475a40..070dade 100644 --- a/etc/inc/pkg-utils.inc +++ b/etc/inc/pkg-utils.inc @@ -895,7 +895,7 @@ function delete_package($pkg) { } function delete_package_xml($pkg) { - global $g, $config, $static_output, $pkg_interface; + global $g, $config, $static_output, $pkg_interface, $rcfileprefix; conf_mount_rw(); @@ -967,6 +967,13 @@ function delete_package_xml($pkg) { if($instservice['name'] == $service['name']) { if($g['booting'] != true) stop_service($service['name']); + if($service['rcfile']) { + $prefix = $rcfileprefix; + if (!empty($service['prefix'])) + $prefix = $service['prefix']; + if (file_exists("{$prefix}{$service['rcfile']}")) + @unlink("{$prefix}{$service['rcfile']}"); + } unset($services[$key]); } } -- cgit v1.1