[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