This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cluster: STABLE3 - cman: make cman_tool show node names if possible


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=8b6b7898c8a759dfe7390a6c276e41be5811cbfd
Commit:        8b6b7898c8a759dfe7390a6c276e41be5811cbfd
Parent:        c8fdad1dca1d65cb3a96ce48006142bfa0dc8fa3
Author:        Christine Caulfield <ccaulfie@redhat.com>
AuthorDate:    Thu Jan 29 10:48:23 2009 +0000
Committer:     Christine Caulfield <ccaulfie@redhat.com>
CommitterDate: Thu Jan 29 10:48:23 2009 +0000

cman: make cman_tool show node names if possible

...even if cman itself doesn't know them (eg cman_tool join -X)

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
---
 cman/cman_tool/main.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/cman/cman_tool/main.c b/cman/cman_tool/main.c
index 21b7d72..b6e366d 100644
--- a/cman/cman_tool/main.c
+++ b/cman/cman_tool/main.c
@@ -344,8 +344,11 @@ static void print_node(commandline_t *comline, cman_handle_t h, int *format, str
 	char member_type;
 	struct tm *ftime;
 	struct tm *jtime;
+	int numaddrs;
+	struct cman_node_address addrs[MAX_INTERFACES];
 	char jstring[1024];
 	int i,j,k;
+	int tmpid;
 	cman_node_extra_t enode;
 
 	if (comline->num_nodenames > 0) {
@@ -369,6 +372,15 @@ static void print_node(commandline_t *comline, cman_handle_t h, int *format, str
 		break;
 	}
 
+	/* Make the name more friendly if cman can't find it in cluster.conf
+	 *  (we really don't want corosync to look up names in DNS so it invents them)
+	 */
+	if (sscanf(node->cn_name, "Node%d", &tmpid) == 1 && tmpid == node->cn_nodeid) {
+		if (!cman_get_node_addrs(h, node->cn_nodeid, MAX_INTERFACES, &numaddrs, addrs)) {
+			getnameinfo((struct sockaddr *)addrs[0].cna_address, addrs[0].cna_addrlen, node->cn_name, sizeof(node->cn_name), NULL, 0, NI_NAMEREQD);
+		}
+	}
+
 	jtime = localtime(&node->cn_jointime.tv_sec);
 	if (node->cn_jointime.tv_sec && node->cn_member)
 		strftime(jstring, sizeof(jstring), "%F %H:%M:%S", jtime);
@@ -399,9 +411,6 @@ static void print_node(commandline_t *comline, cman_handle_t h, int *format, str
 		}
 	}
 
-	int numaddrs;
-	struct cman_node_address addrs[MAX_INTERFACES];
-
 	if (comline->addresses_opt || comline->format_opts) {
 		if (!cman_get_node_addrs(h, node->cn_nodeid, MAX_INTERFACES, &numaddrs, addrs) &&
 		    numaddrs)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]