[Ocfs2-tools-commits] jlbec commits r1364 - branches/cman-based/o2cb_controld

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Jul 16 14:31:52 PDT 2007


Author: jlbec
Date: 2007-07-16 14:31:50 -0700 (Mon, 16 Jul 2007)
New Revision: 1364

Modified:
   branches/cman-based/o2cb_controld/
   branches/cman-based/o2cb_controld/action.c
   branches/cman-based/o2cb_controld/main.c
   branches/cman-based/o2cb_controld/member_cman.c
Log:

The daemon can actually fill out o2cb information now.  It still hand-rolls
the configfs work - this should be done by libo2cb.  Also, it forces port
7777 when cman provides port of 0.





Property changes on: branches/cman-based/o2cb_controld
___________________________________________________________________
Name: svn:ignore
   + .*.sw?
.*.d
o2cb_controld



Modified: branches/cman-based/o2cb_controld/action.c
===================================================================
--- branches/cman-based/o2cb_controld/action.c	2007-07-16 07:31:49 UTC (rev 1363)
+++ branches/cman-based/o2cb_controld/action.c	2007-07-16 21:31:50 UTC (rev 1364)
@@ -58,7 +58,7 @@
 
 #define CLUSTER_BASE     "/sys/kernel/config/cluster"
 #define CLUSTER_FORMAT  CLUSTER_BASE "/%s"
-#define NODES_FORMAT    CLUSTER_FORMAT "/nodes"
+#define NODES_FORMAT    CLUSTER_FORMAT "/node"
 
 
 static int do_write(int fd, void *buf, size_t count)
@@ -410,7 +410,8 @@
 
 static char *str_ip(char *addr)
 {
-	static char str_ip_buf[INET6_ADDRSTRLEN];
+	int len;
+	static char str_ip_buf[INET6_ADDRSTRLEN + 1];
 	struct sockaddr_storage *ss = (struct sockaddr_storage *)addr;
 	struct sockaddr_in *sin = (struct sockaddr_in *)addr;
 	struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)addr;
@@ -422,6 +423,11 @@
 		saddr = &sin->sin_addr;
 
 	inet_ntop(ss->ss_family, saddr, str_ip_buf, sizeof(str_ip_buf));
+	len = strlen(str_ip_buf);
+	str_ip_buf[len] = '\n';
+	len++;
+	str_ip_buf[len] = '\0';
+
 	return str_ip_buf;
 }
 
@@ -438,7 +444,11 @@
 	else
 		port = ntohs(sin->sin_port);
 
-	snprintf(str_port_buf, sizeof(str_port_buf), "%d", port);
+	/* Fall back to default port */
+	if (!port)
+		port = 7777;
+
+	snprintf(str_port_buf, sizeof(str_port_buf), "%d\n", port);
 	return str_port_buf;
 }
 
@@ -553,23 +563,27 @@
 
 static int add_configfs_base(void)
 {
-	int rv = -1;
+	int rv = 0;
 	char *cluster_name;
 
 	if (!path_exists("/sys/kernel/config")) {
 		log_error("No /sys/kernel/config, is configfs loaded?");
+		rv = -1;
 		goto out;
 	}
 
 	if (!path_exists("/sys/kernel/config/cluster")) {
+		rv = -1;
 		log_error("No /sys/kernel/config/cluster, is ocfs2_nodemanager loaded?");
 		goto out;
 	}
 
 	if (!nodes_dir[0] || !cluster_dir[0]) {
 		cluster_name = get_cluster_name();
-		if (!cluster_name)
+		if (!cluster_name) {
+			rv = -1;
 			goto out;
+		}
 
 		snprintf(cluster_dir, PATH_MAX, CLUSTER_FORMAT,
 			 cluster_name);
@@ -598,7 +612,7 @@
 	int fd, rv;
 
 	memset(path, 0, PATH_MAX);
-	snprintf(path, PATH_MAX, "%s/%s/num", nodes_dir, name);
+	snprintf(path, PATH_MAX, "%s/%s/%s", nodes_dir, name, attr);
 
 	fd = open(path, O_WRONLY);
 	if (fd < 0) {
@@ -643,12 +657,10 @@
 		return -1;
 
 	/*
-	 * set the nodeid
+	 * set the port
 	 */
 
-	memset(buf, 0, sizeof(buf));
-	snprintf(buf, 32, "%d", nodeid);
-	rv = do_set(name, "num", buf);
+	rv = do_set(name, "ipv4_port", str_port(addr));
 	if (rv < 0)
 		return -1;
 
@@ -656,15 +668,17 @@
 	 * set the address
 	 */
 
-	rv = do_set(name, "ipv4_addr", str_ip(addr));
+	rv = do_set(name, "ipv4_address", str_ip(addr));
 	if (rv < 0)
 		return -1;
 
 	/*
-	 * set the port
+	 * set the nodeid
 	 */
 
-	rv = do_set(name, "ipv4_port", str_port(addr));
+	memset(buf, 0, sizeof(buf));
+	snprintf(buf, 32, "%d\n", nodeid);
+	rv = do_set(name, "num", buf);
 	if (rv < 0)
 		return -1;
 
@@ -673,7 +687,7 @@
 	 */
 
 	if (local) {
-		rv = do_set(name, "local", "1");
+		rv = do_set(name, "local", "1\n");
 		if (rv < 0)
 			return -1;
 	}

Modified: branches/cman-based/o2cb_controld/main.c
===================================================================
--- branches/cman-based/o2cb_controld/main.c	2007-07-16 07:31:49 UTC (rev 1363)
+++ branches/cman-based/o2cb_controld/main.c	2007-07-16 21:31:50 UTC (rev 1364)
@@ -1,3 +1,7 @@
+/* -*- mode: c; c-basic-offset: 8; -*-
+ * vim: noexpandtab sw=8 ts=8 sts=0:
+ */
+
 /******************************************************************************
 *******************************************************************************
 **
@@ -238,6 +242,8 @@
 
 	if (!daemon_debug_opt)
 		daemonize();
+        else
+                signal(SIGINT, sigterm_handler);
 
 	signal(SIGTERM, sigterm_handler);
 

Modified: branches/cman-based/o2cb_controld/member_cman.c
===================================================================
--- branches/cman-based/o2cb_controld/member_cman.c	2007-07-16 07:31:49 UTC (rev 1363)
+++ branches/cman-based/o2cb_controld/member_cman.c	2007-07-16 21:31:50 UTC (rev 1364)
@@ -1,3 +1,7 @@
+/* -*- mode: c; c-basic-offset: 8; -*-
+ * vim: noexpandtab sw=8 ts=8 sts=0:
+ */
+
 /******************************************************************************
 *******************************************************************************
 **
@@ -106,15 +110,19 @@
 		if (cman_nodes[i].cn_member &&
 		    !is_old_member(cman_nodes[i].cn_nodeid)) {
 
-			log_debug("cman: node %d added",
+			log_debug("cman: node %d adding",
 				  cman_nodes[i].cn_nodeid);
 
-			add_configfs_node(cman_nodes[i].cn_name,
-                                          cman_nodes[i].cn_nodeid,
-					  cman_nodes[i].cn_address.cna_address,
-					  cman_nodes[i].cn_address.cna_addrlen,
-					  (cman_nodes[i].cn_nodeid ==
-					   local_nodeid));
+			rv = add_configfs_node(cman_nodes[i].cn_name,
+					       cman_nodes[i].cn_nodeid,
+					       cman_nodes[i].cn_address.cna_address,
+					       cman_nodes[i].cn_address.cna_addrlen,
+					       (cman_nodes[i].cn_nodeid ==
+						local_nodeid));
+			if (!rv)
+				log_debug("cman: node %d added",
+					  cman_nodes[i].cn_nodeid);
+
 		}
 	}
 }




More information about the Ocfs2-tools-commits mailing list