Handle start and end times together
[citadel.git] / webcit-ng / server / caldav_reports.c
index 485b2a3eb0647ff368976f53d53803a07cb2fa52..1bb8b85bba93995957bbb97befbb5a80f7cd6481 100644 (file)
@@ -419,23 +419,23 @@ int caldav_apply_filters(void *cal, Array *filters, int apply_at_level) {
                }
 
                else if (!strcasecmp(t[1], "time-range")) {                     // RFC4791 9.9
-                       syslog(LOG_DEBUG, "time range filter at level %d FIXME add recurrence", this_rule_level);
+                       syslog(LOG_DEBUG, "time range filter at level %d", this_rule_level);
+                       char *tr_start  = (char *)the_beginning_of_time;        // default if not specified
+                       char *tr_end    = (char *)the_end_of_time;              // default if not specified
                        for (int i=2; (i+1)<num_tokens; i+=2) {
-                               char *tr_start  = (char *)the_beginning_of_time;        // default if not specified
-                               char *tr_end    = (char *)the_end_of_time;              // default if not specified
                                if (!strcasecmp(t[i], "start")) {
                                        tr_start = t[i+1];
                                }
                                else if (!strcasecmp(t[i], "end")) {
                                        tr_end = t[i+1];
                                }
-                               if (caldav_time_range_filter_matches(cal, tr_start, tr_end)) {
-                                       syslog(LOG_DEBUG, "time range matches");
-                               }
-                               else {
-                                       syslog(LOG_DEBUG, "time range does not match -- rejecting");
-                                       qual = 0;
-                               }
+                       }
+                       if (caldav_time_range_filter_matches(cal, tr_start, tr_end)) {
+                               syslog(LOG_DEBUG, "time range matches");
+                       }
+                       else {
+                               syslog(LOG_DEBUG, "time range does not match -- rejecting");
+                               qual = 0;
                        }
                }