--- 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 */