react-native-zeroconf 0.13.8 → 0.15.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 (300) hide show
  1. package/NOTICE +49 -0
  2. package/README.md +489 -65
  3. package/android/build.gradle +23 -24
  4. package/android/src/main/AndroidManifest.xml +5 -2
  5. package/android/src/main/java/com/balthazargronon/RCTZeroconf/ZeroConfImplFactory.java +10 -3
  6. package/android/src/main/java/com/balthazargronon/RCTZeroconf/ZeroconfModule.java +3 -2
  7. package/android/src/main/java/com/balthazargronon/RCTZeroconf/nsd/NsdServiceImpl.java +83 -22
  8. package/android/src/main/java/com/balthazargronon/RCTZeroconf/rx2dnssd/DnssdImpl.java +61 -16
  9. package/android/src/main/java/com/github/druk/dnssd/BaseListener.java +33 -0
  10. package/android/src/main/java/com/github/druk/dnssd/BrowseListener.java +67 -0
  11. package/android/src/main/java/com/github/druk/dnssd/DNSRecord.java +47 -0
  12. package/android/src/main/java/com/github/druk/dnssd/DNSSD.java +650 -0
  13. package/android/src/main/java/com/github/druk/dnssd/DNSSDBindable.java +67 -0
  14. package/android/src/main/java/com/github/druk/dnssd/DNSSDEmbedded.java +135 -0
  15. package/android/src/main/java/com/github/druk/dnssd/DNSSDException.java +66 -0
  16. package/android/src/main/java/com/github/druk/dnssd/DNSSDRecordRegistrar.java +55 -0
  17. package/android/src/main/java/com/github/druk/dnssd/DNSSDRegistration.java +54 -0
  18. package/android/src/main/java/com/github/druk/dnssd/DNSSDService.java +35 -0
  19. package/android/src/main/java/com/github/druk/dnssd/DomainListener.java +57 -0
  20. package/android/src/main/java/com/github/druk/dnssd/InternalBrowseListener.java +76 -0
  21. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSD.java +870 -0
  22. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRecordRegistrar.java +30 -0
  23. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRegistration.java +34 -0
  24. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDService.java +29 -0
  25. package/android/src/main/java/com/github/druk/dnssd/InternalDomainListener.java +62 -0
  26. package/android/src/main/java/com/github/druk/dnssd/InternalQueryListener.java +61 -0
  27. package/android/src/main/java/com/github/druk/dnssd/InternalRegisterListener.java +51 -0
  28. package/android/src/main/java/com/github/druk/dnssd/InternalResolveListener.java +58 -0
  29. package/android/src/main/java/com/github/druk/dnssd/NSClass.java +16 -0
  30. package/android/src/main/java/com/github/druk/dnssd/NSType.java +58 -0
  31. package/android/src/main/java/com/github/druk/dnssd/QueryListener.java +54 -0
  32. package/android/src/main/java/com/github/druk/dnssd/RegisterListener.java +46 -0
  33. package/android/src/main/java/com/github/druk/dnssd/RegisterRecordListener.java +35 -0
  34. package/android/src/main/java/com/github/druk/dnssd/ResolveListener.java +55 -0
  35. package/android/src/main/java/com/github/druk/dnssd/TXTRecord.java +293 -0
  36. package/android/src/main/java/com/github/druk/rx2dnssd/BonjourService.java +400 -0
  37. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2BrowseListener.java +55 -0
  38. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2Dnssd.java +127 -0
  39. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdBindable.java +35 -0
  40. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdCommon.java +280 -0
  41. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdEmbedded.java +31 -0
  42. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2QueryListener.java +70 -0
  43. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2RegisterListener.java +47 -0
  44. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2ResolveListener.java +51 -0
  45. package/android/src/main/jni/Android.mk +95 -0
  46. package/android/src/main/jni/Application.mk +3 -0
  47. package/android/src/main/jni/DNSSD.java.h +290 -0
  48. package/android/src/main/jni/JNISupport.c +1140 -0
  49. package/android/src/main/jni/mdnsresponder/Android.bp +215 -0
  50. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.c +75 -0
  51. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.h +41 -0
  52. package/android/src/main/jni/mdnsresponder/Clients/Makefile +54 -0
  53. package/android/src/main/jni/mdnsresponder/Clients/ReadMe.txt +25 -0
  54. package/android/src/main/jni/mdnsresponder/Clients/dns-sd.c +1351 -0
  55. package/android/src/main/jni/mdnsresponder/LICENSE +13 -0
  56. package/android/src/main/jni/mdnsresponder/MODULE_LICENSE_APACHE2 +0 -0
  57. package/android/src/main/jni/mdnsresponder/Makefile +41 -0
  58. package/android/src/main/jni/mdnsresponder/NOTICE +13 -0
  59. package/android/src/main/jni/mdnsresponder/PrivateDNS.txt +275 -0
  60. package/android/src/main/jni/mdnsresponder/README.txt +166 -0
  61. package/android/src/main/jni/mdnsresponder/README.version +3 -0
  62. package/android/src/main/jni/mdnsresponder/android/caseMapping/Iphlpapi.h +1 -0
  63. package/android/src/main/jni/mdnsresponder/android/caseMapping/README +3 -0
  64. package/android/src/main/jni/mdnsresponder/android/caseMapping/Resource.h +1 -0
  65. package/android/src/main/jni/mdnsresponder/android/caseMapping/Ws2tcpip.h +1 -0
  66. package/android/src/main/jni/mdnsresponder/android/caseMapping/ipExport.h +1 -0
  67. package/android/src/main/jni/mdnsresponder/android/windows_firewall_dummy.c +10 -0
  68. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.c +3157 -0
  69. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.h +292 -0
  70. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSDigest.c +1579 -0
  71. package/android/src/main/jni/mdnsresponder/mDNSCore/Implementer Notes.txt +66 -0
  72. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNS.c +11469 -0
  73. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSDebug.h +164 -0
  74. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSEmbeddedAPI.h +2974 -0
  75. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.c +4969 -0
  76. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.h +132 -0
  77. package/android/src/main/jni/mdnsresponder/mDNSPosix/Client.c +223 -0
  78. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.c +91 -0
  79. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.h +18 -0
  80. package/android/src/main/jni/mdnsresponder/mDNSPosix/Identify.c +378 -0
  81. package/android/src/main/jni/mdnsresponder/mDNSPosix/Makefile +520 -0
  82. package/android/src/main/jni/mdnsresponder/mDNSPosix/NetMonitor.c +1010 -0
  83. package/android/src/main/jni/mdnsresponder/mDNSPosix/PosixDaemon.c +329 -0
  84. package/android/src/main/jni/mdnsresponder/mDNSPosix/ProxyResponder.c +300 -0
  85. package/android/src/main/jni/mdnsresponder/mDNSPosix/ReadMe.txt +314 -0
  86. package/android/src/main/jni/mdnsresponder/mDNSPosix/Responder.c +792 -0
  87. package/android/src/main/jni/mdnsresponder/mDNSPosix/Services.txt +36 -0
  88. package/android/src/main/jni/mdnsresponder/mDNSPosix/libnss_mdns.8 +148 -0
  89. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.c +1685 -0
  90. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.h +88 -0
  91. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.c +726 -0
  92. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.h +130 -0
  93. package/android/src/main/jni/mdnsresponder/mDNSPosix/mdnsd.sh +73 -0
  94. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_ReadMe.txt +125 -0
  95. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.c +2723 -0
  96. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf +13 -0
  97. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf.5 +135 -0
  98. package/android/src/main/jni/mdnsresponder/mDNSPosix/parselog.py +247 -0
  99. package/android/src/main/jni/mdnsresponder/mDNSResponder.sln +400 -0
  100. package/android/src/main/jni/mdnsresponder/mDNSShared/CommonServices.h +1537 -0
  101. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.c +3075 -0
  102. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.h +1607 -0
  103. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.c +319 -0
  104. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.h +90 -0
  105. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.c +220 -0
  106. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.h +18 -0
  107. package/android/src/main/jni/mdnsresponder/mDNSShared/dns-sd.1 +194 -0
  108. package/android/src/main/jni/mdnsresponder/mDNSShared/dns_sd.h +2452 -0
  109. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.8 +69 -0
  110. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.c +3146 -0
  111. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.conf +60 -0
  112. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.h +163 -0
  113. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_lexer.l +84 -0
  114. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_parser.y +585 -0
  115. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientlib.c +368 -0
  116. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientshim.c +802 -0
  117. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientstub.c +1988 -0
  118. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.c +161 -0
  119. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.h +219 -0
  120. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNS.1 +198 -0
  121. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSDebug.c +93 -0
  122. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSResponder.8 +116 -0
  123. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.c +4758 -0
  124. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.h +80 -0
  125. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.cpp +441 -0
  126. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.h +156 -0
  127. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.cpp +59 -0
  128. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.h +48 -0
  129. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp +301 -0
  130. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h +105 -0
  131. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.cpp +380 -0
  132. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.def +20 -0
  133. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.h +84 -0
  134. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.rc +141 -0
  135. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.vcproj +727 -0
  136. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelDll.rc +123 -0
  137. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.cpp +373 -0
  138. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.h +48 -0
  139. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.rc +123 -0
  140. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.vcproj +764 -0
  141. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.rc +270 -0
  142. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.vcproj +487 -0
  143. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.rc +134 -0
  144. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.vcproj +518 -0
  145. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.cpp +197 -0
  146. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.h +87 -0
  147. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.cpp +387 -0
  148. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.h +75 -0
  149. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.cpp +544 -0
  150. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.h +107 -0
  151. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.cpp +273 -0
  152. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.h +123 -0
  153. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.cpp +115 -0
  154. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.h +54 -0
  155. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.dll.manifest +10 -0
  156. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.exe.manifest +17 -0
  157. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.manifest +17 -0
  158. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.rc2 +13 -0
  159. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel64.manifest +17 -0
  160. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/EnergySaver.ico +0 -0
  161. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/controlpanel.ico +0 -0
  162. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/failure.ico +0 -0
  163. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/success.ico +0 -0
  164. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/resource.h +56 -0
  165. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.cpp +20 -0
  166. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.h +64 -0
  167. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.aps +0 -0
  168. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.rc +102 -0
  169. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dllmain.c +112 -0
  170. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.def +48 -0
  171. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.vcproj +472 -0
  172. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/resource.h +27 -0
  173. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/AssemblyInfo.cpp +84 -0
  174. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/PString.h +70 -0
  175. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.cpp +22 -0
  176. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.h +33 -0
  177. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.cpp +1234 -0
  178. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.h +1392 -0
  179. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.ico +0 -0
  180. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.rc +113 -0
  181. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.vcproj +446 -0
  182. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/resource.h +3 -0
  183. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.cpp +693 -0
  184. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.h +52 -0
  185. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.vcproj +324 -0
  186. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.cpp +208 -0
  187. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.def +35 -0
  188. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.idl +491 -0
  189. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rc +126 -0
  190. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rgs +11 -0
  191. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.vcproj +625 -0
  192. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSD.cpp +892 -0
  193. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.cpp +31 -0
  194. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.h +133 -0
  195. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.rgs +27 -0
  196. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.cpp +101 -0
  197. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.h +185 -0
  198. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.rgs +27 -0
  199. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.cpp +2095 -0
  200. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.h +429 -0
  201. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.rgs +27 -0
  202. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.cpp +344 -0
  203. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.h +102 -0
  204. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.cpp +381 -0
  205. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.h +203 -0
  206. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.rgs +27 -0
  207. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/_IDNSSDEvents_CP.h +358 -0
  208. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.c +51 -0
  209. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.h +49 -0
  210. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/resource.h +30 -0
  211. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/stdafx.h +88 -0
  212. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.sln +21 -0
  213. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.vcproj +253 -0
  214. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.sln +21 -0
  215. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.vcproj +267 -0
  216. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.ico +0 -0
  217. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc +323 -0
  218. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc2 +20 -0
  219. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Resource.h +53 -0
  220. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.cpp +71 -0
  221. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.h +62 -0
  222. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.cpp +111 -0
  223. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.h +68 -0
  224. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.cpp +1426 -0
  225. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.h +131 -0
  226. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.cpp +109 -0
  227. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.h +53 -0
  228. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.cpp +18 -0
  229. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.h +48 -0
  230. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcc +37 -0
  231. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcp +868 -0
  232. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcw +29 -0
  233. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.ico +0 -0
  234. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc +194 -0
  235. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc2 +13 -0
  236. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/newres.h +28 -0
  237. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/resource.h +22 -0
  238. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.cpp +92 -0
  239. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.h +57 -0
  240. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.cpp +394 -0
  241. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.h +84 -0
  242. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.cpp +18 -0
  243. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.h +46 -0
  244. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/Java.vcproj +111 -0
  245. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/jdns_sd.rc +62 -0
  246. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile +143 -0
  247. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile64 +143 -0
  248. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.aps +0 -0
  249. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.c +581 -0
  250. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.rc +103 -0
  251. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.vcproj +409 -0
  252. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/Prefix.h +28 -0
  253. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/resource.h +27 -0
  254. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.c +128 -0
  255. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.h +70 -0
  256. package/android/src/main/jni/mdnsresponder/mDNSWindows/README.txt +85 -0
  257. package/android/src/main/jni/mdnsresponder/mDNSWindows/RegNames.h +57 -0
  258. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.c +338 -0
  259. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.h +42 -0
  260. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLog.mc +11 -0
  261. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLogMessages.bin +0 -0
  262. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.cpp +484 -0
  263. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.h +79 -0
  264. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Prefix.h +30 -0
  265. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.aps +0 -0
  266. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.c +2669 -0
  267. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.h +30 -0
  268. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.mcp +0 -0
  269. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.rc +114 -0
  270. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.vcproj +562 -0
  271. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/main.c +32 -0
  272. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder.manifest +12 -0
  273. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder64.manifest +12 -0
  274. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resource.h +17 -0
  275. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resrc1.h +15 -0
  276. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.cpp +165 -0
  277. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.h +36 -0
  278. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.cpp +93 -0
  279. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.h +34 -0
  280. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinVersRes.h +35 -0
  281. package/android/src/main/jni/mdnsresponder/mDNSWindows/isocode.h +135 -0
  282. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.c +268 -0
  283. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.h +54 -0
  284. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.c +5200 -0
  285. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.h +208 -0
  286. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/ReadMe.txt +15 -0
  287. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.aps +0 -0
  288. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.c +2430 -0
  289. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.def +24 -0
  290. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.rc +104 -0
  291. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.vcproj +457 -0
  292. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/resource.h +27 -0
  293. package/android/src/main/jni/mdnsresponder/mdnsd.rc +7 -0
  294. package/android/src/main/jni/nameser.h +588 -0
  295. package/dist/index.js +160 -1
  296. package/index.d.ts +91 -0
  297. package/ios/RNZeroconf/RNNetServiceSerializer.m +7 -3
  298. package/ios/RNZeroconf/RNZeroconf.m +8 -0
  299. package/package.json +25 -17
  300. package/src/index.js +183 -0
@@ -0,0 +1,892 @@
1
+ // DNSSD.cpp : Implementation of CDNSSD
2
+
3
+ #include "stdafx.h"
4
+ #include "DNSSD.h"
5
+ #include "DNSSDService.h"
6
+ #include "TXTRecord.h"
7
+ #include <dns_sd.h>
8
+ #include <CommonServices.h>
9
+ #include <DebugServices.h>
10
+ #include "StringServices.h"
11
+
12
+
13
+ // CDNSSD
14
+
15
+ STDMETHODIMP CDNSSD::Browse(DNSSDFlags flags, ULONG ifIndex, BSTR regtype, BSTR domain, IBrowseListener* listener, IDNSSDService** browser )
16
+ {
17
+ CComObject<CDNSSDService> * object = NULL;
18
+ std::string regtypeUTF8;
19
+ std::string domainUTF8;
20
+ DNSServiceRef sref = NULL;
21
+ DNSServiceErrorType err = 0;
22
+ HRESULT hr = 0;
23
+ BOOL ok;
24
+
25
+ // Initialize
26
+ *browser = NULL;
27
+
28
+ // Convert BSTR params to utf8
29
+ ok = BSTRToUTF8( regtype, regtypeUTF8 );
30
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
31
+ ok = BSTRToUTF8( domain, domainUTF8 );
32
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
33
+
34
+ try
35
+ {
36
+ object = new CComObject<CDNSSDService>();
37
+ }
38
+ catch ( ... )
39
+ {
40
+ object = NULL;
41
+ }
42
+
43
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
44
+ hr = object->FinalConstruct();
45
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
46
+ object->AddRef();
47
+
48
+ err = DNSServiceBrowse( &sref, flags, ifIndex, regtypeUTF8.c_str(), domainUTF8.c_str(), ( DNSServiceBrowseReply ) &BrowseReply, object );
49
+ require_noerr( err, exit );
50
+
51
+ object->SetServiceRef( sref );
52
+ object->SetListener( listener );
53
+
54
+ err = object->Run();
55
+ require_noerr( err, exit );
56
+
57
+ *browser = object;
58
+
59
+ exit:
60
+
61
+ if ( err && object )
62
+ {
63
+ object->Release();
64
+ }
65
+
66
+ return err;
67
+ }
68
+
69
+
70
+ STDMETHODIMP CDNSSD::Resolve(DNSSDFlags flags, ULONG ifIndex, BSTR serviceName, BSTR regType, BSTR domain, IResolveListener* listener, IDNSSDService** service)
71
+ {
72
+ CComObject<CDNSSDService> * object = NULL;
73
+ std::string serviceNameUTF8;
74
+ std::string regTypeUTF8;
75
+ std::string domainUTF8;
76
+ DNSServiceRef sref = NULL;
77
+ DNSServiceErrorType err = 0;
78
+ HRESULT hr = 0;
79
+ BOOL ok;
80
+
81
+ // Initialize
82
+ *service = NULL;
83
+
84
+ // Convert BSTR params to utf8
85
+ ok = BSTRToUTF8( serviceName, serviceNameUTF8 );
86
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
87
+ ok = BSTRToUTF8( regType, regTypeUTF8 );
88
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
89
+ ok = BSTRToUTF8( domain, domainUTF8 );
90
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
91
+
92
+ try
93
+ {
94
+ object = new CComObject<CDNSSDService>();
95
+ }
96
+ catch ( ... )
97
+ {
98
+ object = NULL;
99
+ }
100
+
101
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
102
+ hr = object->FinalConstruct();
103
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
104
+ object->AddRef();
105
+
106
+ err = DNSServiceResolve( &sref, flags, ifIndex, serviceNameUTF8.c_str(), regTypeUTF8.c_str(), domainUTF8.c_str(), ( DNSServiceResolveReply ) &ResolveReply, object );
107
+ require_noerr( err, exit );
108
+
109
+ object->SetServiceRef( sref );
110
+ object->SetListener( listener );
111
+
112
+ err = object->Run();
113
+ require_noerr( err, exit );
114
+
115
+ *service = object;
116
+
117
+ exit:
118
+
119
+ if ( err && object )
120
+ {
121
+ object->Release();
122
+ }
123
+
124
+ return err;
125
+ }
126
+
127
+
128
+ STDMETHODIMP CDNSSD::EnumerateDomains(DNSSDFlags flags, ULONG ifIndex, IDomainListener *listener, IDNSSDService **service)
129
+ {
130
+ CComObject<CDNSSDService> * object = NULL;
131
+ DNSServiceRef sref = NULL;
132
+ DNSServiceErrorType err = 0;
133
+ HRESULT hr = 0;
134
+
135
+ // Initialize
136
+ *service = NULL;
137
+
138
+ try
139
+ {
140
+ object = new CComObject<CDNSSDService>();
141
+ }
142
+ catch ( ... )
143
+ {
144
+ object = NULL;
145
+ }
146
+
147
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
148
+ hr = object->FinalConstruct();
149
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
150
+ object->AddRef();
151
+
152
+ err = DNSServiceEnumerateDomains( &sref, flags, ifIndex, ( DNSServiceDomainEnumReply ) &DomainEnumReply, object );
153
+ require_noerr( err, exit );
154
+
155
+ object->SetServiceRef( sref );
156
+ object->SetListener( listener );
157
+
158
+ err = object->Run();
159
+ require_noerr( err, exit );
160
+
161
+ *service = object;
162
+
163
+ exit:
164
+
165
+ if ( err && object )
166
+ {
167
+ object->Release();
168
+ }
169
+
170
+ return err;
171
+ }
172
+
173
+
174
+ STDMETHODIMP CDNSSD::Register(DNSSDFlags flags, ULONG ifIndex, BSTR serviceName, BSTR regType, BSTR domain, BSTR host, USHORT port, ITXTRecord *record, IRegisterListener *listener, IDNSSDService **service)
175
+ {
176
+ CComObject<CDNSSDService> * object = NULL;
177
+ std::string serviceNameUTF8;
178
+ std::string regTypeUTF8;
179
+ std::string domainUTF8;
180
+ std::string hostUTF8;
181
+ const void * txtRecord = NULL;
182
+ uint16_t txtLen = 0;
183
+ DNSServiceRef sref = NULL;
184
+ DNSServiceErrorType err = 0;
185
+ HRESULT hr = 0;
186
+ BOOL ok;
187
+
188
+ // Initialize
189
+ *service = NULL;
190
+
191
+ // Convert BSTR params to utf8
192
+ ok = BSTRToUTF8( serviceName, serviceNameUTF8 );
193
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
194
+ ok = BSTRToUTF8( regType, regTypeUTF8 );
195
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
196
+ ok = BSTRToUTF8( domain, domainUTF8 );
197
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
198
+ ok = BSTRToUTF8( host, hostUTF8 );
199
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
200
+
201
+ try
202
+ {
203
+ object = new CComObject<CDNSSDService>();
204
+ }
205
+ catch ( ... )
206
+ {
207
+ object = NULL;
208
+ }
209
+
210
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
211
+ hr = object->FinalConstruct();
212
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
213
+ object->AddRef();
214
+
215
+ if ( record )
216
+ {
217
+ CComObject< CTXTRecord > * realTXTRecord;
218
+
219
+ realTXTRecord = ( CComObject< CTXTRecord >* ) record;
220
+
221
+ txtRecord = realTXTRecord->GetBytes();
222
+ txtLen = realTXTRecord->GetLen();
223
+ }
224
+
225
+ err = DNSServiceRegister( &sref, flags, ifIndex, serviceNameUTF8.c_str(), regTypeUTF8.c_str(), domainUTF8.c_str(), hostUTF8.c_str(), port, txtLen, txtRecord, ( DNSServiceRegisterReply ) &RegisterReply, object );
226
+ require_noerr( err, exit );
227
+
228
+ object->SetServiceRef( sref );
229
+ object->SetListener( listener );
230
+
231
+ err = object->Run();
232
+ require_noerr( err, exit );
233
+
234
+ *service = object;
235
+
236
+ exit:
237
+
238
+ if ( err && object )
239
+ {
240
+ object->Release();
241
+ }
242
+
243
+ return err;
244
+ }
245
+
246
+
247
+ STDMETHODIMP CDNSSD::QueryRecord(DNSSDFlags flags, ULONG ifIndex, BSTR fullname, DNSSDRRType rrtype, DNSSDRRClass rrclass, IQueryRecordListener *listener, IDNSSDService **service)
248
+ {
249
+ CComObject<CDNSSDService> * object = NULL;
250
+ DNSServiceRef sref = NULL;
251
+ std::string fullNameUTF8;
252
+ DNSServiceErrorType err = 0;
253
+ HRESULT hr = 0;
254
+ BOOL ok;
255
+
256
+ // Initialize
257
+ *service = NULL;
258
+
259
+ // Convert BSTR params to utf8
260
+ ok = BSTRToUTF8( fullname, fullNameUTF8 );
261
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
262
+
263
+ try
264
+ {
265
+ object = new CComObject<CDNSSDService>();
266
+ }
267
+ catch ( ... )
268
+ {
269
+ object = NULL;
270
+ }
271
+
272
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
273
+ hr = object->FinalConstruct();
274
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
275
+ object->AddRef();
276
+
277
+ err = DNSServiceQueryRecord( &sref, flags, ifIndex, fullNameUTF8.c_str(), ( uint16_t ) rrtype, ( uint16_t ) rrclass, ( DNSServiceQueryRecordReply ) &QueryRecordReply, object );
278
+ require_noerr( err, exit );
279
+
280
+ object->SetServiceRef( sref );
281
+ object->SetListener( listener );
282
+
283
+ err = object->Run();
284
+ require_noerr( err, exit );
285
+
286
+ *service = object;
287
+
288
+ exit:
289
+
290
+ if ( err && object )
291
+ {
292
+ object->Release();
293
+ }
294
+
295
+ return err;
296
+ }
297
+
298
+
299
+ STDMETHODIMP CDNSSD::GetAddrInfo(DNSSDFlags flags, ULONG ifIndex, DNSSDAddressFamily addressFamily, BSTR hostName, IGetAddrInfoListener *listener, IDNSSDService **service)
300
+ {
301
+ CComObject<CDNSSDService> * object = NULL;
302
+ DNSServiceRef sref = NULL;
303
+ std::string hostNameUTF8;
304
+ DNSServiceErrorType err = 0;
305
+ HRESULT hr = 0;
306
+ BOOL ok;
307
+
308
+ // Initialize
309
+ *service = NULL;
310
+
311
+ // Convert BSTR params to utf8
312
+ ok = BSTRToUTF8( hostName, hostNameUTF8 );
313
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
314
+
315
+ try
316
+ {
317
+ object = new CComObject<CDNSSDService>();
318
+ }
319
+ catch ( ... )
320
+ {
321
+ object = NULL;
322
+ }
323
+
324
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
325
+ hr = object->FinalConstruct();
326
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
327
+ object->AddRef();
328
+
329
+ err = DNSServiceGetAddrInfo( &sref, flags, ifIndex, addressFamily, hostNameUTF8.c_str(), ( DNSServiceGetAddrInfoReply ) &GetAddrInfoReply, object );
330
+ require_noerr( err, exit );
331
+
332
+ object->SetServiceRef( sref );
333
+ object->SetListener( listener );
334
+
335
+ err = object->Run();
336
+ require_noerr( err, exit );
337
+
338
+ *service = object;
339
+
340
+ exit:
341
+
342
+ if ( err && object )
343
+ {
344
+ object->Release();
345
+ }
346
+
347
+ return err;
348
+ }
349
+
350
+
351
+ STDMETHODIMP CDNSSD::CreateConnection(IDNSSDService **service)
352
+ {
353
+ CComObject<CDNSSDService> * object = NULL;
354
+ DNSServiceRef sref = NULL;
355
+ DNSServiceErrorType err = 0;
356
+ HRESULT hr = 0;
357
+
358
+ // Initialize
359
+ *service = NULL;
360
+
361
+ try
362
+ {
363
+ object = new CComObject<CDNSSDService>();
364
+ }
365
+ catch ( ... )
366
+ {
367
+ object = NULL;
368
+ }
369
+
370
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
371
+ hr = object->FinalConstruct();
372
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
373
+ object->AddRef();
374
+
375
+ err = DNSServiceCreateConnection( &sref );
376
+ require_noerr( err, exit );
377
+
378
+ object->SetServiceRef( sref );
379
+
380
+ *service = object;
381
+
382
+ exit:
383
+
384
+ if ( err && object )
385
+ {
386
+ object->Release();
387
+ }
388
+
389
+ return err;
390
+ }
391
+
392
+
393
+ STDMETHODIMP CDNSSD::NATPortMappingCreate(DNSSDFlags flags, ULONG ifIndex, DNSSDAddressFamily addressFamily, DNSSDProtocol protocol, USHORT internalPort, USHORT externalPort, ULONG ttl, INATPortMappingListener *listener, IDNSSDService **service)
394
+ {
395
+ CComObject<CDNSSDService> * object = NULL;
396
+ DNSServiceRef sref = NULL;
397
+ DNSServiceProtocol prot = 0;
398
+ DNSServiceErrorType err = 0;
399
+ HRESULT hr = 0;
400
+
401
+ // Initialize
402
+ *service = NULL;
403
+
404
+ try
405
+ {
406
+ object = new CComObject<CDNSSDService>();
407
+ }
408
+ catch ( ... )
409
+ {
410
+ object = NULL;
411
+ }
412
+
413
+ require_action( object != NULL, exit, err = kDNSServiceErr_NoMemory );
414
+ hr = object->FinalConstruct();
415
+ require_action( hr == S_OK, exit, err = kDNSServiceErr_Unknown );
416
+ object->AddRef();
417
+
418
+ prot = ( addressFamily | protocol );
419
+
420
+ err = DNSServiceNATPortMappingCreate( &sref, flags, ifIndex, prot, internalPort, externalPort, ttl, ( DNSServiceNATPortMappingReply ) &NATPortMappingReply, object );
421
+ require_noerr( err, exit );
422
+
423
+ object->SetServiceRef( sref );
424
+ object->SetListener( listener );
425
+
426
+ err = object->Run();
427
+ require_noerr( err, exit );
428
+
429
+ *service = object;
430
+
431
+ exit:
432
+
433
+ if ( err && object )
434
+ {
435
+ object->Release();
436
+ }
437
+
438
+ return err;
439
+ }
440
+
441
+
442
+ STDMETHODIMP CDNSSD::GetProperty(BSTR prop, VARIANT * value )
443
+ {
444
+ std::string propUTF8;
445
+ std::vector< BYTE > byteArray;
446
+ SAFEARRAY * psa = NULL;
447
+ BYTE * pData = NULL;
448
+ uint32_t elems = 0;
449
+ DNSServiceErrorType err = 0;
450
+ BOOL ok = TRUE;
451
+
452
+ // Convert BSTR params to utf8
453
+ ok = BSTRToUTF8( prop, propUTF8 );
454
+ require_action( ok, exit, err = kDNSServiceErr_BadParam );
455
+
456
+ // Setup the byte array
457
+ require_action( V_VT( value ) == ( VT_ARRAY|VT_UI1 ), exit, err = kDNSServiceErr_Unknown );
458
+ psa = V_ARRAY( value );
459
+ require_action( psa, exit, err = kDNSServiceErr_Unknown );
460
+ require_action( SafeArrayGetDim( psa ) == 1, exit, err = kDNSServiceErr_Unknown );
461
+ byteArray.reserve( psa->rgsabound[0].cElements );
462
+ byteArray.assign( byteArray.capacity(), 0 );
463
+ elems = ( uint32_t ) byteArray.capacity();
464
+
465
+ // Call the function and package the return value in the Variant
466
+ err = DNSServiceGetProperty( propUTF8.c_str(), &byteArray[ 0 ], &elems );
467
+ require_noerr( err, exit );
468
+ ok = ByteArrayToVariant( &byteArray[ 0 ], elems, value );
469
+ require_action( ok, exit, err = kDNSSDError_Unknown );
470
+
471
+ exit:
472
+
473
+ if ( psa )
474
+ {
475
+ SafeArrayUnaccessData( psa );
476
+ psa = NULL;
477
+ }
478
+
479
+ return err;
480
+ }
481
+
482
+
483
+ void DNSSD_API
484
+ CDNSSD::DomainEnumReply
485
+ (
486
+ DNSServiceRef sdRef,
487
+ DNSServiceFlags flags,
488
+ uint32_t ifIndex,
489
+ DNSServiceErrorType errorCode,
490
+ const char *replyDomainUTF8,
491
+ void *context
492
+ )
493
+ {
494
+ CComObject<CDNSSDService> * service;
495
+ int err;
496
+
497
+ service = ( CComObject< CDNSSDService>* ) context;
498
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
499
+
500
+ if ( !service->Stopped() )
501
+ {
502
+ IDomainListener * listener;
503
+
504
+ listener = ( IDomainListener* ) service->GetListener();
505
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
506
+
507
+ if ( !errorCode )
508
+ {
509
+ CComBSTR replyDomain;
510
+
511
+ UTF8ToBSTR( replyDomainUTF8, replyDomain );
512
+
513
+ if ( flags & kDNSServiceFlagsAdd )
514
+ {
515
+ listener->DomainFound( service, ( DNSSDFlags ) flags, ifIndex, replyDomain );
516
+ }
517
+ else
518
+ {
519
+ listener->DomainLost( service, ( DNSSDFlags ) flags, ifIndex, replyDomain );
520
+ }
521
+ }
522
+ else
523
+ {
524
+ listener->EnumDomainsFailed( service, ( DNSSDError ) errorCode );
525
+ }
526
+ }
527
+
528
+ exit:
529
+
530
+ return;
531
+ }
532
+
533
+
534
+ void DNSSD_API
535
+ CDNSSD::BrowseReply
536
+ (
537
+ DNSServiceRef sdRef,
538
+ DNSServiceFlags flags,
539
+ uint32_t ifIndex,
540
+ DNSServiceErrorType errorCode,
541
+ const char *serviceNameUTF8,
542
+ const char *regTypeUTF8,
543
+ const char *replyDomainUTF8,
544
+ void *context
545
+ )
546
+ {
547
+ CComObject<CDNSSDService> * service;
548
+ int err;
549
+
550
+ service = ( CComObject< CDNSSDService>* ) context;
551
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
552
+
553
+ if ( !service->Stopped() )
554
+ {
555
+ IBrowseListener * listener;
556
+
557
+ listener = ( IBrowseListener* ) service->GetListener();
558
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
559
+
560
+ if ( !errorCode )
561
+ {
562
+ CComBSTR serviceName;
563
+ CComBSTR regType;
564
+ CComBSTR replyDomain;
565
+
566
+ UTF8ToBSTR( serviceNameUTF8, serviceName );
567
+ UTF8ToBSTR( regTypeUTF8, regType );
568
+ UTF8ToBSTR( replyDomainUTF8, replyDomain );
569
+
570
+ if ( flags & kDNSServiceFlagsAdd )
571
+ {
572
+ listener->ServiceFound( service, ( DNSSDFlags ) flags, ifIndex, serviceName, regType, replyDomain );
573
+ }
574
+ else
575
+ {
576
+ listener->ServiceLost( service, ( DNSSDFlags ) flags, ifIndex, serviceName, regType, replyDomain );
577
+ }
578
+ }
579
+ else
580
+ {
581
+ listener->BrowseFailed( service, ( DNSSDError ) errorCode );
582
+ }
583
+ }
584
+
585
+ exit:
586
+
587
+ return;
588
+ }
589
+
590
+
591
+ void DNSSD_API
592
+ CDNSSD::ResolveReply
593
+ (
594
+ DNSServiceRef sdRef,
595
+ DNSServiceFlags flags,
596
+ uint32_t ifIndex,
597
+ DNSServiceErrorType errorCode,
598
+ const char *fullNameUTF8,
599
+ const char *hostNameUTF8,
600
+ uint16_t port,
601
+ uint16_t txtLen,
602
+ const unsigned char *txtRecord,
603
+ void *context
604
+ )
605
+ {
606
+ CComObject<CDNSSDService> * service;
607
+ int err;
608
+
609
+ service = ( CComObject< CDNSSDService>* ) context;
610
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
611
+
612
+ if ( !service->Stopped() )
613
+ {
614
+ IResolveListener * listener;
615
+
616
+ listener = ( IResolveListener* ) service->GetListener();
617
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
618
+
619
+ if ( !errorCode )
620
+ {
621
+ CComBSTR fullName;
622
+ CComBSTR hostName;
623
+ CComBSTR regType;
624
+ CComBSTR replyDomain;
625
+ CComObject< CTXTRecord >* record;
626
+ BOOL ok;
627
+
628
+ ok = UTF8ToBSTR( fullNameUTF8, fullName );
629
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
630
+ ok = UTF8ToBSTR( hostNameUTF8, hostName );
631
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
632
+
633
+ try
634
+ {
635
+ record = new CComObject<CTXTRecord>();
636
+ }
637
+ catch ( ... )
638
+ {
639
+ record = NULL;
640
+ }
641
+
642
+ require_action( record, exit, err = kDNSServiceErr_NoMemory );
643
+ record->AddRef();
644
+
645
+ char buf[ 64 ];
646
+ sprintf( buf, "txtLen = %d", txtLen );
647
+ OutputDebugStringA( buf );
648
+
649
+ if ( txtLen > 0 )
650
+ {
651
+ record->SetBytes( txtRecord, txtLen );
652
+ }
653
+
654
+ listener->ServiceResolved( service, ( DNSSDFlags ) flags, ifIndex, fullName, hostName, port, record );
655
+ }
656
+ else
657
+ {
658
+ listener->ResolveFailed( service, ( DNSSDError ) errorCode );
659
+ }
660
+ }
661
+
662
+ exit:
663
+
664
+ return;
665
+ }
666
+
667
+
668
+ void DNSSD_API
669
+ CDNSSD::RegisterReply
670
+ (
671
+ DNSServiceRef sdRef,
672
+ DNSServiceFlags flags,
673
+ DNSServiceErrorType errorCode,
674
+ const char *serviceNameUTF8,
675
+ const char *regTypeUTF8,
676
+ const char *domainUTF8,
677
+ void *context
678
+ )
679
+ {
680
+ CComObject<CDNSSDService> * service;
681
+ int err;
682
+
683
+ service = ( CComObject< CDNSSDService>* ) context;
684
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
685
+
686
+ if ( !service->Stopped() )
687
+ {
688
+ IRegisterListener * listener;
689
+
690
+ listener = ( IRegisterListener* ) service->GetListener();
691
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
692
+
693
+ if ( !errorCode )
694
+ {
695
+ CComBSTR serviceName;
696
+ CComBSTR regType;
697
+ CComBSTR domain;
698
+ BOOL ok;
699
+
700
+ ok = UTF8ToBSTR( serviceNameUTF8, serviceName );
701
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
702
+ ok = UTF8ToBSTR( regTypeUTF8, regType );
703
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
704
+ ok = UTF8ToBSTR( domainUTF8, domain );
705
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
706
+
707
+ listener->ServiceRegistered( service, ( DNSSDFlags ) flags, serviceName, regType, domain );
708
+ }
709
+ else
710
+ {
711
+ listener->ServiceRegisterFailed( service, ( DNSSDError ) errorCode );
712
+ }
713
+ }
714
+
715
+ exit:
716
+
717
+ return;
718
+ }
719
+
720
+
721
+ void DNSSD_API
722
+ CDNSSD::QueryRecordReply
723
+ (
724
+ DNSServiceRef sdRef,
725
+ DNSServiceFlags flags,
726
+ uint32_t ifIndex,
727
+ DNSServiceErrorType errorCode,
728
+ const char *fullNameUTF8,
729
+ uint16_t rrtype,
730
+ uint16_t rrclass,
731
+ uint16_t rdlen,
732
+ const void *rdata,
733
+ uint32_t ttl,
734
+ void *context
735
+ )
736
+ {
737
+ CComObject<CDNSSDService> * service;
738
+ int err;
739
+
740
+ service = ( CComObject< CDNSSDService>* ) context;
741
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
742
+
743
+ if ( !service->Stopped() )
744
+ {
745
+ IQueryRecordListener * listener;
746
+
747
+ listener = ( IQueryRecordListener* ) service->GetListener();
748
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
749
+
750
+ if ( !errorCode )
751
+ {
752
+ CComBSTR fullName;
753
+ VARIANT var;
754
+ BOOL ok;
755
+
756
+ ok = UTF8ToBSTR( fullNameUTF8, fullName );
757
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
758
+ ok = ByteArrayToVariant( rdata, rdlen, &var );
759
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
760
+
761
+ listener->QueryRecordAnswered( service, ( DNSSDFlags ) flags, ifIndex, fullName, ( DNSSDRRType ) rrtype, ( DNSSDRRClass ) rrclass, var, ttl );
762
+ }
763
+ else
764
+ {
765
+ listener->QueryRecordFailed( service, ( DNSSDError ) errorCode );
766
+ }
767
+ }
768
+
769
+ exit:
770
+
771
+ return;
772
+ }
773
+
774
+
775
+ void DNSSD_API
776
+ CDNSSD::GetAddrInfoReply
777
+ (
778
+ DNSServiceRef sdRef,
779
+ DNSServiceFlags flags,
780
+ uint32_t ifIndex,
781
+ DNSServiceErrorType errorCode,
782
+ const char *hostNameUTF8,
783
+ const struct sockaddr *rawAddress,
784
+ uint32_t ttl,
785
+ void *context
786
+ )
787
+ {
788
+ CComObject<CDNSSDService> * service;
789
+ int err;
790
+
791
+ service = ( CComObject< CDNSSDService>* ) context;
792
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
793
+
794
+ if ( !service->Stopped() )
795
+ {
796
+ IGetAddrInfoListener * listener;
797
+
798
+ listener = ( IGetAddrInfoListener* ) service->GetListener();
799
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
800
+
801
+ if ( !errorCode )
802
+ {
803
+ CComBSTR hostName;
804
+ DWORD sockaddrLen;
805
+ DNSSDAddressFamily addressFamily;
806
+ char addressUTF8[INET6_ADDRSTRLEN];
807
+ DWORD addressLen = sizeof( addressUTF8 );
808
+ CComBSTR address;
809
+ BOOL ok;
810
+
811
+ ok = UTF8ToBSTR( hostNameUTF8, hostName );
812
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
813
+
814
+ switch ( rawAddress->sa_family )
815
+ {
816
+ case AF_INET:
817
+ {
818
+ addressFamily = kDNSSDAddressFamily_IPv4;
819
+ sockaddrLen = sizeof( sockaddr_in );
820
+ }
821
+ break;
822
+
823
+ case AF_INET6:
824
+ {
825
+ addressFamily = kDNSSDAddressFamily_IPv6;
826
+ sockaddrLen = sizeof( sockaddr_in6 );
827
+ }
828
+ break;
829
+ }
830
+
831
+ err = WSAAddressToStringA( ( LPSOCKADDR ) rawAddress, sockaddrLen, NULL, addressUTF8, &addressLen );
832
+ require_noerr( err, exit );
833
+ ok = UTF8ToBSTR( addressUTF8, address );
834
+ require_action( ok, exit, err = kDNSServiceErr_Unknown );
835
+
836
+ listener->GetAddrInfoReply( service, ( DNSSDFlags ) flags, ifIndex, hostName, addressFamily, address, ttl );
837
+ }
838
+ else
839
+ {
840
+ listener->GetAddrInfoFailed( service, ( DNSSDError ) errorCode );
841
+ }
842
+ }
843
+
844
+ exit:
845
+
846
+ return;
847
+ }
848
+
849
+
850
+ void DNSSD_API
851
+ CDNSSD::NATPortMappingReply
852
+ (
853
+ DNSServiceRef sdRef,
854
+ DNSServiceFlags flags,
855
+ uint32_t ifIndex,
856
+ DNSServiceErrorType errorCode,
857
+ uint32_t externalAddress, /* four byte IPv4 address in network byte order */
858
+ DNSServiceProtocol protocol,
859
+ uint16_t internalPort,
860
+ uint16_t externalPort, /* may be different than the requested port */
861
+ uint32_t ttl, /* may be different than the requested ttl */
862
+ void *context
863
+ )
864
+ {
865
+ CComObject<CDNSSDService> * service;
866
+ int err;
867
+
868
+ service = ( CComObject< CDNSSDService>* ) context;
869
+ require_action( service, exit, err = kDNSServiceErr_Unknown );
870
+
871
+ if ( !service->Stopped() )
872
+ {
873
+ INATPortMappingListener * listener;
874
+
875
+ listener = ( INATPortMappingListener* ) service->GetListener();
876
+ require_action( listener, exit, err = kDNSServiceErr_Unknown );
877
+
878
+ if ( !errorCode )
879
+ {
880
+ listener->MappingCreated( service, ( DNSSDFlags ) flags, ifIndex, externalAddress, ( DNSSDAddressFamily ) ( protocol & 0x8 ), ( DNSSDProtocol ) ( protocol & 0x80 ), internalPort, externalPort, ttl );
881
+ }
882
+ else
883
+ {
884
+ listener->MappingFailed( service, ( DNSSDError ) errorCode );
885
+ }
886
+ }
887
+
888
+ exit:
889
+
890
+ return;
891
+ }
892
+