struct ha_msg *op_request = NULL;
HA_Message *op_request = NULL;
cib_null_callback(IPC_Channel *channel, gpointer user_data){	struct ha_msg *op_request = NULL;	cib_client_t *cib_client = user_data;	cib_client_t *hash_client = NULL;	const char *type = NULL;	const char *uuid_ticket = NULL;	if(cib_client == NULL) {		crm_err("Discarding IPC message from unknown source"			" on callback channel.");		return FALSE;	}		while(channel->ops->is_message_pending(channel)) {		if (channel->ch_status == IPC_DISCONNECT) {			/* The message which was pending for us is that			 * the IPC status is now IPC_DISCONNECT			 */			break;		}		op_request = msgfromIPC_noauth(channel);		type = cl_get_string(op_request, F_CIB_OPERATION);		if(safe_str_neq(type, CRM_OP_REGISTER) ) {			crm_warn("Discarding IPC message from %s on callback channel",				 cib_client->id);			ha_msg_del(op_request);			continue;		}				uuid_ticket = cl_get_string(op_request, F_CIB_CALLBACK_TOKEN);		hash_client = g_hash_table_lookup(client_list, uuid_ticket);		if(hash_client != NULL) {			crm_err("Duplicate registration request... disconnecting");			ha_msg_del(op_request);			return FALSE;		}		cib_client->id = crm_strdup(uuid_ticket);		g_hash_table_insert(client_list, cib_client->id, cib_client);		crm_info("Registered %s on %s channel",			    cib_client->id, cib_client->channel_name);		ha_msg_del(op_request);		op_request = ha_msg_new(2);		ha_msg_add(op_request, F_CIB_OPERATION, CRM_OP_REGISTER);		ha_msg_add(op_request, F_CIB_CLIENTID,  cib_client->id);				msg2ipcchan(op_request, channel);		ha_msg_del(op_request);	}	return cib_process_disconnect(channel, cib_client);	}