/** * @brief Accept packets * * @param server server connection * @param transport new connected transport * * @retval WG_SUCCESS * @retval WG_FAILURE */ wg_status transport_server_accept(Wg_transport *server, Wg_transport *transport) { int sock_status = -1; CHECK_FOR_NULL_PARAM(server); CHECK_FOR_NULL_PARAM(transport); sock_status = accept(server->transport.out_fd, (struct sockaddr*)&transport->sockaddr, &server->sockaddr_size); if (-1 == sock_status){ WG_LOG("%s\n", strerror(errno)); return WG_FAILURE; } memset(transport, '\0', sizeof (Wg_transport)); transport->sockaddr_size = server->sockaddr_size; transport->transport.out_fd = sock_status; transport->transport.domain = server->transport.domain; transport->transport.type = server->transport.type; transport->transport.protocol = server->transport.protocol; transport->transport.is_connected = WG_TRUE; wg_strdup(server->transport.address, &transport->transport.address); return WG_SUCCESS; }
extern void *fp_Init(const char *name) { fp_t *h = (fp_t *)wg_zalloc( sizeof(fp_t) ); if ( name ) { h->name = wg_strdup(name); } return (void *)h; }