Exemplo n.º 1
0
static void active_connect(char *ip)
{
	int port = g_config.data_port;
	int fd = createsocket(ip, port);
	if (fd < 0)
	{
		LOG(pfs_data_log, LOG_ERROR, "connect %s:%d err %m\n", ip, port);
		char val[256] = {0x0};
		snprintf(val, sizeof(val), "connect %s:%d err %m\n", ip, port);
		SetStr(PFS_STR_CONNECT_E, val);
		return;
	}
	if (svc_initconn(fd))
	{
		LOG(pfs_data_log, LOG_ERROR, "svc_initconn err %m\n");
		close(fd);
		return;
	}
	add_fd_2_efd(fd);
	LOG(pfs_data_log, LOG_NORMAL, "connect %s:%d\n", ip, port);
	struct conn *curcon = &acon[fd];
	pfs_cs_peer *peer = (pfs_cs_peer *) curcon->user;
	peer->sock_stat = IDLE;
	peer->mode = CON_ACTIVE;
}
Exemplo n.º 2
0
static void accept_new()
{
	struct sockaddr_in addr;
	socklen_t len;
   	int fd = 0;

	while (1)
	{
	    fd = accept(lfd, (struct sockaddr *)&addr, (len = sizeof(addr), &len));
		if (fd < 0)
			break;
		if (fd >= maxfds)
		{
			LOG(glogfd, LOG_ERROR, "fd overflow ![%d] > [%d]\n", fd, maxfds);
			close(fd);
			continue;
		}
		if (solib.svc_initconn(fd))
		{
			LOG(glogfd, LOG_ERROR, "fd init err ![%d] %m\n", fd);
			close(fd);
			continue;
		}
		add_fd_2_efd(fd);
	}
}
Exemplo n.º 3
0
static int active_connect()
{
	char *ip = myconfig_get_value("iplist_serverip");
	int port = g_config.sig_port;
	int fd = createsocket(ip, port);
	if (fd < 0)
	{
		LOG(vfs_sig_log, LOG_ERROR, "connect %s:%d err %m\n", ip, port);
		return -1;
	}
	if (svc_initconn(fd))
	{
		LOG(vfs_sig_log, LOG_ERROR, "svc_initconn err %m\n");
		close(fd);
		return -1;
	}
	add_fd_2_efd(fd);
	LOG(vfs_sig_log, LOG_NORMAL, "fd [%d] connect %s:%d\n", fd, ip, port);
	return fd;
}