src/server/safs/service.c

changeset 20
7b235fa88008
parent 14
b8bf95b39952
child 21
627b09ee74e4
--- a/src/server/safs/service.c	Sat Jan 21 16:37:35 2012 +0100
+++ b/src/server/safs/service.c	Sat Jan 28 16:01:07 2012 +0100
@@ -141,6 +141,8 @@
 }
 
 int service_hello(pblock *pb, Session *sn, Request *rq) {
+    pblock_removekey(pb_key_content_type, rq->srvhdrs);
+    pblock_nvinsert("content-type", "text/plain", rq->srvhdrs);
     pblock_nninsert("content-length", 13, rq->srvhdrs);
     protocol_status(sn, rq, 200, NULL);
     http_start_response(sn, rq);
@@ -225,3 +227,18 @@
 
     return REQ_PROCEED;
 }
+
+int send_options(pblock *pb, Session *sn, Request *rq) {
+    char *allow = "HEAD, GET, PUT, DELETE, TRACE, OPTIONS, MOVE, COPY, "
+            "PROPFIND, PROPPATCH, MKCOL, LOCK, UNLOCK, ACL, REPORT";
+    char *dav = "1,2,access-control";
+
+    pblock_removekey(pb_key_content_type, rq->srvhdrs);
+    pblock_nvinsert("allow", allow, rq->srvhdrs);
+    pblock_nvinsert("dav", dav, rq->srvhdrs);
+    pblock_nninsert("content-length", 0, rq->srvhdrs);
+    protocol_status(sn, rq, 200, NULL);
+    http_start_response(sn, rq);
+
+    return REQ_PROCEED;
+}

mercurial