return;
}
+ syslog(LOG_DEBUG, "\033[31mREPORT QUERY: %s\033[0m", h->request_body);
+
XML_SetElementHandler(xp, caldav_xml_start, caldav_xml_end);
XML_SetCharacterDataHandler(xp, caldav_xml_chardata);
XML_SetUserData(xp, &crp);
syslog(LOG_DEBUG, "CalDAV REPORT type is: %d", crp.report_type);
StrBuf *ReportOut = NewStrBuf();
StrBufAppendPrintf(ReportOut,
- "<?xml version=\"1.0\" encoding=\"utf-8\"?><D:multistatus xmlns:D=\"DAV:\" xmlns:C=\"%s\">",
- CALDAV
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<D:multistatus xmlns:D=\"DAV:\" xmlns:C=\"urn:ietf:params:xml:ns:caldav\">"
);
// RFC4791 7.8 "calendar-query" REPORT - Client will send a lot of search criteria.
syslog(LOG_DEBUG, "Evaluating message \033[33m%ld\033[0m...", m);
if (caldav_apply_filters(cal, crp.filters, 0)) {
syslog(LOG_DEBUG, "Message %ld \033[32mQUALIFIES\033[0m", m);
+
// FIXME need to populate the Href instead of NULL
- cal_multiget_out(m, NULL, one_item, ReportOut);
+ StrBuf *FIXME = NewStrBufPlain(HKEY("https://FIX.ME.COM/WOW/EEK"));
+ cal_multiget_out(m, FIXME, one_item, ReportOut);
+
}
else {
syslog(LOG_DEBUG, "Message %ld \033[31mDOES NOT QUALIFY\033[0m", m);
return;
}
+ // CalDAV discovery
+ if (!strncasecmp(h->url, HKEY("/.well-known/caldav"))) {
+ http_redirect(h, "/ctdl/r/calendar");
+ return;
+ }
+
+ // CardDAV discovery
+ if (!strncasecmp(h->url, HKEY("/.well-known/carddav"))) {
+ http_redirect(h, "/ctdl/r/contacts");
+ return;
+ }
+
// Legacy URL patterns (/readnew?gotoroom=xxx&start_reading_at=yyy) ...
// Direct room name (/my%20blog) ...