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 )