repmgr: simplify LSN parsing

Also silences a compiler warning.
This commit is contained in:
Ian Barwick
2016-10-10 22:56:49 +09:00
parent 871ec47ff5
commit e4cb6d7130

View File

@@ -3900,29 +3900,31 @@ stop_backup:
exit(retval); exit(retval);
} }
static bool static void
parse_lsn(XLogRecPtr *ptr, const char *str) parse_lsn(XLogRecPtr *ptr, const char *str)
{ {
uint32 high, low; uint32 high, low;
if (sscanf(str, "%x/%x", &high, &low) != 2) if (sscanf(str, "%x/%x", &high, &low) != 2)
return false; return;
*ptr = (((XLogRecPtr)high) << 32) + (XLogRecPtr)low; *ptr = (((XLogRecPtr)high) << 32) + (XLogRecPtr)low;
return true; return;
} }
static XLogRecPtr static XLogRecPtr
parse_label_lsn(const char *label_key, const char *label_value) parse_label_lsn(const char *label_key, const char *label_value)
{ {
XLogRecPtr ptr; XLogRecPtr ptr = InvalidXLogRecPtr;
if (!parse_lsn(&ptr, label_value)) parse_lsn(&ptr, label_value);
/* parse_lsn() will not modify ptr if it can't parse the label value */
if (ptr == InvalidXLogRecPtr)
{ {
log_err(_("Couldn't parse backup label entry \"%s: %s\" as lsn"), log_err(_("Couldn't parse backup label entry \"%s: %s\" as lsn"),
label_key, label_value); label_key, label_value);
return InvalidXLogRecPtr;
} }
return ptr; return ptr;