From e277baed387b642bb7e6707b49e55da4719a9c79 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 5 Nov 2013 20:25:55 +0100 Subject: Working on download of remote configs --- inc/message.inc.php | 23 +++++++++++++---------- inc/render.inc.php | 3 ++- inc/util.inc.php | 24 ++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 11 deletions(-) (limited to 'inc') diff --git a/inc/message.inc.php b/inc/message.inc.php index 4da277e7..62c68e98 100644 --- a/inc/message.inc.php +++ b/inc/message.inc.php @@ -2,16 +2,19 @@ // TODO: Move to extra file $error_text = array( - 'loginfail' => 'Benutzername oder Kennwort falsch', - 'token' => 'Ungültiges Token. CSRF Angriff?', - 'adduser-disabled' => 'Keine ausreichenden Rechte, um weitere Benutzer hinzuzufügen', - 'password-mismatch' => 'Passwort und Passwortbestätigung stimmen nicht überein', - 'empty-field' => 'Ein Feld wurde nicht ausgefüllt', - 'adduser-success' => 'Benutzer erfolgreich hinzugefügt', - 'no-permission' => 'Keine ausreichenden Rechte, um auf diese Seite zuzugreifen', - 'settings-updated' => 'Einstellungen wurden aktualisiert', - 'debug-mode' => 'Der Debug-Modus ist aktiv!', - 'value-invalid' => 'Der Wert {{1}} ist ungültig für die Option {{0}} und wurde ignoriert', + 'loginfail' => 'Benutzername oder Kennwort falsch', + 'token' => 'Ungültiges Token. CSRF Angriff?', + 'adduser-disabled' => 'Keine ausreichenden Rechte, um weitere Benutzer hinzuzufügen', + 'password-mismatch' => 'Passwort und Passwortbestätigung stimmen nicht überein', + 'empty-field' => 'Ein Feld wurde nicht ausgefüllt', + 'adduser-success' => 'Benutzer erfolgreich hinzugefügt', + 'no-permission' => 'Keine ausreichenden Rechte, um auf diese Seite zuzugreifen', + 'settings-updated' => 'Einstellungen wurden aktualisiert', + 'debug-mode' => 'Der Debug-Modus ist aktiv!', + 'value-invalid' => 'Der Wert {{1}} ist ungültig für die Option {{0}} und wurde ignoriert', + 'invalid-action' => 'Ungültige Aktion: {{0}}', + 'remote-timeout' => 'Konnte Ressource {{0}} nicht herunterladen', + 'remote-parse-failed' => 'Parsen der empfangenen Daten fehlgeschlagen', ); class Message diff --git a/inc/render.inc.php b/inc/render.inc.php index 41b8e2b8..dfe91ccb 100644 --- a/inc/render.inc.php +++ b/inc/render.inc.php @@ -52,7 +52,8 @@ class Render , ' - + + ' ; } diff --git a/inc/util.inc.php b/inc/util.inc.php index f456d164..591c7e79 100644 --- a/inc/util.inc.php +++ b/inc/util.inc.php @@ -72,5 +72,29 @@ class Util return nl2br($string); } + /** + * Download file, obey given timeout in seconds + * Return data on success, false on failure + */ + function download($url, $timeout, &$code) { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HEADER, true); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, ceil($timeout / 2)); + curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + $data = curl_exec($ch); + $data = explode("\r\n\r\n", $data, 2); + if (preg_match('#^HTTP/\d+\.\d+ (\d+) #', $data[0], $out)) { + $code = (int)$out[1]; + } else { + $code = 999; + } + curl_close($ch); + if (count($data) < 2) return ''; + return $data[1]; + } + } -- cgit v1.2.3-55-g7522