From de6a20995ef10ad8d528a14b63d90bc6381cd5c8 Mon Sep 17 00:00:00 2001 From: tilghman Date: Wed, 26 May 2010 16:14:48 +0000 Subject: [PATCH] Construct socket name, according to the Postgres docs, and document as such. (closes issue #17392) Reported by: dps Patches: 20100525__issue17392.diff.txt uploaded by tilghman (license 14) Tested by: dps git-svn-id: http://svn.digium.com/svn/asterisk/trunk@265894 f38db490-d61c-443f-a65b-d21fe96a405b --- configs/res_pgsql.conf.sample | 7 +++++++ res/res_config_pgsql.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/configs/res_pgsql.conf.sample b/configs/res_pgsql.conf.sample index cfb8538bd..b889244a7 100644 --- a/configs/res_pgsql.conf.sample +++ b/configs/res_pgsql.conf.sample @@ -13,6 +13,13 @@ dbname=asterisk dbuser=asterisk dbpass=password ; +; dbsock is specified as the directory where the socket file may be found. The +; actual socket is constructed as a combination of dbsock and dbport. For +; example, the values of '/tmp' and '5432', respectively, will specify a socket +; file of '/tmp/.s.PGSQL.5432'. +; +;dbsock=/tmp +; ; requirements - At startup, each realtime family will make requirements ; on the backend. There are several strategies for handling requirements: ; warn - Warn if the required column does not exist. diff --git a/res/res_config_pgsql.c b/res/res_config_pgsql.c index e4bffd307..9a6650fa4 100644 --- a/res/res_config_pgsql.c +++ b/res/res_config_pgsql.c @@ -1391,8 +1391,8 @@ static int parse_config(int is_reload) /* No socket needed */ } else if (!(s = ast_variable_retrieve(config, "general", "dbsock"))) { ast_log(LOG_WARNING, - "PostgreSQL RealTime: No database socket found, using '/tmp/pgsql.sock' as default.\n"); - strcpy(dbsock, "/tmp/pgsql.sock"); + "PostgreSQL RealTime: No database socket found, using '/tmp/.s.PGSQL.%d' as default.\n", dbport); + strcpy(dbsock, "/tmp"); } else { ast_copy_string(dbsock, s, sizeof(dbsock)); } @@ -1453,7 +1453,7 @@ static int pgsql_reconnect(const char *database) struct ast_str *connInfo = ast_str_create(32); ast_str_set(&connInfo, 0, "host=%s port=%d dbname=%s user=%s", - dbhost, dbport, my_database, dbuser); + S_OR(dbhost, dbsock), dbport, my_database, dbuser); if (!ast_strlen_zero(dbpass)) ast_str_append(&connInfo, 0, " password=%s", dbpass);