public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
* cluster: master - cman: Add broadcast option
@ 2009-05-27 13:20 Christine Caulfield
0 siblings, 0 replies; only message in thread
From: Christine Caulfield @ 2009-05-27 13:20 UTC (permalink / raw)
To: cluster-cvs-relay
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=ff00108e7d1ac7d8f5e211081a2e9ddc4670371d
Commit: ff00108e7d1ac7d8f5e211081a2e9ddc4670371d
Parent: bd6b6c98d717447b4f1cc6746cd19929bc8352fb
Author: Christine Caulfield <ccaulfie@redhat.com>
AuthorDate: Wed May 27 14:19:43 2009 +0100
Committer: Christine Caulfield <ccaulfie@redhat.com>
CommitterDate: Wed May 27 14:19:43 2009 +0100
cman: Add broadcast option
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
---
cman/config/cman-preconfig.c | 27 ++++++++++++++++++++++-----
cman/services/cman/lib/libcman.c | 6 +++++-
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/cman/config/cman-preconfig.c b/cman/config/cman-preconfig.c
index 91a914b..2b98410 100644
--- a/cman/config/cman-preconfig.c
+++ b/cman/config/cman-preconfig.c
@@ -239,7 +239,7 @@ static int sum_expected(struct objdb_iface_ver0 *objdb)
return vote_sum;
}
-static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, int portnum)
+static int add_ifaddr(struct objdb_iface_ver0 *objdb, char *mcast, char *ifaddr, int portnum, int broadcast)
{
hdb_handle_t totem_object_handle;
hdb_handle_t find_handle;
@@ -288,8 +288,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", portnum);
objdb->object_key_create(interface_object_handle, "mcastport", strlen("mcastport"),
@@ -532,6 +536,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")) {
@@ -622,7 +628,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 */
@@ -643,7 +660,7 @@ static int get_nodename(struct objdb_iface_ver0 *objdb)
mcast = mcast_name;
}
- if (add_ifaddr(objdb, mcast, nodename, portnum))
+ if (add_ifaddr(objdb, mcast, nodename, portnum, broadcast))
return -1;
num_nodenames++;
diff --git a/cman/services/cman/lib/libcman.c b/cman/services/cman/lib/libcman.c
index d03238f..6381018 100644
--- a/cman/services/cman/lib/libcman.c
+++ b/cman/services/cman/lib/libcman.c
@@ -1245,7 +1245,11 @@ int cman_get_extra_info(cman_handle_t handle, cman_extra_info_t *info, int maxle
info->ei_num_addresses = 1;
ccs_handle = ccs_connect();
- if (!ccs_get(ccs_handle, "/totem/interface/@mcastaddr", &value)) {
+ if (!ccs_get(ccs_handle, "/totem/interface/@broadcast", &value)) {
+ strcpy(info->ei_addresses, "255.255.255.255");
+ free(value);
+ }
+ else if (!ccs_get(ccs_handle, "/totem/interface/@mcastaddr", &value)) {
strcpy(info->ei_addresses, value);
free(value);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-05-27 13:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-27 13:20 cluster: master - cman: Add broadcast option 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).