crm_debug("Waiting for message from CIB service...");
crm_devel("Waiting for message from CIB service...");
cib_native_rcvmsg(cib_t* cib, int blocking){	const char *type = NULL;	struct ha_msg* msg = NULL;	IPC_Channel *ch = cib_native_channel(cib);	/* if it is not blocking mode and no message in the channel, return */	if (blocking == 0 && cib_native_msgready(cib) == FALSE) {		crm_debug("No message ready and non-blocking...");		return 0;	} else if (cib_native_msgready(cib) == FALSE) {		crm_debug("Waiting for message from CIB service...");		ch->ops->waitin(ch);	}		/* get the message */	msg = msgfromIPC_noauth(ch);	if (msg == NULL) {		crm_warn("Received a NULL msg from CIB service.");		return 0;	}	/* do callbacks */	type = cl_get_string(msg, F_TYPE);	crm_trace("Activating %s callbacks...", type);	if(safe_str_eq(type, T_CIB)) {		cib_native_callback(cib, msg);			} else if(safe_str_eq(type, T_CIB_NOTIFY)) {		g_list_foreach(cib->notify_list, cib_native_notify, msg);	} else {		crm_err("Unknown message type: %s", type);	}		crm_msg_del(msg);	return 1;}