From 9e76b4c7c5969b44ac5fb034db8bb12481492e8f Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Fri, 28 Jul 2006 10:10:42 +0000 Subject: And one more: Connection identifier has to be unique --- src/interfaces/ecpg/ecpglib/connect.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/interfaces/ecpg/ecpglib/connect.c') diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c index 3cba42d25ff..dcc70a57544 100644 --- a/src/interfaces/ecpg/ecpglib/connect.c +++ b/src/interfaces/ecpg/ecpglib/connect.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.30 2006/06/21 11:38:07 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.31 2006/07/28 10:10:42 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -295,12 +295,21 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p } - if ((this = (struct connection *) ECPGalloc(sizeof(struct connection), lineno)) == NULL) - return false; - if (dbname == NULL && connection_name == NULL) connection_name = "DEFAULT"; + /* check if the identifier is unique */ + if (ECPGget_connection(connection_name)) + { + ECPGfree(dbname); + ECPGlog("connect: connection identifier %s is already in use\n", + connection_name); + return false; + } + + if ((this = (struct connection *) ECPGalloc(sizeof(struct connection), lineno)) == NULL) + return false; + if (dbname != NULL) { /* get the detail information out of dbname */ -- cgit v1.2.3