Added setting for client_encoding of the PostgreSQL connection.

git-svn-id: http://voip.null.ro/svn/yate@2530 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2009-03-22 21:35:13 +00:00
parent a5b79ca801
commit 730b3c4ccf
2 changed files with 9 additions and 0 deletions

View File

@ -16,6 +16,10 @@
; retry: int: How many times to retry the connection or query
;retry=5
; encoding: string: Character set encoding used to communicate with the server
; If not set will match the encoding of server side database
;encoding=
; connection: string: Ready-built client connection string for PQconnectStart
; If this is not set the string is built from the following pieces
; Take care if you set this - it will override anything that follows

View File

@ -56,6 +56,7 @@ private:
bool startDb();
int queryDbInternal(const char* query, Message* dest);
String m_name,m_connection;
String m_encoding;
int m_retry;
u_int64_t m_timeout;
PGconn *m_conn;
@ -107,6 +108,7 @@ DbConn::DbConn(const NamedList* sect)
if (m_timeout < 500000)
m_timeout = 500000;
m_retry = sect->getIntValue("retry",5);
m_encoding = sect->getValue("encoding");
}
DbConn::~DbConn()
@ -139,6 +141,9 @@ bool DbConn::initDb(int retry)
return false;
case CONNECTION_OK:
Debug(&module,DebugAll,"Connection for '%s' succeeded",m_name.c_str());
if (m_encoding && PQsetClientEncoding(m_conn,m_encoding))
Debug(&module,DebugWarn,"Failed to set encoding '%s' on connection '%s'",
m_encoding.c_str(),m_name.c_str());
return true;
default:
break;