예제 #1
0
    private function find_baseurls($services)
    {
        foreach ($services as &$service) {
            $baseurl = $service['baseurl'];
            $dnssrv = $service['dnssrv'];
            $paths = array();
            $dnsresults = dns_get_record($dnssrv, DNS_TXT);
            foreach ($dnsresults as $dnsresult) {
                if ($dnsresult['host'] != $dnssrv) {
                    continue;
                }
                foreach ($dnsresult['entries'] as $ent) {
                    if (preg_match('^path=(.+)', $ent, $match)) {
                        $paths[] = $match[1];
                    }
                }
            }
            // as fallback try these default paths
            $paths[] = '/.well-known/carddav';
            $paths[] = '/';
            $service['paths'] = $paths;
        }
        return $services;
    }
    public static function initClass()
    {
        self::$helper = new carddav_common('DISCOVERY: ');
    }
}
carddav_discovery::initClass();