Ejemplo n.º 1
0
static int ft_bw(void)
{
	int ret, i;

	if (listen_sock < 0) {
		for (i = 0; i < ft_ctrl.xfer_iter; i++) {
			ret = ft_send_msg();
			if (ret)
				return ret;
		}

		ret = ft_recv_msg();
		if (ret)
			return ret;
	} else {
		for (i = 0; i < ft_ctrl.xfer_iter; i += ft_rx_ctrl.credits) {
			ret = ft_post_recv_bufs();
			if (ret)
				return ret;

			ret = ft_comp_rx(0);
			if (ret)
				return ret;
                }

		ret = ft_send_msg();
		if (ret)
			return ret;
	}

	return 0;
}
Ejemplo n.º 2
0
static int ft_pingpong(void)
{
	int ret, i;

	// TODO: current flow will not handle manual progress mode
	// it can get stuck with both sides receiving
	if (listen_sock < 0) {
		for (i = 0; i < ft_ctrl.xfer_iter; i++) {
			ret = ft_send_msg();
			if (ret)
				return ret;

			ret = ft_recv_msg();
			if (ret)
				return ret;
		}
	} else {
		for (i = 0; i < ft_ctrl.xfer_iter; i++) {
			ret = ft_recv_msg();
			if (ret)
				return ret;

			ret = ft_send_msg();
			if (ret)
				return ret;
		}
	}

	return 0;
}
Ejemplo n.º 3
0
int ft_time(t_client *client, int cli, char **args, int *number)
{
	time_t t;

	(void)args;
	(void)number;
	(void)client;
	t = time(&t);
	ft_send_msg(cli, INFO, ctime(&t));
	return (1);
}
Ejemplo n.º 4
0
int ft_nick(t_client *client, int cli, char **args, int *number)
{
	char *name;
	char *msg;

	msg = NULL;
	name = args[0];
	if (name == NULL || name[0] == '/')
		msg = ft_strdup("One argument expected");
	else if (check_no_repeat(client, cli, name, number))
		msg = ft_strdup("Nickname already used");
	else if (ft_strlen(name) > 9)
		msg = ft_strdup("Nickname too long");
	if (msg)
	{
		ft_send_msg(cli, ERRORS, msg);
		free(msg);
		return (0);
	}
	msg = ft_strdup("Nickname has been create");
	ft_strncpy(g_base->client[cli].name, name, 9);
	free(msg);
	return (1);
}