Commit Graph

2998 Commits

Author SHA1 Message Date
Lorenzo Colitti
6dcf2e24c5 Add more test coverage for requests and callbacks.
1. Support multiple callbacks in TestNetworkCallback. This is
   necessary to test situations where multiple callbacks are
   generated by the same event (e.g., CALLBACK_LOSING on cell
   with CALLBACK_AVAILABLE on wifi when wifi connects), which is
   necessary to test callback order. So far this has not been
   covered because all callback testing was using per-network
   callbacks.
2. Add a benchmark test for registering NetworkRequests and for
   sending onAvailable and onLosing callbacks.

Bug: 23113288
Change-Id: Ib69373358ad766ab1bd989e864a5a51ef762c73c
2016-06-30 13:18:12 +09:00
Tobias Thierer
858e39459e Changes for upgrade to OkHttp 2.7.5
- Use com.android.okhttp.Dns in place of com.android.okhttp.internal.Network
 - Specify TimeUnit.MILLISECONDS for timeouts which 2.7.5 allows and
   brings us closer to 3+

Change-Id: I95b5d72a94ebe1389f7c2e8d95903aa1aadd944b
2016-06-29 17:41:32 +01:00
Hugo Benichi
f18b8df691 Adding tests for DnsEventListenerService am: 8fe7f1e666
am: 07fca7f89a

Change-Id: I70ac910d67a1e4a7c4f9f3d24f983dce99957151
2016-06-29 07:23:22 +00:00
Hugo Benichi
e861e56e8c Refactor IP connectivity event logging am: be0c7651f6
am: ca1f22591f

Change-Id: If8775031f2a293e94e564dde502d0775d5808fe6
2016-06-29 07:23:19 +00:00
Hugo Benichi
07fca7f89a Adding tests for DnsEventListenerService
am: 8fe7f1e666

Change-Id: I498ad1303ff3c0fbc4517203ff8e6b931814562b
2016-06-29 07:18:32 +00:00
Hugo Benichi
ca1f22591f Refactor IP connectivity event logging
am: be0c7651f6

Change-Id: I8de880edc4a8c7f12527218788cb44f263acb56f
2016-06-29 07:18:28 +00:00
Hugo Benichi
8fe7f1e666 Adding tests for DnsEventListenerService
Bug: 29035129
Change-Id: Iaf0d9ec781da7a473b6f7d8623060ecde44b9cbd
2016-06-29 14:28:51 +09:00
Hugo Benichi
be0c7651f6 Refactor IP connectivity event logging
This patch removes static methods for logging IP connectivity events
defined in android.net.metrics and replaces them with a single log()
instance method defined on IpConnectivityLog. Event constructors are
now public also. Every classes logging such events now create an
instance of IpConnectivityLog for logging event objects directly
instantiated with new.

Removing static dependencies allow straightforward testing of logging.

This patch also removes the base IpConnectivityEvent class which is not
needed any more.

Bug: 29035129
Change-Id: I3de700f93f46deaa48a759f938f7d00e1d8bff98
2016-06-29 14:28:51 +09:00
Hugo Benichi
cc7b9dfeba Merge \\"Fix unsafe concurrent access in LegacyTypeTracker\\" into nyc-mr1-dev am: 90b2c781ff
am: 196ce982d2

Change-Id: I96d1c6fe08c17cf95056d445f6922b9f489021b9
2016-06-27 08:06:58 +00:00
Hugo Benichi
196ce982d2 Merge \"Fix unsafe concurrent access in LegacyTypeTracker\" into nyc-mr1-dev
am: 90b2c781ff

Change-Id: I6af8e185a165009f2b7b6efef764c883488bd7bf
2016-06-27 08:02:44 +00:00
Hugo Benichi
389633f8d2 Fix unsafe concurrent access in LegacyTypeTracker
This patch adds synchronization inside LegacyTypeTracker so that
getNetworkForType() can safely run concurrently with remove().

Without synchronization if remove() removes the last network for a
given type while getNetworkForType() runs for the same type, it is
possible that getNetworkForType tries to access the head of an empty
list, resulting in a runtime exception.

This issue was found by zoran.jovanovic@sonymobile.com who proposed a
fix in AOSP (Change-Id: Ia963662edb9d643790e8d9439e4dbdcac4c2187b).

This patch differs from the fix proposed by the bug reporter and tries
instead to do the minimum amount of locking to make getNetworkForType
safe.

Bug: 29030387
Change-Id: I915aac527fc8828b32bf35fee870add2dfb11d8d
2016-06-27 15:04:27 +09:00
Felipe Leme
5dd6a3f3d0 Merge \"Merge \\"resolve merge conflicts of fa2715e to nyc-mr1-dev\\" into nyc-mr1-dev am: 10973455bc\" into nyc-mr1-dev-plus-aosp
am: 2ee4519a26

Change-Id: I8f54f9f8d3faee5a1ee3c77f04486869d5936610
2016-06-22 00:55:00 +00:00
Felipe Leme
afbeac90aa Merge \"resolve merge conflicts of fa2715e to nyc-mr1-dev\" into nyc-mr1-dev
am: 10973455bc

Change-Id: I45cac1ca8a06196b61379cd86d6ac248bfa5d6b4
2016-06-21 23:49:22 +00:00
Felipe Leme
a7141ef9be resolve merge conflicts of fb043bd to nyc-mr1-dev-plus-aosp
am: 9bec9a4c97

Change-Id: Ic5a8d119a95930feaf406bca83ee4a4f591675f8
2016-06-21 21:35:16 +00:00
Felipe Leme
9bec9a4c97 resolve merge conflicts of fb043bd to nyc-mr1-dev-plus-aosp
Change-Id: Ic75a6926e4bd2b8199e4feb7af315e84659d03a2
2016-06-21 13:41:22 -07:00
Felipe Leme
22bac76a06 resolve merge conflicts of fa2715e to nyc-mr1-dev
Change-Id: If0a1e7e70aa33e99f05694a37c2a54c567449507
2016-06-21 13:12:53 -07:00
Felipe Leme
fb043bd185 Merge \"Ignore system apps on enforceMeteredApnPolicy().\" into nyc-dev
am: fa2715e03b

Change-Id: I98440b2ae3371661ed8b1b2f29b0ba18e1b6e6c3
2016-06-21 19:59:53 +00:00
Felipe Leme
0a5ae42e45 Ignore system apps on enforceMeteredApnPolicy().
BUG: 29514913
Fixes: 29448383
Change-Id: I19eb004c937e1c872bbf82caa7a919e43d48a259
2016-06-20 17:15:46 -07:00
Etan Cohen
7473bc20ad [NAN] Add transport type for NAN.
Add TRANSPORT_WIFI_NAN - specifies a peer-to-peer Wi-Fi NAN data
connectivity request.

While NAN uses Wi-Fi L1 PHY and part of the MAC - it is a different
protocol and constitutes a different transport.

Bug: 26564277
Change-Id: I975ebc72d8f97a592d18038b3d6465b7a40efa75
2016-06-20 09:28:36 -07:00
Robin Lee
18ca8b9105 Merge \\\"Move \\\'is already always-on\\\' check into Vpn.java\\\" into nyc-dev am: c32921dcda am: f2235f1a75
am: 9331ccf0d8

Change-Id: I245d528bc6653d52de944732fceccb3c1d542c3c
2016-06-16 10:26:41 +00:00
Robin Lee
9331ccf0d8 Merge \\"Move \\'is already always-on\\' check into Vpn.java\\" into nyc-dev am: c32921dcda
am: f2235f1a75

Change-Id: I12cdcac2581a062313dfc0c854a184485f5fc718
2016-06-16 10:21:39 +00:00
Robin Lee
d9292b539d Merge \\\"Move \\\'is already always-on\\\' check into Vpn.java\\\" into nyc-dev am: c32921dcda am: f801f6d404
am: b4f431d4bd

Change-Id: I525ebc4b6c27eff17ff57fac7f664c221cbc2954
2016-06-16 10:18:43 +00:00
Robin Lee
b4f431d4bd Merge \\"Move \\'is already always-on\\' check into Vpn.java\\" into nyc-dev am: c32921dcda
am: f801f6d404

Change-Id: I897c48083f8e6786182d023c58f9861996c6d25c
2016-06-16 10:14:06 +00:00
Robin Lee
f2235f1a75 Merge \"Move \'is already always-on\' check into Vpn.java\" into nyc-dev
am: c32921dcda

Change-Id: I6532f2e654cfd9df8ee6c649344b0b915a8381c1
2016-06-16 10:10:23 +00:00
Robin Lee
f801f6d404 Merge \"Move \'is already always-on\' check into Vpn.java\" into nyc-dev
am: c32921dcda

Change-Id: Id363cef8369d63ce4739089d94139e34ed25f665
2016-06-16 10:10:23 +00:00
Robin Lee
c32921dcda Merge "Move 'is already always-on' check into Vpn.java" into nyc-dev 2016-06-16 10:06:11 +00:00
Robin Lee
8631caa822 Move 'is already always-on' check into Vpn.java
It's with the rest of the logic now and allows checking whether the
lockdown state matches, too, which led to a lot of misunderstandings.

Fix: 29199431
Change-Id: I94a2c38c4837f9c33b5b9c2becb52eeb7e2a2534
2016-06-14 13:24:17 +00:00
Paul Jensen
c50d0f1c84 Merge \\\"Show sign-in to network notification to all users, not just owner.\\\" into nyc-dev am: fa7453ed47 am: 2b90b80a81
am: e8da6a1991

Change-Id: I25f18dc05e54b605316bee49693f390c356c7ba2
2016-06-14 11:30:35 +00:00
Paul Jensen
608ba9af67 Merge \\\"Show sign-in to network notification to all users, not just owner.\\\" into nyc-dev am: fa7453ed47 am: 3ed407344a
am: 58fa621af2

Change-Id: I3895d869e5b881b82310a4efc235f41f1176d44c
2016-06-14 11:25:41 +00:00
Paul Jensen
e8da6a1991 Merge \\"Show sign-in to network notification to all users, not just owner.\\" into nyc-dev am: fa7453ed47
am: 2b90b80a81

Change-Id: Iead63295514f72cd588259f82ac44c98c54ac883
2016-06-14 11:24:57 +00:00
Paul Jensen
58fa621af2 Merge \\"Show sign-in to network notification to all users, not just owner.\\" into nyc-dev am: fa7453ed47
am: 3ed407344a

Change-Id: I82726a61541da890dea12448b2823f3dd7e367d2
2016-06-14 11:21:12 +00:00
Paul Jensen
2b90b80a81 Merge \"Show sign-in to network notification to all users, not just owner.\" into nyc-dev
am: fa7453ed47

Change-Id: Ic8f99cb7c7fa7ed1f40c73342840f82c56f9f90f
2016-06-14 11:16:15 +00:00
Paul Jensen
3ed407344a Merge \"Show sign-in to network notification to all users, not just owner.\" into nyc-dev
am: fa7453ed47

Change-Id: I4522f765c6166bd1c8216088b1605eac4c69d869
2016-06-14 11:16:12 +00:00
Paul Jensen
fa7453ed47 Merge "Show sign-in to network notification to all users, not just owner." into nyc-dev 2016-06-14 11:05:32 +00:00
Paul Jensen
b31cfb423c Show sign-in to network notification to all users, not just owner.
All users should be made aware a captive portal is in place and be
given the opportunity to sign into the network.  Without this fix
other users are not notified and given a chance to sign-in.

Change-Id: I1bf823d5f6a36f391dca4be5f6a584e8562a72a7
Fixes: 23079964
2016-06-13 09:39:28 -04:00
Robin Lee
db1204a5c6 Merge \\\"Package changed/removed listeners for always-on VPN\\\" into nyc-dev am: ee5e4cc836 am: 567d4aed3b
am: ba3ee4395e

Change-Id: Id5c8f01aed82b5f8e3a9b0df23999240ba07ee98
2016-06-08 11:06:41 +00:00
Robin Lee
7af9e9e3c4 Merge \\\"Package changed/removed listeners for always-on VPN\\\" into nyc-dev am: ee5e4cc836 am: a21c500b58
am: 69e21e5549

Change-Id: Id82a70970cdd7b5750b1727bbad91e4dce6da703
2016-06-08 11:00:30 +00:00
Robin Lee
ba3ee4395e Merge \\"Package changed/removed listeners for always-on VPN\\" into nyc-dev am: ee5e4cc836
am: 567d4aed3b

Change-Id: I69ddb790aac005bd55f11d2a371d992311443a5f
2016-06-08 10:57:22 +00:00
Robin Lee
69e21e5549 Merge \\"Package changed/removed listeners for always-on VPN\\" into nyc-dev am: ee5e4cc836
am: a21c500b58

Change-Id: I64ab86a9133d524865bed8c7824634e0539c1212
2016-06-08 10:54:52 +00:00
Robin Lee
567d4aed3b Merge \"Package changed/removed listeners for always-on VPN\" into nyc-dev
am: ee5e4cc836

Change-Id: Idd2e019feb73bd580aa7d8baba03c27083e26b02
2016-06-08 10:50:43 +00:00
Robin Lee
a21c500b58 Merge \"Package changed/removed listeners for always-on VPN\" into nyc-dev
am: ee5e4cc836

Change-Id: I8f7054b5a2ac69677a0e124e9a616b3d58b604af
2016-06-08 10:50:42 +00:00
Lorenzo Colitti
c980b23387 Merge changes Ic98e3bcb,Idb0c55fc,Ia8649061,I5e7e5a87 into nyc-mr1-dev am: c5447626d7
am: 9deb2c2d0d

Change-Id: I776625bbc557c747477db70235847dd8b3ab8baf
2016-06-08 06:44:24 +00:00
Lorenzo Colitti
9deb2c2d0d Merge changes Ic98e3bcb,Idb0c55fc,Ia8649061,I5e7e5a87 into nyc-mr1-dev
am: c5447626d7

Change-Id: I2305c4019f56896d741caa509df41416368e5642
2016-06-08 06:39:18 +00:00
TreeHugger Robot
c5447626d7 Merge changes Ic98e3bcb,Idb0c55fc,Ia8649061,I5e7e5a87 into nyc-mr1-dev
* changes:
  Give WakeupMessage the ability to transport an object as well.
  Don't treat the lingerExpired broadcast specially.
  Add a test for mobile data always on.
  Add a FakeSettingsProvider and use it in ConnectivityServiceTest.
2016-06-08 06:35:32 +00:00
Lorenzo Colitti
e9a96608a9 Don't treat the lingerExpired broadcast specially.
NetworkMonitor no longer uses the broadcast for lingering, it
uses WakeupMessage instead.

Bug: 23113288
Change-Id: Idb0c55fc68cb8f45b3213c7134213904f227852e
2016-06-08 14:09:07 +09:00
Lorenzo Colitti
9fc66e020a Add a test for mobile data always on.
Bug: 23113288
Change-Id: Ia8649061a797367d135bb5576600a7cdc85a822e
2016-06-08 14:08:59 +09:00
Lorenzo Colitti
72d0da9899 Add a FakeSettingsProvider and use it in ConnectivityServiceTest.
This class makes it easier to test code that uses Settings:

1. Real device or emulator settings don't affect the code under
   test; all settings always start off empty.
2. It's possible to change settings from the test without
   affecting system settings.
3. No changes are needed to the code under test. The changes to
   the tests are simple: just add a fake ContentResolver to
   whatever mock Context is already used by the test, and make
   that ContentResolver use the fake provider.

Bug: 23113288
Change-Id: I5e7e5a87571444ae49ccf551705620675a36cd17
2016-06-08 14:05:55 +09:00
Robin Lee
1a0a77ba10 Package changed/removed listeners for always-on VPN
Fix 2 problems of always-on vpn after always-on package is removed
1. Prevent network being locked down (blocking all network traffic)
   Otherwise, user has no way to download the vpn app from Play Store,
   and never be able to gain control of the network again.
2. Allow user to connect other vpn app.

Implementation
1. Switch off always-on mode if the package gets removed.
2. Restart always-on mode if the package gets replaced/upgraded.

Bug: 29050764
Change-Id: Id3e389ae0b11c6002a5167919292d9634c2014cb
2016-06-06 15:42:50 +00:00
Paul Jensen
b21cdc39c4 Merge "Merge "Include network name in validation logs for dumpsys" into nyc-dev am: 716fa18dcb am: ff71246e0d" into nyc-mr1-dev-plus-aosp
am: f307ccbbc1

* commit 'f307ccbbc1854a9ca1e8077be01563f30a3f55b8':

Change-Id: Iaaedb0df6e1969e5960ffc54ffd364e9d8259504
2016-06-06 11:41:04 +00:00
Paul Jensen
7b3ee13c63 Merge "Include network name in validation logs for dumpsys" into nyc-dev am: 716fa18dcb am: 1209aef1ad
am: 0dc8a9b393

* commit '0dc8a9b39341702f033c9e49689a9a5ce34afcdd':
  Include network name in validation logs for dumpsys

Change-Id: If8d42bb7a355d1134ea24e4ad02acca1cd52e70c
2016-06-06 11:41:00 +00:00