result = handle_message(xml_message); 
result = handle_message(input); 
do_msg_route(long long action,	     enum crmd_fsa_cause cause,	     enum crmd_fsa_state cur_state,	     enum crmd_fsa_input current_input,	     fsa_data_t *msg_data){	enum crmd_fsa_input result = I_NULL;	xmlNodePtr xml_message = (xmlNodePtr)(msg_data->data);	gboolean routed = FALSE, defer = TRUE, do_process = TRUE;#if 0/*	if(cause == C_IPC_MESSAGE) { */	if (crmd_authorize_message(		    root_xml_node, msg, curr_client) == FALSE) {		crm_debug("Message not authorized\t%s",			  dump_xml_formatted(root_xml_node, FALSE));		do_process = FALSE;	}/*	} */#endif	if(msg_data->fsa_cause != C_IPC_MESSAGE	   && msg_data->fsa_cause != C_HA_MESSAGE) {		/* dont try and route these */		crm_warn("Can only process HA and IPC messages");		return I_NULL;	}	if(do_process) {		/* try passing the buck first */		crm_trace("Attempting to route message");		routed = relay_message(xml_message, cause==C_IPC_MESSAGE);		if(routed == FALSE) {			crm_trace("Message wasn't routed... try handling locally");			defer = TRUE;			/* calculate defer */			result = handle_message(xml_message);			switch(result) {				case I_NULL:					defer = FALSE;					break;				case I_DC_HEARTBEAT:					defer = FALSE;					break;				case I_CIB_OP:					defer = FALSE;					break;										/* what else should go here? */				default:					crm_trace("Defering local processing of message");					register_fsa_input_later(						cause, result, msg_data->data);					result = I_NULL;					break;			}			if( ! defer ) {				crm_trace("Message processed");			}					} else {			crm_trace("Message routed...");		} 	}		return result;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/b121e2c08fe4d8ca02d6462216ef844ff6cc68f1/messages.c/clean/crm/crmd/messages.c