From 9afea99189d5fd888aefb1f3552f2f56118a0d7d Mon Sep 17 00:00:00 2001 From: Kristian Feldsam Date: Tue, 10 Aug 2021 02:08:04 +0200 Subject: [PATCH] [Web] Fix broken autoconfig ports, fixes #4221 (#4223) Refactored to use function, moved another function Signed-off-by: Kristian Feldsam --- data/web/inc/functions.inc.php | 12 +++++++++++- data/web/inc/prerequisites.inc.php | 14 +++----------- data/web/inc/vars.inc.php | 12 ++++++------ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php index c6642418..4b2d8c2f 100644 --- a/data/web/inc/functions.inc.php +++ b/data/web/inc/functions.inc.php @@ -2219,4 +2219,14 @@ function cleanupCSS($ignore = '', $folder = '/tmp/*.css') { } } -?> +function get_remote_ip() { + $remote = $_SERVER['REMOTE_ADDR']; + if (filter_var($remote, FILTER_VALIDATE_IP) === false) { + return '0.0.0.0'; + } + return $remote; +} + +function getEnvPort(string $name): int { + return (int)filter_var(substr(getenv($name), strrpos(getenv($name), ':')), FILTER_SANITIZE_NUMBER_INT); +} \ No newline at end of file diff --git a/data/web/inc/prerequisites.inc.php b/data/web/inc/prerequisites.inc.php index 0cbd05a0..86aeb200 100644 --- a/data/web/inc/prerequisites.inc.php +++ b/data/web/inc/prerequisites.inc.php @@ -5,6 +5,8 @@ header('Location: /SOGo', true, 307); exit; }*/ +// Load core functions first +require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/vars.inc.php'; $default_autodiscover_config = $autodiscover_config; @@ -171,17 +173,7 @@ function exception_handler($e) { } set_exception_handler('exception_handler'); -// TODO: Move function -function get_remote_ip() { - $remote = $_SERVER['REMOTE_ADDR']; - if (filter_var($remote, FILTER_VALIDATE_IP) === false) { - return '0.0.0.0'; - } - return $remote; -} - -// Load core functions first -require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php'; +// Load session require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/sessions.inc.php'; // IMAP lib diff --git a/data/web/inc/vars.inc.php b/data/web/inc/vars.inc.php index eb3b4b0c..0951a9de 100644 --- a/data/web/inc/vars.inc.php +++ b/data/web/inc/vars.inc.php @@ -45,18 +45,18 @@ $autodiscover_config = array( // The autoconfig service will additionally announce the STARTTLS-enabled ports, specified in the "tlsport" variable. 'imap' => array( 'server' => $mailcow_hostname, - 'port' => (int)filter_var(substr(getenv('IMAPS_PORT'), strrpos(getenv('IMAPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT), - 'tlsport' => (int)filter_var(substr(getenv('POP_PORT'), strrpos(getenv('IMAP_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT) + 'port' => getEnvPort('IMAPS_PORT'), + 'tlsport' => getEnvPort('IMAP_PORT') ), 'pop3' => array( 'server' => $mailcow_hostname, - 'port' => (int)filter_var(substr(getenv('POPS_PORT'), strrpos(getenv('POPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT), - 'tlsport' => (int)filter_var(substr(getenv('POP_PORT'), strrpos(getenv('POP_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT) + 'port' => getEnvPort('POPS_PORT'), + 'tlsport' => getEnvPort('POP_PORT') ), 'smtp' => array( 'server' => $mailcow_hostname, - 'port' => (int)filter_var(substr(getenv('SMTPS_PORT'), strrpos(getenv('SMTPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT), - 'tlsport' => (int)filter_var(substr(getenv('SUBMISSION_PORT'), strrpos(getenv('SUBMISSION_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT) + 'port' => getEnvPort('SMTPS_PORT'), + 'tlsport' => getEnvPort('SUBMISSION_PORT') ), 'activesync' => array( 'url' => 'https://' . $mailcow_hostname . ($https_port == 443 ? '' : ':' . $https_port) . '/Microsoft-Server-ActiveSync',