From fd9f622219a401466a814de9bf04d51392951262 Mon Sep 17 00:00:00 2001
From: Michael Davis <michael.davis@cern.ch>
Date: Wed, 4 Apr 2018 14:39:43 +0200
Subject: [PATCH] [cta-admin] Gives a better error when cta.endpoint is not
 specified

---
 cmdline/CtaAdminCmd.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp
index be788cacd8..998361885f 100644
--- a/cmdline/CtaAdminCmd.cpp
+++ b/cmdline/CtaAdminCmd.cpp
@@ -147,7 +147,8 @@ void CtaAdminCmd::send() const
    }
 
    // Set configuration options
-   XrdSsiPb::Config config("/etc/cta/cta-cli.conf", "cta");
+   const std::string config_file = "/etc/cta/cta-cli.conf";
+   XrdSsiPb::Config config(config_file, "cta");
    config.set("resource", "/ctafrontend");
    config.set("response_bufsize", StreamBufferSize);         // default value = 1024 bytes
    config.set("request_timeout", DefaultRequestTimeout);     // default value = 10s
@@ -162,6 +163,12 @@ void CtaAdminCmd::send() const
    // If fine-grained control over log level is required, use XrdSsiPbLogLevel
    config.getEnv("log", "XrdSsiPbLogLevel");
 
+   // Validate that endpoint was specified in the config file
+   if(!config.getOptionValueStr("endpoint").first) {
+      throw std::runtime_error("Configuration error: cta.endpoint missing from " + config_file);
+   }
+
+
    // Obtain a Service Provider
    XrdSsiPbServiceType cta_service(config);
 
-- 
GitLab