Mercurial > hg > dhcpcd
comparison src/if-bsd.c @ 5557:e65d193a1960 draft
Linux: Support wireless IP roaming
This is achieved by checking that the interface is wireless,
IFF_UP and IFF_LOWER_UP are present, but IFF_RUNNING is missing.
This gives exactly the same support as modern NetBSD when carrier
loss is detected, but without the address verifications when the
carrier comes back as that needs to be handled in the kernel.
While IP setup is maintained, other configuration data is discarded.
Note that this should be improved in the future.
Thanks to Boris Krasnovskiy <borkra@gmail.com> for helping with this.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Sat, 12 Dec 2020 13:12:26 +0000 |
| parents | 6a2da5651841 |
| children | 80fba4edc6c5 |
comparison
equal
deleted
inserted
replaced
| 5556:99bfd2eb77ab | 5557:e65d193a1960 |
|---|---|
| 406 if (ifp->wireless) | 406 if (ifp->wireless) |
| 407 return LINK_DOWN; | 407 return LINK_DOWN; |
| 408 return LINK_UNKNOWN; | 408 return LINK_UNKNOWN; |
| 409 } | 409 } |
| 410 return LINK_DOWN; | 410 return LINK_DOWN; |
| 411 } | |
| 412 | |
| 413 bool | |
| 414 if_roaming(__unused struct interface *ifp) | |
| 415 { | |
| 416 | |
| 417 return false; | |
| 411 } | 418 } |
| 412 | 419 |
| 413 static void | 420 static void |
| 414 if_linkaddr(struct sockaddr_dl *sdl, const struct interface *ifp) | 421 if_linkaddr(struct sockaddr_dl *sdl, const struct interface *ifp) |
| 415 { | 422 { |
