- curl_easy_setopt(curl, CURLOPT_URL, url);
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
- curl_easy_setopt(curl, CURLOPT_WRITEDATA, &fh);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fh_callback);
- curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errmsg);
- curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
-#ifdef CURLOPT_HTTP_CONTENT_DECODING
- curl_easy_setopt(curl, CURLOPT_HTTP_CONTENT_DECODING, 1);
- curl_easy_setopt(curl, CURLOPT_ENCODING, "");
-#endif
- curl_easy_setopt(curl, CURLOPT_USERAGENT, CITADEL);
- curl_easy_setopt(curl, CURLOPT_TIMEOUT, 180); /* die after 180 seconds */
- if (!IsEmptyStr(config.c_ip_addr)) {
- curl_easy_setopt(curl, CURLOPT_INTERFACE, config.c_ip_addr);
- }
- res = curl_easy_perform(curl);
- if (res) {
- CtdlLogPrintf(CTDL_DEBUG, "fetch_http() libcurl error %d: %s\n", res, errmsg);
- }
- if (normalize_len > 0) {
- curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
- safestrncpy(url, effective_url, normalize_len);
+ curl = ctdl_openid_curl_easy_init(errmsg);
+ if (!curl) return(0);
+
+ curl_easy_setopt(curl, CURLOPT_URL, ChrPtr(YadisURL));
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, ReplyBuf);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlFillStrBuf_callback);
+
+ my_headers = curl_slist_append(my_headers, "Accept:"); /* disable the default Accept: header */
+ my_headers = curl_slist_append(my_headers, "Accept: application/xrds+xml");
+ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, my_headers);
+
+ result = curl_easy_perform(curl);
+ if (result) {
+ syslog(LOG_DEBUG, "libcurl error %d: %s", result, errmsg);