Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > d236c5da97a239a1b6991cfba2865b66 > files > 6

cman-2.0.115-68.el5_6.1.src.rpm

diff --git a/ccs/daemon/ccsd.c b/ccs/daemon/ccsd.c
index f2325fd..82d7bae 100644
--- a/ccs/daemon/ccsd.c
+++ b/ccs/daemon/ccsd.c
@@ -57,6 +57,7 @@ int main(int argc, char *argv[]){
   struct sockaddr_storage addr;
   struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
   struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
+  char addrbuf[64], *res;
   int addr_size=0;
   fd_set rset, tmp_set;
   char *msg;
@@ -124,9 +125,22 @@ int main(int argc, char *argv[]){
     inet_aton("127.0.0.1", (struct in_addr *)&(addr4->sin_addr.s_addr));
     addr4->sin_port = htons(frontend_port);
   }
- 
   if(bind(sfds[0], (struct sockaddr *)&addr, addr_size) < 0){
-    log_sys_err("Unable to bind socket");
+    if(IPv6) {
+              res = inet_ntop(AF_INET6,&addr6->sin6_addr, addrbuf, sizeof(addrbuf));
+              if (!res) { 
+                  log_sys_err("Unable to bind socket addr: %s, port: %d, scope: %d", addrbuf, addr6->sin6_port, addr6->sin6_scope_id);
+              } else {
+                  log_sys_err("Unable to bind to ipv6 frontend socket, but inet_ntop returned NULL pointer");
+              }
+      } else {
+              res = inet_ntop(AF_INET,&addr4->sin_addr, addrbuf, sizeof(addrbuf));
+              if (!res) {
+                  log_sys_err("Unable to bind socket addr: %s, port: %d, proto: %d", addrbuf, addr4->sin_port, addr4->sin_family);
+              } else {
+                  log_sys_err("Unable to bind to ipv4 frontend socket, but inet_ntop returned NULL pointer");
+              }
+    }
     close(sfds[0]);
     exit(EXIT_FAILURE);
   }
@@ -158,7 +172,21 @@ int main(int argc, char *argv[]){
   }
  
   if(bind(sfds[1], (struct sockaddr *)&addr, addr_size) < 0){
-    log_sys_err("Unable to bind socket");
+      if(IPv6) {
+              res = inet_ntop(AF_INET6,&addr6->sin6_addr, addrbuf, sizeof(addrbuf));
+              if (!res) {
+                  log_sys_err("Unable to bind socket addr: %s, port: %d, scope: %d", addrbuf, addr6->sin6_port, addr6->sin6_scope_id);
+              } else {
+                  log_sys_err("Unable to bind to backend ipv6 socket, but inet_ntop returned NULL pointer");
+              }
+      } else {
+              res = inet_ntop(AF_INET,&addr4->sin_addr, addrbuf, sizeof(addrbuf));
+              if (!res) {
+                  log_sys_err("Unable to bind socket addr: %s, port: %d, proto: %d", addrbuf, addr4->sin_port, addr4->sin_family);
+              } else {
+                  log_sys_err("Unable to bind to backend ipv4 socket, but inet_ntop returned NULL pointer");
+              }
+      }
     close(sfds[1]);
     return -errno;
   }
diff --git a/ccs/daemon/cnx_mgr.c b/ccs/daemon/cnx_mgr.c
index 6366e4b..078df85 100644
--- a/ccs/daemon/cnx_mgr.c
+++ b/ccs/daemon/cnx_mgr.c
@@ -167,7 +167,7 @@ static int broadcast_for_doc(char *cluster_name, int blocking){
   int trueint;
   int v1, v2;
   int write_to_disk = 0;
-  char *tmp_name = NULL;
+  char *tmp_name = NULL, addrbuf[64], *res;
   struct sockaddr_storage addr, recv_addr;
   struct sockaddr_in *addr4 = (struct sockaddr_in *)&addr;
   struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&addr;
@@ -297,7 +297,23 @@ static int broadcast_for_doc(char *cluster_name, int blocking){
 
     if(sendto(sfd, (char *)ch, sizeof(comm_header_t), 0,
 	      (struct sockaddr *)&addr, addr_size) < 0){
-      log_sys_err("Unable to perform sendto");
+
+      if(IPv6) {
+              res = inet_ntop(AF_INET6,&addr6->sin6_addr, addrbuf, sizeof(addrbuf));
+              if (!res) { 
+                  log_sys_err("Unable to perform sendto addr: %s, port: %d, scope: %d", addrbuf, addr6->sin6_port, addr6->sin6_scope_id);
+              } else {
+                  log_sys_err("Unable to sendto broadcast ipv6 socket, but inet_ntop returned NULL pointer");
+              }
+      } else {
+              res = inet_ntop(AF_INET,&addr4->sin_addr, addrbuf, sizeof(addrbuf));
+	      if (!res) {
+                  log_sys_err("Unable to perform sendto addr: %s, port: %d, proto: %d", addrbuf, addr4->sin_port, addr4->sin_family);
+              } else {
+                  log_sys_err("Unable to sendto broadcast ipv4 socket, but inet_ntop returned NULL pointer");
+              }
+      }
+
       if(retry > 0){
 	retry--;
 	close(sfd);