diff options
author | Phil Davis <phil.davis@inf.org> | 2014-12-30 18:40:52 +0545 |
---|---|---|
committer | Phil Davis <phil.davis@inf.org> | 2014-12-30 18:40:52 +0545 |
commit | 6617b9bf0d9835a68886fd7ea0f9cae4b90974aa (patch) | |
tree | d741508e7110595884d3105dde0bd3d8900574d6 /etc/inc/ipsec.inc | |
parent | 565dcf3c3c6299695058d616cdad95a5d300288e (diff) | |
download | pfsense-6617b9bf0d9835a68886fd7ea0f9cae4b90974aa.zip pfsense-6617b9bf0d9835a68886fd7ea0f9cae4b90974aa.tar.gz |
ipsec_smp_dump_status get out of loop if error
when reading response from socket.
Otherwise it would be in a loop and end up like: https://forum.pfsense.org/index.php?topic=86039.msg471848#msg471848
PHP Fatal error: Maximum execution time of 900 seconds exceeded in /etc/inc/ipsec.inc on line 383
This code runs on my system, but I do not know how to induce the possible loop condition to actually test if it would really break out and return nicely.
Diffstat (limited to 'etc/inc/ipsec.inc')
-rw-r--r-- | etc/inc/ipsec.inc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/etc/inc/ipsec.inc b/etc/inc/ipsec.inc index 349ce43..d6e2669 100644 --- a/etc/inc/ipsec.inc +++ b/etc/inc/ipsec.inc @@ -382,10 +382,17 @@ function ipsec_smp_dump_status() { $response = ""; while (!strstr($sread, "</message>")) { $sread = fgets($fd); + if ($sread === false) + break; $response .= $sread; } fclose($fd); + if ($sread === false) { + log_error("Error during reading of status from IPsec"); + return; + } + @file_put_contents("{$g['tmp_path']}/smp_status.xml", $response); unset($response, $sread); |