diff options
Diffstat (limited to 'src/interfaces')
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 9 | ||||
-rw-r--r-- | src/interfaces/libpq/libpq-int.h | 3 |
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; |