Split network agent created state from connected state
Network creation setup sometimes involves extra steps after actually calling into netd to create the underlying network, rules & routes & to begin allowing sockets bound to it. For example, VPN networks can set a UID whitelist or blacklist. This should happen: - AFTER there is a netID & network created in netd as network-specific rules will need to be tied to / point at it. Those rules are tied to the lifecycle of netd's network which is tracked by `NetworkAgentInfo.created` on the frameworks side. - BEFORE the CONNECTED broadcast and network callbacks have been sent out so that we don't create a race condition between clients that want to use the network and the server actually having the network ready The race condition existed prior to this change and required any client making use of network callbacks to sleep for a short amount of time after receiving to actually be able to use the network. Among other things, that race condition is now fixed. Bug: 26694104 Change-Id: Ied92f5588a98c3e97f456bc98b676bf201ab5472
Loading
Please register or sign in to comment