Commit Graph

2 Commits (dd75219ab372d166975147e27624d09d76bff89a)

Author SHA1 Message Date
Dustin 37cea1dd47 dhcpcd: Wait for carrier before active
In order to ensure that network interfaces are active, but not
necessarily fully configured, before *network.target* is reached, the
*dhcpcd.service* unit now waits until at least one interface has
processed the `CARRIER` event before being marked as active.  This is
accomplished using the *sd_notify* infrastructure, via the
`systemd-notify` command, executed in a client configuration hook
script.
2022-06-28 17:02:03 -05:00
Dustin 52e28b6912 dhcpcd: Fix startup process
The *dhcpcd.service* systemd unit file that ships with Buildroot is
broken.  It orders the unit after *network.target*, which makes no
sense.  It also configures the process to fork, but incorrectly
configures the PID file.  Finally, by relying on the fork to indicate
that the network is "online," it does not distinguish between "an
interface is up" and "the network is reachable."  As most daemons only
need the former, they only rely on *network.target*, and thus can fail
to start correctly.

To correct this brokenness, we provide our own unit file for
*dhcpcd.service*, based on the one included in the Fedora *dhcpcd* RPM
package.  For "online" signalling, we provide a pair of shell scripts:
one reads from a named pipe waiting for a message and the other sends a
message to the pipe when configuration is complete.
2022-06-27 10:25:07 -05:00