Module: kamailio
Branch: 5.1
Commit: c7250e725d1c2c32f579cf4803619c41e52cf825
URL:
https://github.com/kamailio/kamailio/commit/c7250e725d1c2c32f579cf4803619c4…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2018-10-19T08:26:23+02:00
db_postgres: new parameter bytea_output_escape
- control escaping output for bytea fields
- default 1 (do the escape)
(cherry picked from commit 861205b8aeed19fe8693e21fe5f1856f1dcb08c5)
---
Modified: src/modules/db_postgres/km_pg_con.c
Modified: src/modules/db_postgres/pg_mod.c
---
Diff:
https://github.com/kamailio/kamailio/commit/c7250e725d1c2c32f579cf4803619c4…
Patch:
https://github.com/kamailio/kamailio/commit/c7250e725d1c2c32f579cf4803619c4…
---
diff --git a/src/modules/db_postgres/km_pg_con.c b/src/modules/db_postgres/km_pg_con.c
index b66a94a0fb..f6a2b8c8e0 100644
--- a/src/modules/db_postgres/km_pg_con.c
+++ b/src/modules/db_postgres/km_pg_con.c
@@ -37,6 +37,8 @@
#include <netinet/tcp.h>
+extern int pg_bytea_output_escape;
+
/*!
* \brief Create a new connection
*
@@ -52,7 +54,7 @@ struct pg_con *db_postgres_new_connection(struct db_id *id)
int i = 0;
const char *keywords[10], *values[10];
char to[16];
- PGresult *res;
+ PGresult *res = NULL;
LM_DBG("db_id = %p\n", id);
@@ -142,15 +144,16 @@ struct pg_con *db_postgres_new_connection(struct db_id *id)
}
#endif
- res = PQexec(ptr->con, "SET bytea_output=escape");
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- LM_ERR("cannot set blob output escaping format\n");
+ if(pg_bytea_output_escape!=0) {
+ res = PQexec(ptr->con, "SET bytea_output=escape");
+ if (PQresultStatus(res) != PGRES_COMMAND_OK)
+ {
+ LM_ERR("cannot set blob output escaping format\n");
+ PQclear(res);
+ goto err;
+ }
PQclear(res);
- goto err;
}
- PQclear(res);
-
return ptr;
err:
diff --git a/src/modules/db_postgres/pg_mod.c b/src/modules/db_postgres/pg_mod.c
index be70e911e4..4d5849a290 100644
--- a/src/modules/db_postgres/pg_mod.c
+++ b/src/modules/db_postgres/pg_mod.c
@@ -58,6 +58,7 @@ int pg_retries =
int pg_lockset = 4;
int pg_timeout = 0; /* default = no timeout */
int pg_keepalive = 0;
+int pg_bytea_output_escape = 1;
/*
* Postgres module interface
@@ -91,6 +92,7 @@ static param_export_t params[] = {
{"lockset", PARAM_INT, &pg_lockset},
{"timeout", PARAM_INT, &pg_timeout},
{"tcp_keepalive", PARAM_INT, &pg_keepalive},
+ {"bytea_output_escape", PARAM_INT, &pg_bytea_output_escape},
{0, 0, 0}
};