diff options
-rw-r--r-- | UPGRADING | 1 | ||||
-rw-r--r-- | sapi/fpm/fpm/fpm_sockets.c | 18 | ||||
-rw-r--r-- | sapi/fpm/php-fpm.conf.in | 4 |
3 files changed, 6 insertions, 17 deletions
@@ -63,6 +63,7 @@ PHP X.Y UPGRADE NOTES - FPM . Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes). + . Listen = port now listen on all addresses (IPv6 and IPv4-mapped). ======================================== 4. Deprecated Functionality diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c index 0286f0eee8..e4e494876f 100644 --- a/sapi/fpm/fpm/fpm_sockets.c +++ b/sapi/fpm/fpm/fpm_sockets.c @@ -268,6 +268,8 @@ static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* } else if (strlen(dup_address) == strspn(dup_address, "0123456789")) { /* this is port */ port = atoi(dup_address); port_str = dup_address; + /* IPv6 catch-all + IPv4-mapped */ + addr = "::"; } if (port == 0) { @@ -275,18 +277,6 @@ static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* return -1; } - if (!addr) { - /* no address: default documented behavior, all IPv4 addresses */ - struct sockaddr_in sa_in; - - memset(&sa_in, 0, sizeof(sa_in)); - sa_in.sin_family = AF_INET; - sa_in.sin_port = htons(port); - sa_in.sin_addr.s_addr = htonl(INADDR_ANY); - free(dup_address); - return fpm_sockets_get_listening_socket(wp, (struct sockaddr *) &sa_in, sizeof(struct sockaddr_in)); - } - /* strip brackets from address for getaddrinfo */ addr_len = strlen(addr); if (addr[0] == '[' && addr[addr_len - 1] == ']') { @@ -307,10 +297,10 @@ static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* inet_ntop(p->ai_family, fpm_get_in_addr(p->ai_addr), tmpbuf, INET6_ADDRSTRLEN); if (sock < 0) { if ((sock = fpm_sockets_get_listening_socket(wp, p->ai_addr, p->ai_addrlen)) != -1) { - zlog(ZLOG_DEBUG, "Found address for %s, socket opened on %s", dup_address, tmpbuf); + zlog(ZLOG_DEBUG, "Found address for %s, socket opened on %s", addr, tmpbuf); } } else { - zlog(ZLOG_WARNING, "Found multiple addresses for %s, %s ignored", dup_address, tmpbuf); + zlog(ZLOG_WARNING, "Found multiple addresses for %s, %s ignored", addr, tmpbuf); } } diff --git a/sapi/fpm/php-fpm.conf.in b/sapi/fpm/php-fpm.conf.in index b2d8a22536..850a369002 100644 --- a/sapi/fpm/php-fpm.conf.in +++ b/sapi/fpm/php-fpm.conf.in @@ -155,9 +155,7 @@ group = @php_fpm_group@ ; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; -; 'port' - to listen on a TCP socket to all IPv4 addresses on a -; specific port; -; '[::]:port' - to listen on a TCP socket to all addresses +; 'port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. |