summaryrefslogtreecommitdiff
path: root/recipes-core/lighttpd/files/0004_fastcgi_env_with_unixsocket.patch
blob: c265066bfd9325986131591dcb7c39b2059971df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
From bdfb7f9c6ab29d2de3576f8bd845fa871bb44ead Mon Sep 17 00:00:00 2001
From: Serhii Voloshynov <serhii.voloshynov@globallogic.com>
Date: Tue, 6 Nov 2018 13:50:04 +0200
Subject: [PATCH] patch

---
 src/http-header-glue.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/http-header-glue.c b/src/http-header-glue.c
index 1916ca6..d4f42ad 100644
--- a/src/http-header-glue.c
+++ b/src/http-header-glue.c
@@ -1457,6 +1457,8 @@ int http_cgi_headers (server *srv, connection *con, http_cgi_opts *opts, http_cg
         rc |= cb(vdata, CONST_STR_LEN("HTTPS"), CONST_STR_LEN("on"));
     }
 
+    if (srv_sock->addr.plain.sa_family != AF_UNIX) {
+
     addr = &srv_sock->addr;
     li_utostrn(buf, sizeof(buf), sock_addr_get_port(addr));
     rc |= cb(vdata, CONST_STR_LEN("SERVER_PORT"), buf, strlen(buf));
@@ -1482,6 +1484,7 @@ int http_cgi_headers (server *srv, connection *con, http_cgi_opts *opts, http_cg
     }
     force_assert(s);
     rc |= cb(vdata, CONST_STR_LEN("SERVER_ADDR"), s, strlen(s));
+    }
 
     if (!buffer_string_is_empty(con->server_name)) {
         size_t len = buffer_string_length(con->server_name);
@@ -1497,15 +1500,23 @@ int http_cgi_headers (server *srv, connection *con, http_cgi_opts *opts, http_cg
         rc |= cb(vdata, CONST_STR_LEN("SERVER_NAME"),
                         con->server_name->ptr, len);
     } else {
+      if (srv_sock->addr.plain.sa_family != AF_UNIX) {
         /* set to be same as SERVER_ADDR (above) */
         rc |= cb(vdata, CONST_STR_LEN("SERVER_NAME"), s, strlen(s));
     }
+      }
+      if (srv_sock->addr.plain.sa_family == AF_UNIX) {
+	  rc |= cb(vdata, CONST_STR_LEN("SERVER_IPC"), CONST_STR_LEN("yes"));
+      }
+
+    if (srv_sock->addr.plain.sa_family != AF_UNIX) {
 
     rc |= cb(vdata, CONST_STR_LEN("REMOTE_ADDR"),
                     CONST_BUF_LEN(con->dst_addr_buf));
 
     li_utostrn(buf, sizeof(buf), sock_addr_get_port(&con->dst_addr));
     rc |= cb(vdata, CONST_STR_LEN("REMOTE_PORT"), buf, strlen(buf));
+    }
 
     for (n = 0; n < con->request.headers->used; n++) {
         data_string *ds = (data_string *)con->request.headers->data[n];
-- 
2.7.4