Date: Mon, 13 Jan 2020 10:13:04 +0000 From: "Schwarz, Konrad" <konrad.schw...@siemens.com> Message-ID: <a45b1767f1002449a37508c2cc6003d7172c9...@defthw99em4msx.ww902.siemens.net>
| I actually feel this problem is out-of-scope for POSIX: compliant machines | are not supposed to dynamically change their IP addresses at run-time. I have no idea what (if anything) POSIX says about IP networking requirements, but I'd expect not much, but that (if it were stated somewhere) would be an error. Staticaally assigned IPv4 (or even IPv6) addresses do not tend to change much, but just about no-one uses those any more. If you obtain your address (v4 or v6) via DHCP, then when your host goes to renew the lease, the server can decline, and instruct you (your DHCP client) to request a new address, at which point it can give out whatever is appropriate, not necessarily even slightly related to what was there before. For v6 without DHCP, using stateless autoconfiguration, the router advertises a (or more than one) local network prefix, with a lifetime, and can alter that prefix whenever it is required. One of the real problems with networking in the 80's was dealing with client networks that needed to be renumbered - the workload for any reasonable sized network was prohibitive. One of v6's goals was to defeat that problem (it wasn't only about more addresses). In the meantime v4 has switched away from static configs (/etc/hosts or the equivalent) or from BOOTP for hosts without static storage, and to DHCP (where the 'D' really does mean dynamic) which some v6 sites also use (some odd notion of the network managers actually being able to control things that way, which is incorrect, but gives the net admins a warm fuzzy feeling, and it is what they have become used to with v4). All that said, I agree that anything related to this issue would be out of scope for POSIX, but the more general problem of threaded applications (which it must be, that's the only way that the process can be simultaneously closing & opening sockets, while also, unknown to itself, also forking) and the interactions wrt fork & threads, is a POSIX issue. That the actual problem is networking related is just a side issue, I believe. kre (IAB member during the period all this network transition started).