Commit Graph

162 Commits

Author SHA1 Message Date
Dave Platt
feff2af5c0 NsdService does not clean up after exiting clients
When a client of the NsdService exits, NsdService should
clean up the requests it has sent to the mDNS daemon:
cancel any pending resource-discovery and resource-resolution
queries, and remove any services registered by this client.

If this isn't done, several bad things happen. The daemon will
continue to run unnecessarily, will report service discoveries
that can't be forwarded on to the client, and will continue to
advertise service ports for an application which is no longer
running until the device is rebooted (mDNS pollution).

Bug: 9801184
Change-Id: I0aa7311480322aefcff16f902fbbf34f50985d38
2014-03-13 23:16:30 +00:00
Kenny Root
9254db342a Use java.util.Objects instead on internal API
Not needed since java.util.Objects implements all the needed
functionality.

Change-Id: Icd31d49a9801d1705427f028e9ac927d58e7d34c
2013-12-13 13:40:30 -08:00
Vinit Deshapnde
4429e878fb Get rid of a race in NsdService in stopResolveService and getAddrInfo
Both requests are made using same id; and there is a chance that
stopResolve() is not fully completed when getAddrInfo() is issued. That
results getAddrInfo() failure, because both are using same requestId.

This change fixes this problem by creating a new unique id to call
getAddrInfo() with.

Bug: 11597153
Change-Id: I56bd78740e8a40bd31c52705dc797486aff53a50
2013-11-12 15:36:37 -08:00
Amith Yamasani
e91f98c61d Use a separate thread for services that do NTP lookup
Some services do periodic network time lookups and can wedge the other operations on
BackgroundThread and IO Thread, causing Watchdog to kill the runtime. So best to put
those handlers on separate threads.

Going forward, should convert NTP lookups to be async with callbacks.

Bug: 10646480
Change-Id: I8c7ba6052cb3539575712c2099a706b14ff60196
2013-09-19 10:57:16 -07:00
Jeff Sharkey
73c92d5077 Request all tethering interfaces, fix corruption.
netd now tracks statistics for tethered interfaces across tethering
sessions, so switch to asking for all tethering stats.  (Currently
we're double-counting all tethering data, ever since it started
tracking across sessions.)

Also catch OOME to handle corrupt stats files, which we then dump to
DropBox and then start over.

Bug: 5868832, 9796109
Change-Id: I2eb2a1bf01b993dd198597d770fe0e022466c6b9
2013-09-10 21:03:30 -07:00
Lorenzo Colitti
e79657d5fb Add a simple test for NetworkManagementService.
For now, this only tests network observers. It works by starting
NetworkManagementService with a fake netd socket, feeding it
inputs, and seeing if the appropriate observer methods are
called.

Bug: 10232006
Change-Id: I827681575642a4ee13ae48b81272521544b676bd
2013-08-23 18:30:19 +09:00
Christopher Tate
9fa19313dd Batch alarms to reduce device wakeups
The default Alarm Manager behavior for KLP+ apps will be to aggressively
coalesce alarms, trading exact timeliness of delivery for minimizing the
number of alarm-delivery points, especially wakeup points.

There is new API in AlarmManager, setExact() and setExactRepeating(),
for use by apps that absolutely *must* get their alarms at a specific
point in time.

Bug 9532215

Change-Id: I40b4eea90220211cc958172d2629664b921ff051
2013-07-17 14:37:12 -07:00
Wink Saville
7861a9e15c Merge "Fix an NPE in NsdManager" 2013-07-01 16:53:31 +00:00
Elliott Hughes
68a7eb9f3b am fa024d1d: resolved conflicts for merge of c9517611 to jb-mr2-dev-plus-aosp
* commit 'fa024d1d0a2c4cdeb5deb691efa56fcaf0632827':
  Switch frameworks/base over from @hidden Charsets to public StandardCharsets.
2013-06-28 16:53:27 -07:00
Elliott Hughes
fa024d1d0a resolved conflicts for merge of c9517611 to jb-mr2-dev-plus-aosp
Change-Id: I3349f8d2e6715171e2677c1385122ceb2810c1f6
2013-06-28 16:50:13 -07:00
Elliott Hughes
c951761164 resolved conflicts for merge of fc136843 to stage-aosp-master
Change-Id: I4791f0ffa324a313b8390fbde6d8f82f716ecf74
2013-06-28 16:41:19 -07:00
Elliott Hughes
aa40ac667e Switch frameworks/base over from @hidden Charsets to public StandardCharsets.
Bug: 3484927
Change-Id: I5d136d2ee629588538602766a182ae14ce5fc63c
2013-06-28 16:24:48 -07:00
Vinit Deshapnde
930a8513db Fix an NPE in NsdManager
The NPE happens because NSD Manager doesn't always notify with a 'good'
notification for SERVICE_FOUND. It can get in a situation where a
SERVICE_FOUND is recevied from MDnsDs demon when processing StopDiscovery
on the messaging thread. When that happens, NsdService sends a message
to NsdManager with an invalid index of the listener.

The fix is twofold. First, we fix NsdService to not generate a message if
it doesn't have a good listener index. And second, we also fix NsdManager
to watch for invalid index.

Change-Id: I3d63af10bded13c72e8e437a1ebf74a666760432
2013-06-25 19:45:03 -07:00
Kenny Root
c4af47ebf9 resolved conflicts for merge of e96a8207 to master
Change-Id: I90801b35ed0c00078a47faadc7fbb05d2e5fe381
2013-06-10 11:09:28 -07:00
Jeff Sharkey
682fa4bd0b Avoid logging sensitive data.
When building commands to send across NativeDaemonConnector, scrub
sensitive arguments to prevent them from being logged.

Bug: 8609800
Change-Id: I84b16791749264a010f7e59f9918f68d71bac6b9
2013-06-07 15:09:32 -07:00
Dianne Hackborn
f7c56ef9dd Start combining threads in system process.
This introduces four generic thread that services can
use in the system process:

- Background: part of the framework for all processes, for
work that is purely background (no timing constraint).
- UI: for time-critical display of UI.
- Foreground: normal foreground work.
- IO: performing IO operations.

I went through and moved services into these threads in the
places I felt relatively comfortable about understanding what
they are doing.  There are still a bunch more we need to look
at -- lots of networking stuff left, 3 or so different native
daemon connectors which I didn't know how much would block,
audio stuff, etc.

Also updated Watchdog to be aware of and check these new
threads, with a new API for other threads to also participate
in this checking.

Change-Id: Ie2f11061cebde5f018d7383b3a910fbbd11d5e11
2013-05-02 17:42:40 -07:00
Jeff Sharkey
26c10de1b7 Require command and argument separation, cleanup.
When invoking NativeDaemonCommands, require that base command and
arguments are separate.  Clean up reverse tethering commands, and
remove deprecated throttle events.

Change-Id: I302a74130b4f7c3f3045815a56d566e89c8969f6
2013-02-25 11:02:50 -08:00
Irfan Sheriff
26aad11287 am 97e4518e: Merge "NsdService: Clear client info after resolution request is serviced."
* commit '97e4518ef8cad0cbbb8d3ea78615098c26b6a0de':
  NsdService: Clear client info after resolution request is serviced.
2012-12-21 10:07:24 -08:00
Irfan Sheriff
97e4518ef8 Merge "NsdService: Clear client info after resolution request is serviced." 2012-12-20 14:43:17 -08:00
Robert Greenwalt
378bdaccbb am b30a24c4: Merge "return value of String.replace() is ignored."
* commit 'b30a24c4db8d2ed5f3ecfda0f6197fa974ae56d7':
  return value of String.replace() is ignored.
2012-12-11 16:52:39 -08:00
Robert Greenwalt
b30a24c4db Merge "return value of String.replace() is ignored." 2012-12-11 16:34:35 -08:00
Jeff Sharkey
bf76d97d78 am 1f8f2839: am ed3fba65: Merge "Avoid null mobile interfaces." into jb-mr1.1-dev
* commit '1f8f283975c7cf51081acd3ea494de2b5f431607':
  Avoid null mobile interfaces.
2012-12-03 11:40:23 -08:00
Jeff Sharkey
17ffba9700 Avoid null mobile interfaces.
Bug: 7634215
Change-Id: I6745f6a78c07ba11d98b4562a6b53386112ef652
2012-11-30 17:49:39 -08:00
Kenny Root
49e27d5f9d am ae0edeb3: am c88047bf: Merge "Move NTP updates outside locks"
* commit 'ae0edeb3e56c6aae113f8c5eaa3a03b79c00a93e':
  Move NTP updates outside locks
2012-11-27 13:00:01 -08:00
Anders 3 Fridlund
0e851c78e3 Move NTP updates outside locks
When the ServerThread handles ACTION_SHUTDOWN intent it sometimes get
stuck on mStatsLock in NetworkStatsService.java.
0  com.android.server.net.NetworkStatsService$5.onReceive()
1  android.app.LoadedApk$ReceiverDispatcher$Args.run()
2  android.os.Handler.handleCallback()
3  android.os.Handler.dispatchMessage()
4  android.os.Looper.loop()
5  com.android.server.ServerThread.run()
This happens when the NetworkStats thread is already holding the
mStatsLock while updating NTP.
0  libcore.io.Posix.getaddrinfo()
1  libcore.io.ForwardingOs.getaddrinfo()
2  java.net.InetAddress.lookupHostByName()
3  java.net.InetAddress.getAllByNameImpl()
4  java.net.InetAddress.getByName()
5  android.net.SntpClient.requestTime()
6  android.util.NtpTrustedTime.forceRefresh()
7  com.android.server.net.NetworkStatsService.performPoll()
8  com.android.server.net.NetworkStatsService.access$100()
9  com.android.server.net.NetworkStatsService$2.onReceive()
10 android.app.LoadedApk$ReceiverDispatcher$Args.run()
11 android.os.Handler.handleCallback()
12 android.os.Handler.dispatchMessage()
13 android.os.Looper.loop()
14 android.os.HandlerThread.run()
Since the NTP update consists of several socket operations it may get
stuck long enough to trigger a System Server Watchdog even though the
socket timeout is set to 20 second.
Further, the NTP update doesn't actually need to be performed inside
the locks and an attempt to change this was made earlier, but the code
wasn't actually moved outside the locks.

Change-Id: Ib37a2b8c2d51a01adb7ff01764f82309433703f0
2012-11-16 13:28:29 +01:00
Jeff Sharkey
526438dbe6 Useful annotations for code documentation.
Bug: 6537978
Change-Id: I806c3c09e3255f8789455f13bf37c1dde2a93f1f
2012-11-12 12:42:17 -08:00
You Kim
0f1fea45d3 return value of String.replace() is ignored.
Change-Id: Id7330e1ffc9f429b22f153d8e644fa7c64354173
Signed-off-by: You Kim <you.kim72@gmail.com>
2012-10-28 23:57:57 +09:00
Jeff Sharkey
c783695df2 Migrate more Secure settings to Global.
Migrate networking, storage, battery, DropBox, and PackageManager
related Secure settings to Global table.

Bug: 7232014, 7231331, 7231198
Change-Id: I772c2a9586a2f708c9db95622477f235064b8f4d
2012-09-27 16:22:53 -07:00
Jeff Sharkey
8c8309a6fe Migrate network stats from removed users.
When a user is removed, migrate all network stats belonging to that
user into special UID_REMOVED bucket.  Also removes those stats from
kernel to avoid double-counting if another user is created.

Bug: 7194784
Change-Id: I03f1d660fe3754566326b7749cae8068fc224ea9
2012-09-19 14:54:05 -07:00
Jeff Sharkey
77127d1c93 Actually move to Global settings.
Also add better ConnectivityService logging.

Bug: 7157464
Change-Id: Ia235a7e62ed809240913c4782920c1410c7d597d
2012-09-14 13:47:51 -07:00
Jeff Sharkey
633746dc75 Move to Global.NETSTATS and Global.NTP constants.
Bug: 7157464
Change-Id: Ief10fd37940f62420f5684940994c9f93802e0be
2012-09-14 13:14:21 -07:00
Dianne Hackborn
692107e827 Improve multi-user broadcasts.
You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
2012-08-30 14:33:22 -07:00
Vairavan Srinivasan
6ce481864a NsdService: Clear client info after resolution request is serviced.
Currently, the client requests tracked in mClientIds for resolution
requests isn't cleared at all and causes failues of additional registration
and discovery requests once the number of requests reaches MAX_LIMIT. In
addition, bubble up unhandled native events to default state of nsd state
machine.

Change-Id: Ief14e0fff644aa2698fcddd71f538820f802be58
2012-08-23 20:24:43 -07:00
Jeff Sharkey
0066733be0 Make generic BaseNetworkObserver.
This makes it easier to add new INetworkManagementEventObserver events
in future.

Change-Id: I432263d745558de4b878f313c1951230ed9db2b1
2012-08-05 14:32:41 -07:00
Dianne Hackborn
3dfb8b498a Make AtomicFile a public API. It's about time!
Change-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a
2012-07-31 17:54:52 -07:00
Wink Saville
66f04e9ddb Enhance StateMachine Quitting and logging support. DO NOT MERGE
Make StateMachine#quit non-conditional and remove the need to
process the SM_QUIT_CMD it is now private.

Rename halting to onHalting.

Add onQuitting

Change the message specific logging to be more generic and change
the xxxProcessedMessagesYyy methods to xxxLogRecXyy names. Also add
addLogRec(String) and addLogRec(String, State) as the generic logging
methods.

bug: 5678189
Change-Id: I22f66d11828bfd70498db625fe1be728b90478b7

Conflicts:

	services/java/com/android/server/NsdService.java
2012-07-02 10:57:11 -07:00
Robert Greenwalt
1819c4f10e Merge "Fix a sync problem in NativeDaemonConnector." 2012-06-07 11:37:15 -07:00
Robert Greenwalt
610bc9678d Fix a sync problem in NativeDaemonConnector.
We had a gap in sync coverage between doing a check and waiting and a
matching gap between setting a condition and notifying.  It was possible
to get context switched just so and have the notify hit before the waiter
had started waiting.

bug:6492166
Change-Id: Idc876cf85b35902a79fae932547957ed5ef00e4f
2012-06-07 11:22:54 -07:00
Irfan Sheriff
a481387a1f resolved conflicts for merge of 43996db6 to master
Change-Id: Icb13c37491d3e9f0252198f98d8110740fa1f997
2012-06-05 09:49:24 -07:00
Irfan Sheriff
67c80edfab Add contentobserver for nsd_on setting
Bug: 6606274
Change-Id: I863b9e2a2446d697f3c9c49f24dcdc2b599f091e
2012-06-04 15:54:30 -07:00
Wink Saville
358f5d40b1 Enhance StateMachine Quitting and logging support.
Make StateMachine#quit non-conditional and remove the need to
process the SM_QUIT_CMD it is now private.

Rename halting to onHalting.

Add onQuitting

Change the message specific logging to be more generic and change
the xxxProcessedMessagesYyy methods to xxxLogRecXyy names. Also add
addLogRec(String) and addLogRec(String, State) as the generic logging
methods.


bug: 5678189
Change-Id: I22f66d11828bfd70498db625fe1be728b90478b7
2012-05-29 12:40:46 -07:00
Robert Greenwalt
6c37b32a26 Modify logging to debug this issue
Logging exec time on startUsingNetworkFeature as we've had some reports suggesting it's
causing ANRs.
Remove some logging from NDC so it's local log is more useful.

bug:6492166
Change-Id: I258ff6c59bff2c65935242d50496d84720c5d493
2012-05-24 10:47:10 -07:00
Jeff Sharkey
eac31d5b9d Merge "Transition from DEV network stats to XT." into jb-dev 2012-05-18 11:40:42 -07:00
Jeff Sharkey
3ddc9b3745 Transition from DEV network stats to XT.
When XT stats are available, transition to prefer them over DEV,
since they aren't subject to hardware driver bugs.  Only switches at
the first atomic XT bucket, and adds a Settings.Secure flag to force
back to DEV if needed.  Includes tests to cover transition.

Fix tests where device overlay would change which network types
reflected data usage.  Test both history and summary APIs.  Fixed
collection timestamps to reflect full buckets.

Bug: 6504744
Change-Id: Idd7f3b2fdb064c36547c85c51c214fd938c59b7e
2012-05-17 10:10:39 -07:00
Robert Greenwalt
b90e5677d1 Add some logging to NDC.
bug:6492166
Change-Id: Ib7c7a0927d3e920f6c041f7252f3f24c8e597bc7
2012-05-15 17:26:57 -07:00
Jeff Sharkey
50c921475b Merge "Avoid updating thresholds during shutdown." into jb-dev 2012-05-10 10:35:45 -07:00
Jeff Sharkey
b9439a4c2a Avoid updating thresholds during shutdown.
Bug: 6472388
Change-Id: I70e1ed5dc75056840f2f0b130ce0dfecb06f385e
2012-05-09 19:59:07 -07:00
Jeff Sharkey
ccd90baa9d Merge "Recover from Throwable in FileRotator, dump." into jb-dev 2012-05-09 14:36:40 -07:00
Irfan Sheriff
0e2eb98971 Merge "API review fixes" into jb-dev 2012-05-09 14:04:04 -07:00
Jeff Sharkey
585bc91d22 Recover from Throwable in FileRotator, dump.
In rewriteSingle(), catch Throwable to rollback to backup file,
instead of just IOException. Also add dumpAll() to pack up contents
for later debugging, and use it when encountering bad stats.

Bug: 6467868
Change-Id: Ic8e287cf5a235706811a304a88d71d11d3a79cd4
2012-05-09 13:43:19 -07:00