react-native-zeroconf 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -536
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/balthazargronon/RCTZeroconf/Zeroconf.java +16 -4
- package/android/src/main/java/com/balthazargronon/RCTZeroconf/ZeroconfModule.java +95 -13
- package/android/src/main/java/com/balthazargronon/RCTZeroconf/nsd/NsdServiceImpl.java +184 -64
- package/android/src/main/java/com/balthazargronon/RCTZeroconf/nsd/ServiceInfoCallbacks.java +89 -0
- package/android/src/main/java/com/balthazargronon/RCTZeroconf/rx2dnssd/DnssdImpl.java +114 -39
- package/android/src/main/jni/Android.mk +1 -24
- package/android/src/main/jni/Application.mk +1 -1
- package/dist/index.js +244 -27
- package/index.d.ts +95 -9
- package/ios/RNZeroconf/RNNetServiceSerializer.h +10 -2
- package/ios/RNZeroconf/RNNetServiceSerializer.m +51 -59
- package/ios/RNZeroconf/RNZeroconf.h +1 -3
- package/ios/RNZeroconf/RNZeroconf.m +642 -175
- package/package.json +39 -1
- package/react-native-zeroconf.podspec +12 -6
- package/src/index.js +222 -31
- package/android/src/main/java/com/github/druk/dnssd/DNSSDBindable.java +0 -67
- package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdBindable.java +0 -35
- package/android/src/main/jni/mdnsresponder/Android.bp +0 -215
- package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.c +0 -75
- package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.h +0 -41
- package/android/src/main/jni/mdnsresponder/Clients/Makefile +0 -54
- package/android/src/main/jni/mdnsresponder/Clients/ReadMe.txt +0 -25
- package/android/src/main/jni/mdnsresponder/Clients/dns-sd.c +0 -1351
- package/android/src/main/jni/mdnsresponder/Makefile +0 -41
- package/android/src/main/jni/mdnsresponder/PrivateDNS.txt +0 -275
- package/android/src/main/jni/mdnsresponder/android/caseMapping/Iphlpapi.h +0 -1
- package/android/src/main/jni/mdnsresponder/android/caseMapping/README +0 -3
- package/android/src/main/jni/mdnsresponder/android/caseMapping/Resource.h +0 -1
- package/android/src/main/jni/mdnsresponder/android/caseMapping/Ws2tcpip.h +0 -1
- package/android/src/main/jni/mdnsresponder/android/caseMapping/ipExport.h +0 -1
- package/android/src/main/jni/mdnsresponder/android/windows_firewall_dummy.c +0 -10
- package/android/src/main/jni/mdnsresponder/mDNSCore/Implementer Notes.txt +0 -66
- package/android/src/main/jni/mdnsresponder/mDNSPosix/Client.c +0 -223
- package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.c +0 -91
- package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.h +0 -18
- package/android/src/main/jni/mdnsresponder/mDNSPosix/Identify.c +0 -378
- package/android/src/main/jni/mdnsresponder/mDNSPosix/Makefile +0 -520
- package/android/src/main/jni/mdnsresponder/mDNSPosix/NetMonitor.c +0 -1010
- package/android/src/main/jni/mdnsresponder/mDNSPosix/ProxyResponder.c +0 -300
- package/android/src/main/jni/mdnsresponder/mDNSPosix/ReadMe.txt +0 -314
- package/android/src/main/jni/mdnsresponder/mDNSPosix/Responder.c +0 -792
- package/android/src/main/jni/mdnsresponder/mDNSPosix/Services.txt +0 -36
- package/android/src/main/jni/mdnsresponder/mDNSPosix/libnss_mdns.8 +0 -148
- package/android/src/main/jni/mdnsresponder/mDNSPosix/mdnsd.sh +0 -73
- package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_ReadMe.txt +0 -125
- package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.c +0 -2723
- package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf +0 -13
- package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf.5 +0 -135
- package/android/src/main/jni/mdnsresponder/mDNSPosix/parselog.py +0 -247
- package/android/src/main/jni/mdnsresponder/mDNSResponder.sln +0 -400
- package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.c +0 -3075
- package/android/src/main/jni/mdnsresponder/mDNSShared/dns-sd.1 +0 -194
- package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.8 +0 -69
- package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.c +0 -3146
- package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.conf +0 -60
- package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_lexer.l +0 -84
- package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_parser.y +0 -585
- package/android/src/main/jni/mdnsresponder/mDNSShared/mDNS.1 +0 -198
- package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSResponder.8 +0 -116
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.cpp +0 -441
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.h +0 -156
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.cpp +0 -59
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.h +0 -48
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp +0 -301
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h +0 -105
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.cpp +0 -380
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.def +0 -20
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.h +0 -84
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.rc +0 -141
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.vcproj +0 -727
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelDll.rc +0 -123
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.cpp +0 -373
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.h +0 -48
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.rc +0 -123
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.vcproj +0 -764
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.rc +0 -270
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.vcproj +0 -487
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.rc +0 -134
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.vcproj +0 -518
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.cpp +0 -197
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.h +0 -87
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.cpp +0 -387
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.h +0 -75
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.cpp +0 -544
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.h +0 -107
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.cpp +0 -273
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.h +0 -123
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.cpp +0 -115
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.h +0 -54
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.dll.manifest +0 -10
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.exe.manifest +0 -17
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.manifest +0 -17
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.rc2 +0 -13
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel64.manifest +0 -17
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/EnergySaver.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/controlpanel.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/failure.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/success.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/resource.h +0 -56
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.cpp +0 -20
- package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.h +0 -64
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.aps +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.rc +0 -102
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dllmain.c +0 -112
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.def +0 -48
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.vcproj +0 -472
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/resource.h +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/AssemblyInfo.cpp +0 -84
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/PString.h +0 -70
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.cpp +0 -22
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.h +0 -33
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.cpp +0 -1234
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.h +0 -1392
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.rc +0 -113
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.vcproj +0 -446
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/resource.h +0 -3
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.cpp +0 -693
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.h +0 -52
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.vcproj +0 -324
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.cpp +0 -208
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.def +0 -35
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.idl +0 -491
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rc +0 -126
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rgs +0 -11
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.vcproj +0 -625
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSD.cpp +0 -892
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.cpp +0 -31
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.h +0 -133
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.rgs +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.cpp +0 -101
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.h +0 -185
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.rgs +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.cpp +0 -2095
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.h +0 -429
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.rgs +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.cpp +0 -344
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.h +0 -102
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.cpp +0 -381
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.h +0 -203
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.rgs +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/_IDNSSDEvents_CP.h +0 -358
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.c +0 -51
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.h +0 -49
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/resource.h +0 -30
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/stdafx.h +0 -88
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.sln +0 -21
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.vcproj +0 -253
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.sln +0 -21
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.vcproj +0 -267
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc +0 -323
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc2 +0 -20
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Resource.h +0 -53
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.cpp +0 -71
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.h +0 -62
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.cpp +0 -111
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.h +0 -68
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.cpp +0 -1426
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.h +0 -131
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.cpp +0 -109
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.h +0 -53
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.cpp +0 -18
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.h +0 -48
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcc +0 -37
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcp +0 -868
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcw +0 -29
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.ico +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc +0 -194
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc2 +0 -13
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/newres.h +0 -28
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/resource.h +0 -22
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.cpp +0 -92
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.h +0 -57
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.cpp +0 -394
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.h +0 -84
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.cpp +0 -18
- package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.h +0 -46
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/Java.vcproj +0 -111
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/jdns_sd.rc +0 -62
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile +0 -143
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile64 +0 -143
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.aps +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.c +0 -581
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.rc +0 -103
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.vcproj +0 -409
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/Prefix.h +0 -28
- package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/resource.h +0 -27
- package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.c +0 -128
- package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.h +0 -70
- package/android/src/main/jni/mdnsresponder/mDNSWindows/README.txt +0 -85
- package/android/src/main/jni/mdnsresponder/mDNSWindows/RegNames.h +0 -57
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.c +0 -338
- package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.h +0 -42
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLog.mc +0 -11
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLogMessages.bin +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.cpp +0 -484
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.h +0 -79
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Prefix.h +0 -30
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.aps +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.c +0 -2669
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.h +0 -30
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.mcp +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.rc +0 -114
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.vcproj +0 -562
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/main.c +0 -32
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder.manifest +0 -12
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder64.manifest +0 -12
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resource.h +0 -17
- package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resrc1.h +0 -15
- package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.cpp +0 -165
- package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.h +0 -36
- package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.cpp +0 -93
- package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.h +0 -34
- package/android/src/main/jni/mdnsresponder/mDNSWindows/WinVersRes.h +0 -35
- package/android/src/main/jni/mdnsresponder/mDNSWindows/isocode.h +0 -135
- package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.c +0 -268
- package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.h +0 -54
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.c +0 -5200
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.h +0 -208
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/ReadMe.txt +0 -15
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.aps +0 -0
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.c +0 -2430
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.def +0 -24
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.rc +0 -104
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.vcproj +0 -457
- package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/resource.h +0 -27
- package/android/src/main/jni/mdnsresponder/mdnsd.rc +0 -7
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
package com.balthazargronon.RCTZeroconf.nsd;
|
|
2
|
+
|
|
3
|
+
import android.annotation.TargetApi;
|
|
4
|
+
import android.net.nsd.NsdManager;
|
|
5
|
+
import android.net.nsd.NsdServiceInfo;
|
|
6
|
+
import android.util.Log;
|
|
7
|
+
|
|
8
|
+
import java.util.ArrayList;
|
|
9
|
+
import java.util.Map;
|
|
10
|
+
import java.util.concurrent.ConcurrentHashMap;
|
|
11
|
+
import java.util.concurrent.Executor;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Follows found services with NsdManager.registerServiceInfoCallback (Android 14+) instead of one-shot resolves:
|
|
15
|
+
* services can be followed concurrently, updates (addresses, TXT records) are delivered as they change.
|
|
16
|
+
* Only loaded on API 34+, so older devices never touch these APIs.
|
|
17
|
+
*/
|
|
18
|
+
@TargetApi(34)
|
|
19
|
+
class ServiceInfoCallbacks {
|
|
20
|
+
private static final String TAG = "ServiceInfoCallbacks";
|
|
21
|
+
|
|
22
|
+
interface Listener {
|
|
23
|
+
void onServiceUpdated(NsdServiceInfo serviceInfo);
|
|
24
|
+
|
|
25
|
+
void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private final NsdManager nsdManager;
|
|
29
|
+
private final Executor executor;
|
|
30
|
+
private final Listener listener;
|
|
31
|
+
private final Map<String, NsdManager.ServiceInfoCallback> callbacks = new ConcurrentHashMap<>();
|
|
32
|
+
|
|
33
|
+
ServiceInfoCallbacks(NsdManager nsdManager, Executor executor, Listener listener) {
|
|
34
|
+
this.nsdManager = nsdManager;
|
|
35
|
+
this.executor = executor;
|
|
36
|
+
this.listener = listener;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void register(final NsdServiceInfo serviceInfo) {
|
|
40
|
+
final String name = serviceInfo.getServiceName();
|
|
41
|
+
if (callbacks.containsKey(name)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
NsdManager.ServiceInfoCallback callback = new NsdManager.ServiceInfoCallback() {
|
|
46
|
+
@Override
|
|
47
|
+
public void onServiceInfoCallbackRegistrationFailed(int errorCode) {
|
|
48
|
+
callbacks.remove(name);
|
|
49
|
+
listener.onRegistrationFailed(serviceInfo, errorCode);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Override
|
|
53
|
+
public void onServiceUpdated(NsdServiceInfo updated) {
|
|
54
|
+
listener.onServiceUpdated(updated);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@Override
|
|
58
|
+
public void onServiceLost() {
|
|
59
|
+
// Reported by the discovery listener
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@Override
|
|
63
|
+
public void onServiceInfoCallbackUnregistered() {
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
callbacks.put(name, callback);
|
|
67
|
+
Log.d(TAG, "Following " + name + " with registerServiceInfoCallback");
|
|
68
|
+
nsdManager.registerServiceInfoCallback(serviceInfo, executor, callback);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void unregister(String name) {
|
|
72
|
+
NsdManager.ServiceInfoCallback callback = callbacks.remove(name);
|
|
73
|
+
if (callback == null) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
nsdManager.unregisterServiceInfoCallback(callback);
|
|
78
|
+
} catch (IllegalArgumentException e) {
|
|
79
|
+
// Registration failed or was already unregistered
|
|
80
|
+
Log.w(TAG, "unregisterServiceInfoCallback failed", e);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void unregisterAll() {
|
|
85
|
+
for (String name : new ArrayList<>(callbacks.keySet())) {
|
|
86
|
+
unregister(name);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -7,12 +7,14 @@ import android.util.Log;
|
|
|
7
7
|
|
|
8
8
|
import com.balthazargronon.RCTZeroconf.Zeroconf;
|
|
9
9
|
import com.balthazargronon.RCTZeroconf.ZeroconfModule;
|
|
10
|
+
import com.facebook.react.bridge.Promise;
|
|
10
11
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
12
|
import com.facebook.react.bridge.ReadableArray;
|
|
12
13
|
import com.facebook.react.bridge.WritableArray;
|
|
13
14
|
import com.facebook.react.bridge.WritableMap;
|
|
14
15
|
import com.facebook.react.bridge.WritableNativeArray;
|
|
15
16
|
import com.facebook.react.bridge.WritableNativeMap;
|
|
17
|
+
import com.github.druk.dnssd.DNSSDException;
|
|
16
18
|
import com.github.druk.rx2dnssd.BonjourService;
|
|
17
19
|
import com.github.druk.rx2dnssd.Rx2Dnssd;
|
|
18
20
|
import com.github.druk.rx2dnssd.Rx2DnssdEmbedded;
|
|
@@ -21,6 +23,7 @@ import java.net.InetAddress;
|
|
|
21
23
|
import java.util.ArrayList;
|
|
22
24
|
import java.util.HashMap;
|
|
23
25
|
import java.util.LinkedHashMap;
|
|
26
|
+
import java.util.concurrent.ConcurrentHashMap;
|
|
24
27
|
import java.util.Locale;
|
|
25
28
|
import java.util.Map;
|
|
26
29
|
import java.util.List;
|
|
@@ -37,12 +40,13 @@ public class DnssdImpl implements Zeroconf {
|
|
|
37
40
|
|
|
38
41
|
private Rx2Dnssd rxDnssd;
|
|
39
42
|
|
|
40
|
-
@Nullable
|
|
41
|
-
private Disposable browseDisposable;
|
|
42
43
|
|
|
43
44
|
private Map<String, BonjourService> mPublishedServices;
|
|
44
45
|
private Map<String, Disposable> mRegisteredDisposables;
|
|
45
46
|
|
|
47
|
+
// Running browses, keyed by the id of the JS instance that started them
|
|
48
|
+
private final Map<String, Disposable> mBrowses = new ConcurrentHashMap<>();
|
|
49
|
+
|
|
46
50
|
private ZeroconfModule zeroconfModule;
|
|
47
51
|
|
|
48
52
|
private ReactApplicationContext reactApplicationContext;
|
|
@@ -59,7 +63,7 @@ public class DnssdImpl implements Zeroconf {
|
|
|
59
63
|
/**
|
|
60
64
|
* Creates the Rx2Dnssd implementation.
|
|
61
65
|
* Always uses embedded mDNSResponder since it works across all Android versions.
|
|
62
|
-
* The daemonic version (
|
|
66
|
+
* The daemonic version (not bundled) is unreliable on Android as the
|
|
63
67
|
* system daemon at /dev/socket/mdnsd doesn't exist on most devices.
|
|
64
68
|
*/
|
|
65
69
|
private Rx2Dnssd createDnssd(Context context) {
|
|
@@ -67,52 +71,101 @@ public class DnssdImpl implements Zeroconf {
|
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
@Override
|
|
70
|
-
public void scan(String type, String protocol, String domain) {
|
|
71
|
-
this.stop();
|
|
72
|
-
|
|
73
|
-
if (multicastLock == null) {
|
|
74
|
-
@SuppressLint("WifiManagerLeak") WifiManager wifi = (WifiManager) reactApplicationContext.getSystemService(Context.WIFI_SERVICE);
|
|
75
|
-
multicastLock = wifi.createMulticastLock("multicastLock");
|
|
76
|
-
multicastLock.setReferenceCounted(true);
|
|
77
|
-
multicastLock.acquire();
|
|
78
|
-
}
|
|
74
|
+
public void scan(final String scanId, String type, String protocol, String domain) {
|
|
75
|
+
this.stop(scanId);
|
|
76
|
+
acquireMulticastLock();
|
|
79
77
|
|
|
80
78
|
String serviceType = getServiceType(type, protocol);
|
|
81
|
-
Log.d(TAG, "Starting DNSSD scan for: " + serviceType);
|
|
79
|
+
Log.d(TAG, "Starting DNSSD scan " + scanId + " for: " + serviceType);
|
|
82
80
|
|
|
83
|
-
|
|
84
|
-
zeroconfModule.sendEvent(reactApplicationContext, ZeroconfModule.EVENT_START, null);
|
|
81
|
+
sendScanEvent(ZeroconfModule.EVENT_START, new WritableNativeMap(), scanId);
|
|
85
82
|
|
|
86
|
-
|
|
83
|
+
// A service is reported once per network interface, count them so found/remove are emitted once
|
|
84
|
+
final Map<String, Integer> foundInterfaces = new HashMap<>();
|
|
85
|
+
Disposable browse = rxDnssd.browse(serviceType, "local.")
|
|
87
86
|
.doOnNext(bonjourService -> {
|
|
87
|
+
String name = bonjourService.getServiceName();
|
|
88
|
+
Integer count = foundInterfaces.get(name);
|
|
89
|
+
int interfaces = count == null ? 0 : count;
|
|
88
90
|
if (!bonjourService.isLost()) {
|
|
89
|
-
|
|
91
|
+
foundInterfaces.put(name, interfaces + 1);
|
|
92
|
+
if (interfaces == 0) {
|
|
93
|
+
sendScanEvent(ZeroconfModule.EVENT_FOUND, serviceNameToMap(bonjourService), scanId);
|
|
94
|
+
}
|
|
95
|
+
} else if (interfaces <= 1) {
|
|
96
|
+
foundInterfaces.remove(name);
|
|
97
|
+
sendScanEvent(ZeroconfModule.EVENT_REMOVE, serviceNameToMap(bonjourService), scanId);
|
|
98
|
+
} else {
|
|
99
|
+
foundInterfaces.put(name, interfaces - 1);
|
|
90
100
|
}
|
|
91
101
|
})
|
|
102
|
+
.filter(bonjourService -> !bonjourService.isLost())
|
|
92
103
|
// Resolve each service independently so a single failure doesn't end the whole browse
|
|
93
|
-
.flatMap(bonjourService ->
|
|
94
|
-
? Flowable.just(bonjourService)
|
|
95
|
-
: Flowable.just(bonjourService)
|
|
104
|
+
.flatMap(bonjourService -> Flowable.just(bonjourService)
|
|
96
105
|
.compose(rxDnssd.resolve())
|
|
97
106
|
.compose(rxDnssd.queryRecords())
|
|
98
107
|
.onErrorResumeNext((Throwable throwable) -> {
|
|
99
108
|
Log.e(TAG, "Error resolving service: ", throwable);
|
|
100
|
-
|
|
109
|
+
sendError(throwable, "Resolving service " + bonjourService.getServiceName() + " failed: ", bonjourService.getServiceName(), scanId);
|
|
101
110
|
return Flowable.empty();
|
|
102
111
|
}))
|
|
103
112
|
.subscribeOn(Schedulers.io())
|
|
104
113
|
.observeOn(AndroidSchedulers.mainThread())
|
|
105
114
|
.subscribe(bonjourService -> {
|
|
115
|
+
// Lost services were filtered out above, a lost service could still come back from resolve
|
|
106
116
|
if (bonjourService.isLost()) {
|
|
107
|
-
zeroconfModule.sendEvent(reactApplicationContext, ZeroconfModule.EVENT_REMOVE, serviceNameToMap(bonjourService));
|
|
108
117
|
return;
|
|
109
118
|
}
|
|
110
|
-
|
|
119
|
+
sendScanEvent(ZeroconfModule.EVENT_RESOLVE, serviceInfoToMap(bonjourService), scanId);
|
|
111
120
|
}, throwable -> {
|
|
112
121
|
Log.e(TAG, "Error browsing services: ", throwable);
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
sendError(throwable, "Browsing services failed: ", null, scanId);
|
|
123
|
+
if (mBrowses.remove(scanId) != null) {
|
|
124
|
+
releaseMulticastLock();
|
|
125
|
+
}
|
|
126
|
+
sendScanEvent(ZeroconfModule.EVENT_STOP, new WritableNativeMap(), scanId);
|
|
115
127
|
});
|
|
128
|
+
mBrowses.put(scanId, browse);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
private void sendScanEvent(String eventName, WritableMap body, String scanId) {
|
|
132
|
+
body.putString(ZeroconfModule.KEY_SCAN_ID, scanId);
|
|
133
|
+
zeroconfModule.sendEvent(reactApplicationContext, eventName, body);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
private void acquireMulticastLock() {
|
|
137
|
+
if (multicastLock == null) {
|
|
138
|
+
@SuppressLint("WifiManagerLeak") WifiManager wifi = (WifiManager) reactApplicationContext.getSystemService(Context.WIFI_SERVICE);
|
|
139
|
+
multicastLock = wifi.createMulticastLock("multicastLock");
|
|
140
|
+
multicastLock.setReferenceCounted(true);
|
|
141
|
+
}
|
|
142
|
+
multicastLock.acquire();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private void releaseMulticastLock() {
|
|
146
|
+
if (multicastLock != null && multicastLock.isHeld()) {
|
|
147
|
+
multicastLock.release();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* DNSSD errors carry their DNSServiceErrorType code, anything else is reported as an exception
|
|
153
|
+
*/
|
|
154
|
+
private void sendError(Throwable throwable, String prefix, @Nullable String serviceName, @Nullable String scanId) {
|
|
155
|
+
if (throwable instanceof DNSSDException) {
|
|
156
|
+
DNSSDException dnssdException = (DNSSDException) throwable;
|
|
157
|
+
zeroconfModule.sendError(ZeroconfModule.ERROR_DOMAIN_DNSSD, dnssdException.getErrorCode(), prefix + throwable.getMessage(), serviceName, scanId);
|
|
158
|
+
} else {
|
|
159
|
+
zeroconfModule.sendError(ZeroconfModule.ERROR_DOMAIN_LIBRARY, ZeroconfModule.ERROR_CODE_EXCEPTION, prefix + throwable.getMessage(), serviceName, scanId);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private void rejectWith(@Nullable Promise promise, Throwable throwable, String prefix, @Nullable String serviceName) {
|
|
164
|
+
if (throwable instanceof DNSSDException) {
|
|
165
|
+
ZeroconfModule.reject(promise, ZeroconfModule.ERROR_DOMAIN_DNSSD, ((DNSSDException) throwable).getErrorCode(), prefix + throwable.getMessage(), serviceName);
|
|
166
|
+
} else {
|
|
167
|
+
ZeroconfModule.reject(promise, ZeroconfModule.ERROR_DOMAIN_LIBRARY, ZeroconfModule.ERROR_CODE_EXCEPTION, prefix + throwable.getMessage(), serviceName);
|
|
168
|
+
}
|
|
116
169
|
}
|
|
117
170
|
|
|
118
171
|
private WritableMap serviceNameToMap(BonjourService serviceInfo) {
|
|
@@ -158,42 +211,58 @@ public class DnssdImpl implements Zeroconf {
|
|
|
158
211
|
}
|
|
159
212
|
|
|
160
213
|
@Override
|
|
161
|
-
public void stop() {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
214
|
+
public void stop(String scanId) {
|
|
215
|
+
Disposable browse = mBrowses.remove(scanId);
|
|
216
|
+
if (browse == null) {
|
|
217
|
+
return;
|
|
165
218
|
}
|
|
166
|
-
|
|
167
|
-
|
|
219
|
+
browse.dispose();
|
|
220
|
+
releaseMulticastLock();
|
|
221
|
+
sendScanEvent(ZeroconfModule.EVENT_STOP, new WritableNativeMap(), scanId);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@Override
|
|
225
|
+
public void stopAll() {
|
|
226
|
+
for (String scanId : new ArrayList<>(mBrowses.keySet())) {
|
|
227
|
+
stop(scanId);
|
|
168
228
|
}
|
|
169
|
-
browseDisposable = null;
|
|
170
|
-
multicastLock = null;
|
|
171
229
|
}
|
|
172
230
|
|
|
173
231
|
@Override
|
|
174
|
-
public void unregisterService(String serviceName) {
|
|
232
|
+
public void unregisterService(String serviceName, @Nullable Promise promise) {
|
|
175
233
|
|
|
176
234
|
BonjourService bs = mPublishedServices.get(serviceName);
|
|
235
|
+
Disposable registerDisposable = mRegisteredDisposables.get(serviceName);
|
|
236
|
+
if (bs == null && registerDisposable == null) {
|
|
237
|
+
ZeroconfModule.reject(promise, ZeroconfModule.ERROR_DOMAIN_LIBRARY, ZeroconfModule.ERROR_CODE_NOT_PUBLISHED, "Service " + serviceName + " is not published", serviceName);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
177
241
|
if (bs != null) {
|
|
178
242
|
zeroconfModule.sendEvent(reactApplicationContext, ZeroconfModule.EVENT_UNREGISTERED, serviceInfoToMap(bs));
|
|
179
243
|
mPublishedServices.remove(serviceName);
|
|
180
244
|
}
|
|
181
245
|
|
|
182
|
-
Disposable registerDisposable = mRegisteredDisposables.get(serviceName);
|
|
183
246
|
if (registerDisposable != null && !registerDisposable.isDisposed()) {
|
|
184
247
|
registerDisposable.dispose();
|
|
185
|
-
mRegisteredDisposables.remove(serviceName);
|
|
186
248
|
}
|
|
249
|
+
mRegisteredDisposables.remove(serviceName);
|
|
187
250
|
|
|
251
|
+
// Disposing unregisters synchronously
|
|
252
|
+
if (promise != null) {
|
|
253
|
+
promise.resolve(bs != null ? serviceInfoToMap(bs) : null);
|
|
254
|
+
}
|
|
188
255
|
}
|
|
189
256
|
|
|
190
257
|
@Override
|
|
191
|
-
public void registerService(String type, String protocol, String domain, String name, int port, ReadableArray txt) {
|
|
258
|
+
public void registerService(String type, String protocol, String domain, String name, int port, ReadableArray txt, Promise promise) {
|
|
192
259
|
BonjourService bs = new BonjourService.Builder(0, 0, name, getServiceType(type, protocol), null)
|
|
193
260
|
.port(port)
|
|
194
261
|
.dnsRecords(getTxtRecordMap(txt))
|
|
195
262
|
.build();
|
|
196
263
|
|
|
264
|
+
// Resolved once, the registration stream can emit again later
|
|
265
|
+
final Promise[] registerPromise = { promise };
|
|
197
266
|
Disposable registerDisposable = rxDnssd.register(bs)
|
|
198
267
|
.subscribeOn(Schedulers.io())
|
|
199
268
|
.observeOn(AndroidSchedulers.mainThread())
|
|
@@ -202,9 +271,15 @@ public class DnssdImpl implements Zeroconf {
|
|
|
202
271
|
|
|
203
272
|
mPublishedServices.put(bs.getServiceName(), bs);
|
|
204
273
|
zeroconfModule.sendEvent(reactApplicationContext, ZeroconfModule.EVENT_PUBLISHED, serviceInfoToMap(bonjourService));
|
|
274
|
+
if (registerPromise[0] != null) {
|
|
275
|
+
registerPromise[0].resolve(serviceInfoToMap(bonjourService));
|
|
276
|
+
registerPromise[0] = null;
|
|
277
|
+
}
|
|
205
278
|
}, throwable -> {
|
|
206
279
|
Log.e(TAG, "Error registering service: ", throwable);
|
|
207
|
-
|
|
280
|
+
sendError(throwable, "Registering service " + name + " failed: ", name, null);
|
|
281
|
+
rejectWith(registerPromise[0], throwable, "Registering service " + name + " failed: ", name);
|
|
282
|
+
registerPromise[0] = null;
|
|
208
283
|
mRegisteredDisposables.remove(name);
|
|
209
284
|
});
|
|
210
285
|
|
|
@@ -214,7 +289,7 @@ public class DnssdImpl implements Zeroconf {
|
|
|
214
289
|
@Override
|
|
215
290
|
public void unregisterAllServices() {
|
|
216
291
|
for (String serviceName : new ArrayList<>(mRegisteredDisposables.keySet())) {
|
|
217
|
-
unregisterService(serviceName);
|
|
292
|
+
unregisterService(serviceName, null);
|
|
218
293
|
}
|
|
219
294
|
}
|
|
220
295
|
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
LOCAL_PATH := $(call my-dir)
|
|
2
2
|
|
|
3
|
-
commonSources := \
|
|
4
|
-
mdnsresponder/mDNSShared/dnssd_clientlib.c \
|
|
5
|
-
mdnsresponder/mDNSShared/dnssd_clientstub.c \
|
|
6
|
-
mdnsresponder/mDNSShared/dnssd_ipc.c
|
|
7
|
-
|
|
8
3
|
commonFlags := \
|
|
9
4
|
-O2 -g \
|
|
10
5
|
-fno-strict-aliasing \
|
|
@@ -73,23 +68,5 @@ LOCAL_LDLIBS := -llog
|
|
|
73
68
|
LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
|
|
74
69
|
include $(BUILD_SHARED_LIBRARY)
|
|
75
70
|
|
|
76
|
-
|
|
77
|
-
include $(CLEAR_VARS)
|
|
78
|
-
|
|
79
|
-
LOCAL_SDK_VERSION := 8
|
|
80
|
-
LOCAL_MODULE := jdns_sd
|
|
81
|
-
LOCAL_SRC_FILES := $(commonSources) JNISupport.c
|
|
82
|
-
|
|
83
|
-
LOCAL_C_INCLUDES := $(LOCAL_PATH)/mdnsresponder/mDNSShared \
|
|
84
|
-
$(LOCAL_PATH)
|
|
85
|
-
|
|
86
|
-
LOCAL_CFLAGS += $(commonFlags)
|
|
87
|
-
LOCAL_LDLIBS := -llog
|
|
88
|
-
LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
|
|
89
|
-
include $(BUILD_SHARED_LIBRARY)
|
|
90
|
-
|
|
91
|
-
# NOTE: Both libraries are built with 16KB page alignment for Android 15+ compatibility
|
|
92
|
-
# However, only jdns_sd_embedded is used at runtime (see DnssdImpl.java)
|
|
93
|
-
# - jdns_sd: Daemonic implementation (requires /dev/socket/mdnsd - not available on most devices)
|
|
94
|
-
# - jdns_sd_embedded: Embedded mDNSResponder (used for all Android versions)
|
|
71
|
+
# NOTE: Built with 16KB page alignment for Android 15+ compatibility
|
|
95
72
|
# See: https://developer.android.com/guide/practices/page-sizes
|