the 'DAV:' namespace as the default namespace instead of defining a prefix.
* groupdav_get.c: GET operations on a single object now make use of the
begin_burst() and end_burst() wrappers, which will cause a proper Content-length:
header to be output, and also allows compression to take place.
groupdav_common_headers();
wprintf("etag: \"%ld\"\r\n", dav_msgnum);
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
groupdav_common_headers();
wprintf("etag: \"%ld\"\r\n", dav_msgnum);
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
- if (!strncasecmp(buf, "Date: ", 6)) {
+ if (in_body) {
+ wprintf("%s\r\n", buf);
+ }
+ else if (!strncasecmp(buf, "Date: ", 6)) {
wprintf("%s\r\n", buf);
}
wprintf("%s\r\n", buf);
}
- if (!strncasecmp(buf, "Content-type: ", 14)) {
+ else if (!strncasecmp(buf, "Content-type: ", 14)) {
wprintf("%s\r\n", buf);
found_content_type = 1;
}
wprintf("%s\r\n", buf);
found_content_type = 1;
}
- if ((strlen(buf) == 0) && (in_body == 0)) {
+ else if ((strlen(buf) == 0) && (in_body == 0)) {
if (!found_content_type) {
wprintf("Content-type: text/plain\r\n");
}
in_body = 1;
if (!found_content_type) {
wprintf("Content-type: text/plain\r\n");
}
in_body = 1;
- }
- if (in_body) {
- wprintf("%s\r\n", buf);
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
- "<D:multistatus xmlns:D=\"DAV:\" xmlns:G=\"http://groupdav.org/\">"
+ "<multistatus xmlns=\"DAV:\" xmlns:G=\"http://groupdav.org/\">"
|| (view == VIEW_TASKS)
|| (view == VIEW_ADDRESSBOOK) ) {
|| (view == VIEW_TASKS)
|| (view == VIEW_ADDRESSBOOK) ) {
- wprintf("<D:response>");
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(roomname);
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(roomname);
- wprintf("<D:propstat>");
- wprintf("<D:status>HTTP/1.1 200 OK</D:status>");
- wprintf("<D:prop>");
- wprintf("<D:displayname>");
+ wprintf("<propstat>");
+ wprintf("<status>HTTP/1.1 200 OK</status>");
+ wprintf("<prop>");
+ wprintf("<displayname>");
- wprintf("</D:displayname>");
- wprintf("<D:resourcetype><D:collection/>");
+ wprintf("</displayname>");
+ wprintf("<resourcetype><collection/>");
switch(view) {
case VIEW_CALENDAR:
switch(view) {
case VIEW_CALENDAR:
- wprintf("</D:resourcetype>");
- wprintf("</D:prop>");
- wprintf("</D:propstat>");
- wprintf("</D:response>");
+ wprintf("</resourcetype>");
+ wprintf("</prop>");
+ wprintf("</propstat>");
+ wprintf("</response>");
- wprintf("</D:multistatus>\n");
+ wprintf("</multistatus>\n");
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
- "<D:multistatus xmlns:D=\"DAV:\" xmlns:G=\"http://groupdav.org/\">"
+ "<multistatus xmlns=\"DAV:\">"
- wprintf("<D:response>");
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(WC->wc_roomname);
euid_escapize(encoded_uid, dav_uid);
wprintf("/%s", encoded_uid);
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(WC->wc_roomname);
euid_escapize(encoded_uid, dav_uid);
wprintf("/%s", encoded_uid);
- wprintf("</D:href>");
- wprintf("<D:propstat>");
- wprintf("<D:status>HTTP/1.1 200 OK</D:status>");
- wprintf("<D:prop><D:getetag>\"%ld\"</D:getetag></D:prop>", dav_msgnum);
- wprintf("</D:propstat>");
-
- wprintf("</D:response>\n");
- wprintf("</D:multistatus>\n");
+ wprintf("</href>");
+ wprintf("<propstat>");
+ wprintf("<status>HTTP/1.1 200 OK</status>");
+ wprintf("<prop><getetag>\"%ld\"</getetag></prop>", dav_msgnum);
+ wprintf("</propstat>");
+
+ wprintf("</response>\n");
+ wprintf("</multistatus>\n");
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
begin_burst();
wprintf("<?xml version=\"1.0\" encoding=\"utf-8\"?>"
- "<D:multistatus xmlns:D=\"DAV:\" xmlns:G=\"http://groupdav.org/\">"
+ "<multistatus xmlns=\"DAV:\" xmlns:G=\"http://groupdav.org/\">"
);
serv_puts("MSGS ALL");
);
serv_puts("MSGS ALL");
- wprintf("<D:response>");
- wprintf("<D:href>");
+ wprintf("<response>");
+ wprintf("<href>");
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(WC->wc_roomname);
euid_escapize(encoded_uid, uid);
wprintf("/%s", encoded_uid);
groupdav_identify_host();
wprintf("/groupdav/");
urlescputs(WC->wc_roomname);
euid_escapize(encoded_uid, uid);
wprintf("/%s", encoded_uid);
- wprintf("</D:href>");
- wprintf("<D:propstat>");
- wprintf("<D:status>HTTP/1.1 200 OK</D:status>");
- wprintf("<D:prop><D:getetag>\"%ld\"</D:getetag></D:prop>", msgs[i]);
- wprintf("</D:propstat>");
- wprintf("</D:response>");
+ wprintf("</href>");
+ wprintf("<propstat>");
+ wprintf("<status>HTTP/1.1 200 OK</status>");
+ wprintf("<prop><getetag>\"%ld\"</getetag></prop>", msgs[i]);
+ wprintf("</propstat>");
+ wprintf("</response>");
- wprintf("</D:multistatus>\n");
+ wprintf("</multistatus>\n");
end_burst();
if (msgs != NULL) {
end_burst();
if (msgs != NULL) {
do {
serv_read(&buf[0], 1);
ch = buf[0];
do {
serv_read(&buf[0], 1);
ch = buf[0];
+ if ((ch != 13) && (ch != 10)) {
+ strbuf[len++] = ch;
+ }
} while ((ch != 10) && (ch != 0) && (len < (bufsize-1)));
} while ((ch != 10) && (ch != 0) && (len < (bufsize-1)));
- if (strbuf[len-1] == 10) strbuf[--len] = 0;
- if (strbuf[len-1] == 13) strbuf[--len] = 0;
#ifdef SERV_TRACE
lprintf(9, "%3d>%s\n", WC->serv_sock, strbuf);
#endif
#ifdef SERV_TRACE
lprintf(9, "%3d>%s\n", WC->serv_sock, strbuf);
#endif