Remove to_referer() method, as it fails if no referer was given
authorMartin Willi <martin@revosec.ch>
Wed, 7 Apr 2010 13:36:22 +0000 (15:36 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 7 Apr 2010 13:36:22 +0000 (15:36 +0200)
src/libfast/request.c
src/libfast/request.h

index 0f743e3..2cbdd2e 100644 (file)
@@ -204,14 +204,20 @@ static char* get_query_data(private_request_t *this, char *name)
 }
 
 /**
+ * Implementation of request_t.get_base.
+ */
+static char* get_base(private_request_t *this)
+{
+       return FCGX_GetParam("SCRIPT_NAME", this->req.envp);
+}
+
+/**
  * Implementation of request_t.add_cookie.
  */
 static void add_cookie(private_request_t *this, char *name, char *value)
 {
        thread_this->set(thread_this, this);
-       cgi_cookie_set (this->cgi, name, value,
-                                       FCGX_GetParam("SCRIPT_NAME", this->req.envp),
-                                       NULL, NULL, 0, 0);
+       cgi_cookie_set (this->cgi, name, value, get_base(this), NULL, NULL, 0, 0);
 }
 
 /**
@@ -222,8 +228,7 @@ static void redirect(private_request_t *this, char *fmt, ...)
        va_list args;
 
        FCGX_FPrintF(this->req.out, "Status: 303 See Other\n");
-       FCGX_FPrintF(this->req.out, "Location: %s%s",
-                                FCGX_GetParam("SCRIPT_NAME", this->req.envp),
+       FCGX_FPrintF(this->req.out, "Location: %s%s", get_base(this),
                                 *fmt == '/' ? "" : "/");
        va_start(args, fmt);
        FCGX_VFPrintF(this->req.out, fmt, args);
@@ -240,24 +245,6 @@ static char* get_referer(private_request_t *this)
 }
 
 /**
- * Implementation of request_t.to_referer.
- */
-static void to_referer(private_request_t *this)
-{
-       FCGX_FPrintF(this->req.out, "Status: 303 See Other\n");
-       FCGX_FPrintF(this->req.out, "Location: %s\n\n",
-                                FCGX_GetParam("HTTP_REFERER", this->req.envp));
-}
-
-/**
- * Implementation of request_t.get_base.
- */
-static char* get_base(private_request_t *this)
-{
-       return FCGX_GetParam("SCRIPT_NAME", this->req.envp);
-}
-
-/**
  * Implementation of request_t.session_closed.
  */
 static bool session_closed(private_request_t *this)
@@ -405,7 +392,6 @@ request_t *request_create(int fd, bool debug)
        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;
        this->public.serve = (void(*)(request_t*,char*,chunk_t))serve;
index dd3b568..e778018 100644 (file)
@@ -113,11 +113,6 @@ struct request_t {
        char* (*get_referer)(request_t *this);
 
        /**
-        * Redirect the client to the referer.
-        */
-       void (*to_referer)(request_t *this);
-
-       /**
         * Set a template value.
         *
         * @param key           key to set