Пример #1
0
void delsubuser(subuser **current, acetables *g_ape)
{
	subuser *del = *current;
	
	FIRE_EVENT_NONSTOP(delsubuser, del, g_ape);
	((*current)->user->nsub)--;
	
	*current = (*current)->next;	
	
	destroy_raw_pool(del->raw_pools.low.rawhead);
	destroy_raw_pool(del->raw_pools.high.rawhead);
	
	clear_properties(&del->properties);
	
	if (del->state == ALIVE) {
		del->wait_for_free = 1;
		do_died(del);
	} else {
		free(del);
	}
	
}
Пример #2
0
void delsubuser(subuser **current, acetables *g_ape)
{
	
	subuser *del = *current;
	USERS *user = (*current)->user;

	FIRE_EVENT_NULL(delsubuser, del, g_ape);
	((*current)->user->nsub)--;
	
	*current = (*current)->next;
	
	destroy_raw_pool(del->raw_pools.low.rawhead);
	destroy_raw_pool(del->raw_pools.high.rawhead);
	del->raw_pools.low.rawhead = del->raw_pools.low.rawfoot = NULL;
	del->raw_pools.high.rawhead = del->raw_pools.high.rawfoot = NULL;
	del->raw_pools.nraw = 0;
	del->client->attach = NULL;
	
	clear_properties(&del->properties);
	
	if (del->state == ALIVE) {
		del->wait_for_free = 1;
		do_died(del);
	} else {
		free(del);
	}

	/*
	 * If this is the last subuser, del the user 
	 */
	if (user->nsub <= 0) {
		user->idle = time(NULL) - (TIMEOUT_SEC - USRLEFT_SEC);
	}

	HOOK_EVENT(delsubuser, del, g_ape);
}