summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq
diff options
context:
space:
mode:
authorTom Lane2003-06-09 17:59:19 +0000
committerTom Lane2003-06-09 17:59:19 +0000
commitcdfb3d99811d4b1c99c2e0c29ff8cba5043f0c91 (patch)
tree87b92fbdf9854bd77bc420a4fae1cc6eb25a4e9d /src/interfaces/libpq
parent2df532d9a2b79f27f17235b3b125bd0ab977b7d8 (diff)
freeaddrinfo2() does need two parameters after all, per comment by
Kurt Roeckx. Add some documentation to try to prevent others from repeating my mistake.
Diffstat (limited to 'src/interfaces/libpq')
-rw-r--r--src/interfaces/libpq/fe-connect.c9
-rw-r--r--src/interfaces/libpq/libpq-int.h3
2 files changed, 7 insertions, 5 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 6eefd9bfcb0..64e39c7baf3 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.242 2003/06/08 17:43:00 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.243 2003/06/09 17:59:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -848,7 +848,7 @@ connectDBStart(PGconn *conn)
printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("getaddrinfo() failed: %s\n"),
gai_strerror(ret));
- freeaddrinfo2(addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
goto connect_errReturn;
}
@@ -857,6 +857,7 @@ connectDBStart(PGconn *conn)
*/
conn->addrlist = addrs;
conn->addr_cur = addrs;
+ conn->addrlist_family = hint.ai_family;
conn->pversion = PG_PROTOCOL(3,0);
conn->status = CONNECTION_NEEDED;
@@ -1686,7 +1687,7 @@ retry_ssl_read:
}
/* We can release the address list now. */
- freeaddrinfo2(conn->addrlist);
+ freeaddrinfo2(conn->addrlist_family, conn->addrlist);
conn->addrlist = NULL;
conn->addr_cur = NULL;
@@ -1858,7 +1859,7 @@ freePGconn(PGconn *conn)
/* Note that conn->Pfdebug is not ours to close or free */
if (conn->notifyList)
DLFreeList(conn->notifyList);
- freeaddrinfo2(conn->addrlist);
+ freeaddrinfo2(conn->addrlist_family, conn->addrlist);
if (conn->lobjfuncs)
free(conn->lobjfuncs);
if (conn->inBuffer)
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index eafd4c30935..f710f58b8e4 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-int.h,v 1.71 2003/06/08 17:43:00 tgl Exp $
+ * $Id: libpq-int.h,v 1.72 2003/06/09 17:59:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -270,6 +270,7 @@ struct pg_conn
/* Transient state needed while establishing connection */
struct addrinfo *addrlist; /* list of possible backend addresses */
struct addrinfo *addr_cur; /* the one currently being tried */
+ int addrlist_family; /* needed to know how to free addrlist */
PGSetenvStatusType setenv_state; /* for 2.0 protocol only */
const PQEnvironmentOption *next_eo;