diff options
| author | Roy Marples <roy@marples.name> | 2020-02-07 15:04:25 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-02-07 15:04:25 +0000 |
| commit | 57ab5f7c51248ddb529ac28617082f306418065c (patch) | |
| tree | 8fcb6c928ec37476a8cf99fdee47995386dcee7f /src/dhcpcd.c | |
| parent | ccf3a5e9fe4ea8f63cfcdb27f96b02ec2cc8ff70 (diff) | |
| download | dhcpcd-57ab5f7c51248ddb529ac28617082f306418065c.tar.xz | |
dhcpcd: randomise hardware address on start if no carrier
For more anonymity.
Diffstat (limited to 'src/dhcpcd.c')
| -rw-r--r-- | src/dhcpcd.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/dhcpcd.c b/src/dhcpcd.c index 3da52982..46564d01 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -940,9 +940,19 @@ static void dhcpcd_prestartinterface(void *arg) { struct interface *ifp = arg; + bool anondown; + + if (ifp->carrier == LINK_DOWN && + ifp->options->options & DHCPCD_ANONYMOUS && + ifp->flags & IFF_UP) + { + if_down(ifp); + anondown = true; + } else + anondown = false; if ((!(ifp->ctx->options & DHCPCD_MASTER) || - ifp->options->options & DHCPCD_IF_UP) && + ifp->options->options & DHCPCD_IF_UP || anondown) && !(ifp->flags & IFF_UP)) { if (ifp->options->options & DHCPCD_ANONYMOUS && |
