react-native-zeroconf 0.13.7 → 0.14.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.
Files changed (295) hide show
  1. package/NOTICE +49 -0
  2. package/README.md +473 -65
  3. package/android/build.gradle +28 -22
  4. package/android/src/main/AndroidManifest.xml +1 -2
  5. package/android/src/main/java/com/balthazargronon/RCTZeroconf/ZeroconfModule.java +5 -5
  6. package/android/src/main/java/com/balthazargronon/RCTZeroconf/rx2dnssd/DnssdImpl.java +19 -3
  7. package/android/src/main/java/com/github/druk/dnssd/BaseListener.java +33 -0
  8. package/android/src/main/java/com/github/druk/dnssd/BrowseListener.java +67 -0
  9. package/android/src/main/java/com/github/druk/dnssd/DNSRecord.java +47 -0
  10. package/android/src/main/java/com/github/druk/dnssd/DNSSD.java +650 -0
  11. package/android/src/main/java/com/github/druk/dnssd/DNSSDBindable.java +67 -0
  12. package/android/src/main/java/com/github/druk/dnssd/DNSSDEmbedded.java +135 -0
  13. package/android/src/main/java/com/github/druk/dnssd/DNSSDException.java +66 -0
  14. package/android/src/main/java/com/github/druk/dnssd/DNSSDRecordRegistrar.java +55 -0
  15. package/android/src/main/java/com/github/druk/dnssd/DNSSDRegistration.java +54 -0
  16. package/android/src/main/java/com/github/druk/dnssd/DNSSDService.java +35 -0
  17. package/android/src/main/java/com/github/druk/dnssd/DomainListener.java +57 -0
  18. package/android/src/main/java/com/github/druk/dnssd/InternalBrowseListener.java +76 -0
  19. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSD.java +870 -0
  20. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRecordRegistrar.java +30 -0
  21. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRegistration.java +34 -0
  22. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDService.java +29 -0
  23. package/android/src/main/java/com/github/druk/dnssd/InternalDomainListener.java +62 -0
  24. package/android/src/main/java/com/github/druk/dnssd/InternalQueryListener.java +61 -0
  25. package/android/src/main/java/com/github/druk/dnssd/InternalRegisterListener.java +51 -0
  26. package/android/src/main/java/com/github/druk/dnssd/InternalResolveListener.java +58 -0
  27. package/android/src/main/java/com/github/druk/dnssd/NSClass.java +16 -0
  28. package/android/src/main/java/com/github/druk/dnssd/NSType.java +58 -0
  29. package/android/src/main/java/com/github/druk/dnssd/QueryListener.java +54 -0
  30. package/android/src/main/java/com/github/druk/dnssd/RegisterListener.java +46 -0
  31. package/android/src/main/java/com/github/druk/dnssd/RegisterRecordListener.java +35 -0
  32. package/android/src/main/java/com/github/druk/dnssd/ResolveListener.java +55 -0
  33. package/android/src/main/java/com/github/druk/dnssd/TXTRecord.java +293 -0
  34. package/android/src/main/java/com/github/druk/rx2dnssd/BonjourService.java +400 -0
  35. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2BrowseListener.java +55 -0
  36. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2Dnssd.java +127 -0
  37. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdBindable.java +35 -0
  38. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdCommon.java +280 -0
  39. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdEmbedded.java +31 -0
  40. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2QueryListener.java +70 -0
  41. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2RegisterListener.java +47 -0
  42. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2ResolveListener.java +51 -0
  43. package/android/src/main/jni/Android.mk +95 -0
  44. package/android/src/main/jni/Application.mk +3 -0
  45. package/android/src/main/jni/DNSSD.java.h +290 -0
  46. package/android/src/main/jni/JNISupport.c +1140 -0
  47. package/android/src/main/jni/mdnsresponder/Android.bp +215 -0
  48. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.c +75 -0
  49. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.h +41 -0
  50. package/android/src/main/jni/mdnsresponder/Clients/Makefile +54 -0
  51. package/android/src/main/jni/mdnsresponder/Clients/ReadMe.txt +25 -0
  52. package/android/src/main/jni/mdnsresponder/Clients/dns-sd.c +1351 -0
  53. package/android/src/main/jni/mdnsresponder/LICENSE +13 -0
  54. package/android/src/main/jni/mdnsresponder/MODULE_LICENSE_APACHE2 +0 -0
  55. package/android/src/main/jni/mdnsresponder/Makefile +41 -0
  56. package/android/src/main/jni/mdnsresponder/NOTICE +13 -0
  57. package/android/src/main/jni/mdnsresponder/PrivateDNS.txt +275 -0
  58. package/android/src/main/jni/mdnsresponder/README.txt +166 -0
  59. package/android/src/main/jni/mdnsresponder/README.version +3 -0
  60. package/android/src/main/jni/mdnsresponder/android/caseMapping/Iphlpapi.h +1 -0
  61. package/android/src/main/jni/mdnsresponder/android/caseMapping/README +3 -0
  62. package/android/src/main/jni/mdnsresponder/android/caseMapping/Resource.h +1 -0
  63. package/android/src/main/jni/mdnsresponder/android/caseMapping/Ws2tcpip.h +1 -0
  64. package/android/src/main/jni/mdnsresponder/android/caseMapping/ipExport.h +1 -0
  65. package/android/src/main/jni/mdnsresponder/android/windows_firewall_dummy.c +10 -0
  66. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.c +3157 -0
  67. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.h +292 -0
  68. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSDigest.c +1579 -0
  69. package/android/src/main/jni/mdnsresponder/mDNSCore/Implementer Notes.txt +66 -0
  70. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNS.c +11469 -0
  71. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSDebug.h +164 -0
  72. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSEmbeddedAPI.h +2974 -0
  73. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.c +4969 -0
  74. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.h +132 -0
  75. package/android/src/main/jni/mdnsresponder/mDNSPosix/Client.c +223 -0
  76. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.c +91 -0
  77. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.h +18 -0
  78. package/android/src/main/jni/mdnsresponder/mDNSPosix/Identify.c +378 -0
  79. package/android/src/main/jni/mdnsresponder/mDNSPosix/Makefile +520 -0
  80. package/android/src/main/jni/mdnsresponder/mDNSPosix/NetMonitor.c +1010 -0
  81. package/android/src/main/jni/mdnsresponder/mDNSPosix/PosixDaemon.c +329 -0
  82. package/android/src/main/jni/mdnsresponder/mDNSPosix/ProxyResponder.c +300 -0
  83. package/android/src/main/jni/mdnsresponder/mDNSPosix/ReadMe.txt +314 -0
  84. package/android/src/main/jni/mdnsresponder/mDNSPosix/Responder.c +792 -0
  85. package/android/src/main/jni/mdnsresponder/mDNSPosix/Services.txt +36 -0
  86. package/android/src/main/jni/mdnsresponder/mDNSPosix/libnss_mdns.8 +148 -0
  87. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.c +1685 -0
  88. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.h +88 -0
  89. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.c +726 -0
  90. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.h +130 -0
  91. package/android/src/main/jni/mdnsresponder/mDNSPosix/mdnsd.sh +73 -0
  92. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_ReadMe.txt +125 -0
  93. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.c +2723 -0
  94. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf +13 -0
  95. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf.5 +135 -0
  96. package/android/src/main/jni/mdnsresponder/mDNSPosix/parselog.py +247 -0
  97. package/android/src/main/jni/mdnsresponder/mDNSResponder.sln +400 -0
  98. package/android/src/main/jni/mdnsresponder/mDNSShared/CommonServices.h +1537 -0
  99. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.c +3075 -0
  100. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.h +1607 -0
  101. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.c +319 -0
  102. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.h +90 -0
  103. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.c +220 -0
  104. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.h +18 -0
  105. package/android/src/main/jni/mdnsresponder/mDNSShared/dns-sd.1 +194 -0
  106. package/android/src/main/jni/mdnsresponder/mDNSShared/dns_sd.h +2452 -0
  107. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.8 +69 -0
  108. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.c +3146 -0
  109. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.conf +60 -0
  110. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.h +163 -0
  111. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_lexer.l +84 -0
  112. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_parser.y +585 -0
  113. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientlib.c +368 -0
  114. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientshim.c +802 -0
  115. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientstub.c +1988 -0
  116. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.c +161 -0
  117. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.h +219 -0
  118. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNS.1 +198 -0
  119. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSDebug.c +93 -0
  120. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSResponder.8 +116 -0
  121. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.c +4758 -0
  122. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.h +80 -0
  123. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.cpp +441 -0
  124. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.h +156 -0
  125. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.cpp +59 -0
  126. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.h +48 -0
  127. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp +301 -0
  128. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h +105 -0
  129. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.cpp +380 -0
  130. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.def +20 -0
  131. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.h +84 -0
  132. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.rc +141 -0
  133. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.vcproj +727 -0
  134. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelDll.rc +123 -0
  135. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.cpp +373 -0
  136. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.h +48 -0
  137. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.rc +123 -0
  138. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.vcproj +764 -0
  139. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.rc +270 -0
  140. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.vcproj +487 -0
  141. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.rc +134 -0
  142. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.vcproj +518 -0
  143. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.cpp +197 -0
  144. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.h +87 -0
  145. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.cpp +387 -0
  146. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.h +75 -0
  147. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.cpp +544 -0
  148. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.h +107 -0
  149. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.cpp +273 -0
  150. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.h +123 -0
  151. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.cpp +115 -0
  152. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.h +54 -0
  153. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.dll.manifest +10 -0
  154. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.exe.manifest +17 -0
  155. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.manifest +17 -0
  156. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.rc2 +13 -0
  157. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel64.manifest +17 -0
  158. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/EnergySaver.ico +0 -0
  159. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/controlpanel.ico +0 -0
  160. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/failure.ico +0 -0
  161. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/success.ico +0 -0
  162. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/resource.h +56 -0
  163. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.cpp +20 -0
  164. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.h +64 -0
  165. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.aps +0 -0
  166. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.rc +102 -0
  167. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dllmain.c +112 -0
  168. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.def +48 -0
  169. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.vcproj +472 -0
  170. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/resource.h +27 -0
  171. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/AssemblyInfo.cpp +84 -0
  172. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/PString.h +70 -0
  173. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.cpp +22 -0
  174. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.h +33 -0
  175. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.cpp +1234 -0
  176. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.h +1392 -0
  177. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.ico +0 -0
  178. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.rc +113 -0
  179. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.vcproj +446 -0
  180. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/resource.h +3 -0
  181. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.cpp +693 -0
  182. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.h +52 -0
  183. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.vcproj +324 -0
  184. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.cpp +208 -0
  185. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.def +35 -0
  186. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.idl +491 -0
  187. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rc +126 -0
  188. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rgs +11 -0
  189. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.vcproj +625 -0
  190. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSD.cpp +892 -0
  191. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.cpp +31 -0
  192. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.h +133 -0
  193. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.rgs +27 -0
  194. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.cpp +101 -0
  195. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.h +185 -0
  196. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.rgs +27 -0
  197. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.cpp +2095 -0
  198. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.h +429 -0
  199. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.rgs +27 -0
  200. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.cpp +344 -0
  201. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.h +102 -0
  202. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.cpp +381 -0
  203. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.h +203 -0
  204. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.rgs +27 -0
  205. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/_IDNSSDEvents_CP.h +358 -0
  206. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.c +51 -0
  207. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.h +49 -0
  208. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/resource.h +30 -0
  209. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/stdafx.h +88 -0
  210. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.sln +21 -0
  211. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.vcproj +253 -0
  212. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.sln +21 -0
  213. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.vcproj +267 -0
  214. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.ico +0 -0
  215. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc +323 -0
  216. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc2 +20 -0
  217. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Resource.h +53 -0
  218. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.cpp +71 -0
  219. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.h +62 -0
  220. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.cpp +111 -0
  221. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.h +68 -0
  222. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.cpp +1426 -0
  223. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.h +131 -0
  224. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.cpp +109 -0
  225. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.h +53 -0
  226. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.cpp +18 -0
  227. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.h +48 -0
  228. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcc +37 -0
  229. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcp +868 -0
  230. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcw +29 -0
  231. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.ico +0 -0
  232. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc +194 -0
  233. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc2 +13 -0
  234. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/newres.h +28 -0
  235. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/resource.h +22 -0
  236. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.cpp +92 -0
  237. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.h +57 -0
  238. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.cpp +394 -0
  239. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.h +84 -0
  240. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.cpp +18 -0
  241. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.h +46 -0
  242. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/Java.vcproj +111 -0
  243. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/jdns_sd.rc +62 -0
  244. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile +143 -0
  245. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile64 +143 -0
  246. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.aps +0 -0
  247. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.c +581 -0
  248. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.rc +103 -0
  249. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.vcproj +409 -0
  250. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/Prefix.h +28 -0
  251. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/resource.h +27 -0
  252. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.c +128 -0
  253. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.h +70 -0
  254. package/android/src/main/jni/mdnsresponder/mDNSWindows/README.txt +85 -0
  255. package/android/src/main/jni/mdnsresponder/mDNSWindows/RegNames.h +57 -0
  256. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.c +338 -0
  257. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.h +42 -0
  258. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLog.mc +11 -0
  259. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLogMessages.bin +0 -0
  260. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.cpp +484 -0
  261. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.h +79 -0
  262. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Prefix.h +30 -0
  263. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.aps +0 -0
  264. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.c +2669 -0
  265. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.h +30 -0
  266. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.mcp +0 -0
  267. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.rc +114 -0
  268. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.vcproj +562 -0
  269. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/main.c +32 -0
  270. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder.manifest +12 -0
  271. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder64.manifest +12 -0
  272. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resource.h +17 -0
  273. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resrc1.h +15 -0
  274. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.cpp +165 -0
  275. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.h +36 -0
  276. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.cpp +93 -0
  277. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.h +34 -0
  278. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinVersRes.h +35 -0
  279. package/android/src/main/jni/mdnsresponder/mDNSWindows/isocode.h +135 -0
  280. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.c +268 -0
  281. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.h +54 -0
  282. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.c +5200 -0
  283. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.h +208 -0
  284. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/ReadMe.txt +15 -0
  285. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.aps +0 -0
  286. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.c +2430 -0
  287. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.def +24 -0
  288. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.rc +104 -0
  289. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.vcproj +457 -0
  290. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/resource.h +27 -0
  291. package/android/src/main/jni/mdnsresponder/mdnsd.rc +7 -0
  292. package/android/src/main/jni/nameser.h +588 -0
  293. package/dist/index.js +148 -1
  294. package/package.json +23 -17
  295. package/src/index.js +166 -0
package/dist/index.js CHANGED
@@ -1 +1,148 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.ImplType=undefined;var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[typeof Symbol==='function'?Symbol.iterator:'@@iterator'](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"])_i["return"]();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if((typeof Symbol==='function'?Symbol.iterator:'@@iterator')in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _reactNative=require('react-native');var _events=require('events');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var RNZeroconf=_reactNative.NativeModules.RNZeroconf;var ImplType=exports.ImplType={NSD:'NSD',DNSSD:'DNSSD'};var Zeroconf=function(_EventEmitter){_inherits(Zeroconf,_EventEmitter);function Zeroconf(props){_classCallCheck(this,Zeroconf);var _this=_possibleConstructorReturn(this,(Zeroconf.__proto__||Object.getPrototypeOf(Zeroconf)).call(this,props));_this._services={};_this._publishedServices={};_this._dListeners={};_this.addDeviceListeners();return _this;}_createClass(Zeroconf,[{key:'addDeviceListeners',value:function addDeviceListeners(){var _this2=this;if(Object.keys(this._dListeners).length){return this.emit('error',new Error('RNZeroconf listeners already in place.'));}this._dListeners.start=_reactNative.DeviceEventEmitter.addListener('RNZeroconfStart',function(){return _this2.emit('start');});this._dListeners.stop=_reactNative.DeviceEventEmitter.addListener('RNZeroconfStop',function(){return _this2.emit('stop');});this._dListeners.error=_reactNative.DeviceEventEmitter.addListener('RNZeroconfError',function(err){if(_this2.listenerCount('error')>0){_this2.emit('error',new Error(err));}});this._dListeners.found=_reactNative.DeviceEventEmitter.addListener('RNZeroconfFound',function(service){if(!service||!service.name){return;}var name=service.name;_this2._services[name]=service;_this2.emit('found',name);_this2.emit('update');});this._dListeners.remove=_reactNative.DeviceEventEmitter.addListener('RNZeroconfRemove',function(service){if(!service||!service.name){return;}var name=service.name;delete _this2._services[name];_this2.emit('remove',name);_this2.emit('update');});this._dListeners.resolved=_reactNative.DeviceEventEmitter.addListener('RNZeroconfResolved',function(service){if(!service||!service.name){return;}_this2._services[service.name]=service;_this2.emit('resolved',service);_this2.emit('update');});this._dListeners.published=_reactNative.DeviceEventEmitter.addListener('RNZeroconfServiceRegistered',function(service){if(!service||!service.name){return;}_this2._publishedServices[service.name]=service;_this2.emit('published',service);});this._dListeners.unpublished=_reactNative.DeviceEventEmitter.addListener('RNZeroconfServiceUnregistered',function(service){if(!service||!service.name){return;}delete _this2._publishedServices[service.name];_this2.emit('unpublished',service);});}},{key:'removeDeviceListeners',value:function removeDeviceListeners(){var _this3=this;Object.keys(this._dListeners).forEach(function(name){return _this3._dListeners[name].remove();});this._dListeners={};}},{key:'getServices',value:function getServices(){return this._services;}},{key:'scan',value:function scan(){var type=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'http';var protocol=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'tcp';var domain=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'local.';var implType=arguments.length>3&&arguments[3]!==undefined?arguments[3]:ImplType.NSD;this._services={};this.emit('update');if(_reactNative.Platform.OS==='android'){RNZeroconf.scan(type,protocol,domain,implType);}else{RNZeroconf.scan(type,protocol,domain);}}},{key:'stop',value:function stop(){var implType=arguments.length>0&&arguments[0]!==undefined?arguments[0]:ImplType.NSD;if(_reactNative.Platform.OS==='android'){RNZeroconf.stop(implType);}else{RNZeroconf.stop();}}},{key:'publishService',value:function publishService(type,protocol){var domain=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'local.';var name=arguments[3];var port=arguments[4];var txt=arguments.length>5&&arguments[5]!==undefined?arguments[5]:{};var implType=arguments.length>6&&arguments[6]!==undefined?arguments[6]:ImplType.NSD;if(Object.keys(txt).length!==0){Object.entries(txt).map(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];return txt[key]=value.toString();});}if(_reactNative.Platform.OS==='android'){RNZeroconf.registerService(type,protocol,domain,name,port,txt,implType);}else{RNZeroconf.registerService(type,protocol,domain,name,port,txt);}}},{key:'unpublishService',value:function unpublishService(name){var implType=arguments.length>1&&arguments[1]!==undefined?arguments[1]:ImplType.NSD;if(_reactNative.Platform.OS==='android'){RNZeroconf.unregisterService(name,implType);}else{RNZeroconf.unregisterService(name);}}}]);return Zeroconf;}(_events.EventEmitter);exports.default=Zeroconf;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ImplType = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _events = require("events");
9
+ const RNZeroconf = _reactNative.NativeModules.RNZeroconf;
10
+ const ImplType = exports.ImplType = {
11
+ NSD: 'NSD',
12
+ DNSSD: 'DNSSD'
13
+ };
14
+ class Zeroconf extends _events.EventEmitter {
15
+ constructor(props) {
16
+ super(props);
17
+ this._services = {};
18
+ this._publishedServices = {};
19
+ this._dListeners = {};
20
+ this.addDeviceListeners();
21
+ }
22
+
23
+ /**
24
+ * Add all event listeners
25
+ */
26
+ addDeviceListeners() {
27
+ if (Object.keys(this._dListeners).length) {
28
+ return this.emit('error', new Error('RNZeroconf listeners already in place.'));
29
+ }
30
+ this._dListeners.start = _reactNative.DeviceEventEmitter.addListener('RNZeroconfStart', () => this.emit('start'));
31
+ this._dListeners.stop = _reactNative.DeviceEventEmitter.addListener('RNZeroconfStop', () => this.emit('stop'));
32
+ this._dListeners.error = _reactNative.DeviceEventEmitter.addListener('RNZeroconfError', err => {
33
+ if (this.listenerCount('error') > 0) {
34
+ this.emit('error', new Error(err));
35
+ }
36
+ });
37
+ this._dListeners.found = _reactNative.DeviceEventEmitter.addListener('RNZeroconfFound', service => {
38
+ if (!service || !service.name) {
39
+ return;
40
+ }
41
+ const {
42
+ name
43
+ } = service;
44
+ this._services[name] = service;
45
+ this.emit('found', name);
46
+ this.emit('update');
47
+ });
48
+ this._dListeners.remove = _reactNative.DeviceEventEmitter.addListener('RNZeroconfRemove', service => {
49
+ if (!service || !service.name) {
50
+ return;
51
+ }
52
+ const {
53
+ name
54
+ } = service;
55
+ delete this._services[name];
56
+ this.emit('remove', name);
57
+ this.emit('update');
58
+ });
59
+ this._dListeners.resolved = _reactNative.DeviceEventEmitter.addListener('RNZeroconfResolved', service => {
60
+ if (!service || !service.name) {
61
+ return;
62
+ }
63
+ this._services[service.name] = service;
64
+ this.emit('resolved', service);
65
+ this.emit('update');
66
+ });
67
+ this._dListeners.published = _reactNative.DeviceEventEmitter.addListener('RNZeroconfServiceRegistered', service => {
68
+ if (!service || !service.name) {
69
+ return;
70
+ }
71
+ this._publishedServices[service.name] = service;
72
+ this.emit('published', service);
73
+ });
74
+ this._dListeners.unpublished = _reactNative.DeviceEventEmitter.addListener('RNZeroconfServiceUnregistered', service => {
75
+ if (!service || !service.name) {
76
+ return;
77
+ }
78
+ delete this._publishedServices[service.name];
79
+ this.emit('unpublished', service);
80
+ });
81
+ }
82
+
83
+ /**
84
+ * Remove all event listeners and clean map
85
+ */
86
+ removeDeviceListeners() {
87
+ Object.keys(this._dListeners).forEach(name => this._dListeners[name].remove());
88
+ this._dListeners = {};
89
+ }
90
+
91
+ /**
92
+ * Get all the services already resolved
93
+ */
94
+ getServices() {
95
+ return this._services;
96
+ }
97
+
98
+ /**
99
+ * Scan for Zeroconf services,
100
+ * Defaults to _http._tcp. on local domain
101
+ */
102
+ scan(type = 'http', protocol = 'tcp', domain = 'local.', implType = ImplType.NSD) {
103
+ this._services = {};
104
+ this.emit('update');
105
+ if (_reactNative.Platform.OS === 'android') {
106
+ RNZeroconf.scan(type, protocol, domain, implType);
107
+ } else {
108
+ RNZeroconf.scan(type, protocol, domain);
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Stop current scan if any
114
+ */
115
+ stop(implType = ImplType.NSD) {
116
+ if (_reactNative.Platform.OS === 'android') {
117
+ RNZeroconf.stop(implType);
118
+ } else {
119
+ RNZeroconf.stop();
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Publish a service
125
+ */
126
+ publishService(type, protocol, domain = 'local.', name, port, txt = {}, implType = ImplType.NSD) {
127
+ if (Object.keys(txt).length !== 0) {
128
+ Object.entries(txt).map(([key, value]) => txt[key] = value.toString());
129
+ }
130
+ if (_reactNative.Platform.OS === 'android') {
131
+ RNZeroconf.registerService(type, protocol, domain, name, port, txt, implType);
132
+ } else {
133
+ RNZeroconf.registerService(type, protocol, domain, name, port, txt);
134
+ }
135
+ }
136
+
137
+ /**
138
+ * Unpublish a service
139
+ */
140
+ unpublishService(name, implType = ImplType.NSD) {
141
+ if (_reactNative.Platform.OS === 'android') {
142
+ RNZeroconf.unregisterService(name, implType);
143
+ } else {
144
+ RNZeroconf.unregisterService(name);
145
+ }
146
+ }
147
+ }
148
+ exports.default = Zeroconf;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "react-native-zeroconf",
3
- "version": "0.13.7",
3
+ "version": "0.14.0",
4
4
  "description": "A Zeroconf discovery utility for react-native",
5
5
  "main": "dist",
6
6
  "scripts": {
7
7
  "lint": "eslint src/*.js",
8
+ "format": "prettier --write src/*.js",
8
9
  "build": "rm -rf dist && mkdir dist && babel src -o dist/index.js"
9
10
  },
10
11
  "repository": {
@@ -12,10 +13,12 @@
12
13
  "url": "git://github.com/Apercu/react-native-zeroconf.git"
13
14
  },
14
15
  "files": [
16
+ "src",
15
17
  "dist",
16
18
  "android",
17
19
  "ios",
18
- "react-native-zeroconf.podspec"
20
+ "react-native-zeroconf.podspec",
21
+ "NOTICE"
19
22
  ],
20
23
  "keywords": [
21
24
  "react-component",
@@ -40,23 +43,26 @@
40
43
  "react-native": ">=0.60"
41
44
  },
42
45
  "devDependencies": {
43
- "babel-cli": "^6.26.0",
44
- "babel-eslint": "^10.0.3",
45
- "babel-preset-react-native": "^4.0.1",
46
- "eslint": "^6.7.2",
47
- "eslint-config-prettier": "^6.7.0",
48
- "eslint-config-zavatta": "^6.0.3",
49
- "prettier": "^1.19.1"
50
- },
51
- "eslintConfig": {
52
- "extends": [
53
- "zavatta",
54
- "prettier"
55
- ]
46
+ "@babel/cli": "^7.23.0",
47
+ "@babel/core": "^7.23.0",
48
+ "@babel/preset-env": "^7.23.0",
49
+ "@babel/preset-flow": "^7.23.0",
50
+ "eslint": "^8.57.0",
51
+ "eslint-config-prettier": "^9.1.0",
52
+ "prettier": "^3.2.0"
56
53
  },
57
54
  "babel": {
58
55
  "presets": [
59
- "react-native"
56
+ [
57
+ "@babel/preset-env",
58
+ {
59
+ "targets": {
60
+ "node": "14"
61
+ }
62
+ }
63
+ ],
64
+ "@babel/preset-flow"
60
65
  ]
61
- }
66
+ },
67
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
62
68
  }
package/src/index.js ADDED
@@ -0,0 +1,166 @@
1
+ import { Platform, NativeModules, DeviceEventEmitter } from 'react-native'
2
+ import { EventEmitter } from 'events'
3
+
4
+ const RNZeroconf = NativeModules.RNZeroconf
5
+
6
+ export const ImplType = {
7
+ NSD: 'NSD',
8
+ DNSSD: 'DNSSD',
9
+ }
10
+
11
+ export default class Zeroconf extends EventEmitter {
12
+ constructor(props) {
13
+ super(props)
14
+
15
+ this._services = {}
16
+ this._publishedServices = {}
17
+ this._dListeners = {}
18
+
19
+ this.addDeviceListeners()
20
+ }
21
+
22
+ /**
23
+ * Add all event listeners
24
+ */
25
+ addDeviceListeners() {
26
+ if (Object.keys(this._dListeners).length) {
27
+ return this.emit('error', new Error('RNZeroconf listeners already in place.'))
28
+ }
29
+
30
+ this._dListeners.start = DeviceEventEmitter.addListener('RNZeroconfStart', () =>
31
+ this.emit('start'),
32
+ )
33
+
34
+ this._dListeners.stop = DeviceEventEmitter.addListener('RNZeroconfStop', () =>
35
+ this.emit('stop'),
36
+ )
37
+
38
+ this._dListeners.error = DeviceEventEmitter.addListener('RNZeroconfError', err => {
39
+ if (this.listenerCount('error') > 0) {
40
+ this.emit('error', new Error(err))
41
+ }
42
+ })
43
+
44
+ this._dListeners.found = DeviceEventEmitter.addListener('RNZeroconfFound', service => {
45
+ if (!service || !service.name) {
46
+ return
47
+ }
48
+ const { name } = service
49
+
50
+ this._services[name] = service
51
+ this.emit('found', name)
52
+ this.emit('update')
53
+ })
54
+
55
+ this._dListeners.remove = DeviceEventEmitter.addListener('RNZeroconfRemove', service => {
56
+ if (!service || !service.name) {
57
+ return
58
+ }
59
+ const { name } = service
60
+
61
+ delete this._services[name]
62
+
63
+ this.emit('remove', name)
64
+ this.emit('update')
65
+ })
66
+
67
+ this._dListeners.resolved = DeviceEventEmitter.addListener('RNZeroconfResolved', service => {
68
+ if (!service || !service.name) {
69
+ return
70
+ }
71
+
72
+ this._services[service.name] = service
73
+ this.emit('resolved', service)
74
+ this.emit('update')
75
+ })
76
+
77
+ this._dListeners.published = DeviceEventEmitter.addListener(
78
+ 'RNZeroconfServiceRegistered',
79
+ service => {
80
+ if (!service || !service.name) {
81
+ return
82
+ }
83
+
84
+ this._publishedServices[service.name] = service
85
+ this.emit('published', service)
86
+ },
87
+ )
88
+
89
+ this._dListeners.unpublished = DeviceEventEmitter.addListener(
90
+ 'RNZeroconfServiceUnregistered',
91
+ service => {
92
+ if (!service || !service.name) {
93
+ return
94
+ }
95
+
96
+ delete this._publishedServices[service.name]
97
+ this.emit('unpublished', service)
98
+ },
99
+ )
100
+ }
101
+
102
+ /**
103
+ * Remove all event listeners and clean map
104
+ */
105
+ removeDeviceListeners() {
106
+ Object.keys(this._dListeners).forEach(name => this._dListeners[name].remove())
107
+ this._dListeners = {}
108
+ }
109
+
110
+ /**
111
+ * Get all the services already resolved
112
+ */
113
+ getServices() {
114
+ return this._services
115
+ }
116
+
117
+ /**
118
+ * Scan for Zeroconf services,
119
+ * Defaults to _http._tcp. on local domain
120
+ */
121
+ scan(type = 'http', protocol = 'tcp', domain = 'local.', implType = ImplType.NSD) {
122
+ this._services = {}
123
+ this.emit('update')
124
+ if (Platform.OS === 'android') {
125
+ RNZeroconf.scan(type, protocol, domain, implType)
126
+ } else {
127
+ RNZeroconf.scan(type, protocol, domain)
128
+ }
129
+ }
130
+
131
+ /**
132
+ * Stop current scan if any
133
+ */
134
+ stop(implType = ImplType.NSD) {
135
+ if (Platform.OS === 'android') {
136
+ RNZeroconf.stop(implType)
137
+ } else {
138
+ RNZeroconf.stop()
139
+ }
140
+ }
141
+
142
+ /**
143
+ * Publish a service
144
+ */
145
+ publishService(type, protocol, domain = 'local.', name, port, txt = {}, implType = ImplType.NSD) {
146
+ if (Object.keys(txt).length !== 0) {
147
+ Object.entries(txt).map(([key, value]) => (txt[key] = value.toString()))
148
+ }
149
+ if (Platform.OS === 'android') {
150
+ RNZeroconf.registerService(type, protocol, domain, name, port, txt, implType)
151
+ } else {
152
+ RNZeroconf.registerService(type, protocol, domain, name, port, txt)
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Unpublish a service
158
+ */
159
+ unpublishService(name, implType = ImplType.NSD) {
160
+ if (Platform.OS === 'android') {
161
+ RNZeroconf.unregisterService(name, implType)
162
+ } else {
163
+ RNZeroconf.unregisterService(name)
164
+ }
165
+ }
166
+ }