mom040267 11 роки тому
батько
коміт
f088108139
1 змінених файлів з 12 додано та 3 видалено
  1. 12 3
      src/apps/relay/ns_ioalib_engine_impl.c

+ 12 - 3
src/apps/relay/ns_ioalib_engine_impl.c

@@ -100,7 +100,6 @@ static void close_socket_net_data(ioa_socket_handle s);
 /************** Utils **************************/
 
 static const int tcp_congestion_control = 1;
-static const int udp_congestion_control = 1;
 
 static int bufferevent_enabled(struct bufferevent *bufev, short flags)
 {
@@ -2597,7 +2596,17 @@ static void socket_output_handler_bev(struct bufferevent *bev, void* arg)
 
 			ioa_socket_handle s = (ioa_socket_handle) arg;
 
-			if ((s->magic != SOCKET_MAGIC)||(s->done)||ioa_socket_tobeclosed(s)||(bev != s->bev)) {
+			if ((s->magic != SOCKET_MAGIC)||(s->done)||(bev != s->bev)) {
+				return;
+			}
+
+			if (s->tobeclosed) {
+				if (bufferevent_enabled(bev,EV_READ)) {
+					bufferevent_disable(bev,EV_READ);
+				}
+				if (bufferevent_enabled(bev,EV_WRITE)) {
+					bufferevent_disable(bev,EV_WRITE);
+				}
 				return;
 			}
 
@@ -3031,7 +3040,7 @@ int send_data_from_ioa_socket_nbh(ioa_socket_handle s, ioa_addr* dest_addr,
 
 							ret = (int) ioa_network_buffer_get_size(nbh);
 
-							if(!udp_congestion_control || is_socket_writeable(s,(size_t)ret,__FUNCTION__,2)) {
+							if(!tcp_congestion_control || is_socket_writeable(s,(size_t)ret,__FUNCTION__,2)) {
 							  if (bufferevent_write(
 										s->bev,
 										ioa_network_buffer_data(nbh),