Esempio n. 1
0
void p2p_connect_handler(int err, const char* reason, struct p2pconnection* p2pcon)
{
	re_printf("connect ok");
	int fdlisten = tcp_conn_fd(p2pcon->p2p->ltcp);
	UDPSOCKET udpsock = (UDPSOCKET)fdlisten;
	UDT::connect(p2pcon->udtsock, &udpsock, &(p2pcon->p2p->sactl->u.sa), p2pcon->p2p->sactl->len);
}
Esempio n. 2
0
static void tcp_conn_handler(const struct sa *peer, void *arg)
{
    struct esp_client *ec;
    struct esp_server *es = (struct esp_server *)arg;
    
    esp_client_alloc(&ec);
    tcp_accept(&ec->tc, es->ts, tcp_estab_handler, tcp_recv_handler, tcp_close_handler, ec);
    DEBUG_INFO("%s %d | %J | fd=%d\n", __func__, __LINE__, peer, tcp_conn_fd(ec->tc));
}
Esempio n. 3
0
// connect callback
void p2p_request_handler(struct p2phandle *p2p, const char* peername, struct p2pconnection **p2pcon)
{
	re_fprintf(stderr, "p2p accept from:%s\n", peername);
	int err = p2p_accept(p2p, p2pcon, peername, p2p_receive_handler, *p2pcon);
	int fdaccept = udp_sock_fd((*p2pcon)->ulsock, AF_INET);
	struct sa* lsa = NULL;
	lsa = (struct sa*)mem_zalloc(sizeof(struct sa),NULL);
	udp_local_get((*p2pcon)->ulsock, lsa);
	sa_cpy(lsa, p2p->sactl);
	int fdlisten = tcp_conn_fd(p2p->ltcp);
	UDPSOCKET udpsock = (UDPSOCKET)fdlisten;
	(*p2pcon)->udtsock = CUDT::socket(AF_INET, SOCK_STREAM, 0);
	CUDT::bind((*p2pcon)->udtsock, &udpsock, &(p2p->sactl->u.sa), p2p->sactl->len);
	CUDT::listen((*p2pcon)->udtsock, &(lsa->u.sa), 10);
	if (err)
	{
		re_fprintf(stderr, "p2p accept error:%s\n", strerror(err));
		return ;
	}
}