|
@@ -823,7 +823,7 @@ int set_socket_options_fd(evutil_socket_t fd, SOCKET_TYPE st, int family)
|
|
|
|
|
|
set_sock_buf_size(fd,UR_CLIENT_SOCK_BUF_SIZE);
|
|
|
|
|
|
- if(is_stream_socket(st)) {
|
|
|
+ if(is_tcp_socket(st)) { /* <<== FREEBSD fix */
|
|
|
struct linger so_linger;
|
|
|
so_linger.l_onoff = 1;
|
|
|
so_linger.l_linger = 0;
|
|
@@ -869,7 +869,7 @@ int set_socket_options_fd(evutil_socket_t fd, SOCKET_TYPE st, int family)
|
|
|
|
|
|
int flag = 1;
|
|
|
|
|
|
- if((st == TENTATIVE_TCP_SOCKET)||(st == TCP_SOCKET)||(st == TLS_SOCKET)) {
|
|
|
+ if(is_tcp_socket(st)) {
|
|
|
setsockopt(fd, /* socket affected */
|
|
|
IPPROTO_TCP, /* set option at TCP level */
|
|
|
TCP_NODELAY, /* name of option */
|
|
@@ -878,7 +878,7 @@ int set_socket_options_fd(evutil_socket_t fd, SOCKET_TYPE st, int family)
|
|
|
} else {
|
|
|
#if defined(SCTP_NODELAY)
|
|
|
setsockopt(fd, /* socket affected */
|
|
|
- IPPROTO_SCTP, /* set option at TCP level */
|
|
|
+ IPPROTO_SCTP, /* set option at SCTP level */
|
|
|
SCTP_NODELAY, /* name of option */
|
|
|
(char*)&flag, /* value */
|
|
|
sizeof(int)); /* length of option value */
|
|
@@ -907,46 +907,6 @@ int set_socket_options(ioa_socket_handle s)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int is_stream_socket(int st) {
|
|
|
- switch(st) {
|
|
|
- case TCP_SOCKET:
|
|
|
- case TLS_SOCKET:
|
|
|
- case TENTATIVE_TCP_SOCKET:
|
|
|
- case SCTP_SOCKET:
|
|
|
- case TLS_SCTP_SOCKET:
|
|
|
- case TENTATIVE_SCTP_SOCKET:
|
|
|
- return 1;
|
|
|
- default:
|
|
|
- ;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-const char* socket_type_name(SOCKET_TYPE st)
|
|
|
-{
|
|
|
- switch(st) {
|
|
|
- case TCP_SOCKET:
|
|
|
- return "TCP";
|
|
|
- case SCTP_SOCKET:
|
|
|
- return "SCTP";
|
|
|
- case UDP_SOCKET:
|
|
|
- return "UDP";
|
|
|
- case TLS_SOCKET:
|
|
|
- return "TLS/TCP";
|
|
|
- case TLS_SCTP_SOCKET:
|
|
|
- return "TLS/SCTP";
|
|
|
- case DTLS_SOCKET:
|
|
|
- return "DTLS";
|
|
|
- case TENTATIVE_TCP_SOCKET:
|
|
|
- return "TLS/TCP ?";
|
|
|
- case TENTATIVE_SCTP_SOCKET:
|
|
|
- return "TLS/SCTP ?";
|
|
|
- default:
|
|
|
- ;
|
|
|
- };
|
|
|
- return "UNKNOWN";
|
|
|
-}
|
|
|
-
|
|
|
/* <<== Socket options helpers */
|
|
|
|
|
|
ioa_socket_handle create_unbound_relay_ioa_socket(ioa_engine_handle e, int family, SOCKET_TYPE st, SOCKET_APP_TYPE sat)
|
|
@@ -3171,6 +3131,11 @@ int send_data_from_ioa_socket_nbh(ioa_socket_handle s, ioa_addr* dest_addr,
|
|
|
s->tobeclosed = 1;
|
|
|
s->broken = 1;
|
|
|
}
|
|
|
+ /*
|
|
|
+ bufferevent_flush(s->bev,
|
|
|
+ EV_READ|EV_WRITE,
|
|
|
+ BEV_FLUSH);
|
|
|
+ */
|
|
|
s->in_write = 0;
|
|
|
} else {
|
|
|
//drop the packet
|