From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23792 invoked by alias); 29 Jan 2009 10:49:53 -0000 Received: (qmail 23785 invoked by alias); 29 Jan 2009 10:49:52 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,KAM_MX,SPF_HELO_PASS X-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,KAM_MX,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on bastion.fedora.phx.redhat.com Subject: cluster: STABLE3 - cman: make cman_tool show node names if possible To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: cluster.git X-Git-Refname: refs/heads/STABLE3 X-Git-Reftype: branch X-Git-Oldrev: c8fdad1dca1d65cb3a96ce48006142bfa0dc8fa3 X-Git-Newrev: 8b6b7898c8a759dfe7390a6c276e41be5811cbfd From: Christine Caulfield Message-Id: <20090129104929.E2DDB120569@lists.fedorahosted.org> Date: Thu, 29 Jan 2009 10:49:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q1/txt/msg00312.txt.bz2 Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=8b6b7898c8a759dfe7390a6c276e41be5811cbfd Commit: 8b6b7898c8a759dfe7390a6c276e41be5811cbfd Parent: c8fdad1dca1d65cb3a96ce48006142bfa0dc8fa3 Author: Christine Caulfield AuthorDate: Thu Jan 29 10:48:23 2009 +0000 Committer: Christine Caulfield 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 --- 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)