wcsession *WCC = WC;
int i, len;
+ syslog(LOG_DEBUG, "dav_main() called, logged_in=%d", WCC->logged_in );
+
StrBufUnescape(WCC->Hdr->HR.ReqLine, 0);
StrBufStripSlashes(WCC->Hdr->HR.ReqLine, 0);
switch (WCC->Hdr->HR.eReqType)
{
/*
- * The OPTIONS method is not required by GroupDAV. This is an
- * experiment to determine what might be involved in supporting
- * other variants of DAV in the future.
+ * The OPTIONS method is not required by GroupDAV but it will be
+ * needed for future implementations of other DAV-based protocols.
*/
case eOPTIONS:
dav_options();
break;
-
/*
* The PROPFIND method is basically used to list all objects in a
* room, or to list all relevant rooms on the server.
hdr->HR.dav_ifmatch = Line;
}
+
void Header_HandleDepth(StrBuf *Line, ParsedHttpHdrs *hdr)
{
if (!strcasecmp(ChrPtr(Line), "infinity")) {
hdr->HR.dav_depth = 1;
}
}
+
+
int Conditional_DAV_DEPTH(StrBuf *Target, WCTemplputParams *TP)
{
return WC->Hdr->HR.dav_depth == GetTemplateTokenNumber(Target, TP, 2, 0);
Put(DavNamespaces, UrlString, UrlSLen, vHandler, reference_free_handler);
}
+
int Conditional_DAV_NS(StrBuf *Target, WCTemplputParams *TP)
{
wcsession *WCC = WC;
return WCC->Hdr->HR.Handler == vHandler;
}
+
void tmplput_DAV_NAMESPACE(StrBuf *Target, WCTemplputParams *TP)
{
wcsession *WCC = WC;
}
}
+
int GroupdavDispatchREST(RESTDispatchID WhichAction, int IgnoreFloor)
{
wcsession *WCC = WC;
{
DavNamespaces = NewHash(1, NULL);
-
}
+
void
ServerShutdownModule_DAV
(void)
}
-
-
void
InitModule_GROUPDAV
(void)
RegisterHeaderHandler(HKEY("IF-MATCH"), Header_HandleIfMatch);
RegisterHeaderHandler(HKEY("DEPTH"), Header_HandleDepth);
RegisterConditional(HKEY("COND:DAV:DEPTH"), 1, Conditional_DAV_DEPTH, CTX_NONE);
-
}