Changes between Version 1 and Version 2 of Ticket #8316, comment 19


Ignore:
Timestamp:
Dec 24, 2020, 8:09:19 AM (3 years ago)
Author:
jeremyvisser

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #8316, comment 19

    v1 v2  
    41411. Pass the `B_UNCONFIGURED_ADDRESS_FAMILIES` flag to the BNetworkAddress in NetServer::_ConfigureIPv6LinkLocal. It appears this tells the resolver to resolve IPv6 addresses regardless of whether it thinks IPv6 is available on the system (which on first boot, it is not yet).
    42421. Modify the _ConfigureIPv6LinkLocal function to create the localLinkMask / localLinkBroadcast by passing an `in6_addr` structure, not a `const char *`, avoiding the BNetworkAddressResolver altogether. This means no string parsing is needed at all, which is more robust.
    43 1. Populate the localLinkMask by calling `BNetworkAddress::SetToMask(AF_INET6, 64)`, which designed for this use case. However this only works for the mask, not broadcast address. That said, I don't know whether the broadcast address is used for anything? (I know it doesn't make sense in IPv6, but does anything in the kernel rely on it? Can it be zeroed out?)
     431. Populate the localLinkMask by calling `BNetworkAddress::SetToMask(AF_INET6, 64)`, which is designed for this use case. However this only works for the mask, not broadcast address. That said, I don't know whether the broadcast address is used for anything? (I know it doesn't make sense in IPv6, but does anything in the kernel rely on it? Can it be zeroed out?)
    44441. Introduce a mode on the BNetworkAddressResolver or BNetworkAddress which only uses `inet_pton()` rather than `getaddrinfo()`. While this is less useful for a generic BNetworkAddress, it is suitable for low-level network config, which net_server does qualify for.
    45451. There might be other options I haven't thought of yet.