Skip to content

Commit 8af13a2

Browse files
authoredSep 10, 2022
Get multicast lock when publishing services on android (#22519)
1 parent c808c48 commit 8af13a2

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed
 

‎src/platform/android/java/chip/platform/NsdManagerServiceResolver.java

+6
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,9 @@ public void onServiceUnregistered(NsdServiceInfo serviceInfo) {
189189
"service " + serviceInfo.getServiceName() + "(" + this + ") onServiceUnregistered");
190190
}
191191
};
192+
if (registrationListeners.size() == 0) {
193+
multicastLock.acquire();
194+
}
192195
registrationListeners.add(registrationListener);
193196

194197
nsdManager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD, registrationListener);
@@ -198,6 +201,9 @@ public void onServiceUnregistered(NsdServiceInfo serviceInfo) {
198201
@Override
199202
public void removeServices() {
200203
Log.d(TAG, "removeServices: ");
204+
if (registrationListeners.size() > 0) {
205+
multicastLock.release();
206+
}
201207
for (NsdManager.RegistrationListener l : registrationListeners) {
202208
Log.i(TAG, "Remove " + l);
203209
nsdManager.unregisterService(l);

0 commit comments

Comments
 (0)
Please sign in to comment.