From e36db5527c8231ccf7a61b5ffec3e701389e309b Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Fri, 24 Jul 2020 22:55:17 -0700 Subject: [PATCH] Server fail hard on invalid EPICS_PVAS_INTF_ADDR_LIST --- src/config.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index 7f160d8..c6e0080 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -25,7 +25,8 @@ DEFINE_LOGGER(config, "pvxs.config"); namespace pvxs { namespace { -void split_addr_into(const char* name, std::vector& out, const std::string& inp, uint16_t defaultPort) +void split_addr_into(const char* name, std::vector& out, const std::string& inp, + uint16_t defaultPort, bool required=false) { size_t pos=0u; @@ -39,6 +40,8 @@ void split_addr_into(const char* name, std::vector& out, const std: sockaddr_in addr = {}; if(aToIPAddr(temp.c_str(), defaultPort, &addr)) { + if(required) + throw std::runtime_error(SB()<<"invalid IP or non-existent hostname \""<& defs, boo } if(pickone({"EPICS_PVAS_INTF_ADDR_LIST"})) { - split_addr_into(pickone.name.c_str(), self.interfaces, pickone.val, self.tcp_port); + split_addr_into(pickone.name.c_str(), self.interfaces, pickone.val, self.tcp_port, true); } if(pickone({"EPICS_PVAS_BEACON_ADDR_LIST", "EPICS_PVA_ADDR_LIST"})) {