Commit Graph

2855 Commits

Author SHA1 Message Date
Lorenzo Colitti
27ca325de9 Merge \"Make registerDefaultNetwork work on metered networks.\" into nyc-dev
am: 33cdc4d136  -s ours

Change-Id: Iacee53c01e7de163e677ab57bc2d7044f8aff952
2016-07-07 01:24:58 +00:00
Hugo Benichi
f778e2546f ConnectivityManager: no double callback remove
This patch partially undoes ag/869831 (Change-Id:
Ia42ed7aefaebd8caf3eada8e42b6cb7a940d7647) so that ConnectivityManager
does not remove callbacks from its internal request-to-callback map at
unregistration, but instead let the singleton CallbackHandler do it when
receiving a CALLBACK_RELEASED from ConnectivityService.

ag/869831 was thought to fix b/26749700 that reported a callback leak
from sNetworkCallback, but a finer analysis of the code shows that
callbacks were correctly removed by the CallbackHandler before
ag/869831. There was therefore no callback leak.

Bug: 26749700
Bug: 28537383
Change-Id: I421d889d0e225c0e3d1eebea664f44a1cc0f3191
2016-07-07 09:44:02 +09:00
Lorenzo Colitti
8fd1e19e45 Merge \"Make registerDefaultNetwork work on metered networks.\" into nyc-dev
am: 33cdc4d136

Change-Id: I0ad7b79f1af992dd556de5e17a6a1aae9c46e423
2016-07-06 20:45:09 +00:00
Lorenzo Colitti
b2279bc09f Merge \"Add test coverage for a bug in the lingering code.\" into nyc-mr1-dev
am: 833c839f0b

Change-Id: Ia09ba1e0a6e3ba9543a92ccf7f03f7a898f26fb1
2016-07-05 03:44:29 +00:00
TreeHugger Robot
833c839f0b Merge "Add test coverage for a bug in the lingering code." into nyc-mr1-dev 2016-07-05 03:35:40 +00:00
Lorenzo Colitti
5a7cd3500d Merge \"Unbreak unregisterNetworkCallback.\" into nyc-mr1-dev
am: 0271c0d4ef

Change-Id: I35ee16554e17c503b1f5628629c2c0a48d85d399
2016-07-05 02:19:18 +00:00
Lorenzo Colitti
0271c0d4ef Merge "Unbreak unregisterNetworkCallback." into nyc-mr1-dev 2016-07-05 02:07:06 +00:00
Lorenzo Colitti
70964d3a18 Unbreak unregisterNetworkCallback.
http://ag/1194313 broke unregisterNetworkCallback because the
system does not parcel the type of the request back to the app.
So when the app calls unregisterNetworkCallback, the
NetworkRequest that's passed in does not have a type and thus
doesn't match the request in mNetworkRequests.

Fix this by parceling over the type as well.

This was not caught by the unit test because the unit test all
runs in the same process with no parceling.

Bug: 23113288
Change-Id: I58b2ed651b9bf5cbdcca5b25c3ca24db53cffdf1
2016-07-05 01:59:49 +09:00
Lorenzo Colitti
c256234cbf Merge \"Annotate public methods in ConnectivityService.\" into nyc-mr1-dev
am: 50d08eec57

Change-Id: I065e2ceb351ea8af4310f6ef11f1af232fa2fc79
2016-07-04 16:21:10 +00:00
TreeHugger Robot
50d08eec57 Merge "Annotate public methods in ConnectivityService." into nyc-mr1-dev 2016-07-04 16:07:33 +00:00
Lorenzo Colitti
302dff37cc Make registerDefaultNetwork work on metered networks.
am: 5c1bf510fb

Change-Id: I2d5edc273df22e5c787f227820c1ce956adfe42c
2016-07-04 16:06:51 +00:00
Lorenzo Colitti
5c1bf510fb Make registerDefaultNetwork work on metered networks.
Bug: 29927488
Change-Id: I3b705c2ab0d1493546ffa5185bb5b07d5e25c897
2016-07-04 23:18:12 +09:00
Lorenzo Colitti
b5b9c71870 Add test coverage for a bug in the lingering code.
Bug: 23113288
Change-Id: I573ee5908b9d973931234eb7d2db8ea0aaa4b31e
2016-07-04 17:00:27 +09:00
Lorenzo Colitti
d645909273 Annotate public methods in ConnectivityService.
Ensure every public method is annotated with why it's public.
This can be either an @Override or @VisibleForTesting annotation
or a comment explaining why it's public.

Bug: 29927488
Change-Id: I3582aef7997dc0d723718ca5e3dd115647d22979
2016-07-04 12:58:29 +09:00
Lorenzo Colitti
9d1139ee06 Merge changes from topic \'networkrequest_private\' into nyc-mr1-dev
am: 0317e03dc3

Change-Id: Ia063c378bd32fdb056c0ecdc0f721d32e9fa49af
2016-07-01 15:20:21 +00:00
Lorenzo Colitti
99236d14e3 Make the NetworkRequest list private to NetworkAgentInfo.
This allows us to keep track of how many live requests a network
is satisfying without having to count them every time.

Bug: 23113288
Change-Id: Ic4756676491e09071dbf80b7c48da3be028d68eb
2016-07-01 21:14:26 +09:00
Lorenzo Colitti
eafe85717c Move the request type from NetworkRequestInfo to NetworkRequest.
This will allow us to simplify code that deals with
NetworkRequests outside ConnectivityService.

Bug: 23113288
Change-Id: I9b3a859d0c68cad73d7f6baa4b584d13ffd2ae36
2016-07-01 20:15:19 +09:00
Lorenzo Colitti
ecd8ec7141 Make registerDefaultNetwork work on metered networks.
Bug: 29927488
Change-Id: I3b705c2ab0d1493546ffa5185bb5b07d5e25c897
2016-07-01 04:42:58 +00:00
Lorenzo Colitti
d681873af9 Merge changes I65784f35,Ib6937335 into nyc-mr1-dev
am: 74f7f2ec0d

Change-Id: Iba950e7837d91f83a9c2bcd7fc8e7b1193038400
2016-06-30 14:33:25 +00:00
Tobias Thierer
4b2e1aef96 Merge \\\"Changes for upgrade to OkHttp 2.7.5\\\" am: 5c3bebd673 am: 1f44659b2f
am: 6b473f7b67

Change-Id: I3a0dc1da2ee96d71c38cab727141efcb686627e1
2016-06-30 13:04:52 +00:00
Tobias Thierer
1f44659b2f Merge \"Changes for upgrade to OkHttp 2.7.5\"
am: 5c3bebd673

Change-Id: Id79249756929a61dca374f9f1d43d0ea9e6b1280
2016-06-30 12:49:47 +00:00
Lorenzo Colitti
2dfee89086 Add detailed test coverage for lingering.
Bug: 23113288
Change-Id: I65784f3589378d97f3c824e600f21f361be8741e
2016-06-30 21:42:17 +09:00
Tobias Thierer
5c3bebd673 Merge "Changes for upgrade to OkHttp 2.7.5" 2016-06-30 12:35:03 +00:00
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
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
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
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
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
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
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
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
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