mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Copy and store addrinfo in libpq-owned private memory
This refactors libpq to copy addrinfos returned by getaddrinfo to memory owned by libpq such that future improvements can alter for example the order of entries. As a nice side effect of this refactor the mechanism for iteration over addresses in PQconnectPoll is now identical to its iteration over hosts. Author: Jelte Fennema <postgres@jeltef.nl> Reviewed-by: Aleksander Alekseev <aleksander@timescale.com> Reviewed-by: Michael Banck <mbanck@gmx.net> Reviewed-by: Andrey Borodin <amborodin86@gmail.com> Discussion: https://postgr.es/m/PR3PR83MB04768E2FF04818EEB2179949F7A69@PR3PR83MB0476.EURPRD83.prod.outlook.com
This commit is contained in:
@@ -471,9 +471,10 @@ struct pg_conn
|
||||
PGTargetServerType target_server_type; /* desired session properties */
|
||||
bool try_next_addr; /* time to advance to next address/host? */
|
||||
bool try_next_host; /* time to advance to next connhost[]? */
|
||||
struct addrinfo *addrlist; /* list of addresses for current connhost */
|
||||
struct addrinfo *addr_cur; /* the one currently being tried */
|
||||
int addrlist_family; /* needed to know how to free addrlist */
|
||||
int naddr; /* number of addresses returned by getaddrinfo */
|
||||
int whichaddr; /* the address currently being tried */
|
||||
AddrInfo *addr; /* the array of addresses for the currently
|
||||
* tried host */
|
||||
bool send_appname; /* okay to send application_name? */
|
||||
|
||||
/* Miscellaneous stuff */
|
||||
|
||||
Reference in New Issue
Block a user