crm_debug("Delivering msg %p to client %s", msg, token);
crm_devel("Delivering msg %p to client %s", msg, token);
send_via_callback_channel(HA_Message *msg, const char *token) {	cib_client_t *hash_client = NULL;	GList *list_item = NULL;		crm_debug("Delivering msg %p to client %s", msg, token);	if(msg == NULL) {		crm_err("No message to send");		return cib_reply_failed;	} else if(token == NULL) {		crm_err("No client id token, cant send message");		return cib_missing;	}		hash_client = g_hash_table_lookup(client_list, token);	if(hash_client == NULL) {		crm_err("Cannot find client for token %s", token);		return cib_client_gone;	} else if(hash_client->channel == NULL) {		crm_err("Cannot find channel for client %s", token);		return cib_client_corrupt;	}	list_item = g_list_find_custom(		hash_client->delegated_calls, msg, cib_GCompareFunc);	if(list_item != NULL) {		/* remove it - no need to time it out */		HA_Message *orig_msg = list_item->data;		crm_debug("Removing msg from delegated list");		hash_client->delegated_calls = g_list_remove(			hash_client->delegated_calls, orig_msg);		CRM_DEV_ASSERT(orig_msg != msg);		crm_msg_del(orig_msg);	}		crm_debug("Delivering reply to client %s", token);	cl_log_message(LOG_DEBUG, msg);	if(msg2ipcchan(msg, hash_client->channel) != HA_OK) {		crm_err("Delivery of reply to client %s failed", token);		return cib_reply_failed;	}	return cib_ok;}