From 3a0456a0689e391b0ec19960391a13393beef203 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 16 Feb 2011 08:43:29 +0200 Subject: [PATCH] win32: allow cf_unix_socket_dir == NULL --- src/main.c | 4 ++-- src/objects.c | 5 +++++ src/pooler.c | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index d3b74aa..c1ac799 100644 --- a/src/main.c +++ b/src/main.c @@ -587,7 +587,7 @@ static bool check_old_process_unix(void) int domain = AF_UNIX; int res, fd; - if (!*cf_unix_socket_dir) + if (!cf_unix_socket_dir || !*cf_unix_socket_dir) return false; memset(&sa_un, 0, len); @@ -627,7 +627,7 @@ static void takeover_part1(void) /* use temporary libevent base */ void *evtmp = event_init(); - if (!*cf_unix_socket_dir) + if (!cf_unix_socket_dir || !*cf_unix_socket_dir) fatal("cannot reboot if unix dir not configured"); takeover_init(); diff --git a/src/objects.c b/src/objects.c index 9f81fe3..475176e 100644 --- a/src/objects.c +++ b/src/objects.c @@ -884,6 +884,11 @@ static void dns_connect(struct PgSocket *server) memset(&sa_un, 0, sizeof(sa_un)); sa_un.sun_family = AF_UNIX; unix_dir = host ? host : cf_unix_socket_dir; + if (!unix_dir || !*unix_dir) { + log_error("Unix socket dir not configured: %s", db->name); + disconnect_server(server, false, "cannot connect"); + return; + } snprintf(sa_un.sun_path, sizeof(sa_un.sun_path), "%s/.s.PGSQL.%d", unix_dir, db->port); sa = (struct sockaddr *)&sa_un; diff --git a/src/pooler.c b/src/pooler.c index 008242b..6455ceb 100644 --- a/src/pooler.c +++ b/src/pooler.c @@ -361,7 +361,7 @@ void pooler_setup(void) if (cf_listen_addr && !fd_net) fd_net = create_net_socket(cf_listen_addr, cf_listen_port); - if (*cf_unix_socket_dir && !fd_unix) + if (cf_unix_socket_dir && *cf_unix_socket_dir && !fd_unix) fd_unix = create_unix_socket(cf_unix_socket_dir, cf_listen_port); if (!fd_net && !fd_unix) -- 2.39.5