src/server/safs/nametrans.c

changeset 137
ca0cf1016a8b
parent 136
9b48a1427aef
child 277
7608af69739f
--- a/src/server/safs/nametrans.c	Tue Dec 27 19:36:19 2016 +0100
+++ b/src/server/safs/nametrans.c	Tue Dec 27 19:50:20 2016 +0100
@@ -158,6 +158,26 @@
 }
 
 
+int redirect(pblock *pb, Session *sn, Request *rq) {
+    char *from = pblock_findval("from", pb);
+    char *url = pblock_findval("url", pb);
+    
+    if(!from || !url) {
+        log_ereport(LOG_MISCONFIG, "redirect: missing parameter (from, url)");
+        return REQ_ABORTED;
+    }
+    
+    char *uri = pblock_findkeyval(pb_key_uri, rq->reqpb);
+    if(!strcmp(uri, from)) {
+        pblock_nvinsert("location", url, rq->srvhdrs);
+        
+        protocol_status(sn, rq, 302, NULL); 
+        return REQ_ABORTED;
+    }
+    
+    return REQ_NOACTION;
+}
+
 /*
  * provisional rewrite saf
  */

mercurial