Beispiel #1
0
static int ADC_client_send_queue(struct ADC_client* client)
{
	int ret = 0;
	while (ioq_send_get_bytes(client->send_queue))
	{
		ret = ioq_send_send(client->send_queue, client->con);
		if (ret <= 0)
			break;
	}

	if (ret < 0)
		return quit_socket_error;

	if (ioq_send_get_bytes(client->send_queue))
	{
		net_con_update(client->con, NET_EVENT_READ | NET_EVENT_WRITE);
	}
	else
	{
		net_con_update(client->con, NET_EVENT_READ);
	}
	return 0;
}
Beispiel #2
0
int handle_net_write(struct hub_user* user)
{
	int ret = 0;
	while (ioq_send_get_bytes(user->send_queue))
	{
		ret = ioq_send_send(user->send_queue, user->connection);
		if (ret <= 0)
			break;
	}

	if (ret < 0)
		return quit_socket_error;

	if (ioq_send_get_bytes(user->send_queue))
	{
		user_net_io_want_write(user);
	}
	else
	{
		user_net_io_want_read(user);
	}
	return 0;
}