#endif
}
return is_fastcgi;
-@@ -249,12 +256,27 @@
+@@ -249,6 +256,16 @@
}
}
void fcgi_shutdown(void)
{
if (is_initialized) {
- zend_hash_destroy(&fcgi_mgmt_vars);
- }
-- is_fastcgi = 0;
-+ is_fastcgi = 1;
-+
-+ if (allowed_clients) {
-+ free(allowed_clients);
-+ allowed_clients = 0;
-+ }
- }
-
- #ifdef _WIN32
@@ -327,6 +349,41 @@
}
#endif
static int is_port_number(const char *bindpath)
{
while (*bindpath) {
-@@ -455,38 +512,6 @@
+@@ -512,38 +512,6 @@
if (!tcp) {
chmod(path, 0777);
- } else {
-- char *ip = getenv("FCGI_WEB_SERVER_ADDRS");
-- char *cur, *end;
-- int n;
--
-- if (ip) {
-- ip = strdup(ip);
-- cur = ip;
-- n = 0;
-- while (*cur) {
-- if (*cur == ',') n++;
-- cur++;
-- }
-- allowed_clients = malloc(sizeof(in_addr_t) * (n+2));
-- n = 0;
-- cur = ip;
-- while (cur) {
-- end = strchr(cur, ',');
-- if (end) {
-- *end = 0;
-- end++;
-- }
-- allowed_clients[n] = inet_addr(cur);
-- if (allowed_clients[n] == INADDR_NONE) {
+- char *ip = getenv("FCGI_WEB_SERVER_ADDRS");
+- char *cur, *end;
+- int n;
+-
+- if (ip) {
+- ip = strdup(ip);
+- cur = ip;
+- n = 0;
+- while (*cur) {
+- if (*cur == ',') n++;
+- cur++;
+- }
+- allowed_clients = malloc(sizeof(in_addr_t) * (n+2));
+- n = 0;
+- cur = ip;
+- while (cur) {
+- end = strchr(cur, ',');
+- if (end) {
+- *end = 0;
+- end++;
+- }
+- allowed_clients[n] = inet_addr(cur);
+- if (allowed_clients[n] == INADDR_NONE) {
- fprintf(stderr, "Wrong IP address '%s' in FCGI_WEB_SERVER_ADDRS\n", cur);
-- }
-- n++;
-- cur = end;
-- }
-- allowed_clients[n] = INADDR_NONE;
+- }
+- n++;
+- cur = end;
+- }
+- allowed_clients[n] = INADDR_NONE;
- free(ip);
- }
}