public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
* cluster: STABLE3 - cman: Allow use of broadcast communications
@ 2009-05-27 12:14 Christine Caulfield
0 siblings, 0 replies; only message in thread
From: Christine Caulfield @ 2009-05-27 12:14 UTC (permalink / raw)
To: cluster-cvs-relay
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=7558ead77b63ab732b6288571142e021625aab2e
Commit: 7558ead77b63ab732b6288571142e021625aab2e
Parent: 987b5478c3e572b0288c20aeadadf4eeb5841760
Author: Christine Caulfield <ccaulfie@redhat.com>
AuthorDate: Wed May 27 13:12:42 2009 +0100
Committer: Christine Caulfield <ccaulfie@redhat.com>
CommitterDate: Wed May 27 13:12:42 2009 +0100
cman: Allow use of broadcast communications
The latest version of corosync allows broadcast to be configured as
an option. This makes it available from cman with the option
<cman broadcast = "yes"/>
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
---
cman/daemon/cman-preconfig.c | 27 ++++++++++++++++++++++-----
cman/daemon/commands.c | 3 +++
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/cman/daemon/cman-preconfig.c b/cman/daemon/cman-preconfig.c
index 6221169..05c8f71 100644
--- a/cman/daemon/cman-preconfig.c
+++ b/cman/daemon/cman-preconfig.c
@@ -217,7 +217,7 @@ static hdb_handle_t find_cman_logger(struct objdb_iface_ver0 *objdb, hdb_handle_
}
-static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, int port)
+static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, int port, int broadcast)
{
hdb_handle_t totem_object_handle;
hdb_handle_t find_handle;
@@ -266,8 +266,12 @@ static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr,
objdb->object_key_create(interface_object_handle, "bindnetaddr", strlen("bindnetaddr"),
tmp, strlen(tmp)+1);
- objdb->object_key_create(interface_object_handle, "mcastaddr", strlen("mcastaddr"),
- mcast, strlen(mcast)+1);
+ if (broadcast)
+ objdb->object_key_create(interface_object_handle, "broadcast", strlen("broadcast"),
+ "yes", strlen("yes")+1);
+ else
+ objdb->object_key_create(interface_object_handle, "mcastaddr", strlen("mcastaddr"),
+ mcast, strlen(mcast)+1);
sprintf(tmp, "%d", port);
objdb->object_key_create(interface_object_handle, "mcastport", strlen("mcastport"),
@@ -510,6 +514,8 @@ static int get_nodename(struct objdb_iface_ver0 *objdb)
hdb_handle_t find_handle;
hdb_handle_t node_object_handle;
hdb_handle_t alt_object;
+ int broadcast = 0;
+ char *str;
int error;
if (!getenv("CMAN_NOCONFIG")) {
@@ -602,7 +608,18 @@ static int get_nodename(struct objdb_iface_ver0 *objdb)
objdb_get_int(objdb, object_handle, "port", &portnum, DEFAULT_PORT);
}
- if (add_ifaddr(objdb, mcast_name, nodename, portnum))
+ /* Check for broadcast */
+ if (!objdb_get_string(objdb, object_handle, "broadcast", &str)) {
+ if (strcmp(str, "yes") == 0) {
+ mcast_name = strdup("255.255.255.255");
+ if (!mcast_name)
+ return -1;
+ broadcast = 1;
+ }
+ free(str);
+ }
+
+ if (add_ifaddr(objdb, mcast_name, nodename, portnum, broadcast))
return -1;
/* Get all alternative node names */
@@ -623,7 +640,7 @@ static int get_nodename(struct objdb_iface_ver0 *objdb)
mcast = mcast_name;
}
- if (add_ifaddr(objdb, mcast, node, portnum))
+ if (add_ifaddr(objdb, mcast, node, portnum, broadcast))
return -1;
num_nodenames++;
diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index de0fefb..b343bcb 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -579,6 +579,9 @@ static int do_cmd_get_extrainfo(char *cmdbuf, char **retbuf, int retsize, int *r
struct sockaddr_in6 *saddr6;
objdb_get_string(corosync, object_handle, "mcastaddr", &mcast);
+ /* If this fails, it must be using broadcast*/
+ if (!mcast)
+ mcast = "255.255.255.255";
memset(ptr, 0, sizeof(struct sockaddr_storage));
saddr4 = (struct sockaddr_in *)ptr;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-05-27 12:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-27 12:14 cluster: STABLE3 - cman: Allow use of broadcast communications Christine Caulfield
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).