Commit Graph

1377 Commits

Author SHA1 Message Date
Elliott Hughes
547b0acae1 Fix typo.
Bug: https://code.google.com/p/android/issues/detail?id=78422

(cherry picked from commit 0adcf15ad8)

Change-Id: I62746a0690e9845b20b23b91f2a50d85214e8aa1
2014-12-09 10:31:37 -08:00
Alex Klyubin
8e93f0c3bc Mention ECDHE_PSK bug in Javadoc of PskKeyManager.
Bug: 18144779
Change-Id: I50e1bb18456295170ef288ad089a0edad7f00ecf
2014-10-30 21:39:03 +00:00
Robert Greenwalt
24861eabe6 Merge "Send callbacks for Net property changes" into lmp-dev 2014-10-03 15:36:39 +00:00
Robert Greenwalt
a848c1cc0a Send callbacks for Net property changes
LinkProperties and NetworkCapabilities changes were not calling app callbacks.

bug:17681483
Change-Id: I67dac3c4dc1284f5c4bfb24de239da4ec776336f
2014-10-02 21:05:44 -07:00
Newton Allen
8f8a11b7fa Fix some documentation typos.
Change-Id: I747a0ade5c7b9c45d4465bf327952338bbc1cfaa
(cherry picked from commit 4465d1a03e)
2014-09-30 02:52:26 +00:00
Paul Jensen
89e0f0937a Move mobile provisioning APN support into telephony.
Most of this logic is simply removed from ConnectivityService.
The captive portal detection is now done by the NetworkMonitor.
The notification logic is still left in ConnectivityService as
it's used by both the NetworkMonitor and telephony's mobile
provisioning logic.

bug:17324098

Change-Id: Ibd1c42b1a75795f90a6483d3d0a5a14f88b193d8
2014-09-29 11:37:43 +00:00
Lorenzo Colitti
60446165d8 Block address families with routes, not NetworkAgent side channel
Now that we support unreachable routes, use those to block
address families on VPNs. This is a much more elegant solution.
Also update LinkProperties when IP addresses are added and
removed, fixing a TODO.

Bug: 17462989
Change-Id: Ib749d84710dca70d672350b9f129bb91419ec77e
2014-09-23 10:48:28 +09:00
Lorenzo Colitti
4b0f8e6fb7 Support non-unicast route types: unreachable and throw.
Bug: 17462989
Change-Id: I8635472ca3e96ec2866af2de48e6260ab2da13fb
2014-09-22 13:10:15 +09:00
Robert Greenwalt
f3b47e95b1 Merge "Use unified Tethering Permission Check" into lmp-dev 2014-09-18 00:02:16 +00:00
Robert Greenwalt
edb47668f0 Use unified Tethering Permission Check
The BT and Wifi mechanisms for enabling Tethering did their own
permission checks.  This set of changes unifies the check into
a ConnectivityManager function so they can be kept in sync.

bug:17435527
Change-Id: I8c157a5acf56ffbddd349cb6a45160ae7be8541b
2014-09-17 16:18:12 -07:00
Jeff Sharkey
9d375ecbe6 Merge "NetworkStats always needs arrays." into lmp-dev 2014-09-17 19:01:13 +00:00
Jeff Sharkey
7a8f1a32dc NetworkStats always needs arrays.
Internal logic relies on Arrays.copyOf(), so always give ourselves
valid arrays, using shared empty objects to save overhead.

Bug: 17502649
Change-Id: I5dbb00545bdfe45bbd48144ab505ea08cc92cbcd
2014-09-17 09:26:31 -07:00
Robert Greenwalt
e73cc4646b Add NetworkAgent event for ExplicitlySelected
Lets Wifi tell us when the user selected this AP vs auto-connected.

bug:17396168
Change-Id: I6e067ab62ed49040629aa31fe07ff880d3d542f0
2014-09-16 17:03:59 -07:00
Robert Greenwalt
b4f601cb84 Merge "Report Network status to NetworkAgent." into lmp-dev 2014-09-16 22:59:33 +00:00
Ang Li
953b5625d5 Fix a typo in comment.
Change-Id: I23224b1adf946ebec0ec7a39686913189c9b8287
2014-09-15 15:09:16 -07:00
Robert Greenwalt
49f63fbed4 Report Network status to NetworkAgent.
Currently just valid/invalid based on NetworkMonitor findings.

Changed NetworkMonitor to start out in default state since starting in Offline causes
a spurious invalid report at creation time.

Added some logging.

bug:17395269
Change-Id: I9ae650b561834d8f8979033744d97df852e76df9
2014-09-14 07:43:10 -07:00
Jeff Davidson
8afddbe7e9 Merge "Update VpnService Javadoc to reflect new UX." into lmp-dev 2014-09-11 22:41:24 +00:00
Jeff Davidson
6d6ea3b6be Update VpnService Javadoc to reflect new UX.
The major change is that consent is now "sticky" and lasts until the
user explicitly disables the VPN connection.

Bug: 17474362
Change-Id: Id4e7807e635bbfc7645741135209d46763e280f9
2014-09-11 14:44:31 -07:00
Sreeram Ramachandran
a1e06807ee Hide mutable VpnService APIs to add/remove IP addresses dynamically.
These APIs were added because we thought we needed them to provide
seamless transition from one server backend to another using local IP
addresses to distinguish between the backends. I.e., connections whose
local IP address was old would be routed to the old backend; connections
whose local IP address was new would be routed to the new backend.

It turns out that's not needed. VpnService already supports seamless
re-establishment, so VPNs just need to call establish() again with a
different IP address. I've verified with a custom VPN app that this
works, and can distinguish traffic based on the old and new addresses.

Nobody is using these APIs at the moment, so we could even consider
removing them altogether, but I prefer just hiding them, just in case.

Bug: 15409819
Change-Id: I30949926a0f859c9d839981ccbc5d8e1e535a3a5
2014-09-11 14:17:10 -07:00
Paul Jensen
204dc65f37 Merge "Flush HTTP socket pools and DNS cache when binding process to a Network." into lmp-dev 2014-09-11 13:15:22 +00:00
Paul Jensen
07ed07459a Make Network.openConnection() share HttpHandlers not OkHttpClients.
HttpHandler and HttpsHandler classes have a lot of bug fixes baked into
them that the Network.openConnection() API should be using, for example
disabling SPDY support.

bug:17420465
Change-Id: I9f1472753a542d1dd6bffde3a60c37a9145098aa
2014-09-11 00:25:50 +00:00
Paul Jensen
c91b5348a5 Flush HTTP socket pools and DNS cache when binding process to a Network.
Future HTTP requests could use an old socket that's bound to a different Network
causing unexpected results.  DNS results could also not be appropriate.

bug:17283566
bug:17432215
Change-Id: I88b40b723c7b442000cafe8ce8b9d989d8995991
2014-09-10 18:26:25 +00:00
Robert Greenwalt
35f7a94c84 Don't accept score below 0.
Network Factories are allowed to go below, but networks need to be
constrained.  Allowing the network to go below 0 meant that -1 could
sometimes leak through and foul the logic.

The core of 17361330 will be fixed when we stop sending scores for
listens to NetworkFactories, but it exposed this issue too.  Summary:

1 - add a network listener.  This isn't  a request so it's not sent
to networks.
2 - alter your score (ethernet sets score to -1 when the link goes
down) (16:07:39.782)
3 - a bug in ConnectivityService causes score changes to get sent for
all network requests and network listeners causing NetworkFactories
to no see 2 entities.  This bug will be fixed by a pending change
(https://googleplex-android-review.googlesource.com/#/c/540840/).
This causes the ethernet NetworkFactory to see two entities, both
served by networks of score -1.  (16:07:39.989)
4 - disconnect Ethernet - this only sends 0 scores for known
requests, not network listeners.  Had it been sent for both entities
they both would have evaluated that the networkfactory score (-1)
was lower than the request score (0) and both released their
refcount. (16:08:03.147)
5 - this means the listener is tracked by the EthernetNetworkFactory
with a score of -1 while the factory itself has a score of -1 so the
network release isn't called.

bug:17361330
Change-Id: Ife34ca0f9c233dd3c3df80f6fea580af43afcdeb
2014-09-10 10:39:37 -07:00
Robert Greenwalt
b2489879ee Fix networking API per scripting checks.
bug:17389242
Change-Id: I6017f559788ee16a1721b387796e5bda5e07280d
2014-09-04 16:50:29 -07:00
Robert Greenwalt
d35d826fb5 Merge "Catch creation of NetworkRequest without NetCap" into lmp-dev 2014-09-04 21:08:11 +00:00
Jason Monk
8236413ce0 Proxy fixes from API review feedback
Bug: 17389383
Change-Id: Ib5e40f55d02687ee917ba30773123cf3e4c2a97d
2014-09-04 15:39:56 -04:00
Robert Greenwalt
f5b74f981f Catch creation of NetworkRequest without NetCap
Using reflection you could do this and it would crash the system.
Thanks, ServiceFuzzer!

bug:17379629
Change-Id: I8b470bda78a69761ccd92496746f5d295b5d07f2
2014-09-03 20:57:41 -07:00
Lorenzo Colitti
17e7e9757d Kill the NetworkInfo(int type) constructor. IT'S A TRAP!
This constructor does nothing, including doing nothing with its
only argument. This causes it to return a NetworkInfo for
TYPE_MOBILE no matter what was passed in.

Bug: 16610051
Change-Id: I4ccd5ec050f7824fb06496c00fcd7901defeb7bd
2014-08-29 18:34:49 -07:00
Lorenzo Colitti
0ed0a28ad8 Use per-Network connection pools for openConnection.
If we don't do this, per-network HTTP requests will go over the
wrong network if any previous HTTP request was made by the same
app on another network.

Bug: 17300006
Change-Id: I1854c16dee6adb9e81fb12b097577439d69a644e
2014-08-29 18:13:19 -07:00
Lorenzo Colitti
b57edc5ae9 Pass the socket mark for DNS queries to dnsmasq.
This makes tethered clients use the correct DNS servers when
tethering to non-default networks like the DUN APN.

Bug: 16357676
Change-Id: I8933b6de198a92c2aaf0291931ace8966ddba275
2014-08-29 10:21:58 -07:00
Lorenzo Colitti
32e520ed61 Really remove NetworkBoundURLFactory.
The code using it was removed, but the file itself was not.

Bug: 17112978
Change-Id: I35bc254fd3a5e7b19297b959c7310e7054ab77e1
2014-08-28 18:31:18 -07:00
Robert Greenwalt
fc0c6890c6 Clean up Connectivity Logging.
bug:17285109
Change-Id: I61b98aa636996f8d4915fd954d49a22c20cfe9ab
2014-08-27 14:49:14 -07:00
Paul Jensen
5b62d263a7 Merge "Implement VpnConfig.addAllowedApplication()." into lmp-dev 2014-08-26 20:09:00 +00:00
Robert Greenwalt
ad3fc40737 Merge "Update VPN whitelist/blacklist api docs." into lmp-dev 2014-08-26 00:58:51 +00:00
Robert Greenwalt
fc4f721a87 Update VPN whitelist/blacklist api docs.
Addressing what happens to unwhitelisted or blacklisted apps.

bug:17206162
Change-Id: I0b863946de277e6528675cc5412267a03f7b6841
2014-08-25 17:55:28 -07:00
Paul Jensen
0784eeab28 Implement VpnConfig.addAllowedApplication().
bug:17109588
bug:13651397
Change-Id: Ibb944794627117728373f0105e24f196f3eeb9e9
2014-08-25 15:09:25 -04:00
Paul Jensen
177cd38b00 Merge "Remove captive portal sign-in actions." into lmp-dev 2014-08-25 18:52:32 +00:00
Paul Jensen
a68d213502 Remove captive portal sign-in actions.
This reverts commit e0101cd and removes the related NetworkMonitor code.
The thinking is the broadcasts are not robust enough as they rely on apps
working together and are not sufficiently tested.

bug:17115050
Change-Id: I433032867cc4fea7191a1b13842b16825dc74df4
2014-08-22 09:42:56 -04:00
Lorenzo Colitti
9f1274b7e4 Rework the per-network URL API.
This addresses API council comments.

Bug: 17112978
Change-Id: I698b243b2b685d1f25414cee72450be3ae0c2bf0
2014-08-21 19:09:27 -07:00
Jason Monk
e1bf163c1e Merge "Fix SOCKS proxies from being dropped from PAC" into lmp-dev 2014-08-20 20:15:45 +00:00
Jason Monk
4385af32ef Fix SOCKS proxies from being dropped from PAC
It seems that SOCKS isn't being handled explicitly by the
PacProxySelector, which results in them just being dropped
from the return list.  This will sometimes end up switching
from SOCKS to DIRECT, which could be bad.

Bug: 17104885
Change-Id: Ic8a28230d3ae18c0abb000811a9100787c10c5e0
2014-08-20 12:21:56 -04:00
Jeff Davidson
05542603dd Less intrusive VPN dialog and other UX tweaks.
-The ability to launch VPNs is now sticky; once approved by the user,
further approvals are not needed UNLESS the connection is revoked in
Quick Settings.

-The old persistent notification has been removed in favor of the new
Quick Settings UI.

-The name of the VPN app is now pulled from the label of the VPN
service rather than the app itself, if one is set.

Bug: 12878887
Bug: 16578022
Change-Id: I102a14c05db26ee3aef030cda971e5165f078a91
2014-08-20 16:55:28 -07:00
Lorenzo Colitti
0a82e80073 Stop using LinkProperties for static configuration.
LinkProperties can represent way more complicated configurations
than what we can actually apply to interfaces. This makes it
error-prone to use it to represent static configuration, both
when trying to apply configuration coming from LinkProperties
and when trying to save configuration from current
LinkProperties.

Instead, move static configuration (IPv4 only, since we don't
support static IPv6 configuration) into a separate
StaticIpConfiguration class.

Bug: 16114392
Bug: 16893413
Change-Id: Ib33f35c004e30b6067bb20235ffa43c247d174df
2014-08-19 11:59:43 -07:00
Kenny Root
f6040e9c11 Merge "Revert "Remove the warning if the caller gets the insecure variant and add hostname verification (SNI)"" into lmp-dev 2014-08-16 03:52:42 +00:00
Robert Greenwalt
3f05bf4d78 Add tcp buffer size conduit to NetworkAgent.
bug: 16549611
Change-Id: I7d97dedea2c7c1aed2eccb185645889424508591
2014-08-17 15:14:29 -07:00
Robert Greenwalt
bd431ee5d3 Merge "Configure MTU based on network MTU parameter" into lmp-dev 2014-08-15 19:10:34 +00:00
w19976
15afd81158 Configure MTU based on network MTU parameter
Add logic to obtain the mtu from the network PCO parameter and set it to kernel
when the mobile data connection is established. When there is no PCO mtu configured
from the network, the mtu size defined in the corresponding APN will be used. In case
no mtu size is defined for an APN used for data connection, the MCC/MNC based MTU
defined  in the framework overaly will be applied.

bug:17046179
Change-Id: I6465d4b8f2076aaa380ae3617fb3f24adbe136d4
2014-08-14 20:34:13 -07:00
Kenny Root
e19ca078bf Revert "Remove the warning if the caller gets the insecure variant and add hostname verification (SNI)"
This reverts commit 007392a8a1.

Bug: 16660566
2014-08-14 15:58:24 -07:00
Jeff Sharkey
9da2f1e007 Some networks may have null ifaces, I guess?
Seems like a bug further upstream, but guard ourselves against it
for now.

Bug: 17033841
Change-Id: Id0e5895c3389b63d4e34b1fb064efef8b72cd609
2014-08-14 22:42:27 +00:00
Lorenzo Colitti
1806b1fc25 Switch RouteInfo to use IpPrefix instead of LinkAddress.
This addresses a TODO and also makes it possible to create
routes to destinations that are not valid LinkAddresses, such as
multicast addresses.

Bug: 16875580
Change-Id: Id4c77b00dc3064bf27d78cdcbbe035e645748cfe
2014-08-13 21:17:20 +09:00