]> granicus.if.org Git - pgbouncer/commitdiff
win32: allow cf_unix_socket_dir == NULL
authorMarko Kreen <markokr@gmail.com>
Wed, 16 Feb 2011 06:43:29 +0000 (08:43 +0200)
committerMarko Kreen <markokr@gmail.com>
Wed, 16 Feb 2011 06:43:29 +0000 (08:43 +0200)
src/main.c
src/objects.c
src/pooler.c

index d3b74aa034893cc3695e70ffc40aa9208a0e12de..c1ac7995db5d4a09c035cfb47c659d13ea4600e7 100644 (file)
@@ -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();
index 9f81fe35a00b942354ca85ec7d710c2e818ed1fc..475176ebf631effad624fd5e8e47290b7d901869 100644 (file)
@@ -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;
index 008242b7f6aa0fdd8bbcfff3c50e7ab9b7306465..6455ceb323dbaf46b39b009f1118ad34e894b539 100644 (file)
@@ -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)