xueyunfei 5 лет назад
Родитель
Сommit
841aba8948
2 измененных файлов с 19 добавлено и 0 удалено
  1. 14 0
      components/lwip/Kconfig
  2. 5 0
      components/lwip/port/esp32/include/lwipopts.h

+ 14 - 0
components/lwip/Kconfig

@@ -71,6 +71,20 @@ menu "LWIP"
             will be redirected to lwip_select(), therefore, select can be used
             for sockets only.
 
+    config LWIP_SO_LINGER
+        bool "Enable SO_LINGER processing"
+        default n
+        help
+            Enabling this option allows SO_LINGER processing.
+            l_onoff = 1,l_linger can set the timeout.
+
+            If l_linger=0, When a connection is closed, TCP will terminate the connection.
+            This means that TCP will discard any data packets stored in the socket send buffer
+            and send an RST to the peer.
+
+            If l_linger!=0,Then closesocket() calls to block the process until
+            the remaining data packets has been sent or timed out.
+
     config LWIP_SO_REUSE
         bool "Enable SO_REUSEADDR option"
         default y

+ 5 - 0
components/lwip/port/esp32/include/lwipopts.h

@@ -548,6 +548,11 @@
  */
 #define LWIP_TCP_KEEPALIVE              1
 
+/**
+ * LWIP_SO_LINGER==1: Enable SO_LINGER processing.
+ */
+#define LWIP_SO_LINGER                  CONFIG_LWIP_SO_LINGER
+
 /**
  * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
  */