Try new strategy for CalDAV report filter parsing.
[citadel.git] / webcit-ng / server / webcit.h
index 3679d245c4fad8583ee58c287be14d0b0ef092bb..92738063bfa7ff1302f109981904adee34da7dfb 100644 (file)
@@ -5,6 +5,12 @@
 // This program is open source software.  Use, duplication, or
 // disclosure is subject to the GNU General Public License v3.
 
+// uncomment one or more of these to see raw http transactions
+//#define DEBUG_HTTP
+//#define REQUEST_BODY_TO_STDERR
+//#define RESPONSE_BODY_TO_STDERR
+//#define DEBUG_XML_PARSE
+
 #define SHOW_ME_VAPPEND_PRINTF
 
 #include <stdlib.h>
 #include <openssl/rand.h>
 #include <expat.h>
 #define _(x)   x                               // temporary hack until we add i18n back in
-//#define DEBUG_HTTP                           // uncomment to debug HTTP headers
 
 // XML_StopParser is present in expat 2.x
-#if XML_MAJOR_VERSION > 1
-#define HAVE_XML_STOPPARSER
+#if XML_MAJOR_VERSION < 2
+#error WebCit requires expat v2.0 or newer.
 #endif
 
 struct client_handle {                         // this gets passed up the stack from the webserver to the application code
@@ -150,7 +155,10 @@ void caldav_xml_start(void *, const char *, const char **);
 void caldav_xml_end(void *, const char *);
 void caldav_xml_chardata(void *, const XML_Char *, int);
 StrBuf *fetch_ical(struct ctdlsession *, long);
+void cal_multiget_out(long, StrBuf *, StrBuf *, StrBuf *);
 void caldav_report_one_item(struct http_transaction *, struct ctdlsession *, StrBuf *, StrBuf *);
+int caldav_apply_one_filter(void *, char *);
+int caldav_apply_filters(void *, Array *);
 void caldav_report(struct http_transaction *, struct ctdlsession *);
 
 // ctdlclient.c