[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lwip: Allocate the loopback netif by default

From: Joan Lledó
Subject: lwip: Allocate the loopback netif by default
Date: Sat, 2 Dec 2023 11:14:00 +0100


This patch fixes a few bugs. The translator was assuming one interface was 
already allocated in `netif_list` when calling `init_ifs` during startup, and 
used it to configure the loopback interface [1]. That was possibly true in the 
past but after upgrading liblwip I found `netif_list` is always null at the 
first call to `init_ifs`. That breaks fsysopts, the loopback interface and DHCP.

fsysopts is broken only when the translator is started without parameters. When 
that happens, `netif_list` remains null after `init_ifs` finished. Because of 
that, a call to fsysopts tries to initialize the stack again instead of 
reconfiguring it [2].

That's linked to the second problem, the lack of loopback interface. 
`parse_opt` at [2] assumes that a correctly initialized stack will at least 
have one configured interface, the loopback one. And `init_ifs` only configures 
it when there's a single netif allocated at `netif_list`, that condition is not 
met if `netif_list` arrives null.

Finally, DHCP fails on lwip if the translator is installed without parameters, 
like pfinet is:

$ showtrans /servers/socket/2
/hurd/pfinet -6 /servers/socket/26

The DHCP client calls fsysopts on the translator [3]. So when installed without 
parameters, this call to fsysopts tries to initialize the stack again and 

This simple patch fixes the problems.

[1] https://git.savannah.gnu.org/cgit/hurd/hurd.git/tree/lwip/lwip-util.c#n155
[2] https://git.savannah.gnu.org/cgit/hurd/hurd.git/tree/lwip/options.c#n266

reply via email to

[Prev in Thread] Current Thread [Next in Thread]