mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
res_config_pgsql: normalize database connection option with cel and cdr by supporting new options name
(cherry picked from commit 1ea7d5cae6
)
This commit is contained in:
committed by
Asterisk Development Team
parent
576ccce10b
commit
b813dc4475
@@ -1,25 +1,25 @@
|
|||||||
;
|
;
|
||||||
; Sample configuration for res_config_pgsql
|
; Sample configuration for res_config_pgsql
|
||||||
;
|
;
|
||||||
; The value of dbhost may be either a hostname or an IP address.
|
; The value of hostname may be either a hostname or an IP address.
|
||||||
; If dbhost is commented out or the string "localhost", a connection
|
; If hostname is commented out or the string "localhost", a connection
|
||||||
; to the local host is assumed and dbsock is used instead of TCP/IP
|
; to the local host is assumed and dbsock is used instead of TCP/IP
|
||||||
; to connect to the server.
|
; to connect to the server.
|
||||||
;
|
;
|
||||||
[general]
|
[general]
|
||||||
dbhost=127.0.0.1
|
;hostname=localhost
|
||||||
dbport=5432
|
;port=5432
|
||||||
dbname=asterisk
|
;dbname=asterisk
|
||||||
dbuser=asterisk
|
;user=postgres
|
||||||
dbpass=password
|
;password=password
|
||||||
;dbappname=asterisk ; Postgres application_name support (optional). Whitespace not allowed.
|
;appname=asterisk ; Postgres application_name support (optional). Whitespace not allowed.
|
||||||
;
|
|
||||||
; dbsock is specified as the directory where the socket file may be found. The
|
; socket 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
|
; actual socket is constructed as a combination of socket and port. For
|
||||||
; example, the values of '/tmp' and '5432', respectively, will specify a socket
|
; example, the values of '/tmp' and '5432', respectively, will specify a socket
|
||||||
; file of '/tmp/.s.PGSQL.5432'.
|
; file of '/tmp/.s.PGSQL.5432'.
|
||||||
;
|
;
|
||||||
;dbsock=/tmp
|
;socket=/tmp
|
||||||
;
|
;
|
||||||
; requirements - At startup, each realtime family will make requirements
|
; requirements - At startup, each realtime family will make requirements
|
||||||
; on the backend. There are several strategies for handling requirements:
|
; on the backend. There are several strategies for handling requirements:
|
||||||
|
@@ -1441,7 +1441,7 @@ static int parse_config(int is_reload)
|
|||||||
config = ast_config_load(RES_CONFIG_PGSQL_CONF, config_flags);
|
config = ast_config_load(RES_CONFIG_PGSQL_CONF, config_flags);
|
||||||
if (config == CONFIG_STATUS_FILEUNCHANGED) {
|
if (config == CONFIG_STATUS_FILEUNCHANGED) {
|
||||||
if (is_reload && pgsqlConn && PQstatus(pgsqlConn) != CONNECTION_OK) {
|
if (is_reload && pgsqlConn && PQstatus(pgsqlConn) != CONNECTION_OK) {
|
||||||
ast_log(LOG_WARNING, "PostgreSQL RealTime: Not connected\n");
|
ast_log(LOG_WARNING, "PostgreSQL RealTime: Not connected\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1459,60 +1459,79 @@ static int parse_config(int is_reload)
|
|||||||
pgsqlConn = NULL;
|
pgsqlConn = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbuser"))) {
|
/* Check new 'user' option first, then fall back to legacy 'dbuser' */
|
||||||
ast_log(LOG_WARNING,
|
s = ast_variable_retrieve(config, "general", "user");
|
||||||
"PostgreSQL RealTime: No database user found, using 'asterisk' as default.\n");
|
if (!s) {
|
||||||
|
s = ast_variable_retrieve(config, "general", "dbuser");
|
||||||
|
}
|
||||||
|
if (!s) {
|
||||||
|
ast_log(LOG_WARNING, "PostgreSQL RealTime: No database user found, using 'asterisk' as default.\n");
|
||||||
strcpy(dbuser, "asterisk");
|
strcpy(dbuser, "asterisk");
|
||||||
} else {
|
} else {
|
||||||
ast_copy_string(dbuser, s, sizeof(dbuser));
|
ast_copy_string(dbuser, s, sizeof(dbuser));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbpass"))) {
|
/* Check new 'password' option first, then fall back to legacy 'dbpass' */
|
||||||
ast_log(LOG_WARNING,
|
s = ast_variable_retrieve(config, "general", "password");
|
||||||
"PostgreSQL RealTime: No database password found, using 'asterisk' as default.\n");
|
if (!s) {
|
||||||
|
s = ast_variable_retrieve(config, "general", "dbpass");
|
||||||
|
}
|
||||||
|
if (!s) {
|
||||||
|
ast_log(LOG_WARNING, "PostgreSQL RealTime: No database password found, using 'asterisk' as default.\n");
|
||||||
strcpy(dbpass, "asterisk");
|
strcpy(dbpass, "asterisk");
|
||||||
} else {
|
} else {
|
||||||
ast_copy_string(dbpass, s, sizeof(dbpass));
|
ast_copy_string(dbpass, s, sizeof(dbpass));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbhost"))) {
|
/* Check new 'hostname' option first, then fall back to legacy 'dbhost' */
|
||||||
ast_log(LOG_WARNING,
|
s = ast_variable_retrieve(config, "general", "hostname");
|
||||||
"PostgreSQL RealTime: No database host found, using localhost via socket.\n");
|
if (!s) {
|
||||||
|
s = ast_variable_retrieve(config, "general", "dbhost");
|
||||||
|
}
|
||||||
|
if (!s) {
|
||||||
|
ast_log(LOG_WARNING, "PostgreSQL RealTime: No database host found, using localhost via socket.\n");
|
||||||
dbhost[0] = '\0';
|
dbhost[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
ast_copy_string(dbhost, s, sizeof(dbhost));
|
ast_copy_string(dbhost, s, sizeof(dbhost));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbname"))) {
|
/* Check new 'port' option first, then fall back to legacy 'dbport' */
|
||||||
ast_log(LOG_WARNING,
|
s = ast_variable_retrieve(config, "general", "port");
|
||||||
"PostgreSQL RealTime: No database name found, using 'asterisk' as default.\n");
|
if (!s) {
|
||||||
strcpy(dbname, "asterisk");
|
s = ast_variable_retrieve(config, "general", "dbport");
|
||||||
} else {
|
|
||||||
ast_copy_string(dbname, s, sizeof(dbname));
|
|
||||||
}
|
}
|
||||||
|
if (!s) {
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbport"))) {
|
ast_log(LOG_WARNING, "PostgreSQL RealTime: No database port found, using 5432 as default.\n");
|
||||||
ast_log(LOG_WARNING,
|
|
||||||
"PostgreSQL RealTime: No database port found, using 5432 as default.\n");
|
|
||||||
dbport = 5432;
|
dbport = 5432;
|
||||||
} else {
|
} else {
|
||||||
dbport = atoi(s);
|
dbport = atoi(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "dbappname"))) {
|
/* Check new 'appname' option first, then fall back to legacy 'dbappname' */
|
||||||
|
s = ast_variable_retrieve(config, "general", "appname");
|
||||||
|
if (!s) {
|
||||||
|
s = ast_variable_retrieve(config, "general", "dbappname");
|
||||||
|
}
|
||||||
|
if (!s) {
|
||||||
dbappname[0] = '\0';
|
dbappname[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
ast_copy_string(dbappname, s, sizeof(dbappname));
|
ast_copy_string(dbappname, s, sizeof(dbappname));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Handle socket configuration if no host is specified */
|
||||||
if (!ast_strlen_zero(dbhost)) {
|
if (!ast_strlen_zero(dbhost)) {
|
||||||
/* No socket needed */
|
/* No socket needed */
|
||||||
} else if (!(s = ast_variable_retrieve(config, "general", "dbsock"))) {
|
|
||||||
ast_log(LOG_WARNING,
|
|
||||||
"PostgreSQL RealTime: No database socket found, using '/tmp/.s.PGSQL.%d' as default.\n", dbport);
|
|
||||||
strcpy(dbsock, "/tmp");
|
|
||||||
} else {
|
} else {
|
||||||
ast_copy_string(dbsock, s, sizeof(dbsock));
|
s = ast_variable_retrieve(config, "general", "socket");
|
||||||
|
if (!s) {
|
||||||
|
s = ast_variable_retrieve(config, "general", "dbsock");
|
||||||
|
}
|
||||||
|
if (!s) {
|
||||||
|
ast_log(LOG_WARNING, "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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(s = ast_variable_retrieve(config, "general", "requirements"))) {
|
if (!(s = ast_variable_retrieve(config, "general", "requirements"))) {
|
||||||
|
Reference in New Issue
Block a user