if(te_subsystem->command != NULL) ha_free(te_subsystem->command); te_subsystem->command = ha_strdup("tengine -r"); if(start_a_child_client(te_subsystem, NULL) == FALSE)
if(stop_subsystem(this_subsys) == FALSE)
do_te_control(long long action,	    enum crmd_fsa_state cur_state,	    enum crmd_fsa_input current_input,	    void *data){	enum crmd_fsa_input result = I_NULL;		FNIN();	if(action & A_TE_STOP || action & A_TE_RESTART) {		if(te_subsystem != NULL) {			clear_bit_inplace(&fsa_input_register, R_TE_CONNECTED);						// make sure we do a shutdown			if(te_subsystem->command != NULL)				ha_free(te_subsystem->command);			te_subsystem->command = ha_strdup("tengine -k");			start_a_child_client(te_subsystem, NULL);		} // else we havent been started yet	}		if(action & A_TE_START || action & A_TE_RESTART) {		if(te_subsystem == NULL) {			te_subsystem = (struct crm_subsystem_s*)				ha_malloc(sizeof(struct crm_subsystem_s));						te_subsystem->pid = 0;				te_subsystem->respawn = 1;				te_subsystem->command = NULL;			te_subsystem->u_runas = -1;	 			te_subsystem->g_runas = -1;	 			te_subsystem->path = ha_strdup(BIN_DIR);			}				// make sure we always do a (re)start here		if(te_subsystem->command != NULL)			ha_free(te_subsystem->command);		te_subsystem->command = ha_strdup("tengine -r");			if(start_a_child_client(te_subsystem, NULL) == FALSE)			result = I_FAIL;	}		FNRET(result);}