rc = action_id;
action_id = rc;
process_graph_event(crm_data_t *event, const char *event_node){	int rc                = -1;	int action_id         = -1;	int op_status_i       = 0;	const char *task      = NULL;	const char *rsc_id    = NULL;	const char *op_status = NULL;	if(event == NULL) {		crm_debug("a transition is starting");		process_trigger(action_id);		check_for_completion();				return TRUE;	}	task      = crm_element_value(event, XML_LRM_ATTR_LASTOP);	rsc_id    = crm_element_value(event, XML_ATTR_ID);	op_status = crm_element_value(event, XML_LRM_ATTR_OPSTATUS);	if(op_status != NULL) {		op_status_i = atoi(op_status);		if(op_status_i == -1) {			/* just information that the action was sent */			crm_debug("Ignoring TE initiated updates");			return TRUE;		}	}		crm_debug("Processing CIB update: %s %s on %s: %s",		  task, rsc_id, event_node, op_status2text(op_status_i));	next_transition_timeout = transition_timeout;		slist_iter(		synapse, synapse_t, graph, lpc,		/* lookup event */		slist_iter(			action, action_t, synapse->actions, lpc2,			rc = match_graph_event(action, event ,event_node);			if(action_id >= 0 && rc >= 0 && rc != action_id) {				crm_err("Additional match found: %d [%d]",					rc, action_id);			} else if(rc != -1) {				rc = action_id;			}			);		if(action_id != -1) {			break;		}		);	if(action_id == -1) {		/* didnt find a match...		 * now try any dangling inputs		 */		slist_iter(			synapse, synapse_t, graph, lpc,						slist_iter(				action, action_t, synapse->inputs, lpc2,								rc = match_graph_event(action,event,event_node);				if(action_id >=0 && rc >=0 && rc != action_id) {					crm_err("Additional match found:"						" %d [%d]", rc, action_id);				} else if(rc != -1) {					rc = action_id;				}				);			if(action_id != -1) { break; }			);	}	if(action_id > -1) {		crm_log_xml_debug_3(event, "Event found");			} else if(action_id == -2) {		crm_log_xml_info(event, "Event failed");			} else {		/* unexpected event, trigger a pe-recompute */		/* possibly do this only for certain types of actions */		send_complete("Event not matched", event, te_update, i_cancel);		return FALSE;	}	process_trigger(action_id);	check_for_completion();	return TRUE;}