Commit Graph

1347 Commits

Author SHA1 Message Date
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
Jeff Davidson
328e679b21 Merge "Security-related cleanup for network scoring." into lmp-dev 2014-08-12 00:32:51 +00:00
Jeff Davidson
ac7285dc1e Security-related cleanup for network scoring.
-Perform additional checks for the SCORE_NETWORKS permission when
broadcasting scoring requests to the active scorer and when accepting
score updates. In theory, these checks are unnecessary as we manually
check package manager when obtaining the list of valid scorers, but
they cannot hurt to add.

-Fix multi-user. Since the active scorer is a global setting, we
ensure that scoring can only be done by apps available to the primary
user / owner of the phone, and that the request scores broadcast is
sent to that user's profile. When the scorer is changed, we send that
to all user profiles as it's just informational, although it's
unlikely that apps outside the primary user's profile would need to
respond.

Bug: 14117916
Bug: 16399238
Change-Id: Iaf06bda244eec730b590a30a3f4ffab4965bde96
2014-08-11 15:46:20 -07:00
Jeff Sharkey
eb2c2c790c Hack and ship: NetworkStats edition.
Some devices use clatd for catching raw IPv4 traffic when running on
a pure-IPv6 carrier network.  In those situations, the per-UID
stats are accounted against the clat iface, so framework users need
to combine both the "base" and "stacked" iface usage together.

This also means that policy rules (like restricting background data
or battery saver) need to apply to the stacked ifaces.

Finally, we need to massage stats data slightly:

-- Currently xt_qtaguid double-counts the clatd traffic *leaving*
the device; both against the original UID on the clat iface, and
against UID 0 on the final egress interface.

-- All clatd traffic *arriving* at the device is missing the extra
IPv6 packet header overhead when accounted against the final UID.

Bug: 12249687, 15459248, 16296564
Change-Id: I0ee59d96831f52782de7a980e4cce9b061902fff
2014-08-11 18:40:23 -07:00
Christopher Tate
a2496de37a Make TrafficStats uid attribution @SystemApi
Anything that runs as a singleton may need to attribute traffic to
various client apps; in particular, backup transports need to do this.
Apropos of which, introduce a @SystemApi method specifically for that
purpose, setThreadStatsTagBackup().

Bug 16661321

Change-Id: Id5d22e28bdc68edb53f2a1fdba80b144fcbc61d2
2014-08-07 19:43:20 +00:00
Paul Jensen
ab14df37ab Remove dead CaptivePortalTracker.
Captive portals are now detected by the NetworkMonitor.

Change-Id: Ibfb04bf83b1028231397a577468f110d7ab1dc06
2014-08-07 02:32:54 +00:00
Dan Sandler
dc418e3365 Fix docs build.
Change-Id: I3be4c5b74e85d2491316986d8c3c0575cd01a8fc
2014-07-31 02:27:52 -04:00
Lorenzo Colitti
5b37fa2ed5 Allow using third-party HTTP/... stacks for per-network URLs.
Also switch to double-checked locking for
mNetworkBoundSocketFactory and OkHttpClient.

Change-Id: Ic52776ee760036ad5623b7496156b8909dc282fa
2014-07-31 02:17:28 +00:00
Lorenzo Colitti
f0382899c7 Use a new socket for each of the host's IP addresses.
If Socket.connect() times out, the socket cannot be used any
more - any attempt to do so fails with EBADF. Use a new
socket for each IP address.

Bug: 16664129
Change-Id: If3616df86f7c2da0eabd30dca5db65d0da85cb17
2014-07-30 17:31:04 +00:00
Jeff Davidson
acb5b7f084 Merge "Don't request network scores before boot completes." into lmp-dev 2014-07-25 21:16:23 +00:00
Jeff Davidson
505c4a3093 Don't request network scores before boot completes.
Bug: 16655123
Change-Id: If6696635c59f6494e6232c3a75d283a2cbce2798
2014-07-29 16:18:04 -07:00
Jeff Davidson
26fd143326 Add NetworkScoreManager.disableScoring().
Allows the active scorer app to disable itself.

Change-Id: I7bcdc3aafb95af4ea0b110b01b08ab4daf7a137f
2014-07-29 16:03:19 -07:00
Sreeram Ramachandran
f4e0c0cb8e Allow VPNs to add/remove link addresses dynamically.
Bug: 15409819
Change-Id: If91fc6891d7ce04060362c6cde8c57462394c4e8
2014-07-29 00:32:59 +00:00
Robert Greenwalt
39ca3f5f69 Merge "Remove dead code 1." into lmp-dev 2014-07-24 20:48:02 +00:00
Sreeram Ramachandran
42065ac64c Prohibit address families by default unless a VPN explicitly allows them.
Bug: 15972465
Change-Id: I3278d94536fefacc86390c1ba4231680f7be8589
2014-07-28 18:52:41 +00:00
Robert Greenwalt
39fa65a3be Remove dead code 1.
Starting with startUsingNetworkFeature and stop.
Figure it's easier to code review incremental changes.

Change-Id: I19aee65e740858c3a9a2a1a785663f6fee094334
2014-07-28 11:34:36 -07:00
Lorenzo Colitti
c473dc4e4f Add a getBoundURL method that returns a network-specific URL.
Change-Id: I4b57e675bb87064ab75dcc36b00fdc7a2987b86e
2014-07-28 16:16:58 +00:00
Sreeram Ramachandran
8cd33ed84e Implement support for bypassable VPNs.
Bypassable VPNs grab all traffic by default (just like secure VPNs), but:
+ They allow all apps to choose other networks using the multinetwork APIs.
  If these other networks are insecure ("untrusted"), they will enforce that the
  app holds the necessary permissions, such as CHANGE_NETWORK_STATE.
+ They support consistent routing. If an app has an existing connection over
  some other network when the bypassable VPN comes up, it's not interrupted.

Bug: 15347374
Change-Id: Iaee9c6f6fa8103215738570d2b65d3fcf10343f3
2014-07-25 15:17:23 -07:00
Robert Greenwalt
fab50167a8 Fix DUN-based tethering.
It was calling into dead ConnectivityService code rather than using
the new ConnectivityManager shim code.

bug:15221541
Change-Id: I1e3eea8a658a162ce36673ed1cf7b1e7e4372c42
2014-07-24 14:39:51 -07:00
Ye Wen
e5ebd4bc76 Merge "Infer legacy network type for ConnectivityManager.requestNetwork" into lmp-dev 2014-07-23 17:52:05 +00:00
Ye Wen
b87875eb88 Infer legacy network type for ConnectivityManager.requestNetwork
ConnectivityManager.requestNetwork pass TYPE_NONE to
sendRequestForNetwork which prevents it from being used with legacy API
requestRouteToHostAddress. This CL infers the legacy network type
automatically from the network capabilities.

b/16324360

Change-Id: I591d38f875f42f56e8cfc157db2069c9eee0ee26
2014-07-23 11:41:17 -07:00
Jeff Davidson
6bbf39cf6b Implement VpnService.setBlocking().
Bug: 12879610
Change-Id: I3a0ad9eae5f7dd9c01f75b9da71810bad38f9fec
2014-07-23 11:18:57 -07:00
Sreeram Ramachandran
03666c705d Cleanup: Delete dead code.
Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
2014-07-22 15:46:34 -07:00
Alex Klyubin
fcd8b20e09 Align PSKKeyManager with framework API style.
This CL adjusts android.net.PSKKeyManager as follows:
* Renamed to PskKeyManager to follow naming conventions.
* Changed from interface to abstract class with default
  implementations for all methods.

Bug: 16403305
Bug: 15073623
Change-Id: Iefce26b394d4a753412315dad554b5342f3f0b44
2014-07-22 19:51:34 +00:00
Sreeram Ramachandran
cc26b4cc09 Allow VPN interfaces to be put into blocking mode.
New API with stub implementation to be filled out later.

Bug: 12879610
Change-Id: Iff711994dec4598c74fe11447c8c670004c1188c
2014-07-18 16:46:13 -07:00
Jeff Davidson
7be8e9725f Expose network scoring APIs to /system apps.
Ideally, we'd only expose the methods that we intend unbundled apps to
call (e.g. not NetworkScoreManager#setActiveScorer, which should only
be called by Settings), but this isn't harmful in terms of permissions
as the APIs still check security appropriately.

Bug: 15833200
Change-Id: I2047515b41c8be0cf7cb51dd495fe72309c05f68
2014-07-16 17:24:46 -07:00
Alex Klyubin
b56f21270a No need to explicitly enable TLS-PSK cipher suites.
This CL adjusts the example code in android.net.PSKKeyManager Javadoc
to no longer explicitly enable TLS-PSK cipher suites. These are now
enabled automatically if SSLContext is initialized with a
PSKKeyManager.

Bug: 15073623
Change-Id: I7f7f713478171491347cdfb9651fd9a095dc60ee
2014-07-15 10:38:21 -07:00
Sreeram Ramachandran
06b6cdaed5 Remove unnecessary code and APIs.
This stuff has been replaced by setNetworkForUser() in NetdClient.

Change-Id: If525ee259b74314191d1913f7c2a3e828e05c38f
2014-07-11 18:16:04 -07:00
Paul Jensen
5d59e785e1 Readjust location of NETID_UNSET definition.
This is a tweak to my 8ec11bb change I a-little-too-hastily committed.

Change-Id: Ibeee9382109994c66227d1c42aac749e2a274ed7
2014-07-11 16:53:39 +00:00
Paul Jensen
bcc76d345c Define NETID_UNSET in ConnectivityManager.
This allows some cleanup and removal of dead code.

bug:15489928
Change-Id: Iaf0507bc2e8ec6dcc253f01f61c5b221d46581f9
2014-07-11 12:00:10 -04:00
Robert Greenwalt
94badcc8ce Missed an entry in the copy constructor.
bug:15755597
Change-Id: Iee17ca88404a6a50258d204a12cd0c04cd15e34e
2014-07-10 14:55:14 -07:00