summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2006-07-14 14:21:27 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2006-07-14 14:21:27 +0000
commit16282d2b161d7a169cdbcafaea7222233ba3dab8 (patch)
tree905d9fad634a73b8d1ddd3b9c610bb7deeb50831
parent34fab493f633baf3f0013f0d07cdc64fc93c19f4 (diff)
Add PQsetClientEncoding(conn, "SQL_ASCII") to the pgsql module.
-rw-r--r--doc/doc-txt/ChangeLog6
-rw-r--r--src/src/lookups/pgsql.c8
-rw-r--r--test/stderr/92006
3 files changed, 18 insertions, 2 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index dd6ffa843..b7198cb58 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.375 2006/07/14 14:00:16 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.376 2006/07/14 14:21:27 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -107,6 +107,10 @@ PH/17 Added an extra condition to the default value of delay_warning_condition
PH/18 Refactored debugging code in route_finduser() to show more information,
in particular, the error code if getpwnam() issues one.
+PH/19 Added PQsetClientEncoding(conn, "SQL_ASCII") to the pgsql code module.
+ This is apparently needed in addition to the PH/07 change above to avoid
+ any possible encoding problems.
+
Exim version 4.62
-----------------
diff --git a/src/src/lookups/pgsql.c b/src/src/lookups/pgsql.c
index caefeef18..8b777f40b 100644
--- a/src/src/lookups/pgsql.c
+++ b/src/src/lookups/pgsql.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/lookups/pgsql.c,v 1.5 2006/06/30 13:57:46 ph10 Exp $ */
+/* $Cambridge: exim/src/src/lookups/pgsql.c,v 1.6 2006/07/14 14:21:27 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -247,6 +247,12 @@ if (cn == NULL)
goto PGSQL_EXIT;
}
+ /* Set the client encoding to SQL_ASCII, which means that the server will
+ not try to interpret the query as being in any fancy encoding such as UTF-8
+ or other multibyte code that might cause problems with escaping. */
+
+ PQsetClientEncoding(pg_conn, "SQL_ASCII");
+
/* Add the connection to the cache */
cn = store_get(sizeof(pgsql_connection));
diff --git a/test/stderr/9200 b/test/stderr/9200
index 593ec4d9c..7ed29ddb8 100644
--- a/test/stderr/9200
+++ b/test/stderr/9200
@@ -122,6 +122,8 @@ configuration file is TESTSUITE/test-config
admin user
changed uid/gid: privilege not needed
uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
sender address = CALLER@myhost.test.ex
sender_fullhost = [10.0.0.0]
@@ -209,6 +211,8 @@ configuration file is TESTSUITE/test-config
admin user
changed uid/gid: privilege not needed
uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
sender address = CALLER@myhost.test.ex
set_process_info: pppp accepting a local non-SMTP message from <CALLER@myhost.test.ex>
@@ -248,6 +252,8 @@ configuration file is TESTSUITE/test-config
trusted user
admin user
skipping ACL configuration - not needed
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
reading spool file 10HmaX-0005vi-00-H