Esempio n. 1
0
File: inf.c Progetto: leejb521/uhub
static int check_logged_in(struct hub_info* hub, struct hub_user* user, struct adc_message* cmd)
{
	struct hub_user* lookup1 = uman_get_user_by_nick(hub->users, user->id.nick);
	struct hub_user* lookup2 = uman_get_user_by_cid(hub->users, user->id.cid);

	if (lookup1 == user)
	{
		return 0;
	}

	if (lookup1 || lookup2)
	{
		if (lookup1 == lookup2)
		{
			LOG_DEBUG("check_logged_in: exact same user is logged in: %s", user->id.nick);
			hub_disconnect_user(hub, lookup1, quit_ghost_timeout);
			return 0;
		}
		else
		{
			if (lookup1)
			{
				LOG_DEBUG("check_logged_in: nickname is in use: %s", user->id.nick);
				return status_msg_inf_error_nick_taken;
			}
			else
			{
				LOG_DEBUG("check_logged_in: CID is in use: %s", user->id.cid);
				return status_msg_inf_error_cid_taken;
			}
		}
	}
	return 0;
}
Esempio n. 2
0
File: hub.c Progetto: q3k/uhub
/**
 * @return 1 if CID is in use, or 0 if not used.
 */
static int is_cid_in_use(struct hub_info* hub, const char* cid)
{
	struct hub_user* lookup = uman_get_user_by_cid(hub, cid);
	if (lookup)
	{
		return 1;
	}
	return 0;
}
Esempio n. 3
0
File: hub.c Progetto: imobilis/uhub
static int check_duplicate_logins_ok(struct hub_info* hub, struct hub_user* user)
{
	struct hub_user* lookup1;
	struct hub_user* lookup2;

	lookup1 = uman_get_user_by_nick(hub->users, user->id.nick);
	if (lookup1)
		return status_msg_inf_error_nick_taken;

	lookup2 = uman_get_user_by_cid(hub->users, user->id.cid);
	if (lookup2)
		return status_msg_inf_error_cid_taken;

	return 0;
}