diff --git a/core/routing.c b/core/routing.c index 4e8168a7..e3c7e8ac 100644 --- a/core/routing.c +++ b/core/routing.c @@ -127,6 +127,10 @@ void uwsgi_opt_add_route(char *opt, char *value, void *foobar) { ur->subject = offsetof(struct wsgi_request, user_agent); ur->subject_len = offsetof(struct wsgi_request, user_agent_len); } + else if (!strcmp(foobar, "referer")) { + ur->subject = offsetof(struct wsgi_request, referer); + ur->subject_len = offsetof(struct wsgi_request, referer_len); + } else if (!strcmp(foobar, "remote_user")) { ur->subject = offsetof(struct wsgi_request, remote_user); ur->subject_len = offsetof(struct wsgi_request, remote_user_len); diff --git a/core/uwsgi.c b/core/uwsgi.c index b66f0bdf..c0ed647c 100644 --- a/core/uwsgi.c +++ b/core/uwsgi.c @@ -480,8 +480,9 @@ static struct uwsgi_option uwsgi_base_options[] = { {"route-uri", required_argument, 0, "add a route based on REQUEST_URI", uwsgi_opt_add_route, "request_uri", 0}, {"route-qs", required_argument, 0, "add a route based on QUERY_STRING", uwsgi_opt_add_route, "query_string", 0}, {"route-remote-addr", required_argument, 0, "add a route based on REMOTE_ADDR", uwsgi_opt_add_route, "remote_addr", 0}, - {"route-user-agent", required_argument, 0, "add a route based on USER_AGENT", uwsgi_opt_add_route, "user_agent", 0}, + {"route-user-agent", required_argument, 0, "add a route based on HTTP_USER_AGENT", uwsgi_opt_add_route, "user_agent", 0}, {"route-remote-user", required_argument, 0, "add a route based on REMOTE_USER", uwsgi_opt_add_route, "remote_user", 0}, + {"route-referer", required_argument, 0, "add a route based on HTTP_REFERER", uwsgi_opt_add_route, "referer", 0}, {"router-list", no_argument, 0, "list enabled routers", uwsgi_opt_true, &uwsgi.router_list, 0}, {"routers-list", no_argument, 0, "list enabled routers", uwsgi_opt_true, &uwsgi.router_list, 0}, #endif