diff options
author | Unbit <info@unbit.it> | 2014-06-19 05:52:26 +0200 |
---|---|---|
committer | Unbit <info@unbit.it> | 2014-06-19 05:52:26 +0200 |
commit | 775afe1e866283d268d0cd9d9018243214210664 (patch) | |
tree | b6d038c99d6c0987258dcc687b6ae91597abb274 /apache2/mod_proxy_uwsgi.c | |
parent | cabb5f3e8e39f26bc96f1df452c58c7a3342a2f5 (diff) | |
download | uwsgi-775afe1e866283d268d0cd9d9018243214210664.tar.gz |
added support for unix socket in apache mod_proxy_uwsgi
Diffstat (limited to 'apache2/mod_proxy_uwsgi.c')
-rw-r--r-- | apache2/mod_proxy_uwsgi.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/apache2/mod_proxy_uwsgi.c b/apache2/mod_proxy_uwsgi.c index c320dcbb..533950cd 100644 --- a/apache2/mod_proxy_uwsgi.c +++ b/apache2/mod_proxy_uwsgi.c @@ -67,15 +67,20 @@ static int uwsgi_canon(request_rec *r, char *url) } url += sizeof(UWSGI_SCHEME); /* Keep slashes */ - err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port); - if (err) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + // is it a unix socket ? + if (strlen(url) == 2) { + *sport = 0; + } + else { + err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port); + if (err) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "error parsing URL %s: %s", url, err); - return HTTP_BAD_REQUEST; + return HTTP_BAD_REQUEST; + } + apr_snprintf(sport, sizeof(sport), ":%u", port); } - apr_snprintf(sport, sizeof(sport), ":%u", port); - if (ap_strchr(host, ':')) { /* if literal IPv6 address */ host = apr_pstrcat(r->pool, "[", host, "]", NULL); } |