From 62441f7705581672c9ebcedb3017237617443044 Mon Sep 17 00:00:00 2001 From: Andrew Ruthven Date: Wed, 28 Feb 2024 09:19:01 +1300 Subject: [PATCH] Ensure we have an array, and there is a value. Resolves this warning in PHP 8.2: Warning: Undefined array key 0 in /usr/share/davical/inc/iSchedule.php on line 218 Warning: Trying to access array offset on null in /usr/share/davical/inc/iSchedule.php on line 218 --- inc/iSchedule.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/inc/iSchedule.php b/inc/iSchedule.php index e10c8c27..961f7e0b 100644 --- a/inc/iSchedule.php +++ b/inc/iSchedule.php @@ -209,26 +209,22 @@ class iSchedule $len = 3; // some country code tlds should have 3 components if ( $this->domain == 'mycaldav' || $this->domain == 'altcaldav' ) $len = 1; + while ( count ( $parts ) >= $len ) { $r = dns_get_record ( '_ischedules._tcp.' . implode ( '.', $parts ) , DNS_SRV ); - if ($r == false) - $r = Array(); - { + if (is_array($r) && count($r) > 0) { $remote_server = $r [ 0 ] [ 'target' ]; $remote_port = $r [ 0 ] [ 'port' ]; $this->remote_ssl = true; break; } - if ( ! isset ( $remote_server ) ) - { - $r = dns_get_record ( '_ischedule._tcp.' . implode ( '.', $parts ) , DNS_SRV ); - if ($r == false) - $r = Array(); - if ( 0 < count ( $r ) ) - { + if ( ! isset ( $remote_server ) ) { + $r = dns_get_record ( '_ischedule._tcp.' . implode ( '.', $parts ) , DNS_SRV ); + + if (is_array($r) && count($r) > 0) { $remote_server = $r [ 0 ] [ 'target' ]; $remote_port = $r [ 0 ] [ 'port' ]; break; @@ -236,6 +232,7 @@ class iSchedule } array_shift ( $parts ); } + if ( ! isset ( $remote_server ) ) { if ( $this->try_anyway == true )