Просмотр исходного кода

Merge branch 'master' of ssh://gitlab.espressif.cn:27227/idf/esp-idf into feature/btdm_bluedroid

Tian Hao 9 лет назад
Родитель
Сommit
ba96c0d2e9
3 измененных файлов с 25 добавлено и 23 удалено
  1. 1 1
      components/esp32/lib
  2. 1 1
      components/lwip/Kconfig
  3. 23 21
      components/tcpip_adapter/tcpip_adapter_lwip.c

+ 1 - 1
components/esp32/lib

@@ -1 +1 @@
-Subproject commit b01f9683daa05bf6cc8ad382787000e4af87263b
+Subproject commit 2559c73c2c9c5794b08499f3a559b65b54707d7d

+ 1 - 1
components/lwip/Kconfig

@@ -19,7 +19,7 @@ config L2_TO_L3_COPY
 config LWIP_MAX_SOCKETS
     int "Max number of open sockets"
     range 1 16
-    default 4
+    default 10
     help
         Sockets take up a certain amount of memory, and allowing fewer
         sockets to be open at the same time conserves memory. Specify

+ 23 - 21
components/tcpip_adapter/tcpip_adapter_lwip.c

@@ -392,27 +392,29 @@ esp_err_t tcpip_adapter_dhcps_option(tcpip_adapter_option_mode_t opt_op, tcpip_a
                 uint32_t start_ip = 0;
                 uint32_t end_ip = 0;
                 dhcps_lease_t *poll = opt_val;
-
-                memset(&info, 0x00, sizeof(tcpip_adapter_ip_info_t));
-                tcpip_adapter_get_ip_info(WIFI_IF_AP, &info);
-                softap_ip = htonl(info.ip.addr);
-                start_ip = htonl(poll->start_ip.addr);
-                end_ip = htonl(poll->end_ip.addr);
-
-                /*config ip information can't contain local ip*/
-                if ((start_ip <= softap_ip) && (softap_ip <= end_ip))
-                       return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
-
-                /*config ip information must be in the same segment as the local ip*/
-                softap_ip >>= 8;
-                if ((start_ip >> 8 != softap_ip)
-                    || (end_ip >> 8 != softap_ip)) {
-                       return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
-                }
-
-                if (end_ip - start_ip > DHCPS_MAX_LEASE) {
-                       return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
-                }
+                
+		if (poll->enable){
+                    memset(&info, 0x00, sizeof(tcpip_adapter_ip_info_t));
+                    tcpip_adapter_get_ip_info(WIFI_IF_AP, &info);
+                    softap_ip = htonl(info.ip.addr);
+                    start_ip = htonl(poll->start_ip.addr);
+                    end_ip = htonl(poll->end_ip.addr);
+
+                    /*config ip information can't contain local ip*/
+                    if ((start_ip <= softap_ip) && (softap_ip <= end_ip))
+                        return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
+
+                    /*config ip information must be in the same segment as the local ip*/
+                    softap_ip >>= 8;
+                    if ((start_ip >> 8 != softap_ip)
+                        || (end_ip >> 8 != softap_ip)) {
+                           return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
+                    }
+
+                    if (end_ip - start_ip > DHCPS_MAX_LEASE) {
+                        return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
+                    }
+		}
 
                 memcpy(opt_info, opt_val, opt_len);
                 break;