Add optionnal header check on StatusUpdater
parent
6be807cf9a
commit
b835de1cf6
|
@ -138,6 +138,9 @@ $sm_lang = array(
|
||||||
'type_ping' => 'Ping',
|
'type_ping' => 'Ping',
|
||||||
'pattern' => 'Search string/pattern',
|
'pattern' => 'Search string/pattern',
|
||||||
'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
|
'pattern_description' => 'If this pattern is not found on the website, the server will be marked offline. Regular expressions are allowed.',
|
||||||
|
'header' => 'Header',
|
||||||
|
'header_name_description' => 'Header name (case-sensitive)',
|
||||||
|
'header_value_description' => 'Header value. Regular expressions are allowed.',
|
||||||
'last_check' => 'Last check',
|
'last_check' => 'Last check',
|
||||||
'last_online' => 'Last online',
|
'last_online' => 'Last online',
|
||||||
'monitoring' => 'Monitoring',
|
'monitoring' => 'Monitoring',
|
||||||
|
|
|
@ -467,6 +467,9 @@ class ServerController extends AbstractServerController {
|
||||||
'label_ping' => psm_get_lang('servers', 'type_ping'),
|
'label_ping' => psm_get_lang('servers', 'type_ping'),
|
||||||
'label_pattern' => psm_get_lang('servers', 'pattern'),
|
'label_pattern' => psm_get_lang('servers', 'pattern'),
|
||||||
'label_pattern_description' => psm_get_lang('servers', 'pattern_description'),
|
'label_pattern_description' => psm_get_lang('servers', 'pattern_description'),
|
||||||
|
'label_header' => psm_get_lang('servers', 'header'),
|
||||||
|
'label_header_name_description' => psm_get_lang('servers', 'header_name_description'),
|
||||||
|
'label_header_value_description' => psm_get_lang('servers', 'header_value_description'),
|
||||||
'label_last_check' => psm_get_lang('servers', 'last_check'),
|
'label_last_check' => psm_get_lang('servers', 'last_check'),
|
||||||
'label_rtime' => psm_get_lang('servers', 'latency'),
|
'label_rtime' => psm_get_lang('servers', 'latency'),
|
||||||
'label_last_online' => psm_get_lang('servers', 'last_online'),
|
'label_last_online' => psm_get_lang('servers', 'last_online'),
|
||||||
|
|
|
@ -254,6 +254,24 @@ class StatusUpdater {
|
||||||
$result = false;
|
$result = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Should we check a header ?
|
||||||
|
if($this->server['header_name'] != '') {
|
||||||
|
$header_text = substr($curl_result, 0, strpos($curl_result, "\r\n\r\n"));
|
||||||
|
foreach (explode("\r\n", $header_text) as $i => $line) {
|
||||||
|
if ($i === 0)
|
||||||
|
continue; // We skip the status code
|
||||||
|
else {
|
||||||
|
list ($key, $value) = explode(': ', $line);
|
||||||
|
if ($key == $this->server['header_name']) {
|
||||||
|
if(!preg_match("/{$this->server['header_value']}/i", $value)) { // The value doesn't match what we needed
|
||||||
|
$result = false;
|
||||||
|
}
|
||||||
|
break; // No need to go further
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,8 +68,8 @@
|
||||||
<div class="control-group types typeWebsite">
|
<div class="control-group types typeWebsite">
|
||||||
<label class="control-label" for="header_name">{{ label_header }}</label>
|
<label class="control-label" for="header_name">{{ label_header }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="header_name" name="header_name" value="{{ edit_value_header_name }}" maxlength="255" data-toggle="tooltip" title="{{ label_header_name }}" />
|
<input type="text" id="header_name" name="header_name" value="{{ edit_value_header_name }}" maxlength="255" data-toggle="tooltip" title="{{ label_header_name_description }}" />
|
||||||
<input type="text" id="header_value" name="header_value" value="{{ edit_value_header_value }}" maxlength="255" data-toggle="tooltip" title="{{ label_header_value }}" />
|
<input type="text" id="header_value" name="header_value" value="{{ edit_value_header_value }}" maxlength="255" data-toggle="tooltip" title="{{ label_header_value_description }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
Loading…
Reference in New Issue