+ // RFC4791 9.7 create a filter array if this query contains a "CALDAV:filter" stanza
+ else if (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:filter")) {
+ crp->filters = array_new(SIZ);
+ }
+
+ // RFC4791 9.7.1 CALDAV:comp-filter XML Element
+ else if ( (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:comp-filter"))
+ && (crp->filters)
+ && (attr[0])
+ && (attr[1])
+ ) {
+ char newfilter[SIZ];
+ snprintf(newfilter, SIZ, "comp-filter|%s|%s", attr[0], attr[1]);
+ array_append(crp->filters, newfilter);
+ syslog(LOG_DEBUG, "%s", newfilter);
+ }
+
+ // RFC4791 9.7.2 CALDAV:prop-filter XML Element
+ else if (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:prop-filter")) {
+ if (crp->filters) {
+ char newfilter[SIZ];
+ snprintf(newfilter, SIZ, "hi there");
+ array_append(crp->filters, newfilter);
+ }
+ }
+
+ // RFC4791 9.7.3 CALDAV:param-filter XML Element
+ else if (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:param-filter")) {
+ if (crp->filters) {
+ char newfilter[SIZ];
+ snprintf(newfilter, SIZ, "hi there");
+ array_append(crp->filters, newfilter);
+ }
+ }
+
+ // RFC4791 9.7.4 CALDAV:is-not-defined XML Element
+ else if (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:is-not-defined")) {
+ if (crp->filters) {
+ char newfilter[SIZ];
+ snprintf(newfilter, SIZ, "hi there");
+ array_append(crp->filters, newfilter);
+ }
+ }
+
+ // RFC4791 9.7.5 CALDAV:text-match XML Element
+ else if (!strcasecmp(el, "urn:ietf:params:xml:ns:caldav:text-match")) {
+ if (crp->filters) {
+ char newfilter[SIZ];
+ snprintf(newfilter, SIZ, "hi there");
+ array_append(crp->filters, newfilter);
+ }
+ }