You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zy...@apache.org on 2013/10/31 16:10:14 UTC

git commit: TS-2202: remove manager error and fatal useless error message

Updated Branches:
  refs/heads/master e75d33a39 -> c2452f5fb


TS-2202: remove manager error and fatal useless error message

we should log errno and strerror(errno) only when errno != 0.
the errno parameter should pass by the caller.
functions mgmt_elog and mgmt_fatal changed


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c2452f5f
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c2452f5f
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c2452f5f

Branch: refs/heads/master
Commit: c2452f5fbfafab8291537ef8abd4ac2e75253c45
Parents: e75d33a
Author: Yu Qing <zh...@taobao.com>
Authored: Thu Oct 31 22:41:38 2013 +0800
Committer: Zhao Yongming <mi...@gmail.com>
Committed: Thu Oct 31 22:44:28 2013 +0800

----------------------------------------------------------------------
 mgmt/Alarms.cc                |   2 +-
 mgmt/FileManager.cc           |  12 ++--
 mgmt/LocalManager.cc          |  82 ++++++++++++------------
 mgmt/Main.cc                  |  70 ++++++++++-----------
 mgmt/ProcessManager.cc        |  24 +++----
 mgmt/Rollback.cc              |   8 +--
 mgmt/api/NetworkUtilsLocal.cc |  14 ++---
 mgmt/cluster/ClusterCom.cc    | 126 ++++++++++++++++++-------------------
 mgmt/cluster/VMap.cc          |  18 +++---
 mgmt/utils/MgmtUtils.cc       |  75 ++++++++++++----------
 mgmt/utils/MgmtUtils.h        |   8 +--
 mgmt/utils/WebMgmtUtils.cc    |   2 +-
 mgmt/web2/WebHttp.cc          |   2 +-
 mgmt/web2/WebIntrMain.cc      |  26 ++++----
 14 files changed, 240 insertions(+), 229 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Alarms.cc
----------------------------------------------------------------------
diff --git a/mgmt/Alarms.cc b/mgmt/Alarms.cc
index cbf2dc0..16c4149 100644
--- a/mgmt/Alarms.cc
+++ b/mgmt/Alarms.cc
@@ -523,7 +523,7 @@ Alarms::execAlarmBin(const char *desc)
   if ((pid = fork1()) < 0)
 #endif
   {
-    mgmt_elog(stderr, "[Alarms::execAlarmBin] Unable to fork1 process\n");
+    mgmt_elog(stderr, errno, "[Alarms::execAlarmBin] Unable to fork1 process\n");
   } else if (pid > 0) {         /* Parent */
     // INKqa11769
     bool script_done = false;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/FileManager.cc
----------------------------------------------------------------------
diff --git a/mgmt/FileManager.cc b/mgmt/FileManager.cc
index 7ae2265..33cafe7 100644
--- a/mgmt/FileManager.cc
+++ b/mgmt/FileManager.cc
@@ -67,7 +67,7 @@ FileManager::FileManager()
   ink_mutex_init(&cbListLock, "File Changed Callback Mutex");
 
   if (varStrFromName("proxy.config.config_dir", configTmp, sizeof(configTmp)) == false) {
-    mgmt_fatal(stderr,
+    mgmt_fatal(stderr, 0,
                "[FileManager::FileManager] Unable to find configuration directory from proxy.config.config_dir\n");
   }
   if (configTmp[0] != '/') {
@@ -77,9 +77,9 @@ FileManager::FileManager()
   if (access(configTmp, R_OK) == -1) {
     ink_strlcpy(configTmp, system_config_directory,sizeof(configTmp));
     if (access(configTmp, R_OK) == -1) {
-        mgmt_elog("[FileManager::FileManager] unable to access() directory '%s': %d, %s\n",
+        mgmt_elog(0, "[FileManager::FileManager] unable to access() directory '%s': %d, %s\n",
                 mgmt_path, errno, strerror(errno));
-        mgmt_elog("[FileManager::FileManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        mgmt_elog(0, "[FileManager::FileManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
         _exit(1);
     }
   }
@@ -98,7 +98,7 @@ FileManager::FileManager()
   if (access(snapshotDir, F_OK) == -1) {
     if (mkdir(snapshotDir, DIR_MODE) < 0) {
       // Failed to create the snapshot directory
-      mgmt_fatal(stderr, "[FileManager::FileManager] Failed to create the snapshot directory %s: %s\n", snapshotDir, strerror(errno));
+      mgmt_fatal(stderr, 0, "[FileManager::FileManager] Failed to create the snapshot directory %s: %s\n", snapshotDir, strerror(errno));
     }
   }
 }
@@ -349,7 +349,7 @@ FileManager::abortRestore(const char *abortTo)
 
     currentVersion = bind->rb->getCurrentVersion();
     if (bind->rb->revertToVersion_ml(currentVersion - 1) != OK_ROLLBACK) {
-      mgmt_fatal(stderr,
+      mgmt_fatal(stderr, 0,
                  "[FileManager::abortRestore] Unable to abort a failed snapshot restore.  Configuration files have been left in a inconsistent state\n");
     }
   }
@@ -708,7 +708,7 @@ FileManager::WalkSnaps(ExpandingArray * snapList)
   //ink_assert(found);
 
   if (varStrFromName("proxy.config.config_dir", config_dir, 256) == false) {
-    mgmt_fatal(stderr,
+    mgmt_fatal(stderr, 0,
                "[FileManager::FileManager] Unable to find configuration directory from proxy.config.config_dir\n");
   }
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/LocalManager.cc
----------------------------------------------------------------------
diff --git a/mgmt/LocalManager.cc b/mgmt/LocalManager.cc
index 56f3f9e..12adb34 100644
--- a/mgmt/LocalManager.cc
+++ b/mgmt/LocalManager.cc
@@ -241,9 +241,9 @@ LocalManager::LocalManager(char * /* mpath ATS_UNUSED */, bool proxy_on)
   if (access(absolute_config_path, R_OK) == -1) {
     config_path = ats_strdup(system_config_directory);
     if (access(config_path, R_OK) == -1) {
-        mgmt_elog("[LocalManager::LocalManager] unable to access() directory '%s': %d, %s\n",
+        mgmt_elog(0, "[LocalManager::LocalManager] unable to access() directory '%s': %d, %s\n",
                 config_path, errno, strerror(errno));
-        mgmt_fatal("[LocalManager::LocalManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        mgmt_fatal(0, "[LocalManager::LocalManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
     }
   } else {
     config_path = absolute_config_path;
@@ -294,9 +294,9 @@ LocalManager::LocalManager(char * /* mpath ATS_UNUSED */, bool proxy_on)
     absolute_proxy_binary = Layout::relative_to(Layout::get()->bindir, proxy_binary);
     // coverity[fs_check_call]
     if (access(absolute_proxy_binary, R_OK | X_OK) == -1) {
-        mgmt_elog("[LocalManager::LocalManager] Unable to access() '%s': %d, %s\n",
+        mgmt_elog(0, "[LocalManager::LocalManager] Unable to access() '%s': %d, %s\n",
                 absolute_proxy_binary, errno, strerror(errno));
-        mgmt_fatal("[LocalManager::LocalManager] please set bin path 'proxy.config.bin_path' \n");
+        mgmt_fatal(0, "[LocalManager::LocalManager] please set bin path 'proxy.config.bin_path' \n");
     }
   }
 
@@ -333,7 +333,7 @@ LocalManager::initCCom(int mcport, char *addr, int rsport)
   char *envBuf;
 
   if (gethostname(hostname, 1024) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initCCom] gethostname failed\n");
+    mgmt_fatal(stderr, errno, "[LocalManager::initCCom] gethostname failed\n");
   }
   // Fetch which interface we are using for clustering
   intrName = REC_readString("proxy.config.cluster.ethernet_interface", &found);
@@ -341,9 +341,9 @@ LocalManager::initCCom(int mcport, char *addr, int rsport)
 
   found = mgmt_getAddrForIntr(intrName, &cluster_ip.sa);
   if (found == false) {
-    mgmt_fatal(stderr, "[LocalManager::initCCom] Unable to find network interface %s.  Exiting...\n", intrName);
+    mgmt_fatal(stderr, 0, "[LocalManager::initCCom] Unable to find network interface %s.  Exiting...\n", intrName);
   } else if (!ats_is_ip4(&cluster_ip)) {
-    mgmt_fatal(stderr, "[LocalManager::initCCom] Unable to find IPv4 network interface %s.  Exiting...\n", intrName);
+    mgmt_fatal(stderr, 0, "[LocalManager::initCCom] Unable to find IPv4 network interface %s.  Exiting...\n", intrName);
   }
 
   ats_ip_ntop(&cluster_ip, clusterAddrStr, sizeof(clusterAddrStr));
@@ -398,11 +398,11 @@ LocalManager::initMgmtProcessServer()
   snprintf(fpath, sizeof(fpath), "%s/%s", pserver_path, LM_CONNECTION_SERVER);
   unlink(fpath);
   if ((process_server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to open socket exiting\n");
+    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable to open socket exiting\n");
   }
 
   if (fcntl(process_server_sockfd, F_SETFD, 1) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to set close-on-exec\n");
+    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable to set close-on-exec\n");
   }
 
   memset(&serv_addr, 0, sizeof(serv_addr));
@@ -414,15 +414,15 @@ LocalManager::initMgmtProcessServer()
   servlen = strlen(serv_addr.sun_path) + sizeof(serv_addr.sun_family);
 #endif
   if (setsockopt(process_server_sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof(int)) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to set socket options.\n");
+    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable to set socket options.\n");
   }
 
   if ((bind(process_server_sockfd, (struct sockaddr *) &serv_addr, servlen)) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to bind '%s' socket exiting\n", fpath);
+    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable to bind '%s' socket exiting\n", fpath);
   }
 
   if ((listen(process_server_sockfd, 5)) < 0) {
-    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to listen on socket exiting\n");
+    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable to listen on socket exiting\n");
   }
 
   RecSetRecordInt("proxy.node.restarts.manager.start_time", manager_started_at);
@@ -484,7 +484,7 @@ LocalManager::pollMgmtProcessServer()
         mgmt_log(stderr, "[LocalManager::pollMgmtProcessServer] New process connecting fd '%d'\n", new_sockfd);
 
         if (new_sockfd < 0) {
-          mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] ==> ");
+          mgmt_elog(stderr, errno, "[LocalManager::pollMgmtProcessServer] ==> ");
         } else if (!processRunning()) {
           watched_process_fd = new_sockfd;
           data_len = sizeof(mgmt_sync_key);
@@ -493,7 +493,7 @@ LocalManager::pollMgmtProcessServer()
           mh->data_len = data_len;
           memcpy((char *) mh + sizeof(MgmtMessageHdr), &mgmt_sync_key, data_len);
           if (mgmt_write_pipe(new_sockfd, (char *) mh, sizeof(MgmtMessageHdr) + data_len) <= 0) {
-            mgmt_elog("[LocalManager::pollMgmtProcessServer] Error writing sync key message!\n");
+            mgmt_elog(errno, "[LocalManager::pollMgmtProcessServer] Error writing sync key message!\n");
             close_socket(new_sockfd);
             watched_process_fd = watched_process_pid = -1;
           }
@@ -517,10 +517,10 @@ LocalManager::pollMgmtProcessServer()
           if ((res = mgmt_read_pipe(watched_process_fd, data_raw, mh_hdr.data_len)) > 0) {
             handleMgmtMsgFromProcesses(mh_full);
           } else if (res < 0) {
-            mgmt_fatal("[LocalManager::pollMgmtProcessServer] Error in read (errno: %d)\n", -res);
+            mgmt_fatal(0, "[LocalManager::pollMgmtProcessServer] Error in read (errno: %d)\n", -res);
           }
         } else if (res < 0) {
-          mgmt_fatal("[LocalManager::pollMgmtProcessServer] Error in read (errno: %d)\n", -res);
+          mgmt_fatal(0, "[LocalManager::pollMgmtProcessServer] Error in read (errno: %d)\n", -res);
         }
         // handle EOF
         if (res == 0) {
@@ -534,12 +534,12 @@ LocalManager::pollMgmtProcessServer()
           waitpid(watched_process_pid, &estatus, 0);    /* Reap child */
           if (WIFSIGNALED(estatus)) {
             int sig = WTERMSIG(estatus);
-            mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] "
+            mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] "
                       "Server Process terminated due to Sig %d: %s\n", sig, strsignal(sig));
           }
 
           if (lmgmt->run_proxy) {
-            mgmt_elog("[Alarms::signalAlarm] Server Process was reset\n");
+            mgmt_elog(0, "[Alarms::signalAlarm] Server Process was reset\n");
             lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_PROCESS_DIED);
           } else {
             mgmt_log("[TrafficManager] Server process shutdown\n");
@@ -559,7 +559,7 @@ LocalManager::pollMgmtProcessServer()
       ink_assert(num == 0);     /* Invariant */
 
     } else if (num < 0) {       /* Error */
-      mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] select failed or was interrupted (%d)\n", errno);
+      mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] select failed or was interrupted (%d)\n", errno);
     }
 
   }
@@ -673,7 +673,7 @@ LocalManager::handleMgmtMsgFromProcesses(MgmtMessageHdr * mh)
       case MGMT_STRING:
       case MGMT_INVALID:
       default:
-        mgmt_elog(stderr,
+        mgmt_elog(stderr, 0,
                   "[LocalManager::handleMgmtMsgFromProcesses] " "Invalid plugin set-config msg '%s'\n", data_raw);
         break;
       }
@@ -766,14 +766,14 @@ LocalManager::sendMgmtMsgToProcesses(MgmtMessageHdr * mh)
     if (RecGetRecordType(data_raw, &rec_type) == REC_ERR_OKAY && rec_type == RECT_CONFIG) {
       RecSetSyncRequired(data_raw);
     } else {
-      mgmt_elog(stderr, "[LocalManager:sendMgmtMsgToProcesses] Unknown file change: '%s'\n", data_raw);
+      mgmt_elog(stderr, 0, "[LocalManager:sendMgmtMsgToProcesses] Unknown file change: '%s'\n", data_raw);
     }
     ink_assert(found);
     if (!(configFiles->getRollbackObj(fname, &rb)) &&
         (strcmp(data_raw, "proxy.config.cluster.cluster_configuration") != 0) &&
         (strcmp(data_raw, "proxy.config.arm.acl_filename_master") != 0) &&
         (strcmp(data_raw, "proxy.config.body_factory.template_sets_dir") != 0)) {
-      mgmt_elog(stderr, "[LocalManager::sendMgmtMsgToProcesses] "
+      mgmt_elog(stderr, 0, "[LocalManager::sendMgmtMsgToProcesses] "
                 "Invalid 'data_raw' for MGMT_EVENT_CONFIG_FILE_UPDATE\n");
       ink_assert(false);
     }
@@ -800,15 +800,15 @@ LocalManager::sendMgmtMsgToProcesses(MgmtMessageHdr * mh)
       if (check_prev_pid == check_current_pid) {
         check_current_pid = -1;
         int lerrno = errno;
-        mgmt_elog(stderr, "[LocalManager::sendMgmtMsgToProcesses] Error writing message\n");
+        mgmt_elog(stderr, errno, "[LocalManager::sendMgmtMsgToProcesses] Error writing message\n");
         if (lerrno == ECONNRESET || lerrno == EPIPE) {  // Connection closed by peer or Broken pipe
           if ((kill(watched_process_pid, 0) < 0) && (errno == ESRCH)) {
             // TS is down
             pid_t tmp_pid = watched_process_pid;
             close_socket(watched_process_fd);
-            mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] " "Server Process has been terminated\n");
+            mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] " "Server Process has been terminated\n");
             if (lmgmt->run_proxy) {
-              mgmt_elog("[Alarms::signalAlarm] Server Process was reset\n");
+              mgmt_elog(0, "[Alarms::signalAlarm] Server Process was reset\n");
               lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_PROCESS_DIED);
             } else {
               mgmt_log("[TrafficManager] Server process shutdown\n");
@@ -899,7 +899,7 @@ LocalManager::processEventQueue()
       if (!(strcmp(data_raw, "records.config"))) {
         bool incVersion = mh->msg_id == MGMT_EVENT_CONFIG_FILE_UPDATE;
         if (RecReadConfigFile(incVersion) != REC_ERR_OKAY) {
-          mgmt_elog(stderr, "[fileUpdated] Config update failed for records.config\n");
+          mgmt_elog(stderr, errno, "[fileUpdated] Config update failed for records.config\n");
         }
         handled_by_mgmt = true;
       }
@@ -939,13 +939,13 @@ LocalManager::startProxy()
   // the traffic server binary along with it's execute permmissions
   if (access(absolute_proxy_binary, F_OK) < 0) {
     // Error can't find traffic_server
-    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to find traffic server at %s\n", absolute_proxy_binary);
+    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to find traffic server at %s\n", absolute_proxy_binary);
     return false;
   }
   // traffic server binary exists, check permissions
   else if (access(absolute_proxy_binary, R_OK | X_OK) < 0) {
     // Error don't have proper permissions
-    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to access %s due to bad permisssions \n",
+    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to access %s due to bad permisssions \n",
               absolute_proxy_binary);
     return false;
   }
@@ -957,7 +957,7 @@ LocalManager::startProxy()
     if ((pid = fork1()) < 0)
 #endif
     {
-      mgmt_elog(stderr, "[LocalManager::startProxy] Unable to fork1 prep process\n");
+      mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to fork1 prep process\n");
       return false;
     } else if (pid > 0) {
       int estatus;
@@ -977,7 +977,7 @@ LocalManager::startProxy()
   if ((pid = fork1()) < 0)
 #endif
   {
-    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to fork1 process\n");
+    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to fork1 process\n");
     return false;
   } else if (pid > 0) {         /* Parent */
     proxy_launch_pid = pid;
@@ -1037,11 +1037,11 @@ LocalManager::startProxy()
     }
 
     if (!strstr(proxy_options, "-M")) { // Make sure we're starting the proxy in mgmt mode
-      mgmt_fatal(stderr, "[LocalManager::startProxy] ts options must contain -M");
+      mgmt_fatal(stderr, 0, "[LocalManager::startProxy] ts options must contain -M");
     }
 
     res = execv(absolute_proxy_binary, options);
-    mgmt_elog(stderr, "[LocalManager::startProxy] Exec of %s failed\n", absolute_proxy_binary);
+    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Exec of %s failed\n", absolute_proxy_binary);
     _exit(res);
   }
   return true;
@@ -1085,7 +1085,7 @@ LocalManager::listenForProxy()
     }
 
     if ((listen(p.m_fd, backlog)) < 0) {
-      mgmt_fatal(stderr, "[LocalManager::listenForProxy] Unable to listen on socket: %d\n", p.m_port);
+      mgmt_fatal(stderr, errno, "[LocalManager::listenForProxy] Unable to listen on socket: %d\n", p.m_port);
     }
     mgmt_log(stderr, "[LocalManager::listenForProxy] Listening on port: %d\n", p.m_port);
   }
@@ -1109,7 +1109,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
 
   if (port.m_port < 1024 && euid != 0) {
     if (restoreRootPriv(&saved_euid) == false) {
-      mgmt_elog(stderr, "[bindProxyPort] Unable to get root priviledges to bind port %d. euid is %d.  Exiting\n",
+      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to get root priviledges to bind port %d. euid is %d.  Exiting\n",
                 port.m_port, euid);
       _exit(0);
     } else {
@@ -1120,7 +1120,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
 
   /* Setup reliable connection, for large config changes */
   if ((port.m_fd = socket(port.m_family, SOCK_STREAM, 0)) < 0) {
-    mgmt_elog(stderr, "[bindProxyPort] Unable to create socket : %s\n", strerror(errno));
+    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to create socket : %s\n", strerror(errno));
     _exit(1);
   }
 
@@ -1137,11 +1137,11 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
 
   if (port.m_family == AF_INET6) {
     if (setsockopt(port.m_fd, IPPROTO_IPV6, IPV6_V6ONLY, SOCKOPT_ON, sizeof(int)) < 0) {
-      mgmt_elog(stderr, "[bindProxyPort] Unable to set socket options: %d : %s\n", port.m_port, strerror(errno));
+      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set socket options: %d : %s\n", port.m_port, strerror(errno));
     }
   }
   if (setsockopt(port.m_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof(int)) < 0) {
-    mgmt_elog(stderr, "[bindProxyPort] Unable to set socket options: %d : %s\n", port.m_port, strerror(errno));
+    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set socket options: %d : %s\n", port.m_port, strerror(errno));
     _exit(1);
   }
 
@@ -1149,7 +1149,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
 #if TS_USE_TPROXY
     Debug("http_tproxy", "Listen port %d inbound transparency enabled.\n", port.m_port);
     if (setsockopt(port.m_fd, SOL_IP, TS_IP_TRANSPARENT, &one, sizeof(one)) == -1) {
-      mgmt_elog(stderr, "[bindProxyPort] Unable to set transparent socket option [%d] %s\n", errno, strerror(errno));
+      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set transparent socket option [%d] %s\n", errno, strerror(errno));
       _exit(1);
     }
 #else
@@ -1167,12 +1167,12 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
     if (m_inbound_ip4.isValid()) ip.assign(m_inbound_ip4);
     else ip.setToAnyAddr(AF_INET);
   } else {
-    mgmt_elog(stderr, "[bindProxyPort] Proxy port with invalid address type %d\n", port.m_family);
+    mgmt_elog(stderr, 0, "[bindProxyPort] Proxy port with invalid address type %d\n", port.m_family);
     _exit(1);
   }
   ip.port() = htons(port.m_port);
   if (bind(port.m_fd, &ip.sa, ats_ip_size(&ip)) < 0) {
-    mgmt_elog(stderr, "[bindProxyPort] Unable to bind socket: %d : %s\n", port.m_port, strerror(errno));
+    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to bind socket: %d : %s\n", port.m_port, strerror(errno));
     _exit(1);
   }
 
@@ -1182,7 +1182,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
   if (port.m_port < 1024 && euid != 0) {
     if (privBoost == true) {
       if (removeRootPriv(saved_euid) == false) {
-        mgmt_elog(stderr, "[bindProxyPort] Unable to reset permissions to euid %d.  Exiting...\n", getuid());
+        mgmt_elog(stderr, 0, "[bindProxyPort] Unable to reset permissions to euid %d.  Exiting...\n", getuid());
         _exit(1);
       }
     }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Main.cc
----------------------------------------------------------------------
diff --git a/mgmt/Main.cc b/mgmt/Main.cc
index f752220..8dde9b6 100644
--- a/mgmt/Main.cc
+++ b/mgmt/Main.cc
@@ -132,10 +132,10 @@ check_lockfile()
 #else
       fprintf(stderr, "FATAL: Lockfile '%s' says server already running as PID %d\n", lockfile, holding_pid);
 #endif
-      mgmt_elog(stderr, "FATAL: Lockfile '%s' says server already running as PID %d\n", lockfile, holding_pid);
+      mgmt_elog(stderr, 0, "FATAL: Lockfile '%s' says server already running as PID %d\n", lockfile, holding_pid);
     } else {
       fprintf(stderr, "FATAL: Can't open server lockfile '%s' (%s)\n", lockfile, (reason ? reason : "Unknown Reason"));
-      mgmt_elog(stderr, "FATAL: Can't open server lockfile '%s' (%s)\n",
+      mgmt_elog(stderr, 0, "FATAL: Can't open server lockfile '%s' (%s)\n",
                 lockfile, (reason ? reason : "Unknown Reason"));
     }
     exit(1);
@@ -150,17 +150,17 @@ check_lockfile()
   if (err != 1) {
     char *reason = strerror(-err);
     fprintf(stderr, "FATAL: Can't acquire manager lockfile '%s'", lockfile);
-    mgmt_elog(stderr, "FATAL: Can't acquire manager lockfile '%s'", lockfile);
+    mgmt_elog(stderr, 0, "FATAL: Can't acquire manager lockfile '%s'", lockfile);
     if (err == 0) {
 #if defined(solaris)
       fprintf(stderr, " (Lock file held by process ID %d)\n", (int)holding_pid);
 #else
       fprintf(stderr, " (Lock file held by process ID %d)\n", holding_pid);
 #endif
-      mgmt_elog(stderr, " (Lock file held by process ID %d)\n", holding_pid);
+      mgmt_elog(stderr, 0, " (Lock file held by process ID %d)\n", holding_pid);
     } else if (reason) {
       fprintf(stderr, " (%s)\n", reason);
-      mgmt_elog(stderr, " (%s)\n", reason);
+      mgmt_elog(stderr, 0, " (%s)\n", reason);
     } else {
       fprintf(stderr, "\n");
     }
@@ -278,8 +278,8 @@ init_dirs()
   REC_ReadConfigString(buf, "proxy.config.config_dir", PATH_NAME_MAX);
   Layout::get()->relative(system_config_directory, PATH_NAME_MAX, buf);
   if (access(system_config_directory, R_OK) == -1) {
-    mgmt_elog("unable to access() config dir '%s': %d, %s\n", system_config_directory, errno, strerror(errno));
-    mgmt_elog("please set config path via 'proxy.config.config_dir' \n");
+    mgmt_elog(0, "unable to access() config dir '%s': %d, %s\n", system_config_directory, errno, strerror(errno));
+    mgmt_elog(0, "please set config path via 'proxy.config.config_dir' \n");
     _exit(1);
   }
 
@@ -288,16 +288,16 @@ init_dirs()
   REC_ReadConfigString(buf, "proxy.config.local_state_dir", PATH_NAME_MAX);
   Layout::get()->relative(system_runtime_dir, PATH_NAME_MAX, buf);
   if (access(system_runtime_dir, R_OK) == -1) {
-    mgmt_elog("unable to access() local state dir '%s': %d, %s\n", system_runtime_dir, errno, strerror(errno));
-    mgmt_elog("please set 'proxy.config.local_state_dir'\n");
+    mgmt_elog(0, "unable to access() local state dir '%s': %d, %s\n", system_runtime_dir, errno, strerror(errno));
+    mgmt_elog(0, "please set 'proxy.config.local_state_dir'\n");
     _exit(1);
   }
 
   REC_ReadConfigString(buf, "proxy.config.log.logfile_dir", PATH_NAME_MAX);
   Layout::get()->relative(system_log_dir, PATH_NAME_MAX, buf);
   if (access(system_log_dir, W_OK) == -1) {
-    mgmt_elog("unable to access() log dir'%s': %d, %s\n", system_log_dir, errno, strerror(errno));
-    mgmt_elog("please set 'proxy.config.log.logfile_dir'\n");
+    mgmt_elog(0, "unable to access() log dir'%s': %d, %s\n", system_log_dir, errno, strerror(errno));
+    mgmt_elog(0, "please set 'proxy.config.log.logfile_dir'\n");
     _exit(1);
   }
 }
@@ -307,8 +307,8 @@ chdir_root()
 {
 
   if (system_root_dir[0] && (chdir(system_root_dir) < 0)) {
-    mgmt_elog("unable to change to root directory \"%s\" [%d '%s']\n", system_root_dir, errno, strerror(errno));
-    mgmt_elog(" please set correct path in env variable TS_ROOT \n");
+    mgmt_elog(0, "unable to change to root directory \"%s\" [%d '%s']\n", system_root_dir, errno, strerror(errno));
+    mgmt_elog(0, " please set correct path in env variable TS_ROOT \n");
     exit(1);
   } else {
     mgmt_log("[TrafficManager] using root directory '%s'\n",system_root_dir);
@@ -357,7 +357,7 @@ Errata_Logger(ts::Errata const& err) {
     while (n && (buff[n-1] == '\n' || buff[n-1] == '\r'))
       buff[--n] = 0;
     // log it.
-    if (code > 1) mgmt_elog("[WCCP]%s", buff);
+    if (code > 1) mgmt_elog(0, "[WCCP]%s", buff);
     else if (code > 0) mgmt_log("[WCCP]%s", buff);
     else Debug("WCCP", "%s", buff);
   }
@@ -627,13 +627,13 @@ main(int argc, char **argv)
     ink_assert(found);
 
     if (!found) {
-      mgmt_elog("Could not read %s.  Defaulting to DAEMON\n", sys_var);
+      mgmt_elog(0, "Could not read %s.  Defaulting to DAEMON\n", sys_var);
       facility_int = LOG_DAEMON;
     } else {
       facility_int = facility_string_to_int(facility_str);
       ats_free(facility_str);
       if (facility_int < 0) {
-        mgmt_elog("Bad syslog facility specified.  Defaulting to DAEMON\n");
+        mgmt_elog(0, "Bad syslog facility specified.  Defaulting to DAEMON\n");
         facility_int = LOG_DAEMON;
       }
     }
@@ -709,7 +709,7 @@ main(int argc, char **argv)
   in_addr_t group_addr_ip = inet_network(group_addr);
 
   if (!(min_ip < group_addr_ip && group_addr_ip < max_ip)) {
-    mgmt_fatal("[TrafficManager] Multi-Cast group addr '%s' is not in the permitted range of %s\n",
+    mgmt_fatal(0, "[TrafficManager] Multi-Cast group addr '%s' is not in the permitted range of %s\n",
                group_addr, "224.0.1.0 - 239.255.255.255");
   }
 
@@ -835,8 +835,8 @@ SignalAlrmHandler(int /* sig ATS_UNUSED */)
 #endif
 {
   /*
-     fprintf(stderr,"[TrafficManager] ==> SIGALRM received\n");
-     mgmt_elog(stderr,"[TrafficManager] ==> SIGALRM received\n");
+     fprintf(stderr, "[TrafficManager] ==> SIGALRM received\n");
+     mgmt_elog(stderr, 0, "[TrafficManager] ==> SIGALRM received\n");
    */
 #if !defined(linux) && !defined(freebsd) && !defined(darwin)
   if (t) {
@@ -846,10 +846,10 @@ SignalAlrmHandler(int /* sig ATS_UNUSED */)
 #else
       fprintf(stderr, "[TrafficManager] ==> User Alarm from pid: %d uid: %d\n", t->si_pid, t->si_uid);
 #endif
-      mgmt_elog(stderr, "[TrafficManager] ==> User Alarm from pid: %d uid: %d\n", t->si_pid, t->si_uid);
+      mgmt_elog(stderr, 0, "[TrafficManager] ==> User Alarm from pid: %d uid: %d\n", t->si_pid, t->si_uid);
     } else {
       fprintf(stderr, "[TrafficManager] ==> Kernel Alarm Reason: %d\n", t->si_code);
-      mgmt_elog(stderr, "[TrafficManager] ==> Kernel Alarm Reason: %d\n", t->si_code);
+      mgmt_elog(stderr, 0, "[TrafficManager] ==> Kernel Alarm Reason: %d\n", t->si_code);
     }
   }
 #endif
@@ -877,10 +877,10 @@ SignalHandler(int sig)
 #else
       fprintf(stderr, "[TrafficManager] ==> User Sig %d from pid: %d uid: %d\n", sig, t->si_pid, t->si_uid);
 #endif
-      mgmt_elog(stderr, "[TrafficManager] ==> User Sig %d from pid: %d uid: %d\n", sig, t->si_pid, t->si_uid);
+      mgmt_elog(stderr, 0, "[TrafficManager] ==> User Sig %d from pid: %d uid: %d\n", sig, t->si_pid, t->si_uid);
     } else {
       fprintf(stderr, "[TrafficManager] ==> Kernel Sig %d; Reason: %d\n", sig, t->si_code);
-      mgmt_elog(stderr, "[TrafficManager] ==> Kernel Sig %d; Reason: %d\n", sig, t->si_code);
+      mgmt_elog(stderr, 0, "[TrafficManager] ==> Kernel Sig %d; Reason: %d\n", sig, t->si_code);
     }
   }
 #endif
@@ -896,7 +896,7 @@ SignalHandler(int sig)
     return;
   }
   fprintf(stderr, "[TrafficManager] ==> Cleaning up and reissuing signal #%d\n", sig);
-  mgmt_elog(stderr, "[TrafficManager] ==> Cleaning up and reissuing signal #%d\n", sig);
+  mgmt_elog(stderr, 0, "[TrafficManager] ==> Cleaning up and reissuing signal #%d\n", sig);
 
   if (lmgmt && !clean) {
     clean = 1;
@@ -926,11 +926,11 @@ SignalHandler(int sig)
     abort();
   default:
     fprintf(stderr, "[TrafficManager] ==> signal #%d\n", sig);
-    mgmt_elog(stderr, "[TrafficManager] ==> signal #%d\n", sig);
+    mgmt_elog(stderr, 0, "[TrafficManager] ==> signal #%d\n", sig);
     _exit(sig);
   }
   fprintf(stderr, "[TrafficManager] ==> signal2 #%d\n", sig);
-  mgmt_elog(stderr, "[TrafficManager] ==> signal2 #%d\n", sig);
+  mgmt_elog(stderr, 0, "[TrafficManager] ==> signal2 #%d\n", sig);
   _exit(sig);
 }                               /* End SignalHandler */
 
@@ -1063,7 +1063,7 @@ fileUpdated(char *fname, bool incVersion)
   } else if (strcmp(fname, "prefetch.config") == 0) {
     lmgmt->signalFileChange("proxy.config.prefetch.config_file");
   } else {
-    mgmt_elog(stderr, "[fileUpdated] Unknown config file updated '%s'\n", fname);
+    mgmt_elog(stderr, 0, "[fileUpdated] Unknown config file updated '%s'\n", fname);
 
   }
   return;
@@ -1133,7 +1133,7 @@ runAsUser(char *userName)
 
 
     if (userName == NULL || userName[0] == '\0') {
-      mgmt_elog(stderr, "[runAsUser] Fatal Error: proxy.config.admin.user_id is not set\n", userName, strerror(errno));
+      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: proxy.config.admin.user_id is not set\n");
       _exit(1);
     }
 
@@ -1159,12 +1159,12 @@ runAsUser(char *userName)
     }
 
     if (result == NULL) {
-      mgmt_elog(stderr, "[runAsUser] Fatal Error: Unable to get info about user %s : %s\n", userName, strerror(errno));
+      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Unable to get info about user %s : %s\n", userName, strerror(errno));
       _exit(1);
     }
 
     if (setegid(result->pw_gid) != 0 || seteuid(result->pw_uid) != 0) {
-      mgmt_elog(stderr, "[runAsUser] Fatal Error: Unable to switch to user %s : %s\n", userName, strerror(errno));
+      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Unable to switch to user %s : %s\n", userName, strerror(errno));
       _exit(1);
     }
 
@@ -1175,7 +1175,7 @@ runAsUser(char *userName)
     Debug("lm", "[runAsUser] Running with uid: '%d' euid: '%d'\n", uid, euid);
 
     if (uid != result->pw_uid && euid != result->pw_uid) {
-      mgmt_elog(stderr, "[runAsUser] Fatal Error: Failed to switch to user %s\n", userName);
+      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Failed to switch to user %s\n", userName);
       _exit(1);
     }
 
@@ -1186,7 +1186,7 @@ runAsUser(char *userName)
 
 #if TS_USE_POSIX_CAP
     if (0 != restoreCapabilities()) {
-      mgmt_elog(stderr, "[runAsUser] Error: Failed to restore capabilities after switch to user %s.\n", userName);
+      mgmt_elog(stderr, 0, "[runAsUser] Error: Failed to restore capabilities after switch to user %s.\n", userName);
     }
 #endif
 
@@ -1217,7 +1217,7 @@ extractConfigInfo(char *mgmt_path, const char *recs_conf, char *userName, int *f
     if (!(fin = fopen(file, "r"))) {
       ink_filepath_make(file, sizeof(file), mgmt_path, recs_conf);
       if (!(fin = fopen(file, "r"))) {
-        mgmt_elog(stderr, "[extractConfigInfo] Unable to open config file(%s)\n", file);
+        mgmt_elog(stderr, errno, "[extractConfigInfo] Unable to open config file(%s)\n", file);
         _exit(1);
       }
     }
@@ -1238,12 +1238,12 @@ extractConfigInfo(char *mgmt_path, const char *recs_conf, char *userName, int *f
     }
     fclose(fin);
   } else {
-    mgmt_elog(stderr, "[extractConfigInfo] Fatal Error: unable to access records file\n");
+    mgmt_elog(stderr, 0, "[extractConfigInfo] Fatal Error: unable to access records file\n");
     _exit(1);
   }
 
   if (useridFound == false) {
-    mgmt_elog(stderr, "[extractConfigInfo] Fatal Error: proxy.config.admin.user_id is not set\n");
+    mgmt_elog(stderr, 0, "[extractConfigInfo] Fatal Error: proxy.config.admin.user_id is not set\n");
     _exit(1);
   }
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/ProcessManager.cc
----------------------------------------------------------------------
diff --git a/mgmt/ProcessManager.cc b/mgmt/ProcessManager.cc
index b582cec..5490a24 100644
--- a/mgmt/ProcessManager.cc
+++ b/mgmt/ProcessManager.cc
@@ -151,7 +151,7 @@ ProcessManager::processSignalQueue()
     Debug("pmgmt", "[ProcessManager] ==> Signalling local manager '%d'\n", mh->msg_id);
 
     if (require_lm && mgmt_write_pipe(local_manager_sockfd, (char *) mh, sizeof(MgmtMessageHdr) + mh->data_len) <= 0) {
-      mgmt_fatal(stderr, "[ProcessManager::processSignalQueue] Error writing message!");
+      mgmt_fatal(stderr, errno, "[ProcessManager::processSignalQueue] Error writing message!");
       //ink_assert(enqueue(mgmt_signal_queue, mh));
     } else {
       ats_free(mh);
@@ -188,15 +188,15 @@ ProcessManager::initLMConnection()
   servlen = strlen(serv_addr.sun_path) + sizeof(serv_addr.sun_family);
 #endif
   if ((local_manager_sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
-    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Unable to create socket\n");
+    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Unable to create socket\n");
   }
 
   if (fcntl(local_manager_sockfd, F_SETFD, 1) < 0) {
-    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Unable to set close-on-exec\n");
+    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Unable to set close-on-exec\n");
   }
 
   if ((connect(local_manager_sockfd, (struct sockaddr *) &serv_addr, servlen)) < 0) {
-    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Connect failed\n");
+    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Connect failed\n");
   }
 
   data_len = sizeof(pid_t);
@@ -205,19 +205,19 @@ ProcessManager::initLMConnection()
   mh_full->data_len = data_len;
   memcpy((char *) mh_full + sizeof(MgmtMessageHdr), &(pid), data_len);
   if (mgmt_write_pipe(local_manager_sockfd, (char *) mh_full, sizeof(MgmtMessageHdr) + data_len) <= 0) {
-    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error writing message!\n");
+    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error writing message!\n");
   }
 
   /* Read SYNC_KEY from manager */
   if (mgmt_read_pipe(local_manager_sockfd, (char *) &mh_hdr, sizeof(MgmtMessageHdr)) <= 0) {
-    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error reading sem message!\n");
+    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error reading sem message!\n");
   } else {
     // coverity[uninit_use]
     mh_full = (MgmtMessageHdr *) alloca(sizeof(MgmtMessageHdr) + mh_hdr.data_len);
     memcpy(mh_full, &mh_hdr, sizeof(MgmtMessageHdr));
     sync_key_raw = (char *) mh_full + sizeof(MgmtMessageHdr);
     if (mgmt_read_pipe(local_manager_sockfd, sync_key_raw, mh_hdr.data_len) < 0) {
-      mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error reading sem message!\n");
+      mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error reading sem message!\n");
     }
   }
 
@@ -266,19 +266,19 @@ ProcessManager::pollLMConnection()
           Debug("pmgmt", "[ProcessManager::pollLMConnection] Message: '%d'", mh_full->msg_id);
           handleMgmtMsgFromLM(mh_full);
         } else if (res < 0) {
-          mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Error in read!");
+          mgmt_fatal(stderr, errno, "[ProcessManager::pollLMConnection] Error in read!");
         }
       } else if (res < 0) {
-        mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Error in read!");
+        mgmt_fatal(stderr, errno, "[ProcessManager::pollLMConnection] Error in read!");
       }
       // handle EOF
       if (res == 0) {
         close_socket(local_manager_sockfd);
-        mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Lost Manager EOF!");
+        mgmt_fatal(stderr, 0, "[ProcessManager::pollLMConnection] Lost Manager EOF!");
       }
 
     } else if (num < 0) {       /* Error */
-      mgmt_elog(stderr, "[ProcessManager::pollLMConnection] select failed or was interrupted (%d)\n", errno);
+      mgmt_elog(stderr, 0, "[ProcessManager::pollLMConnection] select failed or was interrupted (%d)\n", errno);
     }
 
   }
@@ -332,7 +332,7 @@ ProcessManager::handleMgmtMsgFromLM(MgmtMessageHdr * mh)
     signalMgmtEntity(MGMT_EVENT_LIBRECORDS, data_raw, mh->data_len);
     break;
   default:
-    mgmt_elog(stderr, "[ProcessManager::pollLMConnection] unknown type %d\n", mh->msg_id);
+    mgmt_elog(stderr, 0, "[ProcessManager::pollLMConnection] unknown type %d\n", mh->msg_id);
     break;
   }
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Rollback.cc
----------------------------------------------------------------------
diff --git a/mgmt/Rollback.cc b/mgmt/Rollback.cc
index 76ed82e..0a4c961 100644
--- a/mgmt/Rollback.cc
+++ b/mgmt/Rollback.cc
@@ -81,9 +81,9 @@ Rollback::Rollback(const char *baseFileName, bool root_access_needed_)
   }
 
   if ((err = stat(system_config_directory, &s)) < 0) {
-    mgmt_elog("[Rollback::Rollback] unable to stat() directory '%s': %d %d, %s\n",
+    mgmt_elog(0, "[Rollback::Rollback] unable to stat() directory '%s': %d %d, %s\n",
               system_config_directory, err, errno, strerror(errno));
-    mgmt_elog("[Rollback::Rollback] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+    mgmt_elog(0, "[Rollback::Rollback] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
     _exit(1);
   }
 
@@ -157,7 +157,7 @@ Rollback::Rollback(const char *baseFileName, bool root_access_needed_)
           ats_free(alarmMsg);
           closeFile(fd);
         } else {
-          mgmt_fatal(stderr,
+          mgmt_fatal(stderr, 0,
                      "[RollBack::Rollback] Unable to find configuration file %s.\n\tCreation of a placeholder failed : %s\n",
                      fileName, strerror(errno));
         }
@@ -168,7 +168,7 @@ Rollback::Rollback(const char *baseFileName, bool root_access_needed_)
     } else {
       // If is there but we can not stat it, it is unusable to manager
       //   probably due to permissions problems.  Bail!
-      mgmt_fatal(stderr, "[RollBack::Rollback] Unable to find configuration file %s.\n\tStat failed : %s\n",
+      mgmt_fatal(stderr, 0, "[RollBack::Rollback] Unable to find configuration file %s.\n\tStat failed : %s\n",
                  fileName, strerror(errno));
     }
   } else {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/api/NetworkUtilsLocal.cc
----------------------------------------------------------------------
diff --git a/mgmt/api/NetworkUtilsLocal.cc b/mgmt/api/NetworkUtilsLocal.cc
index 595f007..03b4666 100644
--- a/mgmt/api/NetworkUtilsLocal.cc
+++ b/mgmt/api/NetworkUtilsLocal.cc
@@ -67,7 +67,7 @@ socket_flush(struct SocketInfo sock_info)
         continue;
 
       Debug("ts_main", "[socket_read_n] socket read for version byte failed.\n");
-      mgmt_elog("[socket_flush] (TS_ERR_NET_READ) %s\n", strerror(errno));
+      mgmt_elog(0, "[socket_flush] (TS_ERR_NET_READ) %s\n", strerror(errno));
       return TS_ERR_NET_READ;
     }
 
@@ -79,7 +79,7 @@ socket_flush(struct SocketInfo sock_info)
     byte_read += ret;
   }
 
-  mgmt_elog("[socket_flush] uh oh! didn't finish flushing socket!\n");
+  mgmt_elog(0, "[socket_flush] uh oh! didn't finish flushing socket!\n");
   return TS_ERR_FAIL;
 }
 
@@ -110,7 +110,7 @@ socket_read_n(struct SocketInfo sock_info, char *buf, int bytes)
         continue;
 
       Debug("ts_main", "[socket_read_n] socket read for version byte failed.\n");
-      mgmt_elog("[socket_read_n] (TS_ERR_NET_READ) %s\n", strerror(errno));
+      mgmt_elog(0, "[socket_read_n] (TS_ERR_NET_READ) %s\n", strerror(errno));
       return TS_ERR_NET_READ;
     }
 
@@ -148,7 +148,7 @@ socket_write_n(struct SocketInfo sock_info, const char *buf, int bytes)
 
     if (ret < 0) {
       Debug("ts_main", "[socket_write_n] return error %s \n", strerror(errno));
-      mgmt_elog("[socket_write_n] %s\n", strerror(errno));
+      mgmt_elog(0, "[socket_write_n] %s\n", strerror(errno));
       if (errno == EAGAIN)
         continue;
 
@@ -156,7 +156,7 @@ socket_write_n(struct SocketInfo sock_info, const char *buf, int bytes)
     }
 
     if (ret == 0) {
-      mgmt_elog("[socket_write_n] %s\n", strerror(errno));
+      mgmt_elog(0, "[socket_write_n] %s\n", strerror(errno));
       return TS_ERR_NET_EOF;
     }
     // we are all good here
@@ -198,7 +198,7 @@ preprocess_msg(struct SocketInfo sock_info, OpType * op_t, char **req)
 
   // check if invalid op type
   if ((int) op > UNDEFINED_OP) {
-    mgmt_elog("[preprocess_msg] ERROR: %d is invalid op type\n", op);
+    mgmt_elog(0, "[preprocess_msg] ERROR: %d is invalid op type\n", op);
 
     // need to flush the invalid message from the socket
     if ((ret = socket_flush(sock_info)) != TS_ERR_NET_EOF)
@@ -211,7 +211,7 @@ preprocess_msg(struct SocketInfo sock_info, OpType * op_t, char **req)
   // now read the request msg size
   ret = socket_read_n(sock_info, (char *) &req_len, SIZE_LEN);
   if (ret != TS_ERR_OKAY) {
-    mgmt_elog("[preprocess_msg] ERROR %d reading msg size\n", ret);
+    mgmt_elog(0, "[preprocess_msg] ERROR %d reading msg size\n", ret);
     Debug("ts_main", "[preprocess_msg] ERROR %d reading msg size\n", ret);
     goto Lerror;
   }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/cluster/ClusterCom.cc
----------------------------------------------------------------------
diff --git a/mgmt/cluster/ClusterCom.cc b/mgmt/cluster/ClusterCom.cc
index e0ef793..0fac4ea 100644
--- a/mgmt/cluster/ClusterCom.cc
+++ b/mgmt/cluster/ClusterCom.cc
@@ -189,11 +189,11 @@ drainIncomingChannel(void *arg)
       int clilen = sizeof(cli_addr);
       int req_fd = mgmt_accept(lmgmt->ccom->reliable_server_fd, (struct sockaddr *) &cli_addr, &clilen);
       if (req_fd < 0) {
-        mgmt_elog(stderr, "[drainIncomingChannel] error accepting " "reliable connection\n");
+        mgmt_elog(stderr, errno, "[drainIncomingChannel] error accepting " "reliable connection\n");
         continue;
       }
       if (fcntl(req_fd, F_SETFD, 1) < 0) {
-        mgmt_elog(stderr, "[drainIncomingChannel] Unable to set close " "on exec flag\n");
+        mgmt_elog(stderr, errno, "[drainIncomingChannel] Unable to set close " "on exec flag\n");
         close(req_fd);
         continue;
       }
@@ -239,7 +239,7 @@ drainIncomingChannel(void *arg)
 
           /* Wait for peer to read status */
           if (mgmt_readline(req_fd, message, 61440) != 0) {
-            mgmt_elog("[drainIncomingChannel] Connection not closed\n");
+            mgmt_elog(0, "[drainIncomingChannel] Connection not closed\n");
           }
         } else if (strstr(message, "map: ")) {
           /* Explicit virtual ip map request */
@@ -269,7 +269,7 @@ drainIncomingChannel(void *arg)
 
           /* Wait for peer to read status */
           if (mgmt_readline(req_fd, message, 61440) != 0) {
-            mgmt_elog("[drainIncomingChannel] Connection not closedx\n");
+            mgmt_elog(0, "[drainIncomingChannel] Connection not closed\n");
           }
 
         } else if (strstr(message, "file: ")) {
@@ -298,7 +298,7 @@ drainIncomingChannel(void *arg)
               Debug("ccom", "[drainIncomingChannel] file req: %s v: %d bytes: %d\n", fname, ver, (int)strlen(buff->bufPtr()));
             }
           } else {
-            mgmt_elog("[drainIncomingChannel] Error file req: %s ver: %d\n", fname, ver);
+            mgmt_elog(0, "[drainIncomingChannel] Error file req: %s ver: %d\n", fname, ver);
           }
 
           if (!stat) {
@@ -371,7 +371,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int mcport, char *group, i
 
   init = false;
   if (strlen(host) >= 1024) {
-    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] Hostname too large: %s\n", host);
+    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] Hostname too large: %s\n", host);
   }
   // the constructor does a memset() on broadcast_addr and receive_addr, initializing them
   // coverity[uninit_member]
@@ -408,11 +408,11 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int mcport, char *group, i
   found = (rec_err == REC_ERR_OKAY);
 
   if (!found) {
-    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] no cluster_configuration filename configured\n");
+    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] no cluster_configuration filename configured\n");
   }
 
   if (strlen(p) + strlen(cluster_file) >= 1024) {
-    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] path + filename too large\n");
+    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] path + filename too large\n");
   }
   // XXX: This allows to have absolute config cluster_configuration directive.
   //      If that file must be inside config directory (p) use
@@ -430,7 +430,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int mcport, char *group, i
     mgmt_log("[ClusterCom::ClusterCom] Node running on OS: '%s' Release: '%s'\n", sys_name, sys_release);
   } else {
     sys_name[0] = sys_release[0] = '\0';
-    mgmt_elog("[ClusterCom::ClusterCom] Unable to determime OS and release info\n");
+    mgmt_elog(errno, "[ClusterCom::ClusterCom] Unable to determime OS and release info\n");
   }
 
   /* Grab the proxy cluster port */
@@ -438,7 +438,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int mcport, char *group, i
   RecRegisterConfigUpdateCb("proxy.config.cluster.cluster_port", cluster_com_port_watcher, NULL);
 
   if (!(strlen(group) < (MAX_MC_GROUP_LEN - 1))) {
-    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] mc group length to large!\n");
+    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] mc group length too large!\n");
   }
 
   ink_strlcpy(mc_group, group, sizeof(mc_group));
@@ -636,7 +636,7 @@ ClusterCom::checkPeers(time_t * ticker)
      */
     if (num_peers != number_of_nodes) {
       if (cluster_file_rb->forceUpdate(buff) != OK_ROLLBACK) {
-        mgmt_elog("[ClusterCom::checkPeers] Failed update: cluster.config\n");
+        mgmt_elog(0, "[ClusterCom::checkPeers] Failed update: cluster.config\n");
         signal_alarm = true;    /* Throw the alarm after releasing the lock */
       } else {
         number_of_nodes = num_peers;    /* Update the static count */
@@ -789,7 +789,7 @@ ClusterCom::handleMultiCastMessage(char *message)
     handleMultiCastVMapPacket(last, ip);
     return;
   } else {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid type msg: '%s'\n", line);
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid type msg: '%s'\n", line);
     return;
   }
 
@@ -821,21 +821,21 @@ ClusterCom::handleMultiCastMessage(char *message)
   if ((line = strtok_r(NULL, "\n", &last)) == NULL)
     goto Lbogus;                /* Hostname of sender */
   if (strlen(line) >= sizeof(hostname) || sscanf(line, "hostname: %s", hostname) != 1) {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
     return;
   }
 
   if ((line = strtok_r(NULL, "\n", &last)) == NULL)
     goto Lbogus;                /* mc_port of sender */
   if (sscanf(line, "port: %d", &peer_cluster_port) != 1) {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
     return;
   }
 
   if ((line = strtok_r(NULL, "\n", &last)) == NULL)
     goto Lbogus;                /* rs_port of sender */
   if (sscanf(line, "ccomport: %d", &ccom_port) != 1) {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
     return;
   }
 
@@ -844,7 +844,7 @@ ClusterCom::handleMultiCastMessage(char *message)
     goto Lbogus;
   int64_t tt;
   if (sscanf(line, "time: %" PRId64 "", &tt) != 1) {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid message-line(%d) '%s'\n", __LINE__, line);
     return;
   }
   peer_wall_clock = (time_t)tt;
@@ -910,7 +910,7 @@ ClusterCom::handleMultiCastMessage(char *message)
 
 Lbogus:
   if (log_bogus_mc_msgs) {
-    mgmt_elog("[ClusterCom::handleMultiCastMessage] Bogus mc message-line\n");
+    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Bogus mc message-line\n");
     if (line) {
       Debug("ccom", "[ClusterCom::handleMultiCastMessage] Bogus mc message-line %s\n", line);
     }
@@ -955,7 +955,7 @@ ClusterCom::handleMultiCastStatPacket(char *last, ClusterPeerInfo * peer)
             tmp_msg_val = ink_atoi64(v3 + 1);
         }
         if (!v2 || !v3) {
-          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
           return;
         }
         ink_assert(i == tmp_id && rec->data_type == tmp_type);
@@ -976,7 +976,7 @@ ClusterCom::handleMultiCastStatPacket(char *last, ClusterPeerInfo * peer)
         // the types specified are all have a defined constant size
         // coverity[secure_coding]
         if (sscanf(line, "%d:%d: %f", &tmp_id, (int *) &tmp_type, &tmp_msg_val) != 3) {
-          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
           return;
         }
         ink_assert(i == tmp_id && rec->data_type == tmp_type);
@@ -995,7 +995,7 @@ ClusterCom::handleMultiCastStatPacket(char *last, ClusterPeerInfo * peer)
         // the types specified are all have a defined constant size
         // coverity[secure_coding]
         if (sscanf(line, "%d:%d: %n", &tmp_id, (int *) &tmp_type, &ccons) != 2) {
-          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
           return;
         }
         tmp_msg_val = &line[ccons];
@@ -1161,7 +1161,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char *ip)
     file_update_failure = false;
     // coverity[secure_coding]
     if (sscanf(line, "%1023s %d %" PRId64 "\n", file, &ver, &tt) != 3) {
-      mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+      mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
       return;
     }
 
@@ -1228,7 +1228,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char *ip)
         }
 
         if (file_update_failure) {
-          mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Update failed\n");
+          mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Update failed\n");
         } else {
           mgmt_log(stderr, "[ClusterCom::handleMultiCastFilePacket] " "Updated '%s' o: %d n: %d\n", file, our_ver, ver);
         }
@@ -1237,7 +1237,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char *ip)
 
       }
     } else {
-      mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Unknown file seen: '%s'\n", file);
+      mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Unknown file seen: '%s'\n", file);
     }
   }
 
@@ -1277,7 +1277,7 @@ ClusterCom::handleMultiCastAlarmPacket(char *last, char *ip)
     // both types have a finite size
     // coverity[secure_coding]
     if (sscanf(line, "alarm: %d %n", &a, &ccons) != 1) {
-      mgmt_elog("[ClusterCom::handleMultiCastAlarmPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+      mgmt_elog(0, "[ClusterCom::handleMultiCastAlarmPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
       return;
     }
 
@@ -1316,7 +1316,7 @@ ClusterCom::handleMultiCastVMapPacket(char *last, char *ip)
     }
     // coverity[secure_coding]
     if (sscanf(line, "virt: %79s", vaddr) != 1) {
-      mgmt_elog("[ClusterCom::handleMultiCastVMapPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
+      mgmt_elog(0, "[ClusterCom::handleMultiCastVMapPacket] Invalid message-line(%d) '%s'\n", __LINE__, line);
       return;
     }
 
@@ -1424,7 +1424,7 @@ ClusterCom::constructSharedGenericPacket(char *message, int max, RecT packet_typ
     running_sum += strlen("type: stat\n");
     ink_release_assert(running_sum < max);
   } else {
-    mgmt_elog("[ClusterCom::constructSharedGenericPacket] Illegal type seen '%d'\n", packet_type);
+    mgmt_elog(0, "[ClusterCom::constructSharedGenericPacket] Illegal type seen '%d'\n", packet_type);
     return;
   }
 
@@ -1468,7 +1468,7 @@ ClusterCom::constructSharedGenericPacket(char *message, int max, RecT packet_typ
     ink_strlcpy(&message[running_sum], tmp, (max - running_sum));
     running_sum += strlen(tmp);
   } else {
-    mgmt_elog(stderr, "[ClusterCom::constructSharedPacket] time failed\n");
+    mgmt_elog(stderr, errno, "[ClusterCom::constructSharedPacket] time failed\n");
   }
   ink_release_assert(running_sum < max);
 
@@ -1604,7 +1604,7 @@ ClusterCom::constructSharedFilePacket(char *message, int max)
       running_sum += strlen(tmp);
       ink_release_assert(running_sum < max);
     } else {
-      mgmt_elog("[ClusterCom::constructSharedFilePacket] Invalid base name? '%s'\n", line);
+      mgmt_elog(0, "[ClusterCom::constructSharedFilePacket] Invalid base name? '%s'\n", line);
     }
   } while ((line = strtok_r(NULL, "\n", &last)));
 
@@ -1631,14 +1631,14 @@ ClusterCom::establishChannels()
     if (reliable_server_port > 0) {
       /* Setup reliable connection, for large config changes */
       if ((reliable_server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-        mgmt_fatal("[ClusterCom::establishChannels] Unable to create socket\n");
+        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to create socket\n");
       }
       if (fcntl(reliable_server_fd, F_SETFD, 1) < 0) {
-        mgmt_fatal("[ClusterCom::establishChannels] Unable to set close-on-exec.\n");
+        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to set close-on-exec.\n");
       }
 
       if (setsockopt(reliable_server_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof(int)) < 0) {
-        mgmt_fatal("[ClusterCom::establishChannels] Unable to set socket options.\n");
+        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to set socket options.\n");
       }
 
       memset(&serv_addr, 0, sizeof(serv_addr));
@@ -1647,11 +1647,11 @@ ClusterCom::establishChannels()
       serv_addr.sin_port = htons(reliable_server_port);
 
       if ((bind(reliable_server_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))) < 0) {
-        mgmt_fatal("[ClusterCom::establishChannels] Unable to bind socket (port:%d)\n", reliable_server_port);
+        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to bind socket (port:%d)\n", reliable_server_port);
       }
 
       if ((listen(reliable_server_fd, 10)) < 0) {
-        mgmt_fatal("[ClusterCom::establishChannels] Unable to listen on socket\n");
+        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to listen on socket\n");
       }
     }
   }
@@ -1670,16 +1670,16 @@ void
 ClusterCom::establishBroadcastChannel(void)
 {
   if ((broadcast_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to open socket.\n");
+    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to open socket.\n");
   }
 
   if (fcntl(broadcast_fd, F_SETFD, 1) < 0) {
-    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to set close-on-exec.\n");
+    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to set close-on-exec.\n");
   }
 
   int one = 1;
   if (setsockopt(broadcast_fd, SOL_SOCKET, SO_REUSEADDR, (const char *) &one, sizeof(one)) < 0) {
-    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to set socket options.\n");
+    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to set socket options.\n");
   }
 
   memset(&broadcast_addr, 0, sizeof(broadcast_addr));
@@ -1691,12 +1691,12 @@ ClusterCom::establishBroadcastChannel(void)
 
   /* Set ttl(max forwards), 1 should be default(same subnetwork). */
   if (setsockopt(broadcast_fd, IPPROTO_IP, IP_MULTICAST_TTL, (const char *) &ttl, sizeof(ttl)) < 0) {
-    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to setsocketopt, ttl\n");
+    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to setsocketopt, ttl\n");
   }
 
   /* Disable broadcast loopback, that is broadcasting to self */
   if (setsockopt(broadcast_fd, IPPROTO_IP, IP_MULTICAST_LOOP, (const char *) &loop, sizeof(loop)) < 0) {
-    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to disable loopback\n");
+    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to disable loopback\n");
   }
 
   return;
@@ -1717,7 +1717,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
       Debug("ccom", "establishReceiveChannel: Unable to open socket");
       return 1;
     }
-    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to open socket\n");
+    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to open socket\n");
   }
 
   if (fcntl(receive_fd, F_SETFD, 1) < 0) {
@@ -1727,7 +1727,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
       Debug("ccom", "establishReceiveChannel: Unable to set close-on-exec");
       return 1;
     }
-    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to set close-on-exec.\n");
+    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to set close-on-exec.\n");
   }
 
   int one = 1;
@@ -1738,7 +1738,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
       Debug("ccom", "establishReceiveChannel: Unable to set socket to reuse addr");
       return 1;
     }
-    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to set socket to reuse addr.\n");
+    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to set socket to reuse addr.\n");
   }
 
   memset(&receive_addr, 0, sizeof(receive_addr));
@@ -1753,7 +1753,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
       Debug("ccom", "establishReceiveChannel: Unable to bind to socket, port %d", mc_port);
       return 1;
     }
-    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to bind to socket, port %d\n", mc_port);
+    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to bind to socket, port %d\n", mc_port);
   }
   /* Add ourselves to the group */
   struct ip_mreq mc_request;
@@ -1767,7 +1767,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
 
       return 1;
     }
-    mgmt_fatal("[ClusterCom::establishReceiveChannel] Can't add ourselves to multicast group %s\n", mc_group);
+    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Can't add ourselves to multicast group %s\n", mc_group);
   }
 
   return 0;
@@ -1784,7 +1784,7 @@ bool
 ClusterCom::sendOutgoingMessage(char *buf, int len)
 {
   if (mgmt_sendto(broadcast_fd, buf, len, 0, (struct sockaddr *) &broadcast_addr, sizeof(broadcast_addr)) < 0) {
-    mgmt_elog("[ClusterCom::sendOutgoingMessage] Message send failed\n");
+    mgmt_elog(errno, "[ClusterCom::sendOutgoingMessage] Message send failed\n");
     return false;
   }
   return true;
@@ -1898,7 +1898,7 @@ ClusterCom::rl_sendReliableMessage(unsigned long addr, const char *buf, int len)
 
 
   if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    mgmt_elog("[ClusterCom::rl_sendReliableMessage] Unable to create socket\n");
+    mgmt_elog(errno, "[ClusterCom::rl_sendReliableMessage] Unable to create socket\n");
     return false;
   }
   if (fcntl(fd, F_SETFD, 1) < 0) {
@@ -1908,13 +1908,13 @@ ClusterCom::rl_sendReliableMessage(unsigned long addr, const char *buf, int len)
   }
 
   if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
-    mgmt_elog("[ClusterCom::rl_sendReliableMessage] Unable to connect to peer\n");
+    mgmt_elog(errno, "[ClusterCom::rl_sendReliableMessage] Unable to connect to peer\n");
     close_socket(fd);
     return false;
   }
 
   if (mgmt_writeline(fd, buf, len) != 0) {
-    mgmt_elog(stderr, "[ClusterCom::rl_sendReliableMessage] Write failed\n");
+    mgmt_elog(stderr, errno, "[ClusterCom::rl_sendReliableMessage] Write failed\n");
     close_socket(fd);
     return false;
   }
@@ -1955,14 +1955,14 @@ ClusterCom::sendReliableMessage(unsigned long addr, char *buf, int len, char *re
   serv_addr.sin_port = htons(cport);
 
   if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to create socket\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to create socket\n");
     if (take_lock) {
       ink_mutex_release(&mutex);
     }
     return false;
   }
   if (fcntl(fd, F_SETFD, 1) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to set close-on-exec.\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to set close-on-exec.\n");
     if (take_lock) {
       ink_mutex_release(&mutex);
     }
@@ -1971,7 +1971,7 @@ ClusterCom::sendReliableMessage(unsigned long addr, char *buf, int len, char *re
   }
 
   if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to connect to peer\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to connect to peer\n");
     if (take_lock) {
       ink_mutex_release(&mutex);
     }
@@ -1980,7 +1980,7 @@ ClusterCom::sendReliableMessage(unsigned long addr, char *buf, int len, char *re
   }
 
   if (mgmt_writeline(fd, buf, len) != 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessage] Write failed\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Write failed\n");
     if (take_lock) {
       ink_mutex_release(&mutex);
     }
@@ -1989,7 +1989,7 @@ ClusterCom::sendReliableMessage(unsigned long addr, char *buf, int len, char *re
   }
 
   if (mgmt_readline(fd, reply, len2) == -1) {
-    mgmt_elog(stderr, "[ClusterCom::sendReliableMessage] Read failed\n");
+    mgmt_elog(stderr, errno, "[ClusterCom::sendReliableMessage] Read failed\n");
     perror("ClusterCom::sendReliableMessage");
     reply[0] = '\0';
     if (take_lock) {
@@ -2035,26 +2035,26 @@ ClusterCom::sendReliableMessageReadTillClose(unsigned long addr, char *buf, int
   serv_addr.sin_port = htons(cport);
 
   if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable create sock\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable create sock\n");
     ink_mutex_release(&mutex);
     return false;
   }
   if (fcntl(fd, F_SETFD, 1) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable to set close-on-exec.\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable to set close-on-exec.\n");
     ink_mutex_release(&mutex);
     close(fd);
     return false;
   }
 
   if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable to connect\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable to connect\n");
     ink_mutex_release(&mutex);
     close_socket(fd);
     return false;
   }
 
   if (mgmt_writeline(fd, buf, len) != 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Write failed\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Write failed\n");
     ink_mutex_release(&mutex);
     close_socket(fd);
     return false;
@@ -2072,7 +2072,7 @@ ClusterCom::sendReliableMessageReadTillClose(unsigned long addr, char *buf, int
   }
 
   if (res < 0) {
-    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Read failed\n");
+    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Read failed\n");
     perror("ClusterCom::sendReliableMessageReadTillClose");
     ink_mutex_release(&mutex);
     close_socket(fd);
@@ -2096,7 +2096,7 @@ ClusterCom::receiveIncomingMessage(char *buf, int max)
   int nbytes = 0, addr_len = sizeof(receive_addr);
 
   if ((nbytes = recvfrom(receive_fd, buf, max, 0, (struct sockaddr *) &receive_addr, (socklen_t *) & addr_len)) < 0) {
-    mgmt_elog(stderr, "[ClusterCom::receiveIncomingMessage] Receive failed\n");
+    mgmt_elog(stderr, errno, "[ClusterCom::receiveIncomingMessage] Receive failed\n");
   }
   return nbytes;
 }                               /* End ClusterCom::processIncomingMessages */
@@ -2304,7 +2304,7 @@ checkBackDoor(int req_fd, char *message)
 
     // coverity[secure_coding]
     if (sscanf(message, "read %s\n", variable) != 1) {
-      mgmt_elog("[ClusterCom::CBD] Invalid message-line(%d) '%s'\n", __LINE__, message);
+      mgmt_elog(0, "[ClusterCom::CBD] Invalid message-line(%d) '%s'\n", __LINE__, message);
       return false;
     }
 
@@ -2346,17 +2346,17 @@ checkBackDoor(int req_fd, char *message)
       if (found) {
         mgmt_writeline(req_fd, reply, rep_len);
       } else {
-        mgmt_elog("[checkBackDoor] record not found '%s'\n", variable);
+        mgmt_elog(0, "[checkBackDoor] record not found '%s'\n", variable);
       }
     } else {
-      mgmt_elog("[checkBackDoor] Unknown variable requested '%s'\n", variable);
+      mgmt_elog(0, "[checkBackDoor] Unknown variable requested '%s'\n", variable);
     }
     return true;
   } else if (strstr(message, "write ")) {
     char variable[1024], value[1024];
 
     if (sscanf(message, "write %s %s", variable, value) != 2) {
-      mgmt_elog("[ClusterCom::CBD] Invalid message-line(%d) '%s'\n", __LINE__, message);
+      mgmt_elog(0, "[ClusterCom::CBD] Invalid message-line(%d) '%s'\n", __LINE__, message);
       return false;
     }
     // TODO: I think this is correct, it used to do lmgmt->record_data-> ...
@@ -2364,7 +2364,7 @@ checkBackDoor(int req_fd, char *message)
       ink_strlcpy(reply, "\nRecord Updated\n\n", sizeof(reply));
       mgmt_writeline(req_fd, reply, strlen(reply));
     } else {
-      mgmt_elog("[checkBackDoor] Assignment to unknown variable requested '%s'\n", variable);
+      mgmt_elog(0, "[checkBackDoor] Assignment to unknown variable requested '%s'\n", variable);
     }
     return true;
   } else if (strstr(message, "peers")) {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/cluster/VMap.cc
----------------------------------------------------------------------
diff --git a/mgmt/cluster/VMap.cc b/mgmt/cluster/VMap.cc
index 51fa525..5539e6f 100644
--- a/mgmt/cluster/VMap.cc
+++ b/mgmt/cluster/VMap.cc
@@ -116,7 +116,7 @@ VMap::VMap(char *interface, unsigned long ip, ink_mutex * m)
     int len;
 
     if ((tmp_socket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-      mgmt_fatal(stderr, "[VMap::VMap] Unable to create socket for interface ioctls\n");
+      mgmt_fatal(stderr, errno, "[VMap::VMap] Unable to create socket for interface ioctls\n");
     }
     // INKqa06739
     // Fetch the list of network interfaces
@@ -131,7 +131,7 @@ VMap::VMap(char *interface, unsigned long ip, ink_mutex * m)
       ifc.ifc_buf = ifbuf;
       if (ioctl(tmp_socket, SIOCGIFCONF, &ifc) < 0) {
         if (errno != EINVAL || lastlen != 0) {
-          mgmt_fatal(stderr, "[VMap::VMap] Unable to read network interface configuration\n");
+          mgmt_fatal(stderr, errno, "[VMap::VMap] Unable to read network interface configuration\n");
         }
       } else {
         if (ifc.ifc_len == lastlen) {
@@ -273,7 +273,7 @@ VMap::lt_runGambit()
         ink_strlcpy(raddr, inet_ntoa(real_addr), sizeof(raddr));
         rl_remote_map(vaddr, raddr);
       } else if (!rl_map(vaddr)) {      /* We are the winner, map it to us */
-        mgmt_elog(stderr, "[VMap::lt_runGambit] Map failed for vaddr: %s\n", vaddr);
+        mgmt_elog(stderr, 0, "[VMap::lt_runGambit] Map failed for vaddr: %s\n", vaddr);
       } else {
         mgmt_log(stderr, "[VMap::lt_runGambit] Map succeeded for vaddr: %s\n", vaddr);
       }
@@ -379,7 +379,7 @@ VMap::lt_readAListFile(char *data)
                  " virtual ips\n", tmp_interface);
       }
     } else {
-      mgmt_elog(stderr, "[VMap::lt_readAListFile] VIP in config file but no interface"
+      mgmt_elog(stderr, 0, "[VMap::lt_readAListFile] VIP in config file but no interface"
                 " '%s' present on node.\n", tmp_interface);
     }
   }
@@ -455,7 +455,7 @@ VMap::rl_remote_map(char *virt_ip, char *real_ip)
 
   snprintf((char *) buf, sizeof(buf), "map: %s", virt_ip);
   if (!(lmgmt->ccom->sendReliableMessage(inet_addr(real_ip), buf, strlen(buf), reply, 4096, false))) {
-    mgmt_elog(stderr, "[VMap::rl_remote_map] Reliable send failed\n");
+    mgmt_elog(stderr, errno, "[VMap::rl_remote_map] Reliable send failed\n");
     return false;
   } else if (strcmp(reply, "map: failed") == 0) {
     mgmt_log(stderr, "[VMap::rl_remote_map] Mapping failed\n");
@@ -477,7 +477,7 @@ VMap::rl_remote_unmap(char *virt_ip, char *real_ip)
 
   snprintf((char *) buf, sizeof(buf), "unmap: %s", virt_ip);
   if (!(lmgmt->ccom->sendReliableMessage(inet_addr(real_ip), buf, strlen(buf), reply, 4096, false))) {
-    mgmt_elog(stderr, "[VMap::rl_remote_unmap] Reliable send failed\n");
+    mgmt_elog(stderr, errno, "[VMap::rl_remote_unmap] Reliable send failed\n");
     return false;
   } else if (strcmp((char *) reply, "unmap: failed") == 0) {
     mgmt_log(stderr, "[VMap::rl_remote_unmap] Mapping failed\n");
@@ -518,7 +518,7 @@ VMap::rl_map(char *virt_ip, char *real_ip)
   *entry = true;
 
   if (!real_ip) {
-    mgmt_elog("[VMap::rl_map] no real ip associated with virtual ip %s, mapping to local\n", buf);
+    mgmt_elog(0, "[VMap::rl_map] no real ip associated with virtual ip %s, mapping to local\n", buf);
     last_map_change = time(NULL);
   }
   ink_hash_table_insert(tmp, buf, (void *) entry);
@@ -593,7 +593,7 @@ VMap::rl_checkConflict(char *virt_ip)
       buf++;
       ink_strlcpy(buf2, buf, sizeof(buf2));
     } else {
-      mgmt_fatal(stderr, "[VMap::rl_checkConflict] Corrupt VMap entry('%s'), bailing\n", key);
+      mgmt_fatal(stderr, 0, "[VMap::rl_checkConflict] Corrupt VMap entry('%s'), bailing\n", key);
     }
     return ats_strdup(buf2);
   }
@@ -754,7 +754,7 @@ VMap::rl_boundTo(char *virt_ip)
         buf++;
         ink_strlcpy(buf2, buf, sizeof(buf2));
       } else {
-        mgmt_fatal(stderr, "[VMap::rl_boundTo] Corrupt VMap entry('%s'), bailing\n", key);
+        mgmt_fatal(stderr, 0, "[VMap::rl_boundTo] Corrupt VMap entry('%s'), bailing\n", key);
       }
       return (inet_addr(buf2));
     }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/MgmtUtils.cc
----------------------------------------------------------------------
diff --git a/mgmt/utils/MgmtUtils.cc b/mgmt/utils/MgmtUtils.cc
index 05cd022..275ff3e 100644
--- a/mgmt/utils/MgmtUtils.cc
+++ b/mgmt/utils/MgmtUtils.cc
@@ -304,7 +304,7 @@ mgmt_log(const char *message_format, ...)
  *   Same as above, but intended for errors.
  */
 void
-mgmt_elog(FILE * log, const char *message_format, ...)
+mgmt_elog(FILE * log, const int lerrno, const char *message_format, ...)
 {
   va_list ap;
   char extended_format[4096], message[4096];
@@ -313,23 +313,27 @@ mgmt_elog(FILE * log, const char *message_format, ...)
 
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   if (diags_init) {
-    int lerrno = errno;
-
     diags->print_va(NULL, DL_Error, NULL, message_format, ap);
-    diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    if (lerrno != 0) {
+      diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    }
   } else {
 #endif
     if (use_syslog) {
       snprintf(extended_format, sizeof(extended_format), "ERROR ==> %s", message_format);
       vsprintf(message, extended_format, ap);
       syslog(LOG_ERR, "%s", message);
-      syslog(LOG_ERR, " (last system error %d: %s)", errno, strerror(errno));
+      if (lerrno != 0) {
+        syslog(LOG_ERR, " (last system error %d: %s)", lerrno, strerror(lerrno));
+      }
     } else {
       snprintf(extended_format, sizeof(extended_format), "[E. Mgmt] ERROR ==> %s", message_format);
       vsprintf(message, extended_format, ap);
       ink_assert(fwrite(message, strlen(message), 1, log) == 1);
-      snprintf(message, sizeof(message), "(last system error %d: %s)", errno, strerror(errno));
-      ink_assert(fwrite(message, strlen(message), 1, log) == 1);
+      if (lerrno != 0) {
+        snprintf(message, sizeof(message), "(last system error %d: %s)", lerrno, strerror(lerrno));
+        ink_assert(fwrite(message, strlen(message), 1, log) == 1);
+      }
     }
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   }
@@ -341,7 +345,7 @@ mgmt_elog(FILE * log, const char *message_format, ...)
 
 
 void
-mgmt_elog(const char *message_format, ...)
+mgmt_elog(const int lerrno, const char *message_format, ...)
 {
   va_list ap;
   char extended_format[4096], message[4096];
@@ -350,9 +354,10 @@ mgmt_elog(const char *message_format, ...)
 
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   if (diags_init) {
-    int lerrno = errno;
     diags->print_va(NULL, DL_Error, NULL, message_format, ap);
-    diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    if (lerrno != 0) {
+      diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    }
   } else {
 #endif
 
@@ -360,13 +365,17 @@ mgmt_elog(const char *message_format, ...)
       snprintf(extended_format, sizeof(extended_format), "ERROR ==> %s", message_format);
       vsprintf(message, extended_format, ap);
       syslog(LOG_ERR, "%s", message);
-      syslog(LOG_ERR, " (last system error %d: %s)", errno, strerror(errno));
+      if (lerrno != 0) {
+        syslog(LOG_ERR, " (last system error %d: %s)", lerrno, strerror(lerrno));
+      }
     } else {
       snprintf(extended_format, sizeof(extended_format), "Manager ERROR: %s", message_format);
       vsprintf(message, extended_format, ap);
       ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
-      snprintf(message, sizeof(message), "(last system error %d: %s)", errno, strerror(errno));
-      ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
+      if (lerrno != 0) {
+        snprintf(message, sizeof(message), "(last system error %d: %s)", lerrno, strerror(lerrno));
+        ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
+      }
     }
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   }
@@ -382,7 +391,7 @@ mgmt_elog(const char *message_format, ...)
  * asserts false.
  */
 void
-mgmt_fatal(FILE * log, const char *message_format, ...)
+mgmt_fatal(FILE * log, const int lerrno, const char *message_format, ...)
 {
   va_list ap;
   char extended_format[4096], message[4096];
@@ -392,9 +401,10 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
 
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   if (diags_init) {
-    int lerrno = errno;
     diags->print_va(NULL, DL_Fatal, NULL, message_format, ap);
-    diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    if (lerrno != 0) {
+      diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    }
   } else {
 #endif
 
@@ -407,13 +417,13 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
       syslog(LOG_ERR, "%s", message);
     }
 
-
-
-    perror("[E. Mgmt] ");
-
-    if (use_syslog) {
-      syslog(LOG_ERR, " (last system error %d: %s)", errno, strerror(errno));
+    if (lerrno != 0) {
+      fprintf(stderr, "[E. Mgmt] last system error %d: %s", lerrno, strerror(lerrno));
+      if (use_syslog) {
+        syslog(LOG_ERR, " (last system error %d: %s)", lerrno, strerror(lerrno));
+      }
     }
+
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   }
 #endif
@@ -427,7 +437,7 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
 
 
 void
-mgmt_fatal(const char *message_format, ...)
+mgmt_fatal(const int lerrno, const char *message_format, ...)
 {
   va_list ap;
   char extended_format[4096], message[4096];
@@ -436,9 +446,10 @@ mgmt_fatal(const char *message_format, ...)
 
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   if (diags_init) {
-    int lerrno = errno;
     diags->print_va(NULL, DL_Fatal, NULL, message_format, ap);
-    diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    if (lerrno != 0) {
+      diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n", lerrno, strerror(lerrno));
+    }
   } else {
 #endif
 
@@ -451,12 +462,12 @@ mgmt_fatal(const char *message_format, ...)
       syslog(LOG_ERR, "%s", message);
     }
 
+    if (lerrno != 0) {
+      fprintf(stderr, "[E. Mgmt] last system error %d: %s", lerrno, strerror(lerrno));
 
-
-    perror("[E. Mgmt] ");
-
-    if (use_syslog) {
-      syslog(LOG_ERR, " (last system error %d: %s)", errno, strerror(errno));
+      if (use_syslog) {
+        syslog(LOG_ERR, " (last system error %d: %s)", lerrno, strerror(lerrno));
+      }
     }
 #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
   }
@@ -512,7 +523,7 @@ mgmt_getAddrForIntr(char *intrName, sockaddr* addr, int *mtu)
   memset(addr, 0, sizeof(struct in_addr));
 
   if ((fakeSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-    mgmt_fatal(stderr, "[getAddrForIntr] Unable to create socket\n");
+    mgmt_fatal(stderr, errno, "[getAddrForIntr] Unable to create socket\n");
   }
   // INKqa06739
   // Fetch the list of network interfaces
@@ -527,7 +538,7 @@ mgmt_getAddrForIntr(char *intrName, sockaddr* addr, int *mtu)
     ifc.ifc_buf = ifbuf;
     if (ioctl(fakeSocket, SIOCGIFCONF, &ifc) < 0) {
       if (errno != EINVAL || lastlen != 0) {
-        mgmt_fatal(stderr, "[getAddrForIntr] Unable to read network interface configuration\n");
+        mgmt_fatal(stderr, errno, "[getAddrForIntr] Unable to read network interface configuration\n");
       }
     } else {
       if (ifc.ifc_len == lastlen) {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/MgmtUtils.h
----------------------------------------------------------------------
diff --git a/mgmt/utils/MgmtUtils.h b/mgmt/utils/MgmtUtils.h
index 9acb521..cad15e2 100644
--- a/mgmt/utils/MgmtUtils.h
+++ b/mgmt/utils/MgmtUtils.h
@@ -56,11 +56,11 @@ bool mgmt_getAddrForIntr(char *intrName, sockaddr* addr, int *mtu = 0);
 /* the following functions are all DEPRECATED.  The Diags
    interface should be used exclusively in the future */
 void mgmt_log(FILE * log, const char *message_format, ...);
-void mgmt_elog(FILE * log, const char *message_format, ...);
-void mgmt_fatal(FILE * log, const char *message_format, ...);
+void mgmt_elog(FILE * log, const int lerrno, const char *message_format, ...);
+void mgmt_fatal(FILE * log, const int lerrno, const char *message_format, ...);
 void mgmt_log(const char *message_format, ...);
-void mgmt_elog(const char *message_format, ...);
-void mgmt_fatal(const char *message_format, ...);
+void mgmt_elog(const int lerrno, const char *message_format, ...);
+void mgmt_fatal(const int lerrno, const char *message_format, ...);
 void mgmt_log_output(FILE * stdio_or_null, DiagsLevel type, const char *format, ...);
 void mgmt_log_output_va(FILE * stdio_or_null, DiagsLevel type, const char *format, va_list ap);
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/WebMgmtUtils.cc
----------------------------------------------------------------------
diff --git a/mgmt/utils/WebMgmtUtils.cc b/mgmt/utils/WebMgmtUtils.cc
index f3c2353..ed82b09 100644
--- a/mgmt/utils/WebMgmtUtils.cc
+++ b/mgmt/utils/WebMgmtUtils.cc
@@ -1065,7 +1065,7 @@ setHostnameVar()
 
   // Get Our HostName
   if (gethostname(ourHostName, MAXDNAME) < 0) {
-    mgmt_fatal(stderr, "[setHostnameVar] Can not determine our hostname");
+    mgmt_fatal(stderr, errno, "[setHostnameVar] Can not determine our hostname");
   }
 
   res_init();

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/web2/WebHttp.cc
----------------------------------------------------------------------
diff --git a/mgmt/web2/WebHttp.cc b/mgmt/web2/WebHttp.cc
index ecad1c7..9df0da5 100644
--- a/mgmt/web2/WebHttp.cc
+++ b/mgmt/web2/WebHttp.cc
@@ -524,7 +524,7 @@ WebHttpHandleConnection(WebHttpConInfo * whci)
     // on the autoconf port.  can't have users downloading arbitrary
     // files under the config directory!
     if (!ink_hash_table_isbound(g_autoconf_allow_ht, file)) {
-      mgmt_elog(stderr,"[WebHttpHandleConnection] %s not valid autoconf file",file);
+      mgmt_elog(stderr, 0, "[WebHttpHandleConnection] %s not valid autoconf file", file);
       whc->response_hdr->setStatus(STATUS_NOT_FOUND);
       WebHttpSetErrorResponse(whc, STATUS_NOT_FOUND);
       goto Ltransaction_send;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/web2/WebIntrMain.cc
----------------------------------------------------------------------
diff --git a/mgmt/web2/WebIntrMain.cc b/mgmt/web2/WebIntrMain.cc
index 29fb81f..ff29c97 100644
--- a/mgmt/web2/WebIntrMain.cc
+++ b/mgmt/web2/WebIntrMain.cc
@@ -202,7 +202,7 @@ newUNIXsocket(char *fpath)
   // Set the close on exec flag so our children do not
   //  have this socket open
   if (fcntl(socketFD, F_SETFD, 1) < 0) {
-    mgmt_elog(stderr, "[newUNIXSocket] Unable to set close on exec flag\n");
+    mgmt_elog(stderr, errno, "[newUNIXSocket] Unable to set close on exec flag\n");
   }
 
   return socketFD;
@@ -228,7 +228,7 @@ newTcpSocket(int port)
 
   // Create the new TCP Socket
   if ((socketFD = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
-    mgmt_fatal(stderr, "[newTcpSocket]: %s", "Unable to Create Socket\n");
+    mgmt_fatal(stderr, errno, "[newTcpSocket]: %s", "Unable to Create Socket\n");
     return -1;
   }
   // Specify our port number is network order
@@ -239,24 +239,24 @@ newTcpSocket(int port)
 
   // Allow for immediate re-binding to port
   if (setsockopt(socketFD, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof(int)) < 0) {
-    mgmt_fatal(stderr, "[newTcpSocket] Unable to set socket options.\n");
+    mgmt_fatal(stderr, errno, "[newTcpSocket] Unable to set socket options.\n");
   }
   // Bind the port to the socket
   if (bind(socketFD, (sockaddr *) & socketInfo, sizeof(socketInfo)) < 0) {
-    mgmt_elog(stderr, "[newTcpSocket] Unable to bind port %d to socket: %s\n", port, strerror(errno));
+    mgmt_elog(stderr, 0, "[newTcpSocket] Unable to bind port %d to socket: %s\n", port, strerror(errno));
     close_socket(socketFD);
     return -1;
   }
   // Listen on the new socket
   if (listen(socketFD, 5) < 0) {
-    mgmt_elog(stderr, "[newTcpSocket] %s\n", "Unable to listen on the socket");
+    mgmt_elog(stderr, errno, "[newTcpSocket] %s\n", "Unable to listen on the socket");
     close_socket(socketFD);
     return -1;
   }
   // Set the close on exec flag so our children do not
   //  have this socket open
   if (fcntl(socketFD, F_SETFD, 1) < 0) {
-    mgmt_elog(stderr, "[newTcpSocket] Unable to set close on exec flag\n");
+    mgmt_elog(stderr, errno, "[newTcpSocket] Unable to set close on exec flag\n");
   }
 
   return socketFD;
@@ -408,7 +408,7 @@ webIntr_main(void *)
   ink_assert(found);
 
   if (autoconfContext.docRoot == NULL) {
-    mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
+    mgmt_fatal(stderr, 0, "[WebIntrMain] No Client AutoConf Root\n");
   } else {
     struct stat s;
     int err;
@@ -417,10 +417,10 @@ webIntr_main(void *)
       ats_free(autoconfContext.docRoot);
       autoconfContext.docRoot = ats_strdup(system_config_directory);
       if ((err = stat(autoconfContext.docRoot, &s)) < 0) {
-        mgmt_elog("[WebIntrMain] unable to stat() directory '%s': %d %d, %s\n",
+        mgmt_elog(0, "[WebIntrMain] unable to stat() directory '%s': %d %d, %s\n",
                 autoconfContext.docRoot, err, errno, strerror(errno));
-        mgmt_elog("[WebIntrMain] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
-        mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
+        mgmt_elog(0, "[WebIntrMain] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        mgmt_fatal(stderr, 0, "[WebIntrMain] No Client AutoConf Root\n");
       }
     }
     autoconfContext.docRootLen = strlen(autoconfContext.docRoot);
@@ -467,7 +467,7 @@ webIntr_main(void *)
     lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_WEB_ERROR, pacFailMsg);
   } else {
     if ((autoconfFD = newTcpSocket(publicPort)) < 0) {
-      mgmt_elog(stderr, "[WebIntrMain] Unable to start client autoconf server\n");
+      mgmt_elog(stderr, errno, "[WebIntrMain] Unable to start client autoconf server\n");
       lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_WEB_ERROR, pacFailMsg);
     }
   }
@@ -553,7 +553,7 @@ webIntr_main(void *)
               wGlobals.serviceThrArray[i].threadId = thrId;
             } else {
               // Failed to create thread
-              mgmt_elog(stderr, "[WebIntrMain] Failed to create service thread\n");
+              mgmt_elog(stderr, errno, "[WebIntrMain] Failed to create service thread\n");
               wGlobals.serviceThrArray[i].threadId = 0;
               wGlobals.serviceThrArray[i].fd = -1;
               close_socket(clientFD);
@@ -567,7 +567,7 @@ webIntr_main(void *)
 
             break;
           } else if (i == MAX_SERVICE_THREADS - 1) {
-            mgmt_fatal(stderr, "[WebIntrMain] Syncronizaion Failure\n");
+            mgmt_fatal(stderr, 0, "[WebIntrMain] Syncronizaion Failure\n");
             _exit(1);
           }
         }


Re: git commit: TS-2202: remove manager error and fatal useless error message

Posted by Igor Galić <i....@brainsware.org>.
I might have asked this once or twice already, but...

if we always append \n wouldn't it be easier if those functions did that for us?

----- Original Message -----
> Updated Branches:
>   refs/heads/master e75d33a39 -> c2452f5fb
> 
> 
> TS-2202: remove manager error and fatal useless error message
> 
> we should log errno and strerror(errno) only when errno != 0.
> the errno parameter should pass by the caller.
> functions mgmt_elog and mgmt_fatal changed
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/c2452f5f
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/c2452f5f
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/c2452f5f
> 
> Branch: refs/heads/master
> Commit: c2452f5fbfafab8291537ef8abd4ac2e75253c45
> Parents: e75d33a
> Author: Yu Qing <zh...@taobao.com>
> Authored: Thu Oct 31 22:41:38 2013 +0800
> Committer: Zhao Yongming <mi...@gmail.com>
> Committed: Thu Oct 31 22:44:28 2013 +0800
> 
> ----------------------------------------------------------------------
>  mgmt/Alarms.cc                |   2 +-
>  mgmt/FileManager.cc           |  12 ++--
>  mgmt/LocalManager.cc          |  82 ++++++++++++------------
>  mgmt/Main.cc                  |  70 ++++++++++-----------
>  mgmt/ProcessManager.cc        |  24 +++----
>  mgmt/Rollback.cc              |   8 +--
>  mgmt/api/NetworkUtilsLocal.cc |  14 ++---
>  mgmt/cluster/ClusterCom.cc    | 126 ++++++++++++++++++-------------------
>  mgmt/cluster/VMap.cc          |  18 +++---
>  mgmt/utils/MgmtUtils.cc       |  75 ++++++++++++----------
>  mgmt/utils/MgmtUtils.h        |   8 +--
>  mgmt/utils/WebMgmtUtils.cc    |   2 +-
>  mgmt/web2/WebHttp.cc          |   2 +-
>  mgmt/web2/WebIntrMain.cc      |  26 ++++----
>  14 files changed, 240 insertions(+), 229 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Alarms.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/Alarms.cc b/mgmt/Alarms.cc
> index cbf2dc0..16c4149 100644
> --- a/mgmt/Alarms.cc
> +++ b/mgmt/Alarms.cc
> @@ -523,7 +523,7 @@ Alarms::execAlarmBin(const char *desc)
>    if ((pid = fork1()) < 0)
>  #endif
>    {
> -    mgmt_elog(stderr, "[Alarms::execAlarmBin] Unable to fork1 process\n");
> +    mgmt_elog(stderr, errno, "[Alarms::execAlarmBin] Unable to fork1
> process\n");
>    } else if (pid > 0) {         /* Parent */
>      // INKqa11769
>      bool script_done = false;
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/FileManager.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/FileManager.cc b/mgmt/FileManager.cc
> index 7ae2265..33cafe7 100644
> --- a/mgmt/FileManager.cc
> +++ b/mgmt/FileManager.cc
> @@ -67,7 +67,7 @@ FileManager::FileManager()
>    ink_mutex_init(&cbListLock, "File Changed Callback Mutex");
>  
>    if (varStrFromName("proxy.config.config_dir", configTmp,
>    sizeof(configTmp)) == false) {
> -    mgmt_fatal(stderr,
> +    mgmt_fatal(stderr, 0,
>                 "[FileManager::FileManager] Unable to find configuration
>                 directory from proxy.config.config_dir\n");
>    }
>    if (configTmp[0] != '/') {
> @@ -77,9 +77,9 @@ FileManager::FileManager()
>    if (access(configTmp, R_OK) == -1) {
>      ink_strlcpy(configTmp, system_config_directory,sizeof(configTmp));
>      if (access(configTmp, R_OK) == -1) {
> -        mgmt_elog("[FileManager::FileManager] unable to access() directory
> '%s': %d, %s\n",
> +        mgmt_elog(0, "[FileManager::FileManager] unable to access()
> directory '%s': %d, %s\n",
>                  mgmt_path, errno, strerror(errno));
> -        mgmt_elog("[FileManager::FileManager] please set config path via
> command line '-path <path>' or 'proxy.config.config_dir' \n");
> +        mgmt_elog(0, "[FileManager::FileManager] please set config path via
> command line '-path <path>' or 'proxy.config.config_dir' \n");
>          _exit(1);
>      }
>    }
> @@ -98,7 +98,7 @@ FileManager::FileManager()
>    if (access(snapshotDir, F_OK) == -1) {
>      if (mkdir(snapshotDir, DIR_MODE) < 0) {
>        // Failed to create the snapshot directory
> -      mgmt_fatal(stderr, "[FileManager::FileManager] Failed to create the
> snapshot directory %s: %s\n", snapshotDir, strerror(errno));
> +      mgmt_fatal(stderr, 0, "[FileManager::FileManager] Failed to create the
> snapshot directory %s: %s\n", snapshotDir, strerror(errno));
>      }
>    }
>  }
> @@ -349,7 +349,7 @@ FileManager::abortRestore(const char *abortTo)
>  
>      currentVersion = bind->rb->getCurrentVersion();
>      if (bind->rb->revertToVersion_ml(currentVersion - 1) != OK_ROLLBACK) {
> -      mgmt_fatal(stderr,
> +      mgmt_fatal(stderr, 0,
>                   "[FileManager::abortRestore] Unable to abort a failed
>                   snapshot restore.  Configuration files have been left in a
>                   inconsistent state\n");
>      }
>    }
> @@ -708,7 +708,7 @@ FileManager::WalkSnaps(ExpandingArray * snapList)
>    //ink_assert(found);
>  
>    if (varStrFromName("proxy.config.config_dir", config_dir, 256) == false) {
> -    mgmt_fatal(stderr,
> +    mgmt_fatal(stderr, 0,
>                 "[FileManager::FileManager] Unable to find configuration
>                 directory from proxy.config.config_dir\n");
>    }
>  
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/LocalManager.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/LocalManager.cc b/mgmt/LocalManager.cc
> index 56f3f9e..12adb34 100644
> --- a/mgmt/LocalManager.cc
> +++ b/mgmt/LocalManager.cc
> @@ -241,9 +241,9 @@ LocalManager::LocalManager(char * /* mpath ATS_UNUSED */,
> bool proxy_on)
>    if (access(absolute_config_path, R_OK) == -1) {
>      config_path = ats_strdup(system_config_directory);
>      if (access(config_path, R_OK) == -1) {
> -        mgmt_elog("[LocalManager::LocalManager] unable to access() directory
> '%s': %d, %s\n",
> +        mgmt_elog(0, "[LocalManager::LocalManager] unable to access()
> directory '%s': %d, %s\n",
>                  config_path, errno, strerror(errno));
> -        mgmt_fatal("[LocalManager::LocalManager] please set config path via
> command line '-path <path>' or 'proxy.config.config_dir' \n");
> +        mgmt_fatal(0, "[LocalManager::LocalManager] please set config path
> via command line '-path <path>' or 'proxy.config.config_dir' \n");
>      }
>    } else {
>      config_path = absolute_config_path;
> @@ -294,9 +294,9 @@ LocalManager::LocalManager(char * /* mpath ATS_UNUSED */,
> bool proxy_on)
>      absolute_proxy_binary = Layout::relative_to(Layout::get()->bindir,
>      proxy_binary);
>      // coverity[fs_check_call]
>      if (access(absolute_proxy_binary, R_OK | X_OK) == -1) {
> -        mgmt_elog("[LocalManager::LocalManager] Unable to access() '%s': %d,
> %s\n",
> +        mgmt_elog(0, "[LocalManager::LocalManager] Unable to access() '%s':
> %d, %s\n",
>                  absolute_proxy_binary, errno, strerror(errno));
> -        mgmt_fatal("[LocalManager::LocalManager] please set bin path
> 'proxy.config.bin_path' \n");
> +        mgmt_fatal(0, "[LocalManager::LocalManager] please set bin path
> 'proxy.config.bin_path' \n");
>      }
>    }
>  
> @@ -333,7 +333,7 @@ LocalManager::initCCom(int mcport, char *addr, int
> rsport)
>    char *envBuf;
>  
>    if (gethostname(hostname, 1024) < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initCCom] gethostname failed\n");
> +    mgmt_fatal(stderr, errno, "[LocalManager::initCCom] gethostname
> failed\n");
>    }
>    // Fetch which interface we are using for clustering
>    intrName = REC_readString("proxy.config.cluster.ethernet_interface",
>    &found);
> @@ -341,9 +341,9 @@ LocalManager::initCCom(int mcport, char *addr, int
> rsport)
>  
>    found = mgmt_getAddrForIntr(intrName, &cluster_ip.sa);
>    if (found == false) {
> -    mgmt_fatal(stderr, "[LocalManager::initCCom] Unable to find network
> interface %s.  Exiting...\n", intrName);
> +    mgmt_fatal(stderr, 0, "[LocalManager::initCCom] Unable to find network
> interface %s.  Exiting...\n", intrName);
>    } else if (!ats_is_ip4(&cluster_ip)) {
> -    mgmt_fatal(stderr, "[LocalManager::initCCom] Unable to find IPv4 network
> interface %s.  Exiting...\n", intrName);
> +    mgmt_fatal(stderr, 0, "[LocalManager::initCCom] Unable to find IPv4
> network interface %s.  Exiting...\n", intrName);
>    }
>  
>    ats_ip_ntop(&cluster_ip, clusterAddrStr, sizeof(clusterAddrStr));
> @@ -398,11 +398,11 @@ LocalManager::initMgmtProcessServer()
>    snprintf(fpath, sizeof(fpath), "%s/%s", pserver_path,
>    LM_CONNECTION_SERVER);
>    unlink(fpath);
>    if ((process_server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to open
> socket exiting\n");
> +    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable
> to open socket exiting\n");
>    }
>  
>    if (fcntl(process_server_sockfd, F_SETFD, 1) < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to set
> close-on-exec\n");
> +    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable
> to set close-on-exec\n");
>    }
>  
>    memset(&serv_addr, 0, sizeof(serv_addr));
> @@ -414,15 +414,15 @@ LocalManager::initMgmtProcessServer()
>    servlen = strlen(serv_addr.sun_path) + sizeof(serv_addr.sun_family);
>  #endif
>    if (setsockopt(process_server_sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)
>    &one, sizeof(int)) < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to set
> socket options.\n");
> +    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable
> to set socket options.\n");
>    }
>  
>    if ((bind(process_server_sockfd, (struct sockaddr *) &serv_addr, servlen))
>    < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to bind
> '%s' socket exiting\n", fpath);
> +    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable
> to bind '%s' socket exiting\n", fpath);
>    }
>  
>    if ((listen(process_server_sockfd, 5)) < 0) {
> -    mgmt_fatal(stderr, "[LocalManager::initMgmtProcessServer] Unable to
> listen on socket exiting\n");
> +    mgmt_fatal(stderr, errno, "[LocalManager::initMgmtProcessServer] Unable
> to listen on socket exiting\n");
>    }
>  
>    RecSetRecordInt("proxy.node.restarts.manager.start_time",
>    manager_started_at);
> @@ -484,7 +484,7 @@ LocalManager::pollMgmtProcessServer()
>          mgmt_log(stderr, "[LocalManager::pollMgmtProcessServer] New process
>          connecting fd '%d'\n", new_sockfd);
>  
>          if (new_sockfd < 0) {
> -          mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] ==> ");
> +          mgmt_elog(stderr, errno, "[LocalManager::pollMgmtProcessServer]
> ==> ");
>          } else if (!processRunning()) {
>            watched_process_fd = new_sockfd;
>            data_len = sizeof(mgmt_sync_key);
> @@ -493,7 +493,7 @@ LocalManager::pollMgmtProcessServer()
>            mh->data_len = data_len;
>            memcpy((char *) mh + sizeof(MgmtMessageHdr), &mgmt_sync_key,
>            data_len);
>            if (mgmt_write_pipe(new_sockfd, (char *) mh,
>            sizeof(MgmtMessageHdr) + data_len) <= 0) {
> -            mgmt_elog("[LocalManager::pollMgmtProcessServer] Error writing
> sync key message!\n");
> +            mgmt_elog(errno, "[LocalManager::pollMgmtProcessServer] Error
> writing sync key message!\n");
>              close_socket(new_sockfd);
>              watched_process_fd = watched_process_pid = -1;
>            }
> @@ -517,10 +517,10 @@ LocalManager::pollMgmtProcessServer()
>            if ((res = mgmt_read_pipe(watched_process_fd, data_raw,
>            mh_hdr.data_len)) > 0) {
>              handleMgmtMsgFromProcesses(mh_full);
>            } else if (res < 0) {
> -            mgmt_fatal("[LocalManager::pollMgmtProcessServer] Error in read
> (errno: %d)\n", -res);
> +            mgmt_fatal(0, "[LocalManager::pollMgmtProcessServer] Error in
> read (errno: %d)\n", -res);
>            }
>          } else if (res < 0) {
> -          mgmt_fatal("[LocalManager::pollMgmtProcessServer] Error in read
> (errno: %d)\n", -res);
> +          mgmt_fatal(0, "[LocalManager::pollMgmtProcessServer] Error in read
> (errno: %d)\n", -res);
>          }
>          // handle EOF
>          if (res == 0) {
> @@ -534,12 +534,12 @@ LocalManager::pollMgmtProcessServer()
>            waitpid(watched_process_pid, &estatus, 0);    /* Reap child */
>            if (WIFSIGNALED(estatus)) {
>              int sig = WTERMSIG(estatus);
> -            mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] "
> +            mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] "
>                        "Server Process terminated due to Sig %d: %s\n", sig,
>                        strsignal(sig));
>            }
>  
>            if (lmgmt->run_proxy) {
> -            mgmt_elog("[Alarms::signalAlarm] Server Process was reset\n");
> +            mgmt_elog(0, "[Alarms::signalAlarm] Server Process was
> reset\n");
>              lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_PROCESS_DIED);
>            } else {
>              mgmt_log("[TrafficManager] Server process shutdown\n");
> @@ -559,7 +559,7 @@ LocalManager::pollMgmtProcessServer()
>        ink_assert(num == 0);     /* Invariant */
>  
>      } else if (num < 0) {       /* Error */
> -      mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] select failed
> or was interrupted (%d)\n", errno);
> +      mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] select
> failed or was interrupted (%d)\n", errno);
>      }
>  
>    }
> @@ -673,7 +673,7 @@ LocalManager::handleMgmtMsgFromProcesses(MgmtMessageHdr *
> mh)
>        case MGMT_STRING:
>        case MGMT_INVALID:
>        default:
> -        mgmt_elog(stderr,
> +        mgmt_elog(stderr, 0,
>                    "[LocalManager::handleMgmtMsgFromProcesses] " "Invalid
>                    plugin set-config msg '%s'\n", data_raw);
>          break;
>        }
> @@ -766,14 +766,14 @@ LocalManager::sendMgmtMsgToProcesses(MgmtMessageHdr *
> mh)
>      if (RecGetRecordType(data_raw, &rec_type) == REC_ERR_OKAY && rec_type ==
>      RECT_CONFIG) {
>        RecSetSyncRequired(data_raw);
>      } else {
> -      mgmt_elog(stderr, "[LocalManager:sendMgmtMsgToProcesses] Unknown file
> change: '%s'\n", data_raw);
> +      mgmt_elog(stderr, 0, "[LocalManager:sendMgmtMsgToProcesses] Unknown
> file change: '%s'\n", data_raw);
>      }
>      ink_assert(found);
>      if (!(configFiles->getRollbackObj(fname, &rb)) &&
>          (strcmp(data_raw, "proxy.config.cluster.cluster_configuration") !=
>          0) &&
>          (strcmp(data_raw, "proxy.config.arm.acl_filename_master") != 0) &&
>          (strcmp(data_raw, "proxy.config.body_factory.template_sets_dir") !=
>          0)) {
> -      mgmt_elog(stderr, "[LocalManager::sendMgmtMsgToProcesses] "
> +      mgmt_elog(stderr, 0, "[LocalManager::sendMgmtMsgToProcesses] "
>                  "Invalid 'data_raw' for MGMT_EVENT_CONFIG_FILE_UPDATE\n");
>        ink_assert(false);
>      }
> @@ -800,15 +800,15 @@ LocalManager::sendMgmtMsgToProcesses(MgmtMessageHdr *
> mh)
>        if (check_prev_pid == check_current_pid) {
>          check_current_pid = -1;
>          int lerrno = errno;
> -        mgmt_elog(stderr, "[LocalManager::sendMgmtMsgToProcesses] Error
> writing message\n");
> +        mgmt_elog(stderr, errno, "[LocalManager::sendMgmtMsgToProcesses]
> Error writing message\n");
>          if (lerrno == ECONNRESET || lerrno == EPIPE) {  // Connection closed
>          by peer or Broken pipe
>            if ((kill(watched_process_pid, 0) < 0) && (errno == ESRCH)) {
>              // TS is down
>              pid_t tmp_pid = watched_process_pid;
>              close_socket(watched_process_fd);
> -            mgmt_elog(stderr, "[LocalManager::pollMgmtProcessServer] "
> "Server Process has been terminated\n");
> +            mgmt_elog(stderr, 0, "[LocalManager::pollMgmtProcessServer] "
> "Server Process has been terminated\n");
>              if (lmgmt->run_proxy) {
> -              mgmt_elog("[Alarms::signalAlarm] Server Process was reset\n");
> +              mgmt_elog(0, "[Alarms::signalAlarm] Server Process was
> reset\n");
>                lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_PROCESS_DIED);
>              } else {
>                mgmt_log("[TrafficManager] Server process shutdown\n");
> @@ -899,7 +899,7 @@ LocalManager::processEventQueue()
>        if (!(strcmp(data_raw, "records.config"))) {
>          bool incVersion = mh->msg_id == MGMT_EVENT_CONFIG_FILE_UPDATE;
>          if (RecReadConfigFile(incVersion) != REC_ERR_OKAY) {
> -          mgmt_elog(stderr, "[fileUpdated] Config update failed for
> records.config\n");
> +          mgmt_elog(stderr, errno, "[fileUpdated] Config update failed for
> records.config\n");
>          }
>          handled_by_mgmt = true;
>        }
> @@ -939,13 +939,13 @@ LocalManager::startProxy()
>    // the traffic server binary along with it's execute permmissions
>    if (access(absolute_proxy_binary, F_OK) < 0) {
>      // Error can't find traffic_server
> -    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to find traffic
> server at %s\n", absolute_proxy_binary);
> +    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to find
> traffic server at %s\n", absolute_proxy_binary);
>      return false;
>    }
>    // traffic server binary exists, check permissions
>    else if (access(absolute_proxy_binary, R_OK | X_OK) < 0) {
>      // Error don't have proper permissions
> -    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to access %s due to
> bad permisssions \n",
> +    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to access %s
> due to bad permisssions \n",
>                absolute_proxy_binary);
>      return false;
>    }
> @@ -957,7 +957,7 @@ LocalManager::startProxy()
>      if ((pid = fork1()) < 0)
>  #endif
>      {
> -      mgmt_elog(stderr, "[LocalManager::startProxy] Unable to fork1 prep
> process\n");
> +      mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to fork1
> prep process\n");
>        return false;
>      } else if (pid > 0) {
>        int estatus;
> @@ -977,7 +977,7 @@ LocalManager::startProxy()
>    if ((pid = fork1()) < 0)
>  #endif
>    {
> -    mgmt_elog(stderr, "[LocalManager::startProxy] Unable to fork1
> process\n");
> +    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Unable to fork1
> process\n");
>      return false;
>    } else if (pid > 0) {         /* Parent */
>      proxy_launch_pid = pid;
> @@ -1037,11 +1037,11 @@ LocalManager::startProxy()
>      }
>  
>      if (!strstr(proxy_options, "-M")) { // Make sure we're starting the
>      proxy in mgmt mode
> -      mgmt_fatal(stderr, "[LocalManager::startProxy] ts options must contain
> -M");
> +      mgmt_fatal(stderr, 0, "[LocalManager::startProxy] ts options must
> contain -M");
>      }
>  
>      res = execv(absolute_proxy_binary, options);
> -    mgmt_elog(stderr, "[LocalManager::startProxy] Exec of %s failed\n",
> absolute_proxy_binary);
> +    mgmt_elog(stderr, errno, "[LocalManager::startProxy] Exec of %s
> failed\n", absolute_proxy_binary);
>      _exit(res);
>    }
>    return true;
> @@ -1085,7 +1085,7 @@ LocalManager::listenForProxy()
>      }
>  
>      if ((listen(p.m_fd, backlog)) < 0) {
> -      mgmt_fatal(stderr, "[LocalManager::listenForProxy] Unable to listen on
> socket: %d\n", p.m_port);
> +      mgmt_fatal(stderr, errno, "[LocalManager::listenForProxy] Unable to
> listen on socket: %d\n", p.m_port);
>      }
>      mgmt_log(stderr, "[LocalManager::listenForProxy] Listening on port:
>      %d\n", p.m_port);
>    }
> @@ -1109,7 +1109,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>  
>    if (port.m_port < 1024 && euid != 0) {
>      if (restoreRootPriv(&saved_euid) == false) {
> -      mgmt_elog(stderr, "[bindProxyPort] Unable to get root priviledges to
> bind port %d. euid is %d.  Exiting\n",
> +      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to get root priviledges
> to bind port %d. euid is %d.  Exiting\n",
>                  port.m_port, euid);
>        _exit(0);
>      } else {
> @@ -1120,7 +1120,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>  
>    /* Setup reliable connection, for large config changes */
>    if ((port.m_fd = socket(port.m_family, SOCK_STREAM, 0)) < 0) {
> -    mgmt_elog(stderr, "[bindProxyPort] Unable to create socket : %s\n",
> strerror(errno));
> +    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to create socket : %s\n",
> strerror(errno));
>      _exit(1);
>    }
>  
> @@ -1137,11 +1137,11 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>  
>    if (port.m_family == AF_INET6) {
>      if (setsockopt(port.m_fd, IPPROTO_IPV6, IPV6_V6ONLY, SOCKOPT_ON,
>      sizeof(int)) < 0) {
> -      mgmt_elog(stderr, "[bindProxyPort] Unable to set socket options: %d :
> %s\n", port.m_port, strerror(errno));
> +      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set socket options: %d
> : %s\n", port.m_port, strerror(errno));
>      }
>    }
>    if (setsockopt(port.m_fd, SOL_SOCKET, SO_REUSEADDR, (char *) &one,
>    sizeof(int)) < 0) {
> -    mgmt_elog(stderr, "[bindProxyPort] Unable to set socket options: %d :
> %s\n", port.m_port, strerror(errno));
> +    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set socket options: %d :
> %s\n", port.m_port, strerror(errno));
>      _exit(1);
>    }
>  
> @@ -1149,7 +1149,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>  #if TS_USE_TPROXY
>      Debug("http_tproxy", "Listen port %d inbound transparency enabled.\n",
>      port.m_port);
>      if (setsockopt(port.m_fd, SOL_IP, TS_IP_TRANSPARENT, &one, sizeof(one))
>      == -1) {
> -      mgmt_elog(stderr, "[bindProxyPort] Unable to set transparent socket
> option [%d] %s\n", errno, strerror(errno));
> +      mgmt_elog(stderr, 0, "[bindProxyPort] Unable to set transparent socket
> option [%d] %s\n", errno, strerror(errno));
>        _exit(1);
>      }
>  #else
> @@ -1167,12 +1167,12 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>      if (m_inbound_ip4.isValid()) ip.assign(m_inbound_ip4);
>      else ip.setToAnyAddr(AF_INET);
>    } else {
> -    mgmt_elog(stderr, "[bindProxyPort] Proxy port with invalid address type
> %d\n", port.m_family);
> +    mgmt_elog(stderr, 0, "[bindProxyPort] Proxy port with invalid address
> type %d\n", port.m_family);
>      _exit(1);
>    }
>    ip.port() = htons(port.m_port);
>    if (bind(port.m_fd, &ip.sa, ats_ip_size(&ip)) < 0) {
> -    mgmt_elog(stderr, "[bindProxyPort] Unable to bind socket: %d : %s\n",
> port.m_port, strerror(errno));
> +    mgmt_elog(stderr, 0, "[bindProxyPort] Unable to bind socket: %d : %s\n",
> port.m_port, strerror(errno));
>      _exit(1);
>    }
>  
> @@ -1182,7 +1182,7 @@ LocalManager::bindProxyPort(HttpProxyPort& port)
>    if (port.m_port < 1024 && euid != 0) {
>      if (privBoost == true) {
>        if (removeRootPriv(saved_euid) == false) {
> -        mgmt_elog(stderr, "[bindProxyPort] Unable to reset permissions to
> euid %d.  Exiting...\n", getuid());
> +        mgmt_elog(stderr, 0, "[bindProxyPort] Unable to reset permissions to
> euid %d.  Exiting...\n", getuid());
>          _exit(1);
>        }
>      }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Main.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/Main.cc b/mgmt/Main.cc
> index f752220..8dde9b6 100644
> --- a/mgmt/Main.cc
> +++ b/mgmt/Main.cc
> @@ -132,10 +132,10 @@ check_lockfile()
>  #else
>        fprintf(stderr, "FATAL: Lockfile '%s' says server already running as
>        PID %d\n", lockfile, holding_pid);
>  #endif
> -      mgmt_elog(stderr, "FATAL: Lockfile '%s' says server already running as
> PID %d\n", lockfile, holding_pid);
> +      mgmt_elog(stderr, 0, "FATAL: Lockfile '%s' says server already running
> as PID %d\n", lockfile, holding_pid);
>      } else {
>        fprintf(stderr, "FATAL: Can't open server lockfile '%s' (%s)\n",
>        lockfile, (reason ? reason : "Unknown Reason"));
> -      mgmt_elog(stderr, "FATAL: Can't open server lockfile '%s' (%s)\n",
> +      mgmt_elog(stderr, 0, "FATAL: Can't open server lockfile '%s' (%s)\n",
>                  lockfile, (reason ? reason : "Unknown Reason"));
>      }
>      exit(1);
> @@ -150,17 +150,17 @@ check_lockfile()
>    if (err != 1) {
>      char *reason = strerror(-err);
>      fprintf(stderr, "FATAL: Can't acquire manager lockfile '%s'", lockfile);
> -    mgmt_elog(stderr, "FATAL: Can't acquire manager lockfile '%s'",
> lockfile);
> +    mgmt_elog(stderr, 0, "FATAL: Can't acquire manager lockfile '%s'",
> lockfile);
>      if (err == 0) {
>  #if defined(solaris)
>        fprintf(stderr, " (Lock file held by process ID %d)\n",
>        (int)holding_pid);
>  #else
>        fprintf(stderr, " (Lock file held by process ID %d)\n", holding_pid);
>  #endif
> -      mgmt_elog(stderr, " (Lock file held by process ID %d)\n",
> holding_pid);
> +      mgmt_elog(stderr, 0, " (Lock file held by process ID %d)\n",
> holding_pid);
>      } else if (reason) {
>        fprintf(stderr, " (%s)\n", reason);
> -      mgmt_elog(stderr, " (%s)\n", reason);
> +      mgmt_elog(stderr, 0, " (%s)\n", reason);
>      } else {
>        fprintf(stderr, "\n");
>      }
> @@ -278,8 +278,8 @@ init_dirs()
>    REC_ReadConfigString(buf, "proxy.config.config_dir", PATH_NAME_MAX);
>    Layout::get()->relative(system_config_directory, PATH_NAME_MAX, buf);
>    if (access(system_config_directory, R_OK) == -1) {
> -    mgmt_elog("unable to access() config dir '%s': %d, %s\n",
> system_config_directory, errno, strerror(errno));
> -    mgmt_elog("please set config path via 'proxy.config.config_dir' \n");
> +    mgmt_elog(0, "unable to access() config dir '%s': %d, %s\n",
> system_config_directory, errno, strerror(errno));
> +    mgmt_elog(0, "please set config path via 'proxy.config.config_dir' \n");
>      _exit(1);
>    }
>  
> @@ -288,16 +288,16 @@ init_dirs()
>    REC_ReadConfigString(buf, "proxy.config.local_state_dir", PATH_NAME_MAX);
>    Layout::get()->relative(system_runtime_dir, PATH_NAME_MAX, buf);
>    if (access(system_runtime_dir, R_OK) == -1) {
> -    mgmt_elog("unable to access() local state dir '%s': %d, %s\n",
> system_runtime_dir, errno, strerror(errno));
> -    mgmt_elog("please set 'proxy.config.local_state_dir'\n");
> +    mgmt_elog(0, "unable to access() local state dir '%s': %d, %s\n",
> system_runtime_dir, errno, strerror(errno));
> +    mgmt_elog(0, "please set 'proxy.config.local_state_dir'\n");
>      _exit(1);
>    }
>  
>    REC_ReadConfigString(buf, "proxy.config.log.logfile_dir", PATH_NAME_MAX);
>    Layout::get()->relative(system_log_dir, PATH_NAME_MAX, buf);
>    if (access(system_log_dir, W_OK) == -1) {
> -    mgmt_elog("unable to access() log dir'%s': %d, %s\n", system_log_dir,
> errno, strerror(errno));
> -    mgmt_elog("please set 'proxy.config.log.logfile_dir'\n");
> +    mgmt_elog(0, "unable to access() log dir'%s': %d, %s\n", system_log_dir,
> errno, strerror(errno));
> +    mgmt_elog(0, "please set 'proxy.config.log.logfile_dir'\n");
>      _exit(1);
>    }
>  }
> @@ -307,8 +307,8 @@ chdir_root()
>  {
>  
>    if (system_root_dir[0] && (chdir(system_root_dir) < 0)) {
> -    mgmt_elog("unable to change to root directory \"%s\" [%d '%s']\n",
> system_root_dir, errno, strerror(errno));
> -    mgmt_elog(" please set correct path in env variable TS_ROOT \n");
> +    mgmt_elog(0, "unable to change to root directory \"%s\" [%d '%s']\n",
> system_root_dir, errno, strerror(errno));
> +    mgmt_elog(0, " please set correct path in env variable TS_ROOT \n");
>      exit(1);
>    } else {
>      mgmt_log("[TrafficManager] using root directory
>      '%s'\n",system_root_dir);
> @@ -357,7 +357,7 @@ Errata_Logger(ts::Errata const& err) {
>      while (n && (buff[n-1] == '\n' || buff[n-1] == '\r'))
>        buff[--n] = 0;
>      // log it.
> -    if (code > 1) mgmt_elog("[WCCP]%s", buff);
> +    if (code > 1) mgmt_elog(0, "[WCCP]%s", buff);
>      else if (code > 0) mgmt_log("[WCCP]%s", buff);
>      else Debug("WCCP", "%s", buff);
>    }
> @@ -627,13 +627,13 @@ main(int argc, char **argv)
>      ink_assert(found);
>  
>      if (!found) {
> -      mgmt_elog("Could not read %s.  Defaulting to DAEMON\n", sys_var);
> +      mgmt_elog(0, "Could not read %s.  Defaulting to DAEMON\n", sys_var);
>        facility_int = LOG_DAEMON;
>      } else {
>        facility_int = facility_string_to_int(facility_str);
>        ats_free(facility_str);
>        if (facility_int < 0) {
> -        mgmt_elog("Bad syslog facility specified.  Defaulting to DAEMON\n");
> +        mgmt_elog(0, "Bad syslog facility specified.  Defaulting to
> DAEMON\n");
>          facility_int = LOG_DAEMON;
>        }
>      }
> @@ -709,7 +709,7 @@ main(int argc, char **argv)
>    in_addr_t group_addr_ip = inet_network(group_addr);
>  
>    if (!(min_ip < group_addr_ip && group_addr_ip < max_ip)) {
> -    mgmt_fatal("[TrafficManager] Multi-Cast group addr '%s' is not in the
> permitted range of %s\n",
> +    mgmt_fatal(0, "[TrafficManager] Multi-Cast group addr '%s' is not in the
> permitted range of %s\n",
>                 group_addr, "224.0.1.0 - 239.255.255.255");
>    }
>  
> @@ -835,8 +835,8 @@ SignalAlrmHandler(int /* sig ATS_UNUSED */)
>  #endif
>  {
>    /*
> -     fprintf(stderr,"[TrafficManager] ==> SIGALRM received\n");
> -     mgmt_elog(stderr,"[TrafficManager] ==> SIGALRM received\n");
> +     fprintf(stderr, "[TrafficManager] ==> SIGALRM received\n");
> +     mgmt_elog(stderr, 0, "[TrafficManager] ==> SIGALRM received\n");
>     */
>  #if !defined(linux) && !defined(freebsd) && !defined(darwin)
>    if (t) {
> @@ -846,10 +846,10 @@ SignalAlrmHandler(int /* sig ATS_UNUSED */)
>  #else
>        fprintf(stderr, "[TrafficManager] ==> User Alarm from pid: %d uid:
>        %d\n", t->si_pid, t->si_uid);
>  #endif
> -      mgmt_elog(stderr, "[TrafficManager] ==> User Alarm from pid: %d uid:
> %d\n", t->si_pid, t->si_uid);
> +      mgmt_elog(stderr, 0, "[TrafficManager] ==> User Alarm from pid: %d
> uid: %d\n", t->si_pid, t->si_uid);
>      } else {
>        fprintf(stderr, "[TrafficManager] ==> Kernel Alarm Reason: %d\n",
>        t->si_code);
> -      mgmt_elog(stderr, "[TrafficManager] ==> Kernel Alarm Reason: %d\n",
> t->si_code);
> +      mgmt_elog(stderr, 0, "[TrafficManager] ==> Kernel Alarm Reason: %d\n",
> t->si_code);
>      }
>    }
>  #endif
> @@ -877,10 +877,10 @@ SignalHandler(int sig)
>  #else
>        fprintf(stderr, "[TrafficManager] ==> User Sig %d from pid: %d uid:
>        %d\n", sig, t->si_pid, t->si_uid);
>  #endif
> -      mgmt_elog(stderr, "[TrafficManager] ==> User Sig %d from pid: %d uid:
> %d\n", sig, t->si_pid, t->si_uid);
> +      mgmt_elog(stderr, 0, "[TrafficManager] ==> User Sig %d from pid: %d
> uid: %d\n", sig, t->si_pid, t->si_uid);
>      } else {
>        fprintf(stderr, "[TrafficManager] ==> Kernel Sig %d; Reason: %d\n",
>        sig, t->si_code);
> -      mgmt_elog(stderr, "[TrafficManager] ==> Kernel Sig %d; Reason: %d\n",
> sig, t->si_code);
> +      mgmt_elog(stderr, 0, "[TrafficManager] ==> Kernel Sig %d; Reason:
> %d\n", sig, t->si_code);
>      }
>    }
>  #endif
> @@ -896,7 +896,7 @@ SignalHandler(int sig)
>      return;
>    }
>    fprintf(stderr, "[TrafficManager] ==> Cleaning up and reissuing signal
>    #%d\n", sig);
> -  mgmt_elog(stderr, "[TrafficManager] ==> Cleaning up and reissuing signal
> #%d\n", sig);
> +  mgmt_elog(stderr, 0, "[TrafficManager] ==> Cleaning up and reissuing
> signal #%d\n", sig);
>  
>    if (lmgmt && !clean) {
>      clean = 1;
> @@ -926,11 +926,11 @@ SignalHandler(int sig)
>      abort();
>    default:
>      fprintf(stderr, "[TrafficManager] ==> signal #%d\n", sig);
> -    mgmt_elog(stderr, "[TrafficManager] ==> signal #%d\n", sig);
> +    mgmt_elog(stderr, 0, "[TrafficManager] ==> signal #%d\n", sig);
>      _exit(sig);
>    }
>    fprintf(stderr, "[TrafficManager] ==> signal2 #%d\n", sig);
> -  mgmt_elog(stderr, "[TrafficManager] ==> signal2 #%d\n", sig);
> +  mgmt_elog(stderr, 0, "[TrafficManager] ==> signal2 #%d\n", sig);
>    _exit(sig);
>  }                               /* End SignalHandler */
>  
> @@ -1063,7 +1063,7 @@ fileUpdated(char *fname, bool incVersion)
>    } else if (strcmp(fname, "prefetch.config") == 0) {
>      lmgmt->signalFileChange("proxy.config.prefetch.config_file");
>    } else {
> -    mgmt_elog(stderr, "[fileUpdated] Unknown config file updated '%s'\n",
> fname);
> +    mgmt_elog(stderr, 0, "[fileUpdated] Unknown config file updated '%s'\n",
> fname);
>  
>    }
>    return;
> @@ -1133,7 +1133,7 @@ runAsUser(char *userName)
>  
>  
>      if (userName == NULL || userName[0] == '\0') {
> -      mgmt_elog(stderr, "[runAsUser] Fatal Error: proxy.config.admin.user_id
> is not set\n", userName, strerror(errno));
> +      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error:
> proxy.config.admin.user_id is not set\n");
>        _exit(1);
>      }
>  
> @@ -1159,12 +1159,12 @@ runAsUser(char *userName)
>      }
>  
>      if (result == NULL) {
> -      mgmt_elog(stderr, "[runAsUser] Fatal Error: Unable to get info about
> user %s : %s\n", userName, strerror(errno));
> +      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Unable to get info
> about user %s : %s\n", userName, strerror(errno));
>        _exit(1);
>      }
>  
>      if (setegid(result->pw_gid) != 0 || seteuid(result->pw_uid) != 0) {
> -      mgmt_elog(stderr, "[runAsUser] Fatal Error: Unable to switch to user
> %s : %s\n", userName, strerror(errno));
> +      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Unable to switch to
> user %s : %s\n", userName, strerror(errno));
>        _exit(1);
>      }
>  
> @@ -1175,7 +1175,7 @@ runAsUser(char *userName)
>      Debug("lm", "[runAsUser] Running with uid: '%d' euid: '%d'\n", uid,
>      euid);
>  
>      if (uid != result->pw_uid && euid != result->pw_uid) {
> -      mgmt_elog(stderr, "[runAsUser] Fatal Error: Failed to switch to user
> %s\n", userName);
> +      mgmt_elog(stderr, 0, "[runAsUser] Fatal Error: Failed to switch to
> user %s\n", userName);
>        _exit(1);
>      }
>  
> @@ -1186,7 +1186,7 @@ runAsUser(char *userName)
>  
>  #if TS_USE_POSIX_CAP
>      if (0 != restoreCapabilities()) {
> -      mgmt_elog(stderr, "[runAsUser] Error: Failed to restore capabilities
> after switch to user %s.\n", userName);
> +      mgmt_elog(stderr, 0, "[runAsUser] Error: Failed to restore
> capabilities after switch to user %s.\n", userName);
>      }
>  #endif
>  
> @@ -1217,7 +1217,7 @@ extractConfigInfo(char *mgmt_path, const char
> *recs_conf, char *userName, int *f
>      if (!(fin = fopen(file, "r"))) {
>        ink_filepath_make(file, sizeof(file), mgmt_path, recs_conf);
>        if (!(fin = fopen(file, "r"))) {
> -        mgmt_elog(stderr, "[extractConfigInfo] Unable to open config
> file(%s)\n", file);
> +        mgmt_elog(stderr, errno, "[extractConfigInfo] Unable to open config
> file(%s)\n", file);
>          _exit(1);
>        }
>      }
> @@ -1238,12 +1238,12 @@ extractConfigInfo(char *mgmt_path, const char
> *recs_conf, char *userName, int *f
>      }
>      fclose(fin);
>    } else {
> -    mgmt_elog(stderr, "[extractConfigInfo] Fatal Error: unable to access
> records file\n");
> +    mgmt_elog(stderr, 0, "[extractConfigInfo] Fatal Error: unable to access
> records file\n");
>      _exit(1);
>    }
>  
>    if (useridFound == false) {
> -    mgmt_elog(stderr, "[extractConfigInfo] Fatal Error:
> proxy.config.admin.user_id is not set\n");
> +    mgmt_elog(stderr, 0, "[extractConfigInfo] Fatal Error:
> proxy.config.admin.user_id is not set\n");
>      _exit(1);
>    }
>  
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/ProcessManager.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/ProcessManager.cc b/mgmt/ProcessManager.cc
> index b582cec..5490a24 100644
> --- a/mgmt/ProcessManager.cc
> +++ b/mgmt/ProcessManager.cc
> @@ -151,7 +151,7 @@ ProcessManager::processSignalQueue()
>      Debug("pmgmt", "[ProcessManager] ==> Signalling local manager '%d'\n",
>      mh->msg_id);
>  
>      if (require_lm && mgmt_write_pipe(local_manager_sockfd, (char *) mh,
>      sizeof(MgmtMessageHdr) + mh->data_len) <= 0) {
> -      mgmt_fatal(stderr, "[ProcessManager::processSignalQueue] Error writing
> message!");
> +      mgmt_fatal(stderr, errno, "[ProcessManager::processSignalQueue] Error
> writing message!");
>        //ink_assert(enqueue(mgmt_signal_queue, mh));
>      } else {
>        ats_free(mh);
> @@ -188,15 +188,15 @@ ProcessManager::initLMConnection()
>    servlen = strlen(serv_addr.sun_path) + sizeof(serv_addr.sun_family);
>  #endif
>    if ((local_manager_sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
> -    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Unable to create
> socket\n");
> +    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Unable to
> create socket\n");
>    }
>  
>    if (fcntl(local_manager_sockfd, F_SETFD, 1) < 0) {
> -    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Unable to set
> close-on-exec\n");
> +    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Unable to
> set close-on-exec\n");
>    }
>  
>    if ((connect(local_manager_sockfd, (struct sockaddr *) &serv_addr,
>    servlen)) < 0) {
> -    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Connect
> failed\n");
> +    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Connect
> failed\n");
>    }
>  
>    data_len = sizeof(pid_t);
> @@ -205,19 +205,19 @@ ProcessManager::initLMConnection()
>    mh_full->data_len = data_len;
>    memcpy((char *) mh_full + sizeof(MgmtMessageHdr), &(pid), data_len);
>    if (mgmt_write_pipe(local_manager_sockfd, (char *) mh_full,
>    sizeof(MgmtMessageHdr) + data_len) <= 0) {
> -    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error writing
> message!\n");
> +    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error
> writing message!\n");
>    }
>  
>    /* Read SYNC_KEY from manager */
>    if (mgmt_read_pipe(local_manager_sockfd, (char *) &mh_hdr,
>    sizeof(MgmtMessageHdr)) <= 0) {
> -    mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error reading sem
> message!\n");
> +    mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error
> reading sem message!\n");
>    } else {
>      // coverity[uninit_use]
>      mh_full = (MgmtMessageHdr *) alloca(sizeof(MgmtMessageHdr) +
>      mh_hdr.data_len);
>      memcpy(mh_full, &mh_hdr, sizeof(MgmtMessageHdr));
>      sync_key_raw = (char *) mh_full + sizeof(MgmtMessageHdr);
>      if (mgmt_read_pipe(local_manager_sockfd, sync_key_raw, mh_hdr.data_len)
>      < 0) {
> -      mgmt_fatal(stderr, "[ProcessManager::initLMConnection] Error reading
> sem message!\n");
> +      mgmt_fatal(stderr, errno, "[ProcessManager::initLMConnection] Error
> reading sem message!\n");
>      }
>    }
>  
> @@ -266,19 +266,19 @@ ProcessManager::pollLMConnection()
>            Debug("pmgmt", "[ProcessManager::pollLMConnection] Message: '%d'",
>            mh_full->msg_id);
>            handleMgmtMsgFromLM(mh_full);
>          } else if (res < 0) {
> -          mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Error in
> read!");
> +          mgmt_fatal(stderr, errno, "[ProcessManager::pollLMConnection]
> Error in read!");
>          }
>        } else if (res < 0) {
> -        mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Error in
> read!");
> +        mgmt_fatal(stderr, errno, "[ProcessManager::pollLMConnection] Error
> in read!");
>        }
>        // handle EOF
>        if (res == 0) {
>          close_socket(local_manager_sockfd);
> -        mgmt_fatal(stderr, "[ProcessManager::pollLMConnection] Lost Manager
> EOF!");
> +        mgmt_fatal(stderr, 0, "[ProcessManager::pollLMConnection] Lost
> Manager EOF!");
>        }
>  
>      } else if (num < 0) {       /* Error */
> -      mgmt_elog(stderr, "[ProcessManager::pollLMConnection] select failed or
> was interrupted (%d)\n", errno);
> +      mgmt_elog(stderr, 0, "[ProcessManager::pollLMConnection] select failed
> or was interrupted (%d)\n", errno);
>      }
>  
>    }
> @@ -332,7 +332,7 @@ ProcessManager::handleMgmtMsgFromLM(MgmtMessageHdr * mh)
>      signalMgmtEntity(MGMT_EVENT_LIBRECORDS, data_raw, mh->data_len);
>      break;
>    default:
> -    mgmt_elog(stderr, "[ProcessManager::pollLMConnection] unknown type
> %d\n", mh->msg_id);
> +    mgmt_elog(stderr, 0, "[ProcessManager::pollLMConnection] unknown type
> %d\n", mh->msg_id);
>      break;
>    }
>  }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/Rollback.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/Rollback.cc b/mgmt/Rollback.cc
> index 76ed82e..0a4c961 100644
> --- a/mgmt/Rollback.cc
> +++ b/mgmt/Rollback.cc
> @@ -81,9 +81,9 @@ Rollback::Rollback(const char *baseFileName, bool
> root_access_needed_)
>    }
>  
>    if ((err = stat(system_config_directory, &s)) < 0) {
> -    mgmt_elog("[Rollback::Rollback] unable to stat() directory '%s': %d %d,
> %s\n",
> +    mgmt_elog(0, "[Rollback::Rollback] unable to stat() directory '%s': %d
> %d, %s\n",
>                system_config_directory, err, errno, strerror(errno));
> -    mgmt_elog("[Rollback::Rollback] please set config path via command line
> '-path <path>' or 'proxy.config.config_dir' \n");
> +    mgmt_elog(0, "[Rollback::Rollback] please set config path via command
> line '-path <path>' or 'proxy.config.config_dir' \n");
>      _exit(1);
>    }
>  
> @@ -157,7 +157,7 @@ Rollback::Rollback(const char *baseFileName, bool
> root_access_needed_)
>            ats_free(alarmMsg);
>            closeFile(fd);
>          } else {
> -          mgmt_fatal(stderr,
> +          mgmt_fatal(stderr, 0,
>                       "[RollBack::Rollback] Unable to find configuration file
>                       %s.\n\tCreation of a placeholder failed : %s\n",
>                       fileName, strerror(errno));
>          }
> @@ -168,7 +168,7 @@ Rollback::Rollback(const char *baseFileName, bool
> root_access_needed_)
>      } else {
>        // If is there but we can not stat it, it is unusable to manager
>        //   probably due to permissions problems.  Bail!
> -      mgmt_fatal(stderr, "[RollBack::Rollback] Unable to find configuration
> file %s.\n\tStat failed : %s\n",
> +      mgmt_fatal(stderr, 0, "[RollBack::Rollback] Unable to find
> configuration file %s.\n\tStat failed : %s\n",
>                   fileName, strerror(errno));
>      }
>    } else {
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/api/NetworkUtilsLocal.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/api/NetworkUtilsLocal.cc b/mgmt/api/NetworkUtilsLocal.cc
> index 595f007..03b4666 100644
> --- a/mgmt/api/NetworkUtilsLocal.cc
> +++ b/mgmt/api/NetworkUtilsLocal.cc
> @@ -67,7 +67,7 @@ socket_flush(struct SocketInfo sock_info)
>          continue;
>  
>        Debug("ts_main", "[socket_read_n] socket read for version byte
>        failed.\n");
> -      mgmt_elog("[socket_flush] (TS_ERR_NET_READ) %s\n", strerror(errno));
> +      mgmt_elog(0, "[socket_flush] (TS_ERR_NET_READ) %s\n",
> strerror(errno));
>        return TS_ERR_NET_READ;
>      }
>  
> @@ -79,7 +79,7 @@ socket_flush(struct SocketInfo sock_info)
>      byte_read += ret;
>    }
>  
> -  mgmt_elog("[socket_flush] uh oh! didn't finish flushing socket!\n");
> +  mgmt_elog(0, "[socket_flush] uh oh! didn't finish flushing socket!\n");
>    return TS_ERR_FAIL;
>  }
>  
> @@ -110,7 +110,7 @@ socket_read_n(struct SocketInfo sock_info, char *buf, int
> bytes)
>          continue;
>  
>        Debug("ts_main", "[socket_read_n] socket read for version byte
>        failed.\n");
> -      mgmt_elog("[socket_read_n] (TS_ERR_NET_READ) %s\n", strerror(errno));
> +      mgmt_elog(0, "[socket_read_n] (TS_ERR_NET_READ) %s\n",
> strerror(errno));
>        return TS_ERR_NET_READ;
>      }
>  
> @@ -148,7 +148,7 @@ socket_write_n(struct SocketInfo sock_info, const char
> *buf, int bytes)
>  
>      if (ret < 0) {
>        Debug("ts_main", "[socket_write_n] return error %s \n",
>        strerror(errno));
> -      mgmt_elog("[socket_write_n] %s\n", strerror(errno));
> +      mgmt_elog(0, "[socket_write_n] %s\n", strerror(errno));
>        if (errno == EAGAIN)
>          continue;
>  
> @@ -156,7 +156,7 @@ socket_write_n(struct SocketInfo sock_info, const char
> *buf, int bytes)
>      }
>  
>      if (ret == 0) {
> -      mgmt_elog("[socket_write_n] %s\n", strerror(errno));
> +      mgmt_elog(0, "[socket_write_n] %s\n", strerror(errno));
>        return TS_ERR_NET_EOF;
>      }
>      // we are all good here
> @@ -198,7 +198,7 @@ preprocess_msg(struct SocketInfo sock_info, OpType *
> op_t, char **req)
>  
>    // check if invalid op type
>    if ((int) op > UNDEFINED_OP) {
> -    mgmt_elog("[preprocess_msg] ERROR: %d is invalid op type\n", op);
> +    mgmt_elog(0, "[preprocess_msg] ERROR: %d is invalid op type\n", op);
>  
>      // need to flush the invalid message from the socket
>      if ((ret = socket_flush(sock_info)) != TS_ERR_NET_EOF)
> @@ -211,7 +211,7 @@ preprocess_msg(struct SocketInfo sock_info, OpType *
> op_t, char **req)
>    // now read the request msg size
>    ret = socket_read_n(sock_info, (char *) &req_len, SIZE_LEN);
>    if (ret != TS_ERR_OKAY) {
> -    mgmt_elog("[preprocess_msg] ERROR %d reading msg size\n", ret);
> +    mgmt_elog(0, "[preprocess_msg] ERROR %d reading msg size\n", ret);
>      Debug("ts_main", "[preprocess_msg] ERROR %d reading msg size\n", ret);
>      goto Lerror;
>    }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/cluster/ClusterCom.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/cluster/ClusterCom.cc b/mgmt/cluster/ClusterCom.cc
> index e0ef793..0fac4ea 100644
> --- a/mgmt/cluster/ClusterCom.cc
> +++ b/mgmt/cluster/ClusterCom.cc
> @@ -189,11 +189,11 @@ drainIncomingChannel(void *arg)
>        int clilen = sizeof(cli_addr);
>        int req_fd = mgmt_accept(lmgmt->ccom->reliable_server_fd, (struct
>        sockaddr *) &cli_addr, &clilen);
>        if (req_fd < 0) {
> -        mgmt_elog(stderr, "[drainIncomingChannel] error accepting "
> "reliable connection\n");
> +        mgmt_elog(stderr, errno, "[drainIncomingChannel] error accepting "
> "reliable connection\n");
>          continue;
>        }
>        if (fcntl(req_fd, F_SETFD, 1) < 0) {
> -        mgmt_elog(stderr, "[drainIncomingChannel] Unable to set close " "on
> exec flag\n");
> +        mgmt_elog(stderr, errno, "[drainIncomingChannel] Unable to set close
> " "on exec flag\n");
>          close(req_fd);
>          continue;
>        }
> @@ -239,7 +239,7 @@ drainIncomingChannel(void *arg)
>  
>            /* Wait for peer to read status */
>            if (mgmt_readline(req_fd, message, 61440) != 0) {
> -            mgmt_elog("[drainIncomingChannel] Connection not closed\n");
> +            mgmt_elog(0, "[drainIncomingChannel] Connection not closed\n");
>            }
>          } else if (strstr(message, "map: ")) {
>            /* Explicit virtual ip map request */
> @@ -269,7 +269,7 @@ drainIncomingChannel(void *arg)
>  
>            /* Wait for peer to read status */
>            if (mgmt_readline(req_fd, message, 61440) != 0) {
> -            mgmt_elog("[drainIncomingChannel] Connection not closedx\n");
> +            mgmt_elog(0, "[drainIncomingChannel] Connection not closed\n");
>            }
>  
>          } else if (strstr(message, "file: ")) {
> @@ -298,7 +298,7 @@ drainIncomingChannel(void *arg)
>                Debug("ccom", "[drainIncomingChannel] file req: %s v: %d
>                bytes: %d\n", fname, ver, (int)strlen(buff->bufPtr()));
>              }
>            } else {
> -            mgmt_elog("[drainIncomingChannel] Error file req: %s ver: %d\n",
> fname, ver);
> +            mgmt_elog(0, "[drainIncomingChannel] Error file req: %s ver:
> %d\n", fname, ver);
>            }
>  
>            if (!stat) {
> @@ -371,7 +371,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int
> mcport, char *group, i
>  
>    init = false;
>    if (strlen(host) >= 1024) {
> -    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] Hostname too large: %s\n",
> host);
> +    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] Hostname too large:
> %s\n", host);
>    }
>    // the constructor does a memset() on broadcast_addr and receive_addr,
>    initializing them
>    // coverity[uninit_member]
> @@ -408,11 +408,11 @@ ClusterCom::ClusterCom(unsigned long oip, char *host,
> int mcport, char *group, i
>    found = (rec_err == REC_ERR_OKAY);
>  
>    if (!found) {
> -    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] no cluster_configuration
> filename configured\n");
> +    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] no cluster_configuration
> filename configured\n");
>    }
>  
>    if (strlen(p) + strlen(cluster_file) >= 1024) {
> -    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] path + filename too
> large\n");
> +    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] path + filename too
> large\n");
>    }
>    // XXX: This allows to have absolute config cluster_configuration
>    directive.
>    //      If that file must be inside config directory (p) use
> @@ -430,7 +430,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int
> mcport, char *group, i
>      mgmt_log("[ClusterCom::ClusterCom] Node running on OS: '%s' Release:
>      '%s'\n", sys_name, sys_release);
>    } else {
>      sys_name[0] = sys_release[0] = '\0';
> -    mgmt_elog("[ClusterCom::ClusterCom] Unable to determime OS and release
> info\n");
> +    mgmt_elog(errno, "[ClusterCom::ClusterCom] Unable to determime OS and
> release info\n");
>    }
>  
>    /* Grab the proxy cluster port */
> @@ -438,7 +438,7 @@ ClusterCom::ClusterCom(unsigned long oip, char *host, int
> mcport, char *group, i
>    RecRegisterConfigUpdateCb("proxy.config.cluster.cluster_port",
>    cluster_com_port_watcher, NULL);
>  
>    if (!(strlen(group) < (MAX_MC_GROUP_LEN - 1))) {
> -    mgmt_fatal(stderr, "[ClusterCom::ClusterCom] mc group length to
> large!\n");
> +    mgmt_fatal(stderr, 0, "[ClusterCom::ClusterCom] mc group length too
> large!\n");
>    }
>  
>    ink_strlcpy(mc_group, group, sizeof(mc_group));
> @@ -636,7 +636,7 @@ ClusterCom::checkPeers(time_t * ticker)
>       */
>      if (num_peers != number_of_nodes) {
>        if (cluster_file_rb->forceUpdate(buff) != OK_ROLLBACK) {
> -        mgmt_elog("[ClusterCom::checkPeers] Failed update:
> cluster.config\n");
> +        mgmt_elog(0, "[ClusterCom::checkPeers] Failed update:
> cluster.config\n");
>          signal_alarm = true;    /* Throw the alarm after releasing the lock
>          */
>        } else {
>          number_of_nodes = num_peers;    /* Update the static count */
> @@ -789,7 +789,7 @@ ClusterCom::handleMultiCastMessage(char *message)
>      handleMultiCastVMapPacket(last, ip);
>      return;
>    } else {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid type msg:
> '%s'\n", line);
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid type msg:
> '%s'\n", line);
>      return;
>    }
>  
> @@ -821,21 +821,21 @@ ClusterCom::handleMultiCastMessage(char *message)
>    if ((line = strtok_r(NULL, "\n", &last)) == NULL)
>      goto Lbogus;                /* Hostname of sender */
>    if (strlen(line) >= sizeof(hostname) || sscanf(line, "hostname: %s",
>    hostname) != 1) {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d)
> '%s'\n", __LINE__, line);
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>      return;
>    }
>  
>    if ((line = strtok_r(NULL, "\n", &last)) == NULL)
>      goto Lbogus;                /* mc_port of sender */
>    if (sscanf(line, "port: %d", &peer_cluster_port) != 1) {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d)
> '%s'\n", __LINE__, line);
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>      return;
>    }
>  
>    if ((line = strtok_r(NULL, "\n", &last)) == NULL)
>      goto Lbogus;                /* rs_port of sender */
>    if (sscanf(line, "ccomport: %d", &ccom_port) != 1) {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d)
> '%s'\n", __LINE__, line);
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>      return;
>    }
>  
> @@ -844,7 +844,7 @@ ClusterCom::handleMultiCastMessage(char *message)
>      goto Lbogus;
>    int64_t tt;
>    if (sscanf(line, "time: %" PRId64 "", &tt) != 1) {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Invalid message-line(%d)
> '%s'\n", __LINE__, line);
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>      return;
>    }
>    peer_wall_clock = (time_t)tt;
> @@ -910,7 +910,7 @@ ClusterCom::handleMultiCastMessage(char *message)
>  
>  Lbogus:
>    if (log_bogus_mc_msgs) {
> -    mgmt_elog("[ClusterCom::handleMultiCastMessage] Bogus mc
> message-line\n");
> +    mgmt_elog(0, "[ClusterCom::handleMultiCastMessage] Bogus mc
> message-line\n");
>      if (line) {
>        Debug("ccom", "[ClusterCom::handleMultiCastMessage] Bogus mc
>        message-line %s\n", line);
>      }
> @@ -955,7 +955,7 @@ ClusterCom::handleMultiCastStatPacket(char *last,
> ClusterPeerInfo * peer)
>              tmp_msg_val = ink_atoi64(v3 + 1);
>          }
>          if (!v2 || !v3) {
> -          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>            return;
>          }
>          ink_assert(i == tmp_id && rec->data_type == tmp_type);
> @@ -976,7 +976,7 @@ ClusterCom::handleMultiCastStatPacket(char *last,
> ClusterPeerInfo * peer)
>          // the types specified are all have a defined constant size
>          // coverity[secure_coding]
>          if (sscanf(line, "%d:%d: %f", &tmp_id, (int *) &tmp_type,
>          &tmp_msg_val) != 3) {
> -          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>            return;
>          }
>          ink_assert(i == tmp_id && rec->data_type == tmp_type);
> @@ -995,7 +995,7 @@ ClusterCom::handleMultiCastStatPacket(char *last,
> ClusterPeerInfo * peer)
>          // the types specified are all have a defined constant size
>          // coverity[secure_coding]
>          if (sscanf(line, "%d:%d: %n", &tmp_id, (int *) &tmp_type, &ccons) !=
>          2) {
> -          mgmt_elog("[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +          mgmt_elog(0, "[ClusterCom::handleMultiCastStatPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>            return;
>          }
>          tmp_msg_val = &line[ccons];
> @@ -1161,7 +1161,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char
> *ip)
>      file_update_failure = false;
>      // coverity[secure_coding]
>      if (sscanf(line, "%1023s %d %" PRId64 "\n", file, &ver, &tt) != 3) {
> -      mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +      mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>        return;
>      }
>  
> @@ -1228,7 +1228,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char
> *ip)
>          }
>  
>          if (file_update_failure) {
> -          mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Update
> failed\n");
> +          mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Update
> failed\n");
>          } else {
>            mgmt_log(stderr, "[ClusterCom::handleMultiCastFilePacket] "
>            "Updated '%s' o: %d n: %d\n", file, our_ver, ver);
>          }
> @@ -1237,7 +1237,7 @@ ClusterCom::handleMultiCastFilePacket(char *last, char
> *ip)
>  
>        }
>      } else {
> -      mgmt_elog("[ClusterCom::handleMultiCastFilePacket] Unknown file seen:
> '%s'\n", file);
> +      mgmt_elog(0, "[ClusterCom::handleMultiCastFilePacket] Unknown file
> seen: '%s'\n", file);
>      }
>    }
>  
> @@ -1277,7 +1277,7 @@ ClusterCom::handleMultiCastAlarmPacket(char *last, char
> *ip)
>      // both types have a finite size
>      // coverity[secure_coding]
>      if (sscanf(line, "alarm: %d %n", &a, &ccons) != 1) {
> -      mgmt_elog("[ClusterCom::handleMultiCastAlarmPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +      mgmt_elog(0, "[ClusterCom::handleMultiCastAlarmPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>        return;
>      }
>  
> @@ -1316,7 +1316,7 @@ ClusterCom::handleMultiCastVMapPacket(char *last, char
> *ip)
>      }
>      // coverity[secure_coding]
>      if (sscanf(line, "virt: %79s", vaddr) != 1) {
> -      mgmt_elog("[ClusterCom::handleMultiCastVMapPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
> +      mgmt_elog(0, "[ClusterCom::handleMultiCastVMapPacket] Invalid
> message-line(%d) '%s'\n", __LINE__, line);
>        return;
>      }
>  
> @@ -1424,7 +1424,7 @@ ClusterCom::constructSharedGenericPacket(char *message,
> int max, RecT packet_typ
>      running_sum += strlen("type: stat\n");
>      ink_release_assert(running_sum < max);
>    } else {
> -    mgmt_elog("[ClusterCom::constructSharedGenericPacket] Illegal type seen
> '%d'\n", packet_type);
> +    mgmt_elog(0, "[ClusterCom::constructSharedGenericPacket] Illegal type
> seen '%d'\n", packet_type);
>      return;
>    }
>  
> @@ -1468,7 +1468,7 @@ ClusterCom::constructSharedGenericPacket(char *message,
> int max, RecT packet_typ
>      ink_strlcpy(&message[running_sum], tmp, (max - running_sum));
>      running_sum += strlen(tmp);
>    } else {
> -    mgmt_elog(stderr, "[ClusterCom::constructSharedPacket] time failed\n");
> +    mgmt_elog(stderr, errno, "[ClusterCom::constructSharedPacket] time
> failed\n");
>    }
>    ink_release_assert(running_sum < max);
>  
> @@ -1604,7 +1604,7 @@ ClusterCom::constructSharedFilePacket(char *message,
> int max)
>        running_sum += strlen(tmp);
>        ink_release_assert(running_sum < max);
>      } else {
> -      mgmt_elog("[ClusterCom::constructSharedFilePacket] Invalid base name?
> '%s'\n", line);
> +      mgmt_elog(0, "[ClusterCom::constructSharedFilePacket] Invalid base
> name? '%s'\n", line);
>      }
>    } while ((line = strtok_r(NULL, "\n", &last)));
>  
> @@ -1631,14 +1631,14 @@ ClusterCom::establishChannels()
>      if (reliable_server_port > 0) {
>        /* Setup reliable connection, for large config changes */
>        if ((reliable_server_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
> -        mgmt_fatal("[ClusterCom::establishChannels] Unable to create
> socket\n");
> +        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to create
> socket\n");
>        }
>        if (fcntl(reliable_server_fd, F_SETFD, 1) < 0) {
> -        mgmt_fatal("[ClusterCom::establishChannels] Unable to set
> close-on-exec.\n");
> +        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to set
> close-on-exec.\n");
>        }
>  
>        if (setsockopt(reliable_server_fd, SOL_SOCKET, SO_REUSEADDR, (char *)
>        &one, sizeof(int)) < 0) {
> -        mgmt_fatal("[ClusterCom::establishChannels] Unable to set socket
> options.\n");
> +        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to set
> socket options.\n");
>        }
>  
>        memset(&serv_addr, 0, sizeof(serv_addr));
> @@ -1647,11 +1647,11 @@ ClusterCom::establishChannels()
>        serv_addr.sin_port = htons(reliable_server_port);
>  
>        if ((bind(reliable_server_fd, (struct sockaddr *) &serv_addr,
>        sizeof(serv_addr))) < 0) {
> -        mgmt_fatal("[ClusterCom::establishChannels] Unable to bind socket
> (port:%d)\n", reliable_server_port);
> +        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to bind
> socket (port:%d)\n", reliable_server_port);
>        }
>  
>        if ((listen(reliable_server_fd, 10)) < 0) {
> -        mgmt_fatal("[ClusterCom::establishChannels] Unable to listen on
> socket\n");
> +        mgmt_fatal(errno, "[ClusterCom::establishChannels] Unable to listen
> on socket\n");
>        }
>      }
>    }
> @@ -1670,16 +1670,16 @@ void
>  ClusterCom::establishBroadcastChannel(void)
>  {
>    if ((broadcast_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
> -    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to open
> socket.\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to
> open socket.\n");
>    }
>  
>    if (fcntl(broadcast_fd, F_SETFD, 1) < 0) {
> -    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to set
> close-on-exec.\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to set
> close-on-exec.\n");
>    }
>  
>    int one = 1;
>    if (setsockopt(broadcast_fd, SOL_SOCKET, SO_REUSEADDR, (const char *)
>    &one, sizeof(one)) < 0) {
> -    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to set socket
> options.\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to set
> socket options.\n");
>    }
>  
>    memset(&broadcast_addr, 0, sizeof(broadcast_addr));
> @@ -1691,12 +1691,12 @@ ClusterCom::establishBroadcastChannel(void)
>  
>    /* Set ttl(max forwards), 1 should be default(same subnetwork). */
>    if (setsockopt(broadcast_fd, IPPROTO_IP, IP_MULTICAST_TTL, (const char *)
>    &ttl, sizeof(ttl)) < 0) {
> -    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to
> setsocketopt, ttl\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to
> setsocketopt, ttl\n");
>    }
>  
>    /* Disable broadcast loopback, that is broadcasting to self */
>    if (setsockopt(broadcast_fd, IPPROTO_IP, IP_MULTICAST_LOOP, (const char *)
>    &loop, sizeof(loop)) < 0) {
> -    mgmt_fatal("[ClusterCom::establishBroadcastChannel] Unable to disable
> loopback\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishBroadcastChannel] Unable to
> disable loopback\n");
>    }
>  
>    return;
> @@ -1717,7 +1717,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
>        Debug("ccom", "establishReceiveChannel: Unable to open socket");
>        return 1;
>      }
> -    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to open
> socket\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to open
> socket\n");
>    }
>  
>    if (fcntl(receive_fd, F_SETFD, 1) < 0) {
> @@ -1727,7 +1727,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
>        Debug("ccom", "establishReceiveChannel: Unable to set close-on-exec");
>        return 1;
>      }
> -    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to set
> close-on-exec.\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to set
> close-on-exec.\n");
>    }
>  
>    int one = 1;
> @@ -1738,7 +1738,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
>        Debug("ccom", "establishReceiveChannel: Unable to set socket to reuse
>        addr");
>        return 1;
>      }
> -    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to set socket
> to reuse addr.\n");
> +    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to set
> socket to reuse addr.\n");
>    }
>  
>    memset(&receive_addr, 0, sizeof(receive_addr));
> @@ -1753,7 +1753,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
>        Debug("ccom", "establishReceiveChannel: Unable to bind to socket, port
>        %d", mc_port);
>        return 1;
>      }
> -    mgmt_fatal("[ClusterCom::establishReceiveChannel] Unable to bind to
> socket, port %d\n", mc_port);
> +    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Unable to bind
> to socket, port %d\n", mc_port);
>    }
>    /* Add ourselves to the group */
>    struct ip_mreq mc_request;
> @@ -1767,7 +1767,7 @@ ClusterCom::establishReceiveChannel(int fatal_on_error)
>  
>        return 1;
>      }
> -    mgmt_fatal("[ClusterCom::establishReceiveChannel] Can't add ourselves to
> multicast group %s\n", mc_group);
> +    mgmt_fatal(errno, "[ClusterCom::establishReceiveChannel] Can't add
> ourselves to multicast group %s\n", mc_group);
>    }
>  
>    return 0;
> @@ -1784,7 +1784,7 @@ bool
>  ClusterCom::sendOutgoingMessage(char *buf, int len)
>  {
>    if (mgmt_sendto(broadcast_fd, buf, len, 0, (struct sockaddr *)
>    &broadcast_addr, sizeof(broadcast_addr)) < 0) {
> -    mgmt_elog("[ClusterCom::sendOutgoingMessage] Message send failed\n");
> +    mgmt_elog(errno, "[ClusterCom::sendOutgoingMessage] Message send
> failed\n");
>      return false;
>    }
>    return true;
> @@ -1898,7 +1898,7 @@ ClusterCom::rl_sendReliableMessage(unsigned long addr,
> const char *buf, int len)
>  
>  
>    if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
> -    mgmt_elog("[ClusterCom::rl_sendReliableMessage] Unable to create
> socket\n");
> +    mgmt_elog(errno, "[ClusterCom::rl_sendReliableMessage] Unable to create
> socket\n");
>      return false;
>    }
>    if (fcntl(fd, F_SETFD, 1) < 0) {
> @@ -1908,13 +1908,13 @@ ClusterCom::rl_sendReliableMessage(unsigned long
> addr, const char *buf, int len)
>    }
>  
>    if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
> -    mgmt_elog("[ClusterCom::rl_sendReliableMessage] Unable to connect to
> peer\n");
> +    mgmt_elog(errno, "[ClusterCom::rl_sendReliableMessage] Unable to connect
> to peer\n");
>      close_socket(fd);
>      return false;
>    }
>  
>    if (mgmt_writeline(fd, buf, len) != 0) {
> -    mgmt_elog(stderr, "[ClusterCom::rl_sendReliableMessage] Write
> failed\n");
> +    mgmt_elog(stderr, errno, "[ClusterCom::rl_sendReliableMessage] Write
> failed\n");
>      close_socket(fd);
>      return false;
>    }
> @@ -1955,14 +1955,14 @@ ClusterCom::sendReliableMessage(unsigned long addr,
> char *buf, int len, char *re
>    serv_addr.sin_port = htons(cport);
>  
>    if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to create
> socket\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to create
> socket\n");
>      if (take_lock) {
>        ink_mutex_release(&mutex);
>      }
>      return false;
>    }
>    if (fcntl(fd, F_SETFD, 1) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to set
> close-on-exec.\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to set
> close-on-exec.\n");
>      if (take_lock) {
>        ink_mutex_release(&mutex);
>      }
> @@ -1971,7 +1971,7 @@ ClusterCom::sendReliableMessage(unsigned long addr,
> char *buf, int len, char *re
>    }
>  
>    if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessage] Unable to connect to
> peer\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Unable to connect to
> peer\n");
>      if (take_lock) {
>        ink_mutex_release(&mutex);
>      }
> @@ -1980,7 +1980,7 @@ ClusterCom::sendReliableMessage(unsigned long addr,
> char *buf, int len, char *re
>    }
>  
>    if (mgmt_writeline(fd, buf, len) != 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessage] Write failed\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessage] Write failed\n");
>      if (take_lock) {
>        ink_mutex_release(&mutex);
>      }
> @@ -1989,7 +1989,7 @@ ClusterCom::sendReliableMessage(unsigned long addr,
> char *buf, int len, char *re
>    }
>  
>    if (mgmt_readline(fd, reply, len2) == -1) {
> -    mgmt_elog(stderr, "[ClusterCom::sendReliableMessage] Read failed\n");
> +    mgmt_elog(stderr, errno, "[ClusterCom::sendReliableMessage] Read
> failed\n");
>      perror("ClusterCom::sendReliableMessage");
>      reply[0] = '\0';
>      if (take_lock) {
> @@ -2035,26 +2035,26 @@ ClusterCom::sendReliableMessageReadTillClose(unsigned
> long addr, char *buf, int
>    serv_addr.sin_port = htons(cport);
>  
>    if ((fd = mgmt_socket(AF_INET, SOCK_STREAM, 0)) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable create
> sock\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable
> create sock\n");
>      ink_mutex_release(&mutex);
>      return false;
>    }
>    if (fcntl(fd, F_SETFD, 1) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable to set
> close-on-exec.\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable
> to set close-on-exec.\n");
>      ink_mutex_release(&mutex);
>      close(fd);
>      return false;
>    }
>  
>    if (connect(fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Unable to
> connect\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Unable
> to connect\n");
>      ink_mutex_release(&mutex);
>      close_socket(fd);
>      return false;
>    }
>  
>    if (mgmt_writeline(fd, buf, len) != 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Write
> failed\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Write
> failed\n");
>      ink_mutex_release(&mutex);
>      close_socket(fd);
>      return false;
> @@ -2072,7 +2072,7 @@ ClusterCom::sendReliableMessageReadTillClose(unsigned
> long addr, char *buf, int
>    }
>  
>    if (res < 0) {
> -    mgmt_elog("[ClusterCom::sendReliableMessageReadTillClose] Read
> failed\n");
> +    mgmt_elog(errno, "[ClusterCom::sendReliableMessageReadTillClose] Read
> failed\n");
>      perror("ClusterCom::sendReliableMessageReadTillClose");
>      ink_mutex_release(&mutex);
>      close_socket(fd);
> @@ -2096,7 +2096,7 @@ ClusterCom::receiveIncomingMessage(char *buf, int max)
>    int nbytes = 0, addr_len = sizeof(receive_addr);
>  
>    if ((nbytes = recvfrom(receive_fd, buf, max, 0, (struct sockaddr *)
>    &receive_addr, (socklen_t *) & addr_len)) < 0) {
> -    mgmt_elog(stderr, "[ClusterCom::receiveIncomingMessage] Receive
> failed\n");
> +    mgmt_elog(stderr, errno, "[ClusterCom::receiveIncomingMessage] Receive
> failed\n");
>    }
>    return nbytes;
>  }                               /* End ClusterCom::processIncomingMessages
>  */
> @@ -2304,7 +2304,7 @@ checkBackDoor(int req_fd, char *message)
>  
>      // coverity[secure_coding]
>      if (sscanf(message, "read %s\n", variable) != 1) {
> -      mgmt_elog("[ClusterCom::CBD] Invalid message-line(%d) '%s'\n",
> __LINE__, message);
> +      mgmt_elog(0, "[ClusterCom::CBD] Invalid message-line(%d) '%s'\n",
> __LINE__, message);
>        return false;
>      }
>  
> @@ -2346,17 +2346,17 @@ checkBackDoor(int req_fd, char *message)
>        if (found) {
>          mgmt_writeline(req_fd, reply, rep_len);
>        } else {
> -        mgmt_elog("[checkBackDoor] record not found '%s'\n", variable);
> +        mgmt_elog(0, "[checkBackDoor] record not found '%s'\n", variable);
>        }
>      } else {
> -      mgmt_elog("[checkBackDoor] Unknown variable requested '%s'\n",
> variable);
> +      mgmt_elog(0, "[checkBackDoor] Unknown variable requested '%s'\n",
> variable);
>      }
>      return true;
>    } else if (strstr(message, "write ")) {
>      char variable[1024], value[1024];
>  
>      if (sscanf(message, "write %s %s", variable, value) != 2) {
> -      mgmt_elog("[ClusterCom::CBD] Invalid message-line(%d) '%s'\n",
> __LINE__, message);
> +      mgmt_elog(0, "[ClusterCom::CBD] Invalid message-line(%d) '%s'\n",
> __LINE__, message);
>        return false;
>      }
>      // TODO: I think this is correct, it used to do lmgmt->record_data-> ...
> @@ -2364,7 +2364,7 @@ checkBackDoor(int req_fd, char *message)
>        ink_strlcpy(reply, "\nRecord Updated\n\n", sizeof(reply));
>        mgmt_writeline(req_fd, reply, strlen(reply));
>      } else {
> -      mgmt_elog("[checkBackDoor] Assignment to unknown variable requested
> '%s'\n", variable);
> +      mgmt_elog(0, "[checkBackDoor] Assignment to unknown variable requested
> '%s'\n", variable);
>      }
>      return true;
>    } else if (strstr(message, "peers")) {
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/cluster/VMap.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/cluster/VMap.cc b/mgmt/cluster/VMap.cc
> index 51fa525..5539e6f 100644
> --- a/mgmt/cluster/VMap.cc
> +++ b/mgmt/cluster/VMap.cc
> @@ -116,7 +116,7 @@ VMap::VMap(char *interface, unsigned long ip, ink_mutex *
> m)
>      int len;
>  
>      if ((tmp_socket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
> -      mgmt_fatal(stderr, "[VMap::VMap] Unable to create socket for interface
> ioctls\n");
> +      mgmt_fatal(stderr, errno, "[VMap::VMap] Unable to create socket for
> interface ioctls\n");
>      }
>      // INKqa06739
>      // Fetch the list of network interfaces
> @@ -131,7 +131,7 @@ VMap::VMap(char *interface, unsigned long ip, ink_mutex *
> m)
>        ifc.ifc_buf = ifbuf;
>        if (ioctl(tmp_socket, SIOCGIFCONF, &ifc) < 0) {
>          if (errno != EINVAL || lastlen != 0) {
> -          mgmt_fatal(stderr, "[VMap::VMap] Unable to read network interface
> configuration\n");
> +          mgmt_fatal(stderr, errno, "[VMap::VMap] Unable to read network
> interface configuration\n");
>          }
>        } else {
>          if (ifc.ifc_len == lastlen) {
> @@ -273,7 +273,7 @@ VMap::lt_runGambit()
>          ink_strlcpy(raddr, inet_ntoa(real_addr), sizeof(raddr));
>          rl_remote_map(vaddr, raddr);
>        } else if (!rl_map(vaddr)) {      /* We are the winner, map it to us
>        */
> -        mgmt_elog(stderr, "[VMap::lt_runGambit] Map failed for vaddr: %s\n",
> vaddr);
> +        mgmt_elog(stderr, 0, "[VMap::lt_runGambit] Map failed for vaddr:
> %s\n", vaddr);
>        } else {
>          mgmt_log(stderr, "[VMap::lt_runGambit] Map succeeded for vaddr:
>          %s\n", vaddr);
>        }
> @@ -379,7 +379,7 @@ VMap::lt_readAListFile(char *data)
>                   " virtual ips\n", tmp_interface);
>        }
>      } else {
> -      mgmt_elog(stderr, "[VMap::lt_readAListFile] VIP in config file but no
> interface"
> +      mgmt_elog(stderr, 0, "[VMap::lt_readAListFile] VIP in config file but
> no interface"
>                  " '%s' present on node.\n", tmp_interface);
>      }
>    }
> @@ -455,7 +455,7 @@ VMap::rl_remote_map(char *virt_ip, char *real_ip)
>  
>    snprintf((char *) buf, sizeof(buf), "map: %s", virt_ip);
>    if (!(lmgmt->ccom->sendReliableMessage(inet_addr(real_ip), buf,
>    strlen(buf), reply, 4096, false))) {
> -    mgmt_elog(stderr, "[VMap::rl_remote_map] Reliable send failed\n");
> +    mgmt_elog(stderr, errno, "[VMap::rl_remote_map] Reliable send
> failed\n");
>      return false;
>    } else if (strcmp(reply, "map: failed") == 0) {
>      mgmt_log(stderr, "[VMap::rl_remote_map] Mapping failed\n");
> @@ -477,7 +477,7 @@ VMap::rl_remote_unmap(char *virt_ip, char *real_ip)
>  
>    snprintf((char *) buf, sizeof(buf), "unmap: %s", virt_ip);
>    if (!(lmgmt->ccom->sendReliableMessage(inet_addr(real_ip), buf,
>    strlen(buf), reply, 4096, false))) {
> -    mgmt_elog(stderr, "[VMap::rl_remote_unmap] Reliable send failed\n");
> +    mgmt_elog(stderr, errno, "[VMap::rl_remote_unmap] Reliable send
> failed\n");
>      return false;
>    } else if (strcmp((char *) reply, "unmap: failed") == 0) {
>      mgmt_log(stderr, "[VMap::rl_remote_unmap] Mapping failed\n");
> @@ -518,7 +518,7 @@ VMap::rl_map(char *virt_ip, char *real_ip)
>    *entry = true;
>  
>    if (!real_ip) {
> -    mgmt_elog("[VMap::rl_map] no real ip associated with virtual ip %s,
> mapping to local\n", buf);
> +    mgmt_elog(0, "[VMap::rl_map] no real ip associated with virtual ip %s,
> mapping to local\n", buf);
>      last_map_change = time(NULL);
>    }
>    ink_hash_table_insert(tmp, buf, (void *) entry);
> @@ -593,7 +593,7 @@ VMap::rl_checkConflict(char *virt_ip)
>        buf++;
>        ink_strlcpy(buf2, buf, sizeof(buf2));
>      } else {
> -      mgmt_fatal(stderr, "[VMap::rl_checkConflict] Corrupt VMap entry('%s'),
> bailing\n", key);
> +      mgmt_fatal(stderr, 0, "[VMap::rl_checkConflict] Corrupt VMap
> entry('%s'), bailing\n", key);
>      }
>      return ats_strdup(buf2);
>    }
> @@ -754,7 +754,7 @@ VMap::rl_boundTo(char *virt_ip)
>          buf++;
>          ink_strlcpy(buf2, buf, sizeof(buf2));
>        } else {
> -        mgmt_fatal(stderr, "[VMap::rl_boundTo] Corrupt VMap entry('%s'),
> bailing\n", key);
> +        mgmt_fatal(stderr, 0, "[VMap::rl_boundTo] Corrupt VMap entry('%s'),
> bailing\n", key);
>        }
>        return (inet_addr(buf2));
>      }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/MgmtUtils.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/utils/MgmtUtils.cc b/mgmt/utils/MgmtUtils.cc
> index 05cd022..275ff3e 100644
> --- a/mgmt/utils/MgmtUtils.cc
> +++ b/mgmt/utils/MgmtUtils.cc
> @@ -304,7 +304,7 @@ mgmt_log(const char *message_format, ...)
>   *   Same as above, but intended for errors.
>   */
>  void
> -mgmt_elog(FILE * log, const char *message_format, ...)
> +mgmt_elog(FILE * log, const int lerrno, const char *message_format, ...)
>  {
>    va_list ap;
>    char extended_format[4096], message[4096];
> @@ -313,23 +313,27 @@ mgmt_elog(FILE * log, const char *message_format, ...)
>  
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    if (diags_init) {
> -    int lerrno = errno;
> -
>      diags->print_va(NULL, DL_Error, NULL, message_format, ap);
> -    diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    if (lerrno != 0) {
> +      diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    }
>    } else {
>  #endif
>      if (use_syslog) {
>        snprintf(extended_format, sizeof(extended_format), "ERROR ==> %s",
>        message_format);
>        vsprintf(message, extended_format, ap);
>        syslog(LOG_ERR, "%s", message);
> -      syslog(LOG_ERR, " (last system error %d: %s)", errno,
> strerror(errno));
> +      if (lerrno != 0) {
> +        syslog(LOG_ERR, " (last system error %d: %s)", lerrno,
> strerror(lerrno));
> +      }
>      } else {
>        snprintf(extended_format, sizeof(extended_format), "[E. Mgmt] ERROR
>        ==> %s", message_format);
>        vsprintf(message, extended_format, ap);
>        ink_assert(fwrite(message, strlen(message), 1, log) == 1);
> -      snprintf(message, sizeof(message), "(last system error %d: %s)",
> errno, strerror(errno));
> -      ink_assert(fwrite(message, strlen(message), 1, log) == 1);
> +      if (lerrno != 0) {
> +        snprintf(message, sizeof(message), "(last system error %d: %s)",
> lerrno, strerror(lerrno));
> +        ink_assert(fwrite(message, strlen(message), 1, log) == 1);
> +      }
>      }
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    }
> @@ -341,7 +345,7 @@ mgmt_elog(FILE * log, const char *message_format, ...)
>  
>  
>  void
> -mgmt_elog(const char *message_format, ...)
> +mgmt_elog(const int lerrno, const char *message_format, ...)
>  {
>    va_list ap;
>    char extended_format[4096], message[4096];
> @@ -350,9 +354,10 @@ mgmt_elog(const char *message_format, ...)
>  
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    if (diags_init) {
> -    int lerrno = errno;
>      diags->print_va(NULL, DL_Error, NULL, message_format, ap);
> -    diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    if (lerrno != 0) {
> +      diags->print(NULL, DTA(DL_Error), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    }
>    } else {
>  #endif
>  
> @@ -360,13 +365,17 @@ mgmt_elog(const char *message_format, ...)
>        snprintf(extended_format, sizeof(extended_format), "ERROR ==> %s",
>        message_format);
>        vsprintf(message, extended_format, ap);
>        syslog(LOG_ERR, "%s", message);
> -      syslog(LOG_ERR, " (last system error %d: %s)", errno,
> strerror(errno));
> +      if (lerrno != 0) {
> +        syslog(LOG_ERR, " (last system error %d: %s)", lerrno,
> strerror(lerrno));
> +      }
>      } else {
>        snprintf(extended_format, sizeof(extended_format), "Manager ERROR:
>        %s", message_format);
>        vsprintf(message, extended_format, ap);
>        ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
> -      snprintf(message, sizeof(message), "(last system error %d: %s)",
> errno, strerror(errno));
> -      ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
> +      if (lerrno != 0) {
> +        snprintf(message, sizeof(message), "(last system error %d: %s)",
> lerrno, strerror(lerrno));
> +        ink_assert(fwrite(message, strlen(message), 1, stderr) == 1);
> +      }
>      }
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    }
> @@ -382,7 +391,7 @@ mgmt_elog(const char *message_format, ...)
>   * asserts false.
>   */
>  void
> -mgmt_fatal(FILE * log, const char *message_format, ...)
> +mgmt_fatal(FILE * log, const int lerrno, const char *message_format, ...)
>  {
>    va_list ap;
>    char extended_format[4096], message[4096];
> @@ -392,9 +401,10 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
>  
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    if (diags_init) {
> -    int lerrno = errno;
>      diags->print_va(NULL, DL_Fatal, NULL, message_format, ap);
> -    diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    if (lerrno != 0) {
> +      diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    }
>    } else {
>  #endif
>  
> @@ -407,13 +417,13 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
>        syslog(LOG_ERR, "%s", message);
>      }
>  
> -
> -
> -    perror("[E. Mgmt] ");
> -
> -    if (use_syslog) {
> -      syslog(LOG_ERR, " (last system error %d: %s)", errno,
> strerror(errno));
> +    if (lerrno != 0) {
> +      fprintf(stderr, "[E. Mgmt] last system error %d: %s", lerrno,
> strerror(lerrno));
> +      if (use_syslog) {
> +        syslog(LOG_ERR, " (last system error %d: %s)", lerrno,
> strerror(lerrno));
> +      }
>      }
> +
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    }
>  #endif
> @@ -427,7 +437,7 @@ mgmt_fatal(FILE * log, const char *message_format, ...)
>  
>  
>  void
> -mgmt_fatal(const char *message_format, ...)
> +mgmt_fatal(const int lerrno, const char *message_format, ...)
>  {
>    va_list ap;
>    char extended_format[4096], message[4096];
> @@ -436,9 +446,10 @@ mgmt_fatal(const char *message_format, ...)
>  
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    if (diags_init) {
> -    int lerrno = errno;
>      diags->print_va(NULL, DL_Fatal, NULL, message_format, ap);
> -    diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    if (lerrno != 0) {
> +      diags->print(NULL, DTA(DL_Fatal), " (last system error %d: %s)\n",
> lerrno, strerror(lerrno));
> +    }
>    } else {
>  #endif
>  
> @@ -451,12 +462,12 @@ mgmt_fatal(const char *message_format, ...)
>        syslog(LOG_ERR, "%s", message);
>      }
>  
> +    if (lerrno != 0) {
> +      fprintf(stderr, "[E. Mgmt] last system error %d: %s", lerrno,
> strerror(lerrno));
>  
> -
> -    perror("[E. Mgmt] ");
> -
> -    if (use_syslog) {
> -      syslog(LOG_ERR, " (last system error %d: %s)", errno,
> strerror(errno));
> +      if (use_syslog) {
> +        syslog(LOG_ERR, " (last system error %d: %s)", lerrno,
> strerror(lerrno));
> +      }
>      }
>  #if defined(LOCAL_MANAGER) || defined(PROCESS_MANAGER)
>    }
> @@ -512,7 +523,7 @@ mgmt_getAddrForIntr(char *intrName, sockaddr* addr, int
> *mtu)
>    memset(addr, 0, sizeof(struct in_addr));
>  
>    if ((fakeSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
> -    mgmt_fatal(stderr, "[getAddrForIntr] Unable to create socket\n");
> +    mgmt_fatal(stderr, errno, "[getAddrForIntr] Unable to create socket\n");
>    }
>    // INKqa06739
>    // Fetch the list of network interfaces
> @@ -527,7 +538,7 @@ mgmt_getAddrForIntr(char *intrName, sockaddr* addr, int
> *mtu)
>      ifc.ifc_buf = ifbuf;
>      if (ioctl(fakeSocket, SIOCGIFCONF, &ifc) < 0) {
>        if (errno != EINVAL || lastlen != 0) {
> -        mgmt_fatal(stderr, "[getAddrForIntr] Unable to read network
> interface configuration\n");
> +        mgmt_fatal(stderr, errno, "[getAddrForIntr] Unable to read network
> interface configuration\n");
>        }
>      } else {
>        if (ifc.ifc_len == lastlen) {
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/MgmtUtils.h
> ----------------------------------------------------------------------
> diff --git a/mgmt/utils/MgmtUtils.h b/mgmt/utils/MgmtUtils.h
> index 9acb521..cad15e2 100644
> --- a/mgmt/utils/MgmtUtils.h
> +++ b/mgmt/utils/MgmtUtils.h
> @@ -56,11 +56,11 @@ bool mgmt_getAddrForIntr(char *intrName, sockaddr* addr,
> int *mtu = 0);
>  /* the following functions are all DEPRECATED.  The Diags
>     interface should be used exclusively in the future */
>  void mgmt_log(FILE * log, const char *message_format, ...);
> -void mgmt_elog(FILE * log, const char *message_format, ...);
> -void mgmt_fatal(FILE * log, const char *message_format, ...);
> +void mgmt_elog(FILE * log, const int lerrno, const char *message_format,
> ...);
> +void mgmt_fatal(FILE * log, const int lerrno, const char *message_format,
> ...);
>  void mgmt_log(const char *message_format, ...);
> -void mgmt_elog(const char *message_format, ...);
> -void mgmt_fatal(const char *message_format, ...);
> +void mgmt_elog(const int lerrno, const char *message_format, ...);
> +void mgmt_fatal(const int lerrno, const char *message_format, ...);
>  void mgmt_log_output(FILE * stdio_or_null, DiagsLevel type, const char
>  *format, ...);
>  void mgmt_log_output_va(FILE * stdio_or_null, DiagsLevel type, const char
>  *format, va_list ap);
>  
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/utils/WebMgmtUtils.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/utils/WebMgmtUtils.cc b/mgmt/utils/WebMgmtUtils.cc
> index f3c2353..ed82b09 100644
> --- a/mgmt/utils/WebMgmtUtils.cc
> +++ b/mgmt/utils/WebMgmtUtils.cc
> @@ -1065,7 +1065,7 @@ setHostnameVar()
>  
>    // Get Our HostName
>    if (gethostname(ourHostName, MAXDNAME) < 0) {
> -    mgmt_fatal(stderr, "[setHostnameVar] Can not determine our hostname");
> +    mgmt_fatal(stderr, errno, "[setHostnameVar] Can not determine our
> hostname");
>    }
>  
>    res_init();
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/web2/WebHttp.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/web2/WebHttp.cc b/mgmt/web2/WebHttp.cc
> index ecad1c7..9df0da5 100644
> --- a/mgmt/web2/WebHttp.cc
> +++ b/mgmt/web2/WebHttp.cc
> @@ -524,7 +524,7 @@ WebHttpHandleConnection(WebHttpConInfo * whci)
>      // on the autoconf port.  can't have users downloading arbitrary
>      // files under the config directory!
>      if (!ink_hash_table_isbound(g_autoconf_allow_ht, file)) {
> -      mgmt_elog(stderr,"[WebHttpHandleConnection] %s not valid autoconf
> file",file);
> +      mgmt_elog(stderr, 0, "[WebHttpHandleConnection] %s not valid autoconf
> file", file);
>        whc->response_hdr->setStatus(STATUS_NOT_FOUND);
>        WebHttpSetErrorResponse(whc, STATUS_NOT_FOUND);
>        goto Ltransaction_send;
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/c2452f5f/mgmt/web2/WebIntrMain.cc
> ----------------------------------------------------------------------
> diff --git a/mgmt/web2/WebIntrMain.cc b/mgmt/web2/WebIntrMain.cc
> index 29fb81f..ff29c97 100644
> --- a/mgmt/web2/WebIntrMain.cc
> +++ b/mgmt/web2/WebIntrMain.cc
> @@ -202,7 +202,7 @@ newUNIXsocket(char *fpath)
>    // Set the close on exec flag so our children do not
>    //  have this socket open
>    if (fcntl(socketFD, F_SETFD, 1) < 0) {
> -    mgmt_elog(stderr, "[newUNIXSocket] Unable to set close on exec flag\n");
> +    mgmt_elog(stderr, errno, "[newUNIXSocket] Unable to set close on exec
> flag\n");
>    }
>  
>    return socketFD;
> @@ -228,7 +228,7 @@ newTcpSocket(int port)
>  
>    // Create the new TCP Socket
>    if ((socketFD = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
> -    mgmt_fatal(stderr, "[newTcpSocket]: %s", "Unable to Create Socket\n");
> +    mgmt_fatal(stderr, errno, "[newTcpSocket]: %s", "Unable to Create
> Socket\n");
>      return -1;
>    }
>    // Specify our port number is network order
> @@ -239,24 +239,24 @@ newTcpSocket(int port)
>  
>    // Allow for immediate re-binding to port
>    if (setsockopt(socketFD, SOL_SOCKET, SO_REUSEADDR, (char *) &one,
>    sizeof(int)) < 0) {
> -    mgmt_fatal(stderr, "[newTcpSocket] Unable to set socket options.\n");
> +    mgmt_fatal(stderr, errno, "[newTcpSocket] Unable to set socket
> options.\n");
>    }
>    // Bind the port to the socket
>    if (bind(socketFD, (sockaddr *) & socketInfo, sizeof(socketInfo)) < 0) {
> -    mgmt_elog(stderr, "[newTcpSocket] Unable to bind port %d to socket:
> %s\n", port, strerror(errno));
> +    mgmt_elog(stderr, 0, "[newTcpSocket] Unable to bind port %d to socket:
> %s\n", port, strerror(errno));
>      close_socket(socketFD);
>      return -1;
>    }
>    // Listen on the new socket
>    if (listen(socketFD, 5) < 0) {
> -    mgmt_elog(stderr, "[newTcpSocket] %s\n", "Unable to listen on the
> socket");
> +    mgmt_elog(stderr, errno, "[newTcpSocket] %s\n", "Unable to listen on the
> socket");
>      close_socket(socketFD);
>      return -1;
>    }
>    // Set the close on exec flag so our children do not
>    //  have this socket open
>    if (fcntl(socketFD, F_SETFD, 1) < 0) {
> -    mgmt_elog(stderr, "[newTcpSocket] Unable to set close on exec flag\n");
> +    mgmt_elog(stderr, errno, "[newTcpSocket] Unable to set close on exec
> flag\n");
>    }
>  
>    return socketFD;
> @@ -408,7 +408,7 @@ webIntr_main(void *)
>    ink_assert(found);
>  
>    if (autoconfContext.docRoot == NULL) {
> -    mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
> +    mgmt_fatal(stderr, 0, "[WebIntrMain] No Client AutoConf Root\n");
>    } else {
>      struct stat s;
>      int err;
> @@ -417,10 +417,10 @@ webIntr_main(void *)
>        ats_free(autoconfContext.docRoot);
>        autoconfContext.docRoot = ats_strdup(system_config_directory);
>        if ((err = stat(autoconfContext.docRoot, &s)) < 0) {
> -        mgmt_elog("[WebIntrMain] unable to stat() directory '%s': %d %d,
> %s\n",
> +        mgmt_elog(0, "[WebIntrMain] unable to stat() directory '%s': %d %d,
> %s\n",
>                  autoconfContext.docRoot, err, errno, strerror(errno));
> -        mgmt_elog("[WebIntrMain] please set config path via command line
> '-path <path>' or 'proxy.config.config_dir' \n");
> -        mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
> +        mgmt_elog(0, "[WebIntrMain] please set config path via command line
> '-path <path>' or 'proxy.config.config_dir' \n");
> +        mgmt_fatal(stderr, 0, "[WebIntrMain] No Client AutoConf Root\n");
>        }
>      }
>      autoconfContext.docRootLen = strlen(autoconfContext.docRoot);
> @@ -467,7 +467,7 @@ webIntr_main(void *)
>      lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_WEB_ERROR, pacFailMsg);
>    } else {
>      if ((autoconfFD = newTcpSocket(publicPort)) < 0) {
> -      mgmt_elog(stderr, "[WebIntrMain] Unable to start client autoconf
> server\n");
> +      mgmt_elog(stderr, errno, "[WebIntrMain] Unable to start client
> autoconf server\n");
>        lmgmt->alarm_keeper->signalAlarm(MGMT_ALARM_WEB_ERROR, pacFailMsg);
>      }
>    }
> @@ -553,7 +553,7 @@ webIntr_main(void *)
>                wGlobals.serviceThrArray[i].threadId = thrId;
>              } else {
>                // Failed to create thread
> -              mgmt_elog(stderr, "[WebIntrMain] Failed to create service
> thread\n");
> +              mgmt_elog(stderr, errno, "[WebIntrMain] Failed to create
> service thread\n");
>                wGlobals.serviceThrArray[i].threadId = 0;
>                wGlobals.serviceThrArray[i].fd = -1;
>                close_socket(clientFD);
> @@ -567,7 +567,7 @@ webIntr_main(void *)
>  
>              break;
>            } else if (i == MAX_SERVICE_THREADS - 1) {
> -            mgmt_fatal(stderr, "[WebIntrMain] Syncronizaion Failure\n");
> +            mgmt_fatal(stderr, 0, "[WebIntrMain] Syncronizaion Failure\n");
>              _exit(1);
>            }
>          }
> 
> 
> 

-- 
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/
GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE