From e1e17a12c33f4b39a86fdace2103d630ddcf5916 Mon Sep 17 00:00:00 2001 From: Espressif Systems Date: Sat, 27 May 2017 11:13:46 +0800 Subject: [PATCH] sync: from 61124bba 1. driver: 1). Fix hw_timer issue, #96; 2). Fix SPI output data error; 3). Fix SPI read data bug; 4). Fix driver lib compile issue; 5). Fix uart flow control issue; 2. lwip: 1). Enable lwip ETHARP_TRUS_IP_MAC; 2). Modify dhcp/dhcps timer from 60 seconds to 1 second; 3. WiFi: 1). Support CSA; --- VERSION | 2 ++ driver_lib/driver/hw_timer.c | 31 ++++++++++++++++--- driver_lib/driver/spi_interface.c | 16 +++++++++- driver_lib/driver/uart.c | 2 +- driver_lib/include/gpio.h | 4 +-- driver_lib/include/hw_timer.h | 17 ++++++++-- driver_lib/make_lib.sh | 22 ++++++++++--- include/espressif/esp8266/pin_mux_register.h | 2 +- include/lwip/lwip/dhcp.h | 8 ++--- include/lwip/lwip/dhcpserver.h | 1 + include/lwip/lwipopts.h | 13 ++++++++ lib/libdriver.a | Bin 23320 -> 41936 bytes lib/liblwip.a | Bin 516372 -> 516680 bytes lib/libmain.a | Bin 198788 -> 198828 bytes lib/libnet80211.a | Bin 265276 -> 269388 bytes lib/libpp.a | Bin 264046 -> 264046 bytes third_party/lwip/core/dhcp.c | 10 ++---- third_party/lwip/core/dhcpserver.c | 5 +-- 18 files changed, 102 insertions(+), 31 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..13f5961f --- /dev/null +++ b/VERSION @@ -0,0 +1,2 @@ +lwip: 6ee4a9b3 +driver: 7bee5263 diff --git a/driver_lib/driver/hw_timer.c b/driver_lib/driver/hw_timer.c index 95529715..37383f00 100644 --- a/driver_lib/driver/hw_timer.c +++ b/driver_lib/driver/hw_timer.c @@ -49,15 +49,36 @@ typedef enum { // timer interrupt mode static void (* user_hw_timer_cb)(void) = NULL; +bool frc1_auto_load = false; + static void hw_timer_isr_cb(void *arg) { + if(frc1_auto_load == false ) { + RTC_REG_WRITE(FRC1_CTRL_ADDRESS, + DIVDED_BY_16 | TM_EDGE_INT); + } + if (user_hw_timer_cb != NULL) { (*(user_hw_timer_cb))(); } } -void hw_timer_arm(uint32 val) +void hw_timer_disarm(void) { + RTC_REG_WRITE(FRC1_CTRL_ADDRESS,0); +} + +void hw_timer_arm(uint32 val ,bool req) +{ + frc1_auto_load = req; + if (frc1_auto_load == true) { + RTC_REG_WRITE(FRC1_CTRL_ADDRESS, + FRC1_AUTO_LOAD | DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT); + } else { + RTC_REG_WRITE(FRC1_CTRL_ADDRESS, + DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT); + } + RTC_REG_WRITE(FRC1_LOAD_ADDRESS, US_TO_RTC_TIMER_TICKS(val)); } @@ -66,8 +87,9 @@ void hw_timer_set_func(void (* user_hw_timer_cb_set)(void)) user_hw_timer_cb = user_hw_timer_cb_set; } -void hw_timer_init(uint8 req) +void hw_timer_init(void) { +#if 0 if (req == 1) { RTC_REG_WRITE(FRC1_CTRL_ADDRESS, FRC1_AUTO_LOAD | DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT); @@ -76,6 +98,7 @@ void hw_timer_init(uint8 req) DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT); } +#endif _xt_isr_attach(ETS_FRC_TIMER1_INUM, hw_timer_isr_cb, NULL); TM1_EDGE_INT_ENABLE(); @@ -108,8 +131,8 @@ void hw_test_timer_cb(void) void user_init(void) { - hw_timer_init(1); - hw_timer_set_func(hw_test_timer_cb); + hw_timer_init(); + hw_timer_set_func(hw_test_timer_cb,1); hw_timer_arm(100); } #endif diff --git a/driver_lib/driver/spi_interface.c b/driver_lib/driver/spi_interface.c index 0e8b81de..3cffe14b 100644 --- a/driver_lib/driver/spi_interface.c +++ b/driver_lib/driver/spi_interface.c @@ -22,6 +22,7 @@ #include "spi_interface.h" #include "esp8266/eagle_soc.h" #include "esp8266/ets_sys.h" +#include "esp8266/pin_mux_register.h" #include "esp_libc.h" //***************************************************************************** // @@ -123,6 +124,10 @@ void ICACHE_FLASH_ATTR SPIInit(SpiNum spiNum, SpiAttr* pAttr) // SPI Speed if (1 < (pAttr->speed)) { CLEAR_PERI_REG_MASK(SPI_CLOCK(spiNum), SPI_CLK_EQU_SYSCLK); + if (spiNum == SpiNum_HSPI) { + CLEAR_PERI_REG_MASK(PERIPHS_IO_MUX_CONF_U, SPI1_CLK_EQU_SYS_CLK); + } + WRITE_PERI_REG(SPI_CLOCK(spiNum), ((pAttr->speed & SPI_CLKCNT_N) << SPI_CLKCNT_N_S) | ((((pAttr->speed + 1) / 2 - 1) & SPI_CLKCNT_H) << SPI_CLKCNT_H_S) | @@ -169,6 +174,8 @@ void ICACHE_FLASH_ATTR SPIInit(SpiNum spiNum, SpiAttr* pAttr) //clear Daul or Quad lines transmission mode CLEAR_PERI_REG_MASK(SPI_CTRL(spiNum), SPI_QIO_MODE | SPI_DIO_MODE | SPI_DOUT_MODE | SPI_QOUT_MODE); + SET_PERI_REG_MASK(SPI_CTRL(spiNum), SPI_FASTRD_MODE); + } /** @@ -258,6 +265,7 @@ int ICACHE_FLASH_ATTR SPIMasterSendData(SpiNum spiNum, SpiData* pInData) SET_PERI_REG_BITS(SPI_USER1(spiNum), SPI_USR_MOSI_BITLEN, ((pInData->dataLen << 3) - 1), SPI_USR_MOSI_BITLEN_S); } else { CLEAR_PERI_REG_MASK(SPI_USER(spiNum), SPI_USR_MOSI); + CLEAR_PERI_REG_MASK(SPI_USER(spiNum), SPI_USR_MISO); SET_PERI_REG_BITS(SPI_USER1(spiNum), SPI_USR_MOSI_BITLEN, 0, SPI_USR_MOSI_BITLEN_S); } @@ -329,9 +337,15 @@ int ICACHE_FLASH_ATTR SPIMasterRecvData(SpiNum spiNum, SpiData* pOutData) SET_PERI_REG_BITS(SPI_USER1(spiNum), SPI_USR_MISO_BITLEN, 0, SPI_USR_MISO_BITLEN_S); } + + //CLEAR FIFO DATA + int fifo_idx = 0; + do { + WRITE_PERI_REG(SPI_W0(spiNum) + (fifo_idx << 2), 0); + } while (++fifo_idx < (pOutData->dataLen / 4)); + // Start send data SET_PERI_REG_MASK(SPI_CMD(spiNum), SPI_USR); - while (READ_PERI_REG(SPI_CMD(spiNum))&SPI_USR); // Read data out do { diff --git a/driver_lib/driver/uart.c b/driver_lib/driver/uart.c index 393845fc..125f3762 100644 --- a/driver_lib/driver/uart.c +++ b/driver_lib/driver/uart.c @@ -329,7 +329,7 @@ UART_IntrConfig(UART_Port uart_no, UART_IntrConfTypeDef *pUARTIntrConf) uint32 reg_val = 0; UART_ClearIntrStatus(uart_no, UART_INTR_MASK); - reg_val = READ_PERI_REG(UART_CONF1(uart_no)) & ~((UART_RX_FLOW_THRHD << UART_RX_FLOW_THRHD_S) | UART_RX_FLOW_EN) ; + reg_val = READ_PERI_REG(UART_CONF1(uart_no)) & ((UART_RX_FLOW_THRHD << UART_RX_FLOW_THRHD_S) | UART_RX_FLOW_EN) ; reg_val |= ((pUARTIntrConf->UART_IntrEnMask & UART_RXFIFO_TOUT_INT_ENA) ? ((((pUARTIntrConf->UART_RX_TimeOutIntrThresh)&UART_RX_TOUT_THRHD) << UART_RX_TOUT_THRHD_S) | UART_RX_TOUT_EN) : 0); diff --git a/driver_lib/include/gpio.h b/driver_lib/include/gpio.h index 4927a325..f093fada 100644 --- a/driver_lib/include/gpio.h +++ b/driver_lib/include/gpio.h @@ -28,7 +28,7 @@ #ifdef __cplusplus extern "C" { #endif - +#include "esp8266/gpio_register.h" #define GPIO_Pin_0 (BIT(0)) /* Pin 0 selected */ #define GPIO_Pin_1 (BIT(1)) /* Pin 1 selected */ #define GPIO_Pin_2 (BIT(2)) /* Pin 2 selected */ @@ -190,7 +190,7 @@ typedef struct { * * @return the level of GPIO input */ -#define GPIO_INPUT_GET(gpio_no) ((gpio_input_get()>>gpio_no)&BIT0) +#define GPIO_INPUT_GET(gpio_no) ((gpio_input_get()>>gpio_no)&BIT(0)) /** * @brief Enable GPIO16 output. diff --git a/driver_lib/include/hw_timer.h b/driver_lib/include/hw_timer.h index 3cbb5407..50b8fe19 100644 --- a/driver_lib/include/hw_timer.h +++ b/driver_lib/include/hw_timer.h @@ -44,11 +44,11 @@ extern "C" { /** * @brief Initialize the hardware ISR timer. * - * @param uint8 req : 0, not autoload; 1, autoload mode. + * @param null * * @return null */ -void hw_timer_init(uint8 req); +void hw_timer_init(void); /** * @brief Set a trigger timer delay to enable this timer. @@ -57,9 +57,20 @@ void hw_timer_init(uint8 req); * - In autoload mode, range : 50 ~ 0x7fffff * - In non-autoload mode, range : 10 ~ 0x7fffff * + * @param uint8 req : 0, not autoload; 1, autoload mode. + * * @return null */ -void hw_timer_arm(uint32 val); +void hw_timer_arm(uint32 val, bool req); + +/** + * @brief disable this timer. + * + * @param null + * + * @return null + */ +void hw_timer_disarm(void); /** * @brief Set timer callback function. diff --git a/driver_lib/make_lib.sh b/driver_lib/make_lib.sh index ec83c618..6e3e75f3 100755 --- a/driver_lib/make_lib.sh +++ b/driver_lib/make_lib.sh @@ -1,11 +1,23 @@ -#!/bin/bash -x +#!/bin/bash +set -e -echo "make_lib.sh version 20160307" +export SDK_PATH=$(dirname $(pwd)) + +echo "make_lib.sh version 20150924" echo "" +if [ $SDK_PATH ]; then + echo "SDK_PATH:" + echo "$SDK_PATH" + echo "" +else + echo "ERROR: Please export SDK_PATH in make_lib.sh firstly, exit!!!" + exit +fi + cd $1 make clean -make COMPILE=gcc -cp .output/eagle/debug/lib/lib$1.a ../../lib/lib$1.a -xtensa-lx106-elf-strip --strip-unneeded ../../lib/lib$1.a +make +cp .output/eagle/debug/lib/lib$1.a $SDK_PATH/lib/lib$1.a +xtensa-lx106-elf-strip --strip-unneeded $SDK_PATH/lib/lib$1.a cd .. diff --git a/include/espressif/esp8266/pin_mux_register.h b/include/espressif/esp8266/pin_mux_register.h index 33a2e769..3ee05560 100644 --- a/include/espressif/esp8266/pin_mux_register.h +++ b/include/espressif/esp8266/pin_mux_register.h @@ -24,7 +24,7 @@ #ifndef _PIN_MUX_H_ #define _PIN_MUX_H_ - +#include "eagle_soc.h" #define PERIPHS_IO_MUX 0x60000800 #define PERIPHS_IO_MUX_FUNC 0x13 diff --git a/include/lwip/lwip/dhcp.h b/include/lwip/lwip/dhcp.h index 32b5028f..92a5f185 100644 --- a/include/lwip/lwip/dhcp.h +++ b/include/lwip/lwip/dhcp.h @@ -16,7 +16,7 @@ extern "C" { #endif /** period (in seconds) of the application calling dhcp_coarse_tmr() */ -#define DHCP_COARSE_TIMER_SECS 60 +#define DHCP_COARSE_TIMER_SECS 1 /** period (in milliseconds) of the application calling dhcp_coarse_tmr() */ #define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL) /** period (in milliseconds) of the application calling dhcp_fine_tmr() */ @@ -46,9 +46,9 @@ struct dhcp struct pbuf *p_out; /* pbuf of outcoming msg */ struct dhcp_msg *msg_out; /* outgoing msg */ u16_t options_out_len; /* outgoing msg options length */ - u16_t request_timeout; /* #ticks with period DHCP_FINE_TIMER_SECS for request timeout */ - u16_t t1_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for renewal time */ - u16_t t2_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for rebind time */ + u32_t request_timeout; /* #ticks with period DHCP_FINE_TIMER_SECS for request timeout */ + u32_t t1_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for renewal time */ + u32_t t2_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for rebind time */ ip_addr_t server_ip_addr; /* dhcp server address that offered this lease */ ip_addr_t offered_ip_addr; ip_addr_t offered_sn_mask; diff --git a/include/lwip/lwip/dhcpserver.h b/include/lwip/lwip/dhcpserver.h index 1e45a09b..e07b5417 100644 --- a/include/lwip/lwip/dhcpserver.h +++ b/include/lwip/lwip/dhcpserver.h @@ -48,6 +48,7 @@ typedef struct _list_node{ }list_node; extern u32_t dhcps_lease_time; +#define DHCPS_COARSE_TIMER_SECS 1 #define DHCPS_LEASE_TIMER dhcps_lease_time //0x05A0 #define DHCPS_MAX_LEASE 0x64 #define BOOTP_BROADCAST 0x8000 diff --git a/include/lwip/lwipopts.h b/include/lwip/lwipopts.h index e133488c..9df03236 100644 --- a/include/lwip/lwipopts.h +++ b/include/lwip/lwipopts.h @@ -163,6 +163,19 @@ */ #define IP_REASS_MAX_PBUFS 10 +/** + * ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be + * updated with the source MAC and IP addresses supplied in the packet. + * You may want to disable this if you do not trust LAN peers to have the + * correct addresses, or as a limited approach to attempt to handle + * spoofing. If disabled, lwIP will need to make a new ARP request if + * the peer is not already in the ARP table, adding a little latency. + * The peer *is* in the ARP table if it requested our address before. + * Also notice that this slows down input processing of every IP packet! + */ +#define ETHARP_TRUST_IP_MAC 1 + + /* ---------------------------------- ---------- ICMP options ---------- diff --git a/lib/libdriver.a b/lib/libdriver.a index e0b184c493544006812cd025b253ba646cf95886..b4e08e8ac20a2833cc07b92bb6dacaf991104db5 100644 GIT binary patch literal 41936 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%0AJeK`)iI+Gbm(*DPMs-m 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 G@c#p;e=kY^ delta 2849 zcma)7Yiv|S6rS03vF&c5-EJvuf!=N(+foX5+ocbrP+kG8ag~AzCPGUD1HraJYt)de zkjC&3SbEebAQr_)j2du>F|jel_`+XeqKOHZVECc2iKU7`6Is7+_Fhs6CZ6`2^PMwi z&YZdP*ss6vy!?Sql*AV_w?-QqZQHW&51HIrR#QvVcrB|dM=4dNlxO_^qwEZZIH(&@ z>JF&8lk-1(V(afDR9~OGnNh1t9_!oMJFj=XQ=Vl-qV7_X%e)`XEO#yR*j(PNwy6ng zYP1_9Zr8@&$-uIJD3nq)szenTR-Q@)&X3o4vLn+&YSg2$B7yUHx#Oz6<382CY?@M2 zR2Ksg)P^9xCtMH?z437K`vKbu+6_ys(6HS&Y*h?@j^yPNDXU^nWFn=1ON}ZOxt7X` zj9RKTBOnD8`D?R~D-*dg)%X(Tq#$p0#IpJ$f2OtsyrJPwpHnI{JZMHmuBZG%{!D$H z$&lM$0rzT;9krlaJ)zf?{#Cjvw#Av0l9yJPAT7a3wyxpC=@<_*`|bilKq)}UN-L9x z@yu5VFrFVy1B_V!;M16~E0oH)Wpqj+r&Ko4aN9EwavIF!5@;Itd%m&!+^ zyXr}qs9GW`t3T5B%Gv6$-fY@k@?ck3?~#+?u-+>t!H3{4(4}&5T0z@EjCYp_ss^*u zrOp87JnZuW?*c4)3P5=P=wyc0(_oV`oJNN2@G%4LfSchn@W~lY$+eoIwoxYn%197H zIFjJJ?&u%ECyzb@d!t#wWhV;C$XsMdfHA{Vz|HUnI9J32OvyvKOlHXUgE6;l{OFM@ zwMB)6aB*W@X@K1#-T4KDVJF`0*#_HUPg@9V^0yd4EzHVV3IMm3=xrJH!@kN4v*zEH zVGJ3rIvEP(V4`$N4~{~cmiH2&+!55*hXKV1$d}8BQtw=R{D+uG@{Y`wABOVeCNNv_ zWHGP-=o#vh9>cwi0ZI35?Bj|Q?B zU`(7&8a}53^xp+J$AOb*r?{EmK{_B+0C^p>?QnLrIh+NVBH*k6H$@bJKyW`B&0sot zS$$3izmA@c2C@d=1oV;nrpuhNCOKDDEBAExrMPdkWDi#sb56)(*_w_%WlZ*XZGEnH{efKBV z4;=Pprcx@E9DC-{RJ}+p?5op3xxTMMcgfQIF}+KUp#4d%pj|7G12On_qunkS(GE)a z^D%u~o${DU$5rF5emle1`Vh&~kaWQJwUq5E}>oIDiMFUU2tnBZ_skIIq5 zuOTRsi0MnRJJG58ym)x1pHYDsJZG*XeO|Y zJx_51xtBZ@0eCMs_AFyJDCS{*dVEy<4(9_>9W?eLwGOr`9RDb67C_{yiB#`xw(1+`->Ld`Z0+gaqLNR&xKk&` zUMlnybAgZvAc*@#liX(~OI}&7^#a*&w5W<#7Qzptc{v~ud~>X`xSh6h3vtUim^aebE{l(E)Gc!2c+ooNt>TlWo6tbs27*XKAGy!* zf8zMRg62!07ovgO02ognxo@H5y!uwW6%^741o3UTALKsA&vLcH&4Y#*`pDfFZi!xs z2C@lY9{R|Aj^9+i3=Rm-8Dr=Z`-C^{_)WF#a6R**Nz5a0h*5&L;%KE4);0! bO4xb@8ptt#G4zr996#u-_cD3z#7yr$T@i$e diff --git a/lib/liblwip.a b/lib/liblwip.a index db26bb85cd750d05e31a33af7ee20df700a57ae7..917ac40d8b3a668d3759503f65cbac73707c264f 100644 GIT binary patch delta 23842 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 qg2jTcHkpy!fk delta 23740 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 BCx8F| delta 12415 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 kbmL)rcjwEFwCFt_+ZO}>r=A{t__W28UD=TuF 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 HVuJr4qHUw6 delta 59280 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

(1)Z5Wg9^+He4H_J+zByWt?|NF!MH0; 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 B*gF6K delta 561 zcmaFYC-AOMV1g8fxrLFbrGbI@MkN(dIA`*McVe4UL}#g^ipbcOuy81>c`D7o7 zhT}YCxcu~nQfBeVp{a8j-%kFV8qWA*vUl1oM$ye`=~XO@E|V8#8!`q=zMSpG7%^EY z$Dc8Oa#oHEW7+2R96?6Ljgx2QN;7Vmyfs&WaqH%5xyg)-e>Yp@^Ds%KFy8-vfPsPS z|9>?F5j6op#q<9S&;NH?e0_3!VUoc!#=}tAv;fIZK7t%;!ya%bZvJn$8K`6`<6fww z;>Q1m8-XGhCx0x|XZ$x=vFJQw=H`z@;w+5blR3*(7=tJ4mG1;P=|%ZW#)ipF6%!a2 zZx*iH$;kM9^4Y2mM&8L`)n1IslNVOIGMY|)UcFEzi19PjY{pmrnHU(@Wd#*q{x^L2 z-)U*^m@CbQC5dIh z_N9hQH<%dLY_Bt6ipgUP*nWEv6K5K-9`WtWoXng;$UQzA^@S3 B*P8$U diff --git a/third_party/lwip/core/dhcp.c b/third_party/lwip/core/dhcp.c index 9199121a..77d6e93c 100644 --- a/third_party/lwip/core/dhcp.c +++ b/third_party/lwip/core/dhcp.c @@ -1058,12 +1058,9 @@ dhcp_bind(struct netif *netif) /* set renewal period timer */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t1 renewal timer %"U32_F" secs\n", dhcp->offered_t1_renew)); timeout = (dhcp->offered_t1_renew + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; - if(timeout > 0xffff) { - timeout = 0xffff; - } dhcp->t1_timeout = (u16_t)timeout; if (dhcp->t1_timeout == 0) { - dhcp->t1_timeout = 1; + dhcp->t1_timeout = 60; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t1_renew*1000)); } @@ -1071,12 +1068,9 @@ dhcp_bind(struct netif *netif) if (dhcp->offered_t2_rebind != 0xffffffffUL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t2 rebind timer %"U32_F" secs\n", dhcp->offered_t2_rebind)); timeout = (dhcp->offered_t2_rebind + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; - if(timeout > 0xffff) { - timeout = 0xffff; - } dhcp->t2_timeout = (u16_t)timeout; if (dhcp->t2_timeout == 0) { - dhcp->t2_timeout = 1; + dhcp->t2_timeout = (dhcp->t1_timeout>>2)*7; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t2_rebind*1000)); } diff --git a/third_party/lwip/core/dhcpserver.c b/third_party/lwip/core/dhcpserver.c index 685da6f0..31ea2d06 100644 --- a/third_party/lwip/core/dhcpserver.c +++ b/third_party/lwip/core/dhcpserver.c @@ -576,6 +576,7 @@ static u8_t parse_options(u8_t *optptr, s16_t len) /////////////////////////////////////////////////////////////////////////////////// static s16_t parse_msg(struct dhcps_msg *m, u16_t len) { + u32_t lease_timer = (dhcps_lease_time * 60)/DHCPS_COARSE_TIMER_SECS; if(memcmp((char *)m->options, &magic_cookie, sizeof(magic_cookie)) == 0){ @@ -632,7 +633,7 @@ static s16_t parse_msg(struct dhcps_msg *m, u16_t len) renew = true; } client_address.addr = pdhcps_pool->ip.addr; - pdhcps_pool->lease_timer = DHCPS_LEASE_TIMER; + pdhcps_pool->lease_timer = lease_timer; pnode = pback_node; goto POOL_CHECK; } else if (pdhcps_pool->ip.addr == client_address_plus.addr){ @@ -669,7 +670,7 @@ static s16_t parse_msg(struct dhcps_msg *m, u16_t len) pdhcps_pool = (struct dhcps_pool *)os_zalloc(sizeof(struct dhcps_pool)); pdhcps_pool->ip.addr = client_address.addr; memcpy(pdhcps_pool->mac, m->chaddr, sizeof(pdhcps_pool->mac)); - pdhcps_pool->lease_timer = DHCPS_LEASE_TIMER; + pdhcps_pool->lease_timer = lease_timer; pnode = (list_node *)os_zalloc(sizeof(list_node )); pnode->pnode = pdhcps_pool; pnode->pnext = NULL;