Commit Graph

1226 Commits

Author SHA1 Message Date
Lorenzo Colitti
ea1984fd3b Call a network restricted only if all capabilities are restricted
When guessing whether a network is restricted or not (e.g., when
constructing a NetworkCapabilities object from an APN type, or
when constructing a request using startUsingNetworkFeature),
only assume the network is restricted if all the capabilities it
provides are typically provided by restricted networks (e.g.,
IMS, FOTA, etc.).

Previous code would conclude a network was restricted even if it
supported one "restricted" capability, so for example an APN
that provides both Internet connectivity and FOTA was marked as
restricted. This caused it to become ineligible to provide the
default Internet connection, because that must be unrestricted.

Also expand the list of restricted APN types a bit.

Bug: 15417453
Change-Id: I8c385f2cc83c695449dc8cf943d918321716fe58
2014-06-04 20:04:38 +09:00
Lorenzo Colitti
4077acbecc Make requests for restricted networks not require unrestricted access.
Currently, calling startUsingNetworkFeature for a restricted APN
type (e.g., IMS or FOTA) will create a request that requires
NET_CAPABILITY_NOT_RESTRICTED. Because these APNs are restricted,
when we bring them up we conclude that it does not match the
unrestricted requirement, and we tear them down.

1. Clear the NET_CAPABILITY_NOT_RESTRICTED capability when
   creating requests in startUsingNetworkFeature.
2. Refactor the code to a common function so this cannot happen
   again.

Bug: 15191336
Change-Id: Id1ec79c58ff79b1a83457ffaecc57d50b61ed4e4
2014-06-04 12:20:06 +09:00
Robert Greenwalt
32aa65a112 Fix Legacy NetworkInfo API
Make the connectivity changed broadcasts send correct NetworkInfos.
Also update the results of getNetwork.

bug:15290306
bug:15191336
bug:14993207
Change-Id: Ie99ad25f3ebb90d18348e7013761b139e7481866
(cherry picked from commit 16fe1c18289de200d2249e51db8c0986619f487b)
2014-06-03 14:00:56 +00:00
Robert Greenwalt
55691b8cc7 Refactor NetworkFactory.
Make NetworkFactory a concrete class and divide responsibilites between it and NetworkAgent.
Factory will track requests and by default give a single connect/disconnect api for ease
of use.  Then NetworkAgent is created and destroyed as needed with very simple logic.

Change-Id: I401c14a6e5466f2fc63b04219b97ff85bb9af291
(cherry picked from commit 9a17b9c5a256cb4bb14821c5ee89b03b99c045e8)
2014-06-03 01:26:48 +00:00
Robert Greenwalt
562cc54536 Rewrite startUsingNetworkFeature for new API
bug:14993207
Change-Id: I041a80faa07bf3094af13a6c606f3b15aa03f789
(cherry picked from commit 09fe5e618b09965183cf53fba87c39025a19e8d1)
2014-06-02 23:29:20 +00:00
Paul Jensen
8ef3401d2a Adjust Network's SocketFactory to restrict host name resolution to that Network
bug: 13885501

Change-Id: Iab9a5a2e060fe261f4be9ba974c1a55fb6b9c98b
(cherry picked from commit 92064edf55ee11967d9cc7529125236ee8e469b2)
2014-05-29 19:17:06 +00:00
Paul Jensen
2d6f265d00 Implement bind-to-network functionality of android.net.Network.
This is implemented by calling through to netd_client.
Included are functions to bind-to-network-for-process strictly for DNS to
facilitate startUsingNetworkFeature() reimplementation.

bug: 13885501

Change-Id: Ib22c7d02ea81d251bdfeeb0f64a47ce32eefcb1b
(cherry picked from commit dbf76f898f1f57eb74722358087c926d2f529bda)
2014-05-29 18:53:57 +00:00
Lorenzo Colitti
38fe398453 DO NOT MERGE - Support disconnecting while trying to connect.
Currently, once a NetworkAgent has decided to connect, there's
no way to disconnect without first connecting and having
ConnectivityService tear down the connection. This is suboptimal
because it causes the transport to keep retrying even if it knows
that it will not be able to connect.

Instead, allow the transport to abort a connection request that's
in progress, as long as the agent is not yet registered with
ConnectivityService.

Also add locking to evalScores. evalScores should already have
been taking a lock, because it accesses member variables that are
also accessed by the send*methods.

Bug: 15295359
Change-Id: I913c341bdfc50be9c23b632399f53168e754c1c0
(cherry picked from commit 081e99c3ac341734467b65458f94adc160f50d6c)
2014-05-28 09:29:07 +00:00
Robert Greenwalt
afa05c0b43 Move dis/enable of mobile data to Telephony
ConnectivityService doesn't do this anymore.

bug:15077247
Change-Id: I3208c91b2c0369b594987f39ca29da7478435513
(cherry picked from commit 53013c87496980b534e447e717a32698fbd4bca0)
2014-05-27 20:28:50 +00:00
Lorenzo Colitti
bd8a374016 Fix Ethernet documentation.
1. Remove incorrect @return tag for void function.
2. Fix build breakage by removing the reference to
   #ETHERNET_SERVICE, which is hidden.

Change-Id: Ia893464bafc8257e48e0bd710d27954b535fcece
(cherry picked from commit ff7e406df8a46256e47fff70abc9116ad3f94c23)
2014-05-23 06:30:24 +00:00
Lorenzo Colitti
e2c7a76464 Merge "Add an EthernetManager." 2014-05-22 05:54:57 +00:00
Lorenzo Colitti
f1cc12950c Merge "Delete the EthernetDataTracker." 2014-05-22 01:01:50 +00:00
Lorenzo Colitti
4440705d57 Merge "Add an AIDL file for IpConfiguration." 2014-05-22 01:01:47 +00:00
Lorenzo Colitti
4e5aa2cee6 Add an EthernetManager.
The implementation will live in frameworks/opt/net/ethernet.

Bug: 7606609
Bug: 8687763
Bug: 14993642
Bug: 14981801
Change-Id: Ic771e268b0c78f0fc32f46af6fe0dd7c634a426e
2014-05-21 16:41:24 -07:00
Lorenzo Colitti
3c44c99af5 Delete the EthernetDataTracker.
Code search says these are the only two files that use it. The
tracker will be resurrected in a slightly different form in
frameworks/opt/net/ethernet.

Bug: 14993642
Bug: 14981801
Change-Id: I2477668ca78dfe46661dda1d97c7f786fd7eba35
2014-05-21 16:40:46 -07:00
Lorenzo Colitti
94595fde94 Add an AIDL file for IpConfiguration.
Change-Id: I7eb5568185b3facf00627f7d2385c42f247d0acd
2014-05-21 16:38:12 -07:00
Jeff Sharkey
b01cb2c0c2 am fce708d2: am 9ef2117f: am bc06158a: Merge "Check for null in LocalSocketImpl.SocketInputStream.available()"
* commit 'fce708d285506f65eb51a3256b2a04111e4054cc':
  Check for null in LocalSocketImpl.SocketInputStream.available()
2014-05-21 17:15:19 +00:00
Jeff Sharkey
fce708d285 am 9ef2117f: am bc06158a: Merge "Check for null in LocalSocketImpl.SocketInputStream.available()"
* commit '9ef2117f0e65db60cb3f9708174bcaca4db813b2':
  Check for null in LocalSocketImpl.SocketInputStream.available()
2014-05-21 16:13:18 +00:00
Jeff Sharkey
9ef2117f0e am bc06158a: Merge "Check for null in LocalSocketImpl.SocketInputStream.available()"
* commit 'bc06158a78297747605981702c8e41956ea1aa2d':
  Check for null in LocalSocketImpl.SocketInputStream.available()
2014-05-21 16:05:34 +00:00
Jeff Sharkey
bc06158a78 Merge "Check for null in LocalSocketImpl.SocketInputStream.available()" 2014-05-21 16:03:08 +00:00
Jaewan Kim
6346155c5a Move IP config from WifiConfiguration to IpConfiguration.
This is so that Ethernet can use it in the future.

Bug: 7606609
Bug: 8687763

Change-Id: I5d1189682b13f1088848809604690648d8d9ecca
2014-05-20 15:24:10 -07:00
Robert Greenwalt
a67be03f9e Add NetworkFactory names and unregistration.
Some Factories come and go (Telephony) and so they need to be able to unregister.
Also, debugging is tough when the factories are anonymous, so add names for logging.

Lastly, only send single set of NetworkRequests to a newly registered NetworkFactory
and only send the requests.

Change-Id: I717d63363f25c446f8ecf38d933b1a35d744af6e
2014-05-20 09:03:57 -07:00
Jason Monk
87be9ba1ea Merge "Fix reference to ProxyInfo extra" 2014-05-20 12:59:52 +00:00
Robert Greenwalt
d19c41c0bb Add javadoc and unhide new API
Change-Id: I12e475bbf4000c7acec4ca27b1d3bf8f870cc2cf
2014-05-19 10:34:36 -07:00
Robert Greenwalt
4f05d55296 Add docs for Linkproperties and unhide it.
Preperation for ConnectivityManager API reveal.

Change-Id: Id2addf424213e796c6077def0b7f30cac9a0f75f
2014-05-19 09:43:36 -07:00
Robert Greenwalt
f16f5788fa Merge "Apply Doc fixes to RouteInfo" 2014-05-19 15:53:15 +00:00
Robert Greenwalt
b26e44416a Merge "Add docs to Network" 2014-05-19 15:52:05 +00:00
Robert Greenwalt
34524f06fb Add javadoc for NetworkRequest.
Also moved the requestId serial number out of this public class into CS.

Had to leave NetworkRequest hidden for now because the docs refer to things still hidden
in ConnectivityManager.

Change-Id: I14d1fe52d992adf5e4dc197b8f5433e40b0adfe6
2014-05-19 08:17:05 -07:00
Robert Greenwalt
85956263c1 Add docs to Network
Still must be hidden until we unhide the new API in ConnectivityManager.

Change-Id: I4749e56777199093cdba9223eb3d721c3174047d
2014-05-19 07:59:16 -07:00
Robert Greenwalt
386aba8bd1 Apply Doc fixes to RouteInfo
Change-Id: Ib76df135d5514f7b8baafbbe91fa3d1cdd632f00
2014-05-19 07:27:46 -07:00
Robert Greenwalt
01d004ef42 Update the docs for NetworkCapabilities
Preparing for ConnectivityService API update

Change-Id: I397e375b9254d4271183cf34c4a689deea1e198e
2014-05-18 16:40:16 -07:00
Robert Greenwalt
4095bd5a88 Update RouteInfo docs and make public.
Change-Id: I1a8fe04022ea8291076af166f09112d19114ee16
2014-05-18 12:43:14 -07:00
Robert Greenwalt
fd202e6f84 Update comments for LinkAddress
In preparation for CS api review.

Change-Id: Ib933e905846ebd039d96a523946dd8fdb10f3ff1
2014-05-18 09:39:18 -07:00
Robert Greenwalt
fcfef283d8 Merge "Clean up when we switch networks." 2014-05-16 17:16:19 +00:00
Robert Greenwalt
4064af844c Clean up when we switch networks.
Need to unhitch mNetworkForRequestId when a network is no longer
satisfying a request.

Change-Id: I3b3cde7dd92ec87a76ae7a0825ad22e892fa8fd5
2014-05-16 08:54:07 -07:00
Jason Monk
7dab61455c Fix reference to ProxyInfo extra
Also remove unneeded null check.

Change-Id: Ic25d1087f93632a24755b284ede41d870492e25d
2014-05-15 12:07:29 -04:00
Robert Greenwalt
b07d81ac5f Remove unneed clear in constructor.
Keeps all constructors on equal footing.

Change-Id: I316d2b058cc2230ff6aa25a6c8785b42b460438d
2014-05-15 08:53:37 -07:00
Sreeram Ramachandran
4696ee488b Fix reboot loop due to NPE.
All that's old is new again: http://ag/63748.

Change-Id: I83df48447dbcb7f6edf02bd07abf721b009afa49
2014-05-14 14:45:00 -07:00
Robert Greenwalt
7a91a7434a Undeprecate funcs until we're ready for api-review
Fixing javadoc deprecated tags to fix a checkbuild error breaks the current/api.txt.
We're not ready for the api change yet, so back out the comments.

Change-Id: Ia95e394da7329c1b9e3876e589c3c2137ba18048
2014-05-14 08:55:13 -07:00
Robert Greenwalt
8ac546eaa3 Fix Javadoc
It's Deprecated for an annotation, but deprecated for
a javadoc and case is important.

Fix build

Change-Id: I355dc1660196c09530b58386f401a85a74d16476
2014-05-14 07:50:11 -07:00
Robert Greenwalt
54b6fd0cbe Merge "Add networks and requests to CS.dump" 2014-05-14 13:44:26 +00:00
Robert Greenwalt
c9c90c771c Add networks and requests to CS.dump
Adds debugging.

Change-Id: I352dfe970c990fd210f3d1598519e321bbdd6ed5
(cherry picked from commit 9bdf6bd99db56c652ba9a62d91f258d11d19ca9f)
2014-05-14 13:12:23 +00:00
Robert Greenwalt
9258c64bef Add Multinetwork API
Change-Id: I3a9cef0d416db96d05098dd989ee3fef3b1e9274
(cherry picked from commit cc5e6afa1ba0bef099bcb21a64a36bc2bf7951db)
2014-05-14 13:06:56 +00:00
Paul Jensen
ca8f16ad14 Add NetworkMonitor.
At present the network evaluation / captive portal detection
is disabled pending addition of API to bind socket to network.

Change-Id: I5d1f5dc86d4dd9481d52dd45d6da0732054c8315
2014-05-14 03:56:34 -07:00
Paul Jensen
992f252579 Separate network and interface addition/removal netd APIs.
This should facilitate stacked interfaces (i.e. clatd).

Change-Id: Ib3e7a4d3847ef6ec4449451f6da42e75959baa4f
2014-05-14 03:56:34 -07:00
Robert Greenwalt
7b81602f3c Enabling internal msg apis
NetworkFactory and NetworkAgent.  First trying with wifi and
getting rid of WifiStateTracker.

Conflicts:
	api/current.txt
	services/core/java/com/android/server/ConnectivityService.java

Change-Id: I7f0ec13d7d8988b32f3c6dc71f72012f3349fe02
2014-05-14 03:56:34 -07:00
Robert Greenwalt
2491c3a0e8 Merge "Add Network-specific host name resolution API." 2014-05-14 05:39:10 +00:00
Robert Greenwalt
e049c23980 Add NetworkFactory support.
This is a protocol allowing transports to dynamically register with CS for
Handler to Handler communications.

bug:13885501
Change-Id: Ic7275e3724a15efc7e5f80981560c4cb3106007b
2014-05-13 21:21:49 -07:00
Paul Jensen
3e32a4b667 Add Network-specific host name resolution API.
Change-Id: I932f73158a8f6e3ccc36c319d138180dff2aa070
2014-05-13 19:05:13 -04:00
Jason Monk
b01c6855c0 Merge "Switch PacUrl storage from String to Uri" 2014-05-13 15:14:50 +00:00