[Cluster-devel] cluster/group/daemon app.c gd_internal.h main.c

teigland at sourceware.org teigland at sourceware.org
Wed Oct 4 15:52:25 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	teigland at sourceware.org	2006-10-04 15:52:24

Modified files:
	group/daemon   : app.c gd_internal.h main.c 

Log message:
	set the "member" field in the group_data struct that's returned
	when querying for group information

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/app.c.diff?cvsroot=cluster&r1=1.47&r2=1.48
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/gd_internal.h.diff?cvsroot=cluster&r1=1.42&r2=1.43
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/daemon/main.c.diff?cvsroot=cluster&r1=1.46&r2=1.47

--- cluster/group/daemon/app.c	2006/09/26 21:32:38	1.47
+++ cluster/group/daemon/app.c	2006/10/04 15:52:24	1.48
@@ -629,7 +629,7 @@
 	return NULL;
 }
 
-static int is_our_join(event_t *ev)
+int is_our_join(event_t *ev)
 {
 	return (ev->nodeid == our_nodeid);
 }
--- cluster/group/daemon/gd_internal.h	2006/09/26 21:32:38	1.42
+++ cluster/group/daemon/gd_internal.h	2006/10/04 15:52:24	1.43
@@ -257,6 +257,7 @@
 struct recovery_set *get_recovery_set(int nodeid);
 void groupd_down(int nodeid);
 char *msg_type(int type);
+int is_our_join(event_t *ev);
 
 /* main.c */
 void app_stop(app_t *a);
--- cluster/group/daemon/main.c	2006/09/26 21:32:38	1.46
+++ cluster/group/daemon/main.c	2006/10/04 15:52:24	1.47
@@ -439,6 +439,7 @@
 static void copy_group_data(group_t *g, group_data_t *data)
 {
 	node_t *node;
+	event_t *ev;
 	int i = 0;
 
 	strncpy(data->client_name, client[g->app->client].type, 32);
@@ -472,6 +473,16 @@
 	list_for_each_entry(node, &g->app->nodes, list) {
 		data->members[i] = node->nodeid;
 		i++;
+
+		if (node->nodeid == our_nodeid)
+			data->member = 1;
+	}
+
+	/* we're in the member list but are still joining */
+	if (data->member) {
+		ev = g->app->current_event;
+		if (ev && is_our_join(ev))
+			data->member = 0;
 	}
 }
 




More information about the Cluster-devel mailing list