From 2bc877114cd6091f9048debbe658e579845c0be8 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 a473a6f6..48f16a31 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;