mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-12-25 18:14:53 +00:00
PPP: improve randomization of LCP magic number after power-up
magic_init() is first time called from ppp_init(), which is called from lwip_init(). If system has no RTC, sys_jiffies() returns same value in this moment after every power-up or system reset. This value used in LCP magic number generation after ppp_connect(), which leads to same magic number after every restart. Subsequent magic_randomize() calls takes place in ppp_input(), after magic number generation. Call magic_randomize() somewhere near start of ppp_connect() (and ppp_listen()) as it might be called later at a random time. Signed-off-by: Sylvain Rochet <gradator@gradator.net>
This commit is contained in:
parent
dac4cb05f7
commit
fa3826a1d3
@ -276,6 +276,8 @@ err_t ppp_connect(ppp_pcb *pcb, u16_t holdoff) {
|
|||||||
|
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_connect[%d]: holdoff=%d\n", pcb->netif->num, holdoff));
|
PPPDEBUG(LOG_DEBUG, ("ppp_connect[%d]: holdoff=%d\n", pcb->netif->num, holdoff));
|
||||||
|
|
||||||
|
magic_randomize();
|
||||||
|
|
||||||
if (holdoff == 0) {
|
if (holdoff == 0) {
|
||||||
ppp_do_connect(pcb);
|
ppp_do_connect(pcb);
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
@ -303,6 +305,8 @@ err_t ppp_listen(ppp_pcb *pcb) {
|
|||||||
|
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_listen[%d]\n", pcb->netif->num));
|
PPPDEBUG(LOG_DEBUG, ("ppp_listen[%d]\n", pcb->netif->num));
|
||||||
|
|
||||||
|
magic_randomize();
|
||||||
|
|
||||||
if (pcb->link_cb->listen) {
|
if (pcb->link_cb->listen) {
|
||||||
new_phase(pcb, PPP_PHASE_INITIALIZE);
|
new_phase(pcb, PPP_PHASE_INITIALIZE);
|
||||||
pcb->link_cb->listen(pcb, pcb->link_ctx_cb);
|
pcb->link_cb->listen(pcb, pcb->link_ctx_cb);
|
||||||
|
Loading…
Reference in New Issue
Block a user