From 4322eb14912dfe144bb9fa4328f043c83e7ae466 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 28 Jul 2020 12:14:47 -0700 Subject: [PATCH] relax parsing of bool from EPICS_PVA* --- src/config.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index c6e0080..c1e235b 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -59,6 +59,18 @@ std::string join_addr(const std::vector& in) return strm.str(); } +void parse_bool(bool& dest, const std::string& name, const std::string& val) +{ + if(epicsStrCaseCmp(val.c_str(), "YES")==0 || val=="1") { + dest = true; + } else if(epicsStrCaseCmp(val.c_str(), "NO")==0 || val=="0") { + dest = false; + } else { + log_err_printf(serversetup, "%s invalid bool value (YES/NO) : '%s'\n", + name.c_str(), val.c_str()); + } +} + struct PickOne { const std::map& defs; bool useenv; @@ -183,13 +195,7 @@ void _fromDefs(Config& self, const std::map& defs, boo } if(pickone({"EPICS_PVAS_AUTO_BEACON_ADDR_LIST", "EPICS_PVA_AUTO_ADDR_LIST"})) { - if(epicsStrCaseCmp(pickone.val.c_str(), "YES")==0) { - self.auto_beacon = true; - } else if(epicsStrCaseCmp(pickone.val.c_str(), "NO")==0) { - self.auto_beacon = false; - } else { - log_err_printf(serversetup, "%s invalid bool value (YES/NO)", pickone.name.c_str()); - } + parse_bool(self.auto_beacon, pickone.name, pickone.val); } } @@ -305,13 +311,7 @@ void _fromDefs(Config& self, const std::map& defs, boo } if(pickone({"EPICS_PVA_AUTO_ADDR_LIST"})) { - if(epicsStrCaseCmp(pickone.val.c_str(), "YES")==0) { - self.autoAddrList = true; - } else if(epicsStrCaseCmp(pickone.val.c_str(), "NO")==0) { - self.autoAddrList = false; - } else { - log_err_printf(serversetup, "%s invalid bool value (YES/NO)", pickone.name.c_str()); - } + parse_bool(self.autoAddrList, pickone.name, pickone.val); } }