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; }
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); } }
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; }