From e4cb6d71302da5c2f895169d43ac4a86370c36be Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Mon, 10 Oct 2016 22:56:49 +0900 Subject: [PATCH] repmgr: simplify LSN parsing Also silences a compiler warning. --- repmgr.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/repmgr.c b/repmgr.c index 13481412..83a01eca 100644 --- a/repmgr.c +++ b/repmgr.c @@ -3900,29 +3900,31 @@ stop_backup: exit(retval); } -static bool +static void parse_lsn(XLogRecPtr *ptr, const char *str) { uint32 high, low; if (sscanf(str, "%x/%x", &high, &low) != 2) - return false; + return; *ptr = (((XLogRecPtr)high) << 32) + (XLogRecPtr)low; - return true; + return; } static XLogRecPtr 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"), label_key, label_value); - return InvalidXLogRecPtr; } return ptr;