mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 08:56:29 +00:00
standby clone: don't assume existence of "user" in upstream conninfo
Usually a seperate user (typically "repmgr") is set up specifically to manage the repmgr metadata, however there's no compelling requirement to do this, and it's possible the database owner (usually: "postgres") will be used, in which case it's possible the username will be left out of the conninfo string. Addresses GitHub #437.
This commit is contained in:
31
dbutils.c
31
dbutils.c
@@ -371,6 +371,37 @@ get_conninfo_value(const char *conninfo, const char *keyword, char *output)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get a default conninfo value for the provided parameter, and copy
|
||||
* it to the 'output' buffer.
|
||||
*
|
||||
* Returns true on success, or false on failure (provided keyword not found).
|
||||
*
|
||||
*/
|
||||
bool
|
||||
get_conninfo_default_value(const char *param, char *output, int maxlen)
|
||||
{
|
||||
PQconninfoOption *defs = NULL;
|
||||
PQconninfoOption *def = NULL;
|
||||
bool found = false;
|
||||
|
||||
defs = PQconndefaults();
|
||||
|
||||
for (def = defs; def->keyword; def++)
|
||||
{
|
||||
if (strncmp(def->keyword, param, maxlen) == 0)
|
||||
{
|
||||
strncpy(output, def->val, maxlen);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
PQconninfoFree(defs);
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
initialize_conninfo_params(t_conninfo_param_list *param_list, bool set_defaults)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user