  		}
 +	}
  
--		/* Sanity check struct */
--		if (nodes[0].size != sizeof(struct cl_cluster_node)) {
--			log_error
--			    ("sizeof(cl_cluster_node) does not match size returned from the kernel: aborting\n");
--			exit(10);
--		}
-+	status = cman_get_nodes(c_handle, count_nodes, &retnodes, nodes);
-+	if (status < 0) {
-+		log_error("Unable to get node details");
-+		exit(6);
-+	}
- 
 -		if (node_updown == NULL) {
 -			node_updown =
 -			    (int *) malloc(sizeof(int) *

 			return 0;
 		}
 	}
@@ -431,7 +371,7 @@ static int nodeid_from_csid(char *csid)
 
 static int _is_quorate()
 {
-	return ioctl(cluster_sock, SIOCCLUSTER_ISQUORATE, 0);
+	return cman_is_quorate(c_handle);
 }
 
 static void sync_ast_routine(void *arg)

 		if (status < 0 && errno == EBUSY) {	/* Don't busywait */
 			sleep(1);
 			errno = EBUSY;	/* In case sleep trashes it */
@@ -320,57 +271,53 @@ static void count_clvmds_running(void)
 	int i;
 
 	for (i = 0; i < num_nodes; i++) {
