From 696be4bc7669145c874dce3665d71e9c4975e41b Mon Sep 17 00:00:00 2001 From: C Anthony Risinger Date: Sat, 14 Feb 2015 01:11:46 -0600 Subject: [PATCH 1/2] new routing func: ${upper[REQUEST_URI]} --- core/routing.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/routing.c b/core/routing.c index 530fcbde..2b52b668 100644 --- a/core/routing.c +++ b/core/routing.c @@ -1819,6 +1819,19 @@ static char *uwsgi_route_var_hex(struct wsgi_request *wsgi_req, char *key, uint1 return ret; } +static char *uwsgi_route_var_upper(struct wsgi_request *wsgi_req, char *key, uint16_t keylen, uint16_t *vallen) { + char *ret = NULL; + char *var_value = uwsgi_get_var(wsgi_req, key, keylen, vallen); + if (var_value) { + ret = uwsgi_malloc((size_t) *vallen); + size_t i; + for (i = 0; i < *vallen; i++) { + ret[i] = toupper((int) var_value[i]); + } + } + return ret; +} + // register embedded routers void uwsgi_register_embedded_routers() { uwsgi_register_router("continue", uwsgi_router_continue); @@ -1911,6 +1924,8 @@ void uwsgi_register_embedded_routers() { urv = uwsgi_register_route_var("hex", uwsgi_route_var_hex); urv->need_free = 1; + urv = uwsgi_register_route_var("upper", uwsgi_route_var_upper); + urv->need_free = 1; } struct uwsgi_router *uwsgi_register_router(char *name, int (*func) (struct uwsgi_route *, char *)) { From c0b651f39bf1c189498b9f387e52bb6b8d9205e8 Mon Sep 17 00:00:00 2001 From: C Anthony Risinger Date: Sat, 14 Feb 2015 01:17:55 -0600 Subject: [PATCH 2/2] new routing func: ${lower[REQUEST_URI]} --- core/routing.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/routing.c b/core/routing.c index 2b52b668..c65d9f28 100644 --- a/core/routing.c +++ b/core/routing.c @@ -1832,6 +1832,19 @@ static char *uwsgi_route_var_upper(struct wsgi_request *wsgi_req, char *key, uin return ret; } +static char *uwsgi_route_var_lower(struct wsgi_request *wsgi_req, char *key, uint16_t keylen, uint16_t *vallen) { + char *ret = NULL; + char *var_value = uwsgi_get_var(wsgi_req, key, keylen, vallen); + if (var_value) { + ret = uwsgi_malloc((size_t) *vallen); + size_t i; + for (i = 0; i < *vallen; i++) { + ret[i] = tolower((int) var_value[i]); + } + } + return ret; +} + // register embedded routers void uwsgi_register_embedded_routers() { uwsgi_register_router("continue", uwsgi_router_continue); @@ -1926,6 +1939,8 @@ void uwsgi_register_embedded_routers() { urv->need_free = 1; urv = uwsgi_register_route_var("upper", uwsgi_route_var_upper); urv->need_free = 1; + urv = uwsgi_register_route_var("lower", uwsgi_route_var_lower); + urv->need_free = 1; } struct uwsgi_router *uwsgi_register_router(char *name, int (*func) (struct uwsgi_route *, char *)) {