finalization_timer->source_id = -1;
finalization_timer->source_id = 0;
do_startup(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){	int was_error = 0;	int interval = 1; /* seconds between DC heartbeats */	crm_info("Register Signal Handler");	G_main_add_SignalHandler(		G_PRIORITY_HIGH, SIGTERM, crm_shutdown, NULL, NULL);	fsa_source = G_main_add_TriggerHandler(		G_PRIORITY_HIGH, crm_fsa_trigger, NULL, NULL);	ipc_clients = g_hash_table_new(g_str_hash, g_str_equal);		if(was_error == 0) {		crm_info("Init server comms");		was_error = init_server_ipc_comms(			crm_strdup(CRM_SYSTEM_CRMD), crmd_client_connect,			default_ipc_connection_destroy);	}		if(was_error == 0) {		crm_info("Creating CIB object");		fsa_cib_conn = cib_new();	}		/* set up the timers */	crm_malloc0(dc_heartbeat, sizeof(fsa_timer_t));	crm_malloc0(integration_timer, sizeof(fsa_timer_t));	crm_malloc0(finalization_timer, sizeof(fsa_timer_t));	crm_malloc0(election_trigger, sizeof(fsa_timer_t));	crm_malloc0(election_timeout, sizeof(fsa_timer_t));	crm_malloc0(shutdown_escalation_timer, sizeof(fsa_timer_t));	crm_malloc0(wait_timer, sizeof(fsa_timer_t));	crm_malloc0(shutdown_timer, sizeof(fsa_timer_t));	crm_malloc0(recheck_timer, sizeof(fsa_timer_t));	interval = interval * 1000;	if(election_trigger != NULL) {		election_trigger->source_id = -1;		election_trigger->period_ms = -1;		election_trigger->fsa_input = I_DC_TIMEOUT;		election_trigger->callback = crm_timer_popped;		election_trigger->repeat = FALSE;	} else {		was_error = TRUE;	}		if(dc_heartbeat != NULL) {		dc_heartbeat->source_id = -1;		dc_heartbeat->period_ms = -1;		dc_heartbeat->fsa_input = I_NULL;		dc_heartbeat->callback = do_dc_heartbeat;		dc_heartbeat->repeat = FALSE;	} else {		was_error = TRUE;	}		if(election_timeout != NULL) {		election_timeout->source_id = -1;		election_timeout->period_ms = -1;		election_timeout->fsa_input = I_ELECTION_DC;		election_timeout->callback = crm_timer_popped;		election_timeout->repeat = FALSE;	} else {		was_error = TRUE;	}		if(integration_timer != NULL) {		integration_timer->source_id = -1;		integration_timer->period_ms = -1;		integration_timer->fsa_input = I_INTEGRATED;		integration_timer->callback = crm_timer_popped;		integration_timer->repeat = FALSE;	} else {		was_error = TRUE;	}		if(finalization_timer != NULL) {		finalization_timer->source_id = -1;		finalization_timer->period_ms = -1;		finalization_timer->fsa_input = I_FINALIZED;		finalization_timer->callback = crm_timer_popped;		finalization_timer->repeat = FALSE;	} else {		was_error = TRUE;	}		if(shutdown_escalation_timer != NULL) {		shutdown_escalation_timer->source_id = -1;		shutdown_escalation_timer->period_ms = -1;		shutdown_escalation_timer->fsa_input = I_STOP;		shutdown_escalation_timer->callback = crm_timer_popped;		shutdown_escalation_timer->repeat = FALSE;	} else {		was_error = TRUE;	}		if(wait_timer != NULL) {		wait_timer->source_id = -1;		wait_timer->period_ms = 500;		wait_timer->fsa_input = I_NULL;		wait_timer->callback = crm_timer_popped;		wait_timer->repeat = FALSE;	} else {		was_error = TRUE;	}	if(shutdown_timer != NULL) {		shutdown_timer->source_id = -1;		shutdown_timer->period_ms = -1;		shutdown_timer->fsa_input = I_SHUTDOWN;		shutdown_timer->callback = crm_timer_popped;		shutdown_timer->repeat = TRUE;	} else {		was_error = TRUE;	}	if(recheck_timer != NULL) {		recheck_timer->source_id = -1;		recheck_timer->period_ms = -1;		recheck_timer->fsa_input = I_PE_CALC;		recheck_timer->callback = crm_timer_popped;		recheck_timer->repeat = FALSE;	} else {		was_error = TRUE;	}		/* set up the sub systems */	crm_malloc0(cib_subsystem, sizeof(struct crm_subsystem_s));	crm_malloc0(te_subsystem,  sizeof(struct crm_subsystem_s));	crm_malloc0(pe_subsystem,  sizeof(struct crm_subsystem_s));	if(cib_subsystem != NULL) {		cib_subsystem->pid      = -1;			cib_subsystem->path     = BIN_DIR;		cib_subsystem->name     = CRM_SYSTEM_CIB;		cib_subsystem->command  = BIN_DIR"/"CRM_SYSTEM_CIB;		cib_subsystem->args     = "-VVc";		cib_subsystem->flag_connected = R_CIB_CONNECTED;			cib_subsystem->flag_required  = R_CIB_REQUIRED;		} else {		was_error = TRUE;	}		if(te_subsystem != NULL) {		te_subsystem->pid      = -1;			te_subsystem->path     = BIN_DIR;		te_subsystem->name     = CRM_SYSTEM_TENGINE;		te_subsystem->command  = BIN_DIR"/"CRM_SYSTEM_TENGINE;		te_subsystem->args     = NULL;		te_subsystem->flag_connected = R_TE_CONNECTED;			te_subsystem->flag_required  = R_TE_REQUIRED;				} else {		was_error = TRUE;	}		if(pe_subsystem != NULL) {		pe_subsystem->pid      = -1;			pe_subsystem->path     = BIN_DIR;		pe_subsystem->name     = CRM_SYSTEM_PENGINE;		pe_subsystem->command  = BIN_DIR"/"CRM_SYSTEM_PENGINE;		pe_subsystem->args     = NULL;		pe_subsystem->flag_connected = R_PE_CONNECTED;			pe_subsystem->flag_required  = R_PE_REQUIRED;				} else {		was_error = TRUE;	}	if(was_error) {		register_fsa_error(C_FSA_INTERNAL, I_ERROR, NULL);	}		welcomed_nodes = g_hash_table_new_full(		g_str_hash, g_str_equal,		g_hash_destroy_str, g_hash_destroy_str);	integrated_nodes = g_hash_table_new_full(		g_str_hash, g_str_equal,		g_hash_destroy_str, g_hash_destroy_str);	finalized_nodes = g_hash_table_new_full(		g_str_hash, g_str_equal,		g_hash_destroy_str, g_hash_destroy_str);	confirmed_nodes = g_hash_table_new_full(		g_str_hash, g_str_equal,		g_hash_destroy_str, g_hash_destroy_str);	crmd_peer_state = g_hash_table_new_full(		g_str_hash, g_str_equal,		g_hash_destroy_str, g_hash_destroy_str);	set_sigchld_proctrack(G_PRIORITY_HIGH);		return I_NULL;}