aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-03-09 15:03:57 +0100
committerMartin Willi <martin@revosec.ch>2010-03-10 15:09:12 +0100
commita3920abb76707df5b743a687692c703729a313d8 (patch)
tree37546458625bc26790d262b6a359431810aa1fc7 /src
parentd12ad4748a01cd17834e32081d3893bd97eef2b2 (diff)
downloadstrongswan-a3920abb76707df5b743a687692c703729a313d8.tar.bz2
strongswan-a3920abb76707df5b743a687692c703729a313d8.tar.xz
Add a getter for the HTTP referer
Diffstat (limited to 'src')
-rw-r--r--src/libfast/request.c9
-rw-r--r--src/libfast/request.h7
2 files changed, 16 insertions, 0 deletions
diff --git a/src/libfast/request.c b/src/libfast/request.c
index 3f4894c45..0f743e3b9 100644
--- a/src/libfast/request.c
+++ b/src/libfast/request.c
@@ -232,6 +232,14 @@ static void redirect(private_request_t *this, char *fmt, ...)
}
/**
+ * Implementation of request_t.get_referer.
+ */
+static char* get_referer(private_request_t *this)
+{
+ return FCGX_GetParam("HTTP_REFERER", this->req.envp);
+}
+
+/**
* Implementation of request_t.to_referer.
*/
static void to_referer(private_request_t *this)
@@ -396,6 +404,7 @@ request_t *request_create(int fd, bool debug)
this->public.session_closed = (bool(*)(request_t*))session_closed;
this->public.close_session = (void(*)(request_t*))close_session;
this->public.redirect = (void(*)(request_t*, char *fmt,...))redirect;
+ this->public.get_referer = (char*(*)(request_t*))get_referer;
this->public.to_referer = (void(*)(request_t*))to_referer;
this->public.render = (void(*)(request_t*,char*))render;
this->public.streamf = (int(*)(request_t*, char *format, ...))streamf;
diff --git a/src/libfast/request.h b/src/libfast/request.h
index 61e2d59f0..dd3b568a4 100644
--- a/src/libfast/request.h
+++ b/src/libfast/request.h
@@ -106,6 +106,13 @@ struct request_t {
void (*redirect)(request_t *this, char *fmt, ...);
/**
+ * Get the HTTP referer.
+ *
+ * @return HTTP referer
+ */
+ char* (*get_referer)(request_t *this);
+
+ /**
* Redirect the client to the referer.
*/
void (*to_referer)(request_t *this);