Browse Source

qdevice-net: Copy correct ring id in votequorum cb

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Jan Friesse 10 years ago
parent
commit
92bc46a79f

+ 1 - 18
qdevices/corosync-qdevice-net.c

@@ -1018,23 +1018,6 @@ qdevice_net_poll(struct qdevice_net_instance *instance)
 	return (0);
 }
 
-static void
-qdevice_net_init_cmap(cmap_handle_t *handle)
-{
-	cs_error_t res;
-	int no_retries;
-
-	no_retries = 0;
-
-	while ((res = cmap_initialize(handle)) == CS_ERR_TRY_AGAIN &&
-	    no_retries++ < QDEVICE_NET_MAX_CS_TRY_AGAIN) {
-		poll(NULL, 0, 1000);
-	}
-
-        if (res != CS_OK) {
-		errx(1, "Failed to initialize the cmap API. Error %s", cs_strerror(res));
-	}
-}
 
 /*
  * Check string to value on, off, yes, no, 0, 1. Return 1 if value is on, yes or 1, 0 if
@@ -1204,7 +1187,7 @@ main(void)
 	/*
 	 * Init
 	 */
-	qdevice_net_init_cmap(&cmap_handle);
+	qdevice_net_cmap_init(&cmap_handle);
 	qdevice_net_instance_init_from_cmap(&instance, cmap_handle);
 
 	qdevice_net_log_init(QDEVICE_NET_LOG_TARGET_STDERR);

+ 1 - 1
qdevices/qdevice-net-cast-vote-timer.c

@@ -108,7 +108,7 @@ qdevice_net_cast_vote_timer_update(struct qdevice_net_instance *instance, enum t
 			    qdevice_net_cast_vote_timer_callback, (void *)instance, NULL);
 
 			if (instance->cast_vote_timer == NULL) {
-				qdevice_net_log(LOG_ERR, "Can't schedule sending of votequroum poll");
+				qdevice_net_log(LOG_ERR, "Can't schedule sending of votequorum poll");
 
 				return (-1);
 			}

+ 21 - 0
qdevices/qdevice-net-cmap.c

@@ -37,7 +37,10 @@
 
 #include <stdio.h>
 #include <netdb.h>
+#include <err.h>
+#include <poll.h>
 
+#include "qnet-config.h"
 #include "qdevice-net-cmap.h"
 
 static uint32_t
@@ -180,3 +183,21 @@ qdevice_net_cmap_get_config_version(cmap_handle_t cmap_handle, uint64_t *config_
 
 	return (res);
 }
+
+void
+qdevice_net_cmap_init(cmap_handle_t *handle)
+{
+	cs_error_t res;
+	int no_retries;
+
+	no_retries = 0;
+
+	while ((res = cmap_initialize(handle)) == CS_ERR_TRY_AGAIN &&
+	    no_retries++ < QDEVICE_NET_MAX_CS_TRY_AGAIN) {
+		poll(NULL, 0, 1000);
+	}
+
+        if (res != CS_OK) {
+		errx(1, "Failed to initialize the cmap API. Error %s", cs_strerror(res));
+	}
+}

+ 2 - 0
qdevices/qdevice-net-cmap.h

@@ -49,6 +49,8 @@ extern int		qdevice_net_cmap_get_nodelist(cmap_handle_t cmap_handle,
 extern int		qdevice_net_cmap_get_config_version(cmap_handle_t cmap_handle,
     uint64_t *config_version);
 
+extern void		qdevice_net_cmap_init(cmap_handle_t *handle);
+
 #ifdef __cplusplus
 }
 #endif

+ 4 - 4
qdevices/qdevice-net-votequorum.c

@@ -81,25 +81,25 @@ qdevice_net_votequorum_notify_callback(votequorum_handle_t votequorum_handle,
     uint32_t node_list_entries, votequorum_node_t node_list[])
 {
 	struct qdevice_net_instance *instance;
-	struct tlv_ring_id ring_id;
+	struct tlv_ring_id tlv_rid;
 	uint32_t u32;
 
 	if (votequorum_context_get(votequorum_handle, (void **)&instance) != CS_OK) {
 		errx(1, "Fatal error. Can't get votequorum context");
 	}
 
-	qdevice_net_votequorum_ring_id_to_tlv(&ring_id, &votequorum_ring_id);
+	qdevice_net_votequorum_ring_id_to_tlv(&tlv_rid, &votequorum_ring_id);
 
 	if (qdevice_net_send_membership_node_list(instance,
 	    (quorate ? TLV_QUORATE_QUORATE : TLV_QUORATE_INQUORATE),
-	    &ring_id, node_list_entries, node_list) != 0) {
+	    &tlv_rid, node_list_entries, node_list) != 0) {
 		/*
 		 * Fatal error -> schedule disconnect
 		 */
 		instance->schedule_disconnect = 1;
 	}
 
-	memcpy(&instance->last_received_votequorum_ring_id, &ring_id, sizeof(ring_id));
+	memcpy(&instance->last_received_votequorum_ring_id, &votequorum_ring_id, sizeof(votequorum_ring_id));
 
 	if (qdevice_net_cast_vote_timer_update(instance, TLV_VOTE_WAIT_FOR_REPLY) != 0) {
 		errx(1, "qdevice_net_votequorum_notify_callback fatal error. "