react-native-zeroconf 0.13.8 → 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 (294) 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/rx2dnssd/DnssdImpl.java +19 -3
  6. package/android/src/main/java/com/github/druk/dnssd/BaseListener.java +33 -0
  7. package/android/src/main/java/com/github/druk/dnssd/BrowseListener.java +67 -0
  8. package/android/src/main/java/com/github/druk/dnssd/DNSRecord.java +47 -0
  9. package/android/src/main/java/com/github/druk/dnssd/DNSSD.java +650 -0
  10. package/android/src/main/java/com/github/druk/dnssd/DNSSDBindable.java +67 -0
  11. package/android/src/main/java/com/github/druk/dnssd/DNSSDEmbedded.java +135 -0
  12. package/android/src/main/java/com/github/druk/dnssd/DNSSDException.java +66 -0
  13. package/android/src/main/java/com/github/druk/dnssd/DNSSDRecordRegistrar.java +55 -0
  14. package/android/src/main/java/com/github/druk/dnssd/DNSSDRegistration.java +54 -0
  15. package/android/src/main/java/com/github/druk/dnssd/DNSSDService.java +35 -0
  16. package/android/src/main/java/com/github/druk/dnssd/DomainListener.java +57 -0
  17. package/android/src/main/java/com/github/druk/dnssd/InternalBrowseListener.java +76 -0
  18. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSD.java +870 -0
  19. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRecordRegistrar.java +30 -0
  20. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDRegistration.java +34 -0
  21. package/android/src/main/java/com/github/druk/dnssd/InternalDNSSDService.java +29 -0
  22. package/android/src/main/java/com/github/druk/dnssd/InternalDomainListener.java +62 -0
  23. package/android/src/main/java/com/github/druk/dnssd/InternalQueryListener.java +61 -0
  24. package/android/src/main/java/com/github/druk/dnssd/InternalRegisterListener.java +51 -0
  25. package/android/src/main/java/com/github/druk/dnssd/InternalResolveListener.java +58 -0
  26. package/android/src/main/java/com/github/druk/dnssd/NSClass.java +16 -0
  27. package/android/src/main/java/com/github/druk/dnssd/NSType.java +58 -0
  28. package/android/src/main/java/com/github/druk/dnssd/QueryListener.java +54 -0
  29. package/android/src/main/java/com/github/druk/dnssd/RegisterListener.java +46 -0
  30. package/android/src/main/java/com/github/druk/dnssd/RegisterRecordListener.java +35 -0
  31. package/android/src/main/java/com/github/druk/dnssd/ResolveListener.java +55 -0
  32. package/android/src/main/java/com/github/druk/dnssd/TXTRecord.java +293 -0
  33. package/android/src/main/java/com/github/druk/rx2dnssd/BonjourService.java +400 -0
  34. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2BrowseListener.java +55 -0
  35. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2Dnssd.java +127 -0
  36. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdBindable.java +35 -0
  37. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdCommon.java +280 -0
  38. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2DnssdEmbedded.java +31 -0
  39. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2QueryListener.java +70 -0
  40. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2RegisterListener.java +47 -0
  41. package/android/src/main/java/com/github/druk/rx2dnssd/Rx2ResolveListener.java +51 -0
  42. package/android/src/main/jni/Android.mk +95 -0
  43. package/android/src/main/jni/Application.mk +3 -0
  44. package/android/src/main/jni/DNSSD.java.h +290 -0
  45. package/android/src/main/jni/JNISupport.c +1140 -0
  46. package/android/src/main/jni/mdnsresponder/Android.bp +215 -0
  47. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.c +75 -0
  48. package/android/src/main/jni/mdnsresponder/Clients/ClientCommon.h +41 -0
  49. package/android/src/main/jni/mdnsresponder/Clients/Makefile +54 -0
  50. package/android/src/main/jni/mdnsresponder/Clients/ReadMe.txt +25 -0
  51. package/android/src/main/jni/mdnsresponder/Clients/dns-sd.c +1351 -0
  52. package/android/src/main/jni/mdnsresponder/LICENSE +13 -0
  53. package/android/src/main/jni/mdnsresponder/MODULE_LICENSE_APACHE2 +0 -0
  54. package/android/src/main/jni/mdnsresponder/Makefile +41 -0
  55. package/android/src/main/jni/mdnsresponder/NOTICE +13 -0
  56. package/android/src/main/jni/mdnsresponder/PrivateDNS.txt +275 -0
  57. package/android/src/main/jni/mdnsresponder/README.txt +166 -0
  58. package/android/src/main/jni/mdnsresponder/README.version +3 -0
  59. package/android/src/main/jni/mdnsresponder/android/caseMapping/Iphlpapi.h +1 -0
  60. package/android/src/main/jni/mdnsresponder/android/caseMapping/README +3 -0
  61. package/android/src/main/jni/mdnsresponder/android/caseMapping/Resource.h +1 -0
  62. package/android/src/main/jni/mdnsresponder/android/caseMapping/Ws2tcpip.h +1 -0
  63. package/android/src/main/jni/mdnsresponder/android/caseMapping/ipExport.h +1 -0
  64. package/android/src/main/jni/mdnsresponder/android/windows_firewall_dummy.c +10 -0
  65. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.c +3157 -0
  66. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSCommon.h +292 -0
  67. package/android/src/main/jni/mdnsresponder/mDNSCore/DNSDigest.c +1579 -0
  68. package/android/src/main/jni/mdnsresponder/mDNSCore/Implementer Notes.txt +66 -0
  69. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNS.c +11469 -0
  70. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSDebug.h +164 -0
  71. package/android/src/main/jni/mdnsresponder/mDNSCore/mDNSEmbeddedAPI.h +2974 -0
  72. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.c +4969 -0
  73. package/android/src/main/jni/mdnsresponder/mDNSCore/uDNS.h +132 -0
  74. package/android/src/main/jni/mdnsresponder/mDNSPosix/Client.c +223 -0
  75. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.c +91 -0
  76. package/android/src/main/jni/mdnsresponder/mDNSPosix/ExampleClientApp.h +18 -0
  77. package/android/src/main/jni/mdnsresponder/mDNSPosix/Identify.c +378 -0
  78. package/android/src/main/jni/mdnsresponder/mDNSPosix/Makefile +520 -0
  79. package/android/src/main/jni/mdnsresponder/mDNSPosix/NetMonitor.c +1010 -0
  80. package/android/src/main/jni/mdnsresponder/mDNSPosix/PosixDaemon.c +329 -0
  81. package/android/src/main/jni/mdnsresponder/mDNSPosix/ProxyResponder.c +300 -0
  82. package/android/src/main/jni/mdnsresponder/mDNSPosix/ReadMe.txt +314 -0
  83. package/android/src/main/jni/mdnsresponder/mDNSPosix/Responder.c +792 -0
  84. package/android/src/main/jni/mdnsresponder/mDNSPosix/Services.txt +36 -0
  85. package/android/src/main/jni/mdnsresponder/mDNSPosix/libnss_mdns.8 +148 -0
  86. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.c +1685 -0
  87. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSPosix.h +88 -0
  88. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.c +726 -0
  89. package/android/src/main/jni/mdnsresponder/mDNSPosix/mDNSUNP.h +130 -0
  90. package/android/src/main/jni/mdnsresponder/mDNSPosix/mdnsd.sh +73 -0
  91. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_ReadMe.txt +125 -0
  92. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.c +2723 -0
  93. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf +13 -0
  94. package/android/src/main/jni/mdnsresponder/mDNSPosix/nss_mdns.conf.5 +135 -0
  95. package/android/src/main/jni/mdnsresponder/mDNSPosix/parselog.py +247 -0
  96. package/android/src/main/jni/mdnsresponder/mDNSResponder.sln +400 -0
  97. package/android/src/main/jni/mdnsresponder/mDNSShared/CommonServices.h +1537 -0
  98. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.c +3075 -0
  99. package/android/src/main/jni/mdnsresponder/mDNSShared/DebugServices.h +1607 -0
  100. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.c +319 -0
  101. package/android/src/main/jni/mdnsresponder/mDNSShared/GenLinkedList.h +90 -0
  102. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.c +220 -0
  103. package/android/src/main/jni/mdnsresponder/mDNSShared/PlatformCommon.h +18 -0
  104. package/android/src/main/jni/mdnsresponder/mDNSShared/dns-sd.1 +194 -0
  105. package/android/src/main/jni/mdnsresponder/mDNSShared/dns_sd.h +2452 -0
  106. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.8 +69 -0
  107. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.c +3146 -0
  108. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.conf +60 -0
  109. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd.h +163 -0
  110. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_lexer.l +84 -0
  111. package/android/src/main/jni/mdnsresponder/mDNSShared/dnsextd_parser.y +585 -0
  112. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientlib.c +368 -0
  113. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientshim.c +802 -0
  114. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_clientstub.c +1988 -0
  115. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.c +161 -0
  116. package/android/src/main/jni/mdnsresponder/mDNSShared/dnssd_ipc.h +219 -0
  117. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNS.1 +198 -0
  118. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSDebug.c +93 -0
  119. package/android/src/main/jni/mdnsresponder/mDNSShared/mDNSResponder.8 +116 -0
  120. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.c +4758 -0
  121. package/android/src/main/jni/mdnsresponder/mDNSShared/uds_daemon.h +80 -0
  122. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.cpp +441 -0
  123. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/BrowsingPage.h +156 -0
  124. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.cpp +59 -0
  125. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigDialog.h +48 -0
  126. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp +301 -0
  127. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ConfigPropertySheet.h +105 -0
  128. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.cpp +380 -0
  129. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.def +20 -0
  130. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.h +84 -0
  131. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.rc +141 -0
  132. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanel.vcproj +727 -0
  133. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelDll.rc +123 -0
  134. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.cpp +373 -0
  135. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.h +48 -0
  136. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.rc +123 -0
  137. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelExe.vcproj +764 -0
  138. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.rc +270 -0
  139. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelLocRes.vcproj +487 -0
  140. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.rc +134 -0
  141. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ControlPanelRes.vcproj +518 -0
  142. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.cpp +197 -0
  143. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/FourthPage.h +87 -0
  144. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.cpp +387 -0
  145. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/RegistrationPage.h +75 -0
  146. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.cpp +544 -0
  147. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SecondPage.h +107 -0
  148. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.cpp +273 -0
  149. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/ServicesPage.h +123 -0
  150. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.cpp +115 -0
  151. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/SharedSecret.h +54 -0
  152. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.dll.manifest +10 -0
  153. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.exe.manifest +17 -0
  154. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.manifest +17 -0
  155. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel.rc2 +13 -0
  156. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/ControlPanel64.manifest +17 -0
  157. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/EnergySaver.ico +0 -0
  158. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/controlpanel.ico +0 -0
  159. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/failure.ico +0 -0
  160. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/res/success.ico +0 -0
  161. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/resource.h +56 -0
  162. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.cpp +20 -0
  163. package/android/src/main/jni/mdnsresponder/mDNSWindows/ControlPanel/stdafx.h +64 -0
  164. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.aps +0 -0
  165. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dll.rc +102 -0
  166. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dllmain.c +112 -0
  167. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.def +48 -0
  168. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/dnssd.vcproj +472 -0
  169. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL/resource.h +27 -0
  170. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/AssemblyInfo.cpp +84 -0
  171. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/PString.h +70 -0
  172. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.cpp +22 -0
  173. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/Stdafx.h +33 -0
  174. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.cpp +1234 -0
  175. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.h +1392 -0
  176. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.ico +0 -0
  177. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.rc +113 -0
  178. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/dnssd_NET.vcproj +446 -0
  179. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLL.NET/resource.h +3 -0
  180. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.cpp +693 -0
  181. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.h +52 -0
  182. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLStub/DLLStub.vcproj +324 -0
  183. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.cpp +208 -0
  184. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.def +35 -0
  185. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.idl +491 -0
  186. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rc +126 -0
  187. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.rgs +11 -0
  188. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DLLX.vcproj +625 -0
  189. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSD.cpp +892 -0
  190. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.cpp +31 -0
  191. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.h +133 -0
  192. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDEventManager.rgs +27 -0
  193. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.cpp +101 -0
  194. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.h +185 -0
  195. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDRecord.rgs +27 -0
  196. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.cpp +2095 -0
  197. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.h +429 -0
  198. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/DNSSDService.rgs +27 -0
  199. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.cpp +344 -0
  200. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/StringServices.h +102 -0
  201. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.cpp +381 -0
  202. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.h +203 -0
  203. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/TXTRecord.rgs +27 -0
  204. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/_IDNSSDEvents_CP.h +358 -0
  205. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.c +51 -0
  206. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/dlldatax.h +49 -0
  207. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/resource.h +30 -0
  208. package/android/src/main/jni/mdnsresponder/mDNSWindows/DLLX/stdafx.h +88 -0
  209. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.sln +21 -0
  210. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2002.vcproj +253 -0
  211. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.sln +21 -0
  212. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/ApplicationVS2003.vcproj +267 -0
  213. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.ico +0 -0
  214. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc +323 -0
  215. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Application.rc2 +20 -0
  216. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Resources/Resource.h +53 -0
  217. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.cpp +71 -0
  218. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/AboutDialog.h +62 -0
  219. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.cpp +111 -0
  220. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/Application.h +68 -0
  221. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.cpp +1426 -0
  222. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/ChooserDialog.h +131 -0
  223. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.cpp +109 -0
  224. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/LoginDialog.h +53 -0
  225. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.cpp +18 -0
  226. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/Windows/Sources/StdAfx.h +48 -0
  227. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcc +37 -0
  228. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcp +868 -0
  229. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Application.vcw +29 -0
  230. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.ico +0 -0
  231. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc +194 -0
  232. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/Application.rc2 +13 -0
  233. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/newres.h +28 -0
  234. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Resources/resource.h +22 -0
  235. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.cpp +92 -0
  236. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/Application.h +57 -0
  237. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.cpp +394 -0
  238. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/BrowserDialog.h +84 -0
  239. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.cpp +18 -0
  240. package/android/src/main/jni/mdnsresponder/mDNSWindows/DNSServiceBrowser/WindowsCE/Sources/StdAfx.h +46 -0
  241. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/Java.vcproj +111 -0
  242. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/jdns_sd.rc +62 -0
  243. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile +143 -0
  244. package/android/src/main/jni/mdnsresponder/mDNSWindows/Java/makefile64 +143 -0
  245. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.aps +0 -0
  246. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.c +581 -0
  247. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.rc +103 -0
  248. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/NSPTool.vcproj +409 -0
  249. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/Prefix.h +28 -0
  250. package/android/src/main/jni/mdnsresponder/mDNSWindows/NSPTool/resource.h +27 -0
  251. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.c +128 -0
  252. package/android/src/main/jni/mdnsresponder/mDNSWindows/PosixCompat.h +70 -0
  253. package/android/src/main/jni/mdnsresponder/mDNSWindows/README.txt +85 -0
  254. package/android/src/main/jni/mdnsresponder/mDNSWindows/RegNames.h +57 -0
  255. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.c +338 -0
  256. package/android/src/main/jni/mdnsresponder/mDNSWindows/Secret.h +42 -0
  257. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLog.mc +11 -0
  258. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/EventLogMessages.bin +0 -0
  259. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.cpp +484 -0
  260. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Firewall.h +79 -0
  261. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Prefix.h +30 -0
  262. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.aps +0 -0
  263. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.c +2669 -0
  264. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.h +30 -0
  265. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.mcp +0 -0
  266. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.rc +114 -0
  267. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/Service.vcproj +562 -0
  268. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/main.c +32 -0
  269. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder.manifest +12 -0
  270. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/res/mDNSResponder64.manifest +12 -0
  271. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resource.h +17 -0
  272. package/android/src/main/jni/mdnsresponder/mDNSWindows/SystemService/resrc1.h +15 -0
  273. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.cpp +165 -0
  274. package/android/src/main/jni/mdnsresponder/mDNSWindows/VPCDetect.h +36 -0
  275. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.cpp +93 -0
  276. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinServices.h +34 -0
  277. package/android/src/main/jni/mdnsresponder/mDNSWindows/WinVersRes.h +35 -0
  278. package/android/src/main/jni/mdnsresponder/mDNSWindows/isocode.h +135 -0
  279. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.c +268 -0
  280. package/android/src/main/jni/mdnsresponder/mDNSWindows/loclibrary.h +54 -0
  281. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.c +5200 -0
  282. package/android/src/main/jni/mdnsresponder/mDNSWindows/mDNSWin32.h +208 -0
  283. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/ReadMe.txt +15 -0
  284. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.aps +0 -0
  285. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.c +2430 -0
  286. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.def +24 -0
  287. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.rc +104 -0
  288. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/mdnsNSP.vcproj +457 -0
  289. package/android/src/main/jni/mdnsresponder/mDNSWindows/mdnsNSP/resource.h +27 -0
  290. package/android/src/main/jni/mdnsresponder/mdnsd.rc +7 -0
  291. package/android/src/main/jni/nameser.h +588 -0
  292. package/dist/index.js +148 -1
  293. package/package.json +23 -17
  294. package/src/index.js +166 -0
@@ -0,0 +1,802 @@
1
+ /* -*- Mode: C; tab-width: 4 -*-
2
+ *
3
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+
17
+ * This file defines a simple shim layer between a client calling the "/usr/include/dns_sd.h" APIs
18
+ * and an implementation of mDNSCore ("mDNSEmbeddedAPI.h" APIs) in the same address space.
19
+ * When the client calls a dns_sd.h function, the shim calls the corresponding mDNSEmbeddedAPI.h
20
+ * function, and when mDNSCore calls the shim's callback, we call through to the client's callback.
21
+ * The shim is responsible for two main things:
22
+ * - converting string parameters between C string format and native DNS format,
23
+ * - and for allocating and freeing memory.
24
+ */
25
+
26
+ #include "dns_sd.h" // Defines the interface to the client layer above
27
+ #include "mDNSEmbeddedAPI.h" // The interface we're building on top of
28
+ #include <sys/socket.h>
29
+ #include <netinet/in.h>
30
+
31
+ extern mDNS mDNSStorage; // We need to pass the address of this storage to the lower-layer functions
32
+
33
+ #if MDNS_BUILDINGSHAREDLIBRARY || MDNS_BUILDINGSTUBLIBRARY
34
+ #pragma export on
35
+ #endif
36
+
37
+ //*************************************************************************************************************
38
+ // General Utility Functions
39
+
40
+ // All mDNS_DirectOP structures start with the pointer to the type-specific disposal function.
41
+ // Optional type-specific data follows these three fields
42
+ // When the client starts an operation, we return the address of the corresponding mDNS_DirectOP
43
+ // as the DNSServiceRef for the operation
44
+ // We stash the value in core context fields so we can get it back to recover our state in our callbacks,
45
+ // and pass it though to the client for it to recover its state
46
+
47
+ typedef struct mDNS_DirectOP_struct mDNS_DirectOP;
48
+ typedef void mDNS_DirectOP_Dispose(mDNS_DirectOP *op);
49
+ struct mDNS_DirectOP_struct
50
+ {
51
+ mDNS_DirectOP_Dispose *disposefn;
52
+ };
53
+
54
+ typedef struct
55
+ {
56
+ mDNS_DirectOP_Dispose *disposefn;
57
+ DNSServiceRegisterReply callback;
58
+ void *context;
59
+ mDNSBool autoname; // Set if this name is tied to the Computer Name
60
+ mDNSBool autorename; // Set if we just got a name conflict and now need to automatically pick a new name
61
+ domainlabel name;
62
+ domainname host;
63
+ ServiceRecordSet s;
64
+ } mDNS_DirectOP_Register;
65
+
66
+ typedef struct
67
+ {
68
+ mDNS_DirectOP_Dispose *disposefn;
69
+ DNSServiceBrowseReply callback;
70
+ void *context;
71
+ DNSQuestion q;
72
+ } mDNS_DirectOP_Browse;
73
+
74
+ typedef struct
75
+ {
76
+ mDNS_DirectOP_Dispose *disposefn;
77
+ DNSServiceRef aQuery;
78
+ DNSServiceGetAddrInfoReply callback;
79
+ void *context;
80
+ } mDNS_DirectOP_GetAddrInfo;
81
+
82
+ typedef struct
83
+ {
84
+ mDNS_DirectOP_Dispose *disposefn;
85
+ DNSServiceResolveReply callback;
86
+ void *context;
87
+ const ResourceRecord *SRV;
88
+ const ResourceRecord *TXT;
89
+ DNSQuestion qSRV;
90
+ DNSQuestion qTXT;
91
+ } mDNS_DirectOP_Resolve;
92
+
93
+ typedef struct
94
+ {
95
+ mDNS_DirectOP_Dispose *disposefn;
96
+ DNSServiceQueryRecordReply callback;
97
+ void *context;
98
+ DNSQuestion q;
99
+ } mDNS_DirectOP_QueryRecord;
100
+
101
+ int DNSServiceRefSockFD(DNSServiceRef sdRef)
102
+ {
103
+ (void)sdRef; // Unused
104
+ return(0);
105
+ }
106
+
107
+ DNSServiceErrorType DNSServiceProcessResult(DNSServiceRef sdRef)
108
+ {
109
+ (void)sdRef; // Unused
110
+ return(kDNSServiceErr_NoError);
111
+ }
112
+
113
+ void DNSServiceRefDeallocate(DNSServiceRef sdRef)
114
+ {
115
+ mDNS_DirectOP *op = (mDNS_DirectOP *)sdRef;
116
+ //LogMsg("DNSServiceRefDeallocate");
117
+ op->disposefn(op);
118
+ }
119
+
120
+ //*************************************************************************************************************
121
+ // Domain Enumeration
122
+
123
+ // Not yet implemented, so don't include in stub library
124
+ // We DO include it in the actual Extension, so that if a later client compiled to use this
125
+ // is run against this Extension, it will get a reasonable error code instead of just
126
+ // failing to launch (Strong Link) or calling an unresolved symbol and crashing (Weak Link)
127
+ #if !MDNS_BUILDINGSTUBLIBRARY
128
+ DNSServiceErrorType DNSServiceEnumerateDomains
129
+ (
130
+ DNSServiceRef *sdRef,
131
+ DNSServiceFlags flags,
132
+ uint32_t interfaceIndex,
133
+ DNSServiceDomainEnumReply callback,
134
+ void *context /* may be NULL */
135
+ )
136
+ {
137
+ (void)sdRef; // Unused
138
+ (void)flags; // Unused
139
+ (void)interfaceIndex; // Unused
140
+ (void)callback; // Unused
141
+ (void)context; // Unused
142
+ return(kDNSServiceErr_Unsupported);
143
+ }
144
+ #endif
145
+
146
+ //*************************************************************************************************************
147
+ // Register Service
148
+
149
+ mDNSlocal void FreeDNSServiceRegistration(mDNS_DirectOP_Register *x)
150
+ {
151
+ while (x->s.Extras)
152
+ {
153
+ ExtraResourceRecord *extras = x->s.Extras;
154
+ x->s.Extras = x->s.Extras->next;
155
+ if (extras->r.resrec.rdata != &extras->r.rdatastorage)
156
+ mDNSPlatformMemFree(extras->r.resrec.rdata);
157
+ mDNSPlatformMemFree(extras);
158
+ }
159
+
160
+ if (x->s.RR_TXT.resrec.rdata != &x->s.RR_TXT.rdatastorage)
161
+ mDNSPlatformMemFree(x->s.RR_TXT.resrec.rdata);
162
+
163
+ if (x->s.SubTypes) mDNSPlatformMemFree(x->s.SubTypes);
164
+
165
+ mDNSPlatformMemFree(x);
166
+ }
167
+
168
+ static void DNSServiceRegisterDispose(mDNS_DirectOP *op)
169
+ {
170
+ mDNS_DirectOP_Register *x = (mDNS_DirectOP_Register*)op;
171
+ x->autorename = mDNSfalse;
172
+ // If mDNS_DeregisterService() returns mStatus_NoError, that means that the service was found in the list,
173
+ // is sending its goodbye packet, and we'll get an mStatus_MemFree message when we can free the memory.
174
+ // If mDNS_DeregisterService() returns an error, it means that the service had already been removed from
175
+ // the list, so we should go ahead and free the memory right now
176
+ if (mDNS_DeregisterService(&mDNSStorage, &x->s) != mStatus_NoError)
177
+ FreeDNSServiceRegistration(x);
178
+ }
179
+
180
+ mDNSlocal void RegCallback(mDNS *const m, ServiceRecordSet *const sr, mStatus result)
181
+ {
182
+ mDNS_DirectOP_Register *x = (mDNS_DirectOP_Register*)sr->ServiceContext;
183
+
184
+ domainlabel name;
185
+ domainname type, dom;
186
+ char namestr[MAX_DOMAIN_LABEL+1]; // Unescaped name: up to 63 bytes plus C-string terminating NULL.
187
+ char typestr[MAX_ESCAPED_DOMAIN_NAME];
188
+ char domstr [MAX_ESCAPED_DOMAIN_NAME];
189
+ if (!DeconstructServiceName(sr->RR_SRV.resrec.name, &name, &type, &dom)) return;
190
+ if (!ConvertDomainLabelToCString_unescaped(&name, namestr)) return;
191
+ if (!ConvertDomainNameToCString(&type, typestr)) return;
192
+ if (!ConvertDomainNameToCString(&dom, domstr)) return;
193
+
194
+ if (result == mStatus_NoError)
195
+ {
196
+ if (x->callback)
197
+ x->callback((DNSServiceRef)x, 0, result, namestr, typestr, domstr, x->context);
198
+ }
199
+ else if (result == mStatus_NameConflict)
200
+ {
201
+ if (x->autoname) mDNS_RenameAndReregisterService(m, sr, mDNSNULL);
202
+ else if (x->autorename) {
203
+ IncrementLabelSuffix(&x->name, mDNStrue);
204
+ mDNS_RenameAndReregisterService(m, &x->s, &x->name);
205
+ }
206
+ else if (x->callback)
207
+ x->callback((DNSServiceRef)x, 0, result, namestr, typestr, domstr, x->context);
208
+ }
209
+ else if (result == mStatus_MemFree)
210
+ {
211
+ if (x->autorename)
212
+ {
213
+ x->autorename = mDNSfalse;
214
+ x->name = mDNSStorage.nicelabel;
215
+ mDNS_RenameAndReregisterService(m, &x->s, &x->name);
216
+ }
217
+ else
218
+ FreeDNSServiceRegistration(x);
219
+ }
220
+ }
221
+
222
+ DNSServiceErrorType DNSServiceRegister
223
+ (
224
+ DNSServiceRef *sdRef,
225
+ DNSServiceFlags flags,
226
+ uint32_t interfaceIndex,
227
+ const char *name, /* may be NULL */
228
+ const char *regtype,
229
+ const char *domain, /* may be NULL */
230
+ const char *host, /* may be NULL */
231
+ uint16_t notAnIntPort,
232
+ uint16_t txtLen,
233
+ const void *txtRecord, /* may be NULL */
234
+ DNSServiceRegisterReply callback, /* may be NULL */
235
+ void *context /* may be NULL */
236
+ )
237
+ {
238
+ mStatus err = mStatus_NoError;
239
+ const char *errormsg = "Unknown";
240
+ domainlabel n;
241
+ domainname t, d, h, srv;
242
+ mDNSIPPort port;
243
+ unsigned int size = sizeof(RDataBody);
244
+ AuthRecord *SubTypes = mDNSNULL;
245
+ mDNSu32 NumSubTypes = 0;
246
+ mDNS_DirectOP_Register *x;
247
+ (void)flags; // Unused
248
+ (void)interfaceIndex; // Unused
249
+
250
+ // Check parameters
251
+ if (!name) name = "";
252
+ if (!name[0]) n = mDNSStorage.nicelabel;
253
+ else if (!MakeDomainLabelFromLiteralString(&n, name)) { errormsg = "Bad Instance Name"; goto badparam; }
254
+ if (!regtype || !*regtype || !MakeDomainNameFromDNSNameString(&t, regtype)) { errormsg = "Bad Service Type"; goto badparam; }
255
+ if (!MakeDomainNameFromDNSNameString(&d, (domain && *domain) ? domain : "local.")) { errormsg = "Bad Domain"; goto badparam; }
256
+ if (!MakeDomainNameFromDNSNameString(&h, (host && *host ) ? host : "")) { errormsg = "Bad Target Host"; goto badparam; }
257
+ if (!ConstructServiceName(&srv, &n, &t, &d)) { errormsg = "Bad Name"; goto badparam; }
258
+ port.NotAnInteger = notAnIntPort;
259
+
260
+ // Allocate memory, and handle failure
261
+ if (size < txtLen)
262
+ size = txtLen;
263
+ x = (mDNS_DirectOP_Register *)mDNSPlatformMemAllocate(sizeof(*x) - sizeof(RDataBody) + size);
264
+ if (!x) { err = mStatus_NoMemoryErr; errormsg = "No memory"; goto fail; }
265
+
266
+ // Set up object
267
+ x->disposefn = DNSServiceRegisterDispose;
268
+ x->callback = callback;
269
+ x->context = context;
270
+ x->autoname = (!name[0]);
271
+ x->autorename = !(flags & kDNSServiceFlagsNoAutoRename);
272
+ x->name = n;
273
+ x->host = h;
274
+
275
+ // Do the operation
276
+ err = mDNS_RegisterService(&mDNSStorage, &x->s,
277
+ &x->name, &t, &d, // Name, type, domain
278
+ &x->host, port, // Host and port
279
+ txtRecord, txtLen, // TXT data, length
280
+ SubTypes, NumSubTypes, // Subtypes
281
+ mDNSInterface_Any, // Interface ID
282
+ RegCallback, x, 0); // Callback, context, flags
283
+ if (err) { mDNSPlatformMemFree(x); errormsg = "mDNS_RegisterService"; goto fail; }
284
+
285
+ // Succeeded: Wrap up and return
286
+ *sdRef = (DNSServiceRef)x;
287
+ return(mStatus_NoError);
288
+
289
+ badparam:
290
+ err = mStatus_BadParamErr;
291
+ fail:
292
+ LogMsg("DNSServiceBrowse(\"%s\", \"%s\") failed: %s (%ld)", regtype, domain, errormsg, err);
293
+ return(err);
294
+ }
295
+
296
+ //*************************************************************************************************************
297
+ // Add / Update / Remove records from existing Registration
298
+
299
+ // Not yet implemented, so don't include in stub library
300
+ // We DO include it in the actual Extension, so that if a later client compiled to use this
301
+ // is run against this Extension, it will get a reasonable error code instead of just
302
+ // failing to launch (Strong Link) or calling an unresolved symbol and crashing (Weak Link)
303
+ #if !MDNS_BUILDINGSTUBLIBRARY
304
+ DNSServiceErrorType DNSServiceAddRecord
305
+ (
306
+ DNSServiceRef sdRef,
307
+ DNSRecordRef *RecordRef,
308
+ DNSServiceFlags flags,
309
+ uint16_t rrtype,
310
+ uint16_t rdlen,
311
+ const void *rdata,
312
+ uint32_t ttl
313
+ )
314
+ {
315
+ (void)sdRef; // Unused
316
+ (void)RecordRef; // Unused
317
+ (void)flags; // Unused
318
+ (void)rrtype; // Unused
319
+ (void)rdlen; // Unused
320
+ (void)rdata; // Unused
321
+ (void)ttl; // Unused
322
+ return(kDNSServiceErr_Unsupported);
323
+ }
324
+
325
+ DNSServiceErrorType DNSServiceUpdateRecord
326
+ (
327
+ DNSServiceRef sdRef,
328
+ DNSRecordRef RecordRef, /* may be NULL */
329
+ DNSServiceFlags flags,
330
+ uint16_t rdlen,
331
+ const void *rdata,
332
+ uint32_t ttl
333
+ )
334
+ {
335
+ (void)sdRef; // Unused
336
+ (void)RecordRef; // Unused
337
+ (void)flags; // Unused
338
+ (void)rdlen; // Unused
339
+ (void)rdata; // Unused
340
+ (void)ttl; // Unused
341
+ return(kDNSServiceErr_Unsupported);
342
+ }
343
+
344
+ DNSServiceErrorType DNSServiceRemoveRecord
345
+ (
346
+ DNSServiceRef sdRef,
347
+ DNSRecordRef RecordRef,
348
+ DNSServiceFlags flags
349
+ )
350
+ {
351
+ (void)sdRef; // Unused
352
+ (void)RecordRef; // Unused
353
+ (void)flags; // Unused
354
+ return(kDNSServiceErr_Unsupported);
355
+ }
356
+ #endif
357
+
358
+ //*************************************************************************************************************
359
+ // Browse for services
360
+
361
+ static void DNSServiceBrowseDispose(mDNS_DirectOP *op)
362
+ {
363
+ mDNS_DirectOP_Browse *x = (mDNS_DirectOP_Browse*)op;
364
+ //LogMsg("DNSServiceBrowseDispose");
365
+ mDNS_StopBrowse(&mDNSStorage, &x->q);
366
+ mDNSPlatformMemFree(x);
367
+ }
368
+
369
+ mDNSlocal void FoundInstance(mDNS *const m, DNSQuestion *question, const ResourceRecord *const answer, QC_result AddRecord)
370
+ {
371
+ DNSServiceFlags flags = AddRecord ? kDNSServiceFlagsAdd : (DNSServiceFlags)0;
372
+ domainlabel name;
373
+ domainname type, domain;
374
+ char cname[MAX_DOMAIN_LABEL+1]; // Unescaped name: up to 63 bytes plus C-string terminating NULL.
375
+ char ctype[MAX_ESCAPED_DOMAIN_NAME];
376
+ char cdom [MAX_ESCAPED_DOMAIN_NAME];
377
+ mDNS_DirectOP_Browse *x = (mDNS_DirectOP_Browse*)question->QuestionContext;
378
+ (void)m; // Unused
379
+
380
+ if (answer->rrtype != kDNSType_PTR)
381
+ { LogMsg("FoundInstance: Should not be called with rrtype %d (not a PTR record)", answer->rrtype); return; }
382
+
383
+ if (!DeconstructServiceName(&answer->rdata->u.name, &name, &type, &domain))
384
+ {
385
+ LogMsg("FoundInstance: %##s PTR %##s received from network is not valid DNS-SD service pointer",
386
+ answer->name->c, answer->rdata->u.name.c);
387
+ return;
388
+ }
389
+
390
+ ConvertDomainLabelToCString_unescaped(&name, cname);
391
+ ConvertDomainNameToCString(&type, ctype);
392
+ ConvertDomainNameToCString(&domain, cdom);
393
+ if (x->callback)
394
+ x->callback((DNSServiceRef)x, flags, 0, 0, cname, ctype, cdom, x->context);
395
+ }
396
+
397
+ DNSServiceErrorType DNSServiceBrowse
398
+ (
399
+ DNSServiceRef *sdRef,
400
+ DNSServiceFlags flags,
401
+ uint32_t interfaceIndex,
402
+ const char *regtype,
403
+ const char *domain, /* may be NULL */
404
+ DNSServiceBrowseReply callback,
405
+ void *context /* may be NULL */
406
+ )
407
+ {
408
+ mStatus err = mStatus_NoError;
409
+ const char *errormsg = "Unknown";
410
+ domainname t, d;
411
+ mDNS_DirectOP_Browse *x;
412
+ (void)flags; // Unused
413
+ (void)interfaceIndex; // Unused
414
+
415
+ // Check parameters
416
+ if (!regtype[0] || !MakeDomainNameFromDNSNameString(&t, regtype)) { errormsg = "Illegal regtype"; goto badparam; }
417
+ if (!MakeDomainNameFromDNSNameString(&d, *domain ? domain : "local.")) { errormsg = "Illegal domain"; goto badparam; }
418
+
419
+ // Allocate memory, and handle failure
420
+ x = (mDNS_DirectOP_Browse *)mDNSPlatformMemAllocate(sizeof(*x));
421
+ if (!x) { err = mStatus_NoMemoryErr; errormsg = "No memory"; goto fail; }
422
+
423
+ // Set up object
424
+ x->disposefn = DNSServiceBrowseDispose;
425
+ x->callback = callback;
426
+ x->context = context;
427
+ x->q.QuestionContext = x;
428
+
429
+ // Do the operation
430
+ err = mDNS_StartBrowse(&mDNSStorage, &x->q, &t, &d, mDNSInterface_Any, (flags & kDNSServiceFlagsForceMulticast) != 0, FoundInstance, x);
431
+ if (err) { mDNSPlatformMemFree(x); errormsg = "mDNS_StartBrowse"; goto fail; }
432
+
433
+ // Succeeded: Wrap up and return
434
+ *sdRef = (DNSServiceRef)x;
435
+ return(mStatus_NoError);
436
+
437
+ badparam:
438
+ err = mStatus_BadParamErr;
439
+ fail:
440
+ LogMsg("DNSServiceBrowse(\"%s\", \"%s\") failed: %s (%ld)", regtype, domain, errormsg, err);
441
+ return(err);
442
+ }
443
+
444
+ //*************************************************************************************************************
445
+ // Resolve Service Info
446
+
447
+ static void DNSServiceResolveDispose(mDNS_DirectOP *op)
448
+ {
449
+ mDNS_DirectOP_Resolve *x = (mDNS_DirectOP_Resolve*)op;
450
+ if (x->qSRV.ThisQInterval >= 0) mDNS_StopQuery(&mDNSStorage, &x->qSRV);
451
+ if (x->qTXT.ThisQInterval >= 0) mDNS_StopQuery(&mDNSStorage, &x->qTXT);
452
+ mDNSPlatformMemFree(x);
453
+ }
454
+
455
+ mDNSlocal void FoundServiceInfo(mDNS *const m, DNSQuestion *question, const ResourceRecord *const answer, QC_result AddRecord)
456
+ {
457
+ mDNS_DirectOP_Resolve *x = (mDNS_DirectOP_Resolve*)question->QuestionContext;
458
+ (void)m; // Unused
459
+ if (!AddRecord)
460
+ {
461
+ if (answer->rrtype == kDNSType_SRV && x->SRV == answer) x->SRV = mDNSNULL;
462
+ if (answer->rrtype == kDNSType_TXT && x->TXT == answer) x->TXT = mDNSNULL;
463
+ }
464
+ else
465
+ {
466
+ if (answer->rrtype == kDNSType_SRV) x->SRV = answer;
467
+ if (answer->rrtype == kDNSType_TXT) x->TXT = answer;
468
+ if (x->SRV && x->TXT && x->callback)
469
+ {
470
+ char fullname[MAX_ESCAPED_DOMAIN_NAME], targethost[MAX_ESCAPED_DOMAIN_NAME];
471
+ ConvertDomainNameToCString(answer->name, fullname);
472
+ ConvertDomainNameToCString(&x->SRV->rdata->u.srv.target, targethost);
473
+ x->callback((DNSServiceRef)x, 0, 0, kDNSServiceErr_NoError, fullname, targethost,
474
+ x->SRV->rdata->u.srv.port.NotAnInteger, x->TXT->rdlength, (unsigned char*)x->TXT->rdata->u.txt.c, x->context);
475
+ }
476
+ }
477
+ }
478
+
479
+ DNSServiceErrorType DNSServiceResolve
480
+ (
481
+ DNSServiceRef *sdRef,
482
+ DNSServiceFlags flags,
483
+ uint32_t interfaceIndex,
484
+ const char *name,
485
+ const char *regtype,
486
+ const char *domain,
487
+ DNSServiceResolveReply callback,
488
+ void *context /* may be NULL */
489
+ )
490
+ {
491
+ mStatus err = mStatus_NoError;
492
+ const char *errormsg = "Unknown";
493
+ domainlabel n;
494
+ domainname t, d, srv;
495
+ mDNS_DirectOP_Resolve *x;
496
+
497
+ (void)flags; // Unused
498
+ (void)interfaceIndex; // Unused
499
+
500
+ // Check parameters
501
+ if (!name[0] || !MakeDomainLabelFromLiteralString(&n, name )) { errormsg = "Bad Instance Name"; goto badparam; }
502
+ if (!regtype[0] || !MakeDomainNameFromDNSNameString(&t, regtype)) { errormsg = "Bad Service Type"; goto badparam; }
503
+ if (!domain[0] || !MakeDomainNameFromDNSNameString(&d, domain )) { errormsg = "Bad Domain"; goto badparam; }
504
+ if (!ConstructServiceName(&srv, &n, &t, &d)) { errormsg = "Bad Name"; goto badparam; }
505
+
506
+ // Allocate memory, and handle failure
507
+ x = (mDNS_DirectOP_Resolve *)mDNSPlatformMemAllocate(sizeof(*x));
508
+ if (!x) { err = mStatus_NoMemoryErr; errormsg = "No memory"; goto fail; }
509
+
510
+ // Set up object
511
+ x->disposefn = DNSServiceResolveDispose;
512
+ x->callback = callback;
513
+ x->context = context;
514
+ x->SRV = mDNSNULL;
515
+ x->TXT = mDNSNULL;
516
+
517
+ x->qSRV.ThisQInterval = -1; // So that DNSServiceResolveDispose() knows whether to cancel this question
518
+ x->qSRV.InterfaceID = mDNSInterface_Any;
519
+ x->qSRV.Target = zeroAddr;
520
+ AssignDomainName(&x->qSRV.qname, &srv);
521
+ x->qSRV.qtype = kDNSType_SRV;
522
+ x->qSRV.qclass = kDNSClass_IN;
523
+ x->qSRV.LongLived = mDNSfalse;
524
+ x->qSRV.ExpectUnique = mDNStrue;
525
+ x->qSRV.ForceMCast = mDNSfalse;
526
+ x->qSRV.ReturnIntermed = mDNSfalse;
527
+ x->qSRV.SuppressUnusable = mDNSfalse;
528
+ x->qSRV.SearchListIndex = 0;
529
+ x->qSRV.AppendSearchDomains = 0;
530
+ x->qSRV.RetryWithSearchDomains = mDNSfalse;
531
+ x->qSRV.TimeoutQuestion = 0;
532
+ x->qSRV.WakeOnResolve = 0;
533
+ x->qSRV.qnameOrig = mDNSNULL;
534
+ x->qSRV.QuestionCallback = FoundServiceInfo;
535
+ x->qSRV.QuestionContext = x;
536
+
537
+ x->qTXT.ThisQInterval = -1; // So that DNSServiceResolveDispose() knows whether to cancel this question
538
+ x->qTXT.InterfaceID = mDNSInterface_Any;
539
+ x->qTXT.Target = zeroAddr;
540
+ AssignDomainName(&x->qTXT.qname, &srv);
541
+ x->qTXT.qtype = kDNSType_TXT;
542
+ x->qTXT.qclass = kDNSClass_IN;
543
+ x->qTXT.LongLived = mDNSfalse;
544
+ x->qTXT.ExpectUnique = mDNStrue;
545
+ x->qTXT.ForceMCast = mDNSfalse;
546
+ x->qTXT.ReturnIntermed = mDNSfalse;
547
+ x->qTXT.SuppressUnusable = mDNSfalse;
548
+ x->qTXT.SearchListIndex = 0;
549
+ x->qTXT.AppendSearchDomains = 0;
550
+ x->qTXT.RetryWithSearchDomains = mDNSfalse;
551
+ x->qTXT.TimeoutQuestion = 0;
552
+ x->qTXT.WakeOnResolve = 0;
553
+ x->qTXT.qnameOrig = mDNSNULL;
554
+ x->qTXT.QuestionCallback = FoundServiceInfo;
555
+ x->qTXT.QuestionContext = x;
556
+
557
+ err = mDNS_StartQuery(&mDNSStorage, &x->qSRV);
558
+ if (err) { DNSServiceResolveDispose((mDNS_DirectOP*)x); errormsg = "mDNS_StartQuery qSRV"; goto fail; }
559
+ err = mDNS_StartQuery(&mDNSStorage, &x->qTXT);
560
+ if (err) { DNSServiceResolveDispose((mDNS_DirectOP*)x); errormsg = "mDNS_StartQuery qTXT"; goto fail; }
561
+
562
+ // Succeeded: Wrap up and return
563
+ *sdRef = (DNSServiceRef)x;
564
+ return(mStatus_NoError);
565
+
566
+ badparam:
567
+ err = mStatus_BadParamErr;
568
+ fail:
569
+ LogMsg("DNSServiceResolve(\"%s\", \"%s\", \"%s\") failed: %s (%ld)", name, regtype, domain, errormsg, err);
570
+ return(err);
571
+ }
572
+
573
+ //*************************************************************************************************************
574
+ // Connection-oriented calls
575
+
576
+ // Not yet implemented, so don't include in stub library
577
+ // We DO include it in the actual Extension, so that if a later client compiled to use this
578
+ // is run against this Extension, it will get a reasonable error code instead of just
579
+ // failing to launch (Strong Link) or calling an unresolved symbol and crashing (Weak Link)
580
+ #if !MDNS_BUILDINGSTUBLIBRARY
581
+ DNSServiceErrorType DNSServiceCreateConnection(DNSServiceRef *sdRef)
582
+ {
583
+ (void)sdRef; // Unused
584
+ return(kDNSServiceErr_Unsupported);
585
+ }
586
+
587
+ DNSServiceErrorType DNSServiceRegisterRecord
588
+ (
589
+ DNSServiceRef sdRef,
590
+ DNSRecordRef *RecordRef,
591
+ DNSServiceFlags flags,
592
+ uint32_t interfaceIndex,
593
+ const char *fullname,
594
+ uint16_t rrtype,
595
+ uint16_t rrclass,
596
+ uint16_t rdlen,
597
+ const void *rdata,
598
+ uint32_t ttl,
599
+ DNSServiceRegisterRecordReply callback,
600
+ void *context /* may be NULL */
601
+ )
602
+ {
603
+ (void)sdRef; // Unused
604
+ (void)RecordRef; // Unused
605
+ (void)flags; // Unused
606
+ (void)interfaceIndex; // Unused
607
+ (void)fullname; // Unused
608
+ (void)rrtype; // Unused
609
+ (void)rrclass; // Unused
610
+ (void)rdlen; // Unused
611
+ (void)rdata; // Unused
612
+ (void)ttl; // Unused
613
+ (void)callback; // Unused
614
+ (void)context; // Unused
615
+ return(kDNSServiceErr_Unsupported);
616
+ }
617
+ #endif
618
+
619
+ //*************************************************************************************************************
620
+ // DNSServiceQueryRecord
621
+
622
+ static void DNSServiceQueryRecordDispose(mDNS_DirectOP *op)
623
+ {
624
+ mDNS_DirectOP_QueryRecord *x = (mDNS_DirectOP_QueryRecord*)op;
625
+ if (x->q.ThisQInterval >= 0) mDNS_StopQuery(&mDNSStorage, &x->q);
626
+ mDNSPlatformMemFree(x);
627
+ }
628
+
629
+ mDNSlocal void DNSServiceQueryRecordResponse(mDNS *const m, DNSQuestion *question, const ResourceRecord *const answer, QC_result AddRecord)
630
+ {
631
+ mDNS_DirectOP_QueryRecord *x = (mDNS_DirectOP_QueryRecord*)question->QuestionContext;
632
+ char fullname[MAX_ESCAPED_DOMAIN_NAME];
633
+ (void)m; // Unused
634
+ ConvertDomainNameToCString(answer->name, fullname);
635
+ x->callback((DNSServiceRef)x, AddRecord ? kDNSServiceFlagsAdd : (DNSServiceFlags)0, 0, kDNSServiceErr_NoError,
636
+ fullname, answer->rrtype, answer->rrclass, answer->rdlength, answer->rdata->u.data, answer->rroriginalttl, x->context);
637
+ }
638
+
639
+ DNSServiceErrorType DNSServiceQueryRecord
640
+ (
641
+ DNSServiceRef *sdRef,
642
+ DNSServiceFlags flags,
643
+ uint32_t interfaceIndex,
644
+ const char *fullname,
645
+ uint16_t rrtype,
646
+ uint16_t rrclass,
647
+ DNSServiceQueryRecordReply callback,
648
+ void *context /* may be NULL */
649
+ )
650
+ {
651
+ mStatus err = mStatus_NoError;
652
+ const char *errormsg = "Unknown";
653
+ mDNS_DirectOP_QueryRecord *x;
654
+
655
+ (void)flags; // Unused
656
+ (void)interfaceIndex; // Unused
657
+
658
+ // Allocate memory, and handle failure
659
+ x = (mDNS_DirectOP_QueryRecord *)mDNSPlatformMemAllocate(sizeof(*x));
660
+ if (!x) { err = mStatus_NoMemoryErr; errormsg = "No memory"; goto fail; }
661
+
662
+ // Set up object
663
+ x->disposefn = DNSServiceQueryRecordDispose;
664
+ x->callback = callback;
665
+ x->context = context;
666
+
667
+ x->q.ThisQInterval = -1; // So that DNSServiceResolveDispose() knows whether to cancel this question
668
+ x->q.InterfaceID = mDNSInterface_Any;
669
+ x->q.Target = zeroAddr;
670
+ MakeDomainNameFromDNSNameString(&x->q.qname, fullname);
671
+ x->q.qtype = rrtype;
672
+ x->q.qclass = rrclass;
673
+ x->q.LongLived = (flags & kDNSServiceFlagsLongLivedQuery) != 0;
674
+ x->q.ExpectUnique = mDNSfalse;
675
+ x->q.ForceMCast = (flags & kDNSServiceFlagsForceMulticast) != 0;
676
+ x->q.ReturnIntermed = (flags & kDNSServiceFlagsReturnIntermediates) != 0;
677
+ x->q.SuppressUnusable = (flags & kDNSServiceFlagsSuppressUnusable) != 0;
678
+ x->q.SearchListIndex = 0;
679
+ x->q.AppendSearchDomains = 0;
680
+ x->q.RetryWithSearchDomains = mDNSfalse;
681
+ x->q.WakeOnResolve = 0;
682
+ x->q.qnameOrig = mDNSNULL;
683
+ x->q.QuestionCallback = DNSServiceQueryRecordResponse;
684
+ x->q.QuestionContext = x;
685
+
686
+ err = mDNS_StartQuery(&mDNSStorage, &x->q);
687
+ if (err) { DNSServiceResolveDispose((mDNS_DirectOP*)x); errormsg = "mDNS_StartQuery"; goto fail; }
688
+
689
+ // Succeeded: Wrap up and return
690
+ *sdRef = (DNSServiceRef)x;
691
+ return(mStatus_NoError);
692
+
693
+ fail:
694
+ LogMsg("DNSServiceQueryRecord(\"%s\", %d, %d) failed: %s (%ld)", fullname, rrtype, rrclass, errormsg, err);
695
+ return(err);
696
+ }
697
+
698
+ //*************************************************************************************************************
699
+ // DNSServiceGetAddrInfo
700
+
701
+ static void DNSServiceGetAddrInfoDispose(mDNS_DirectOP *op)
702
+ {
703
+ mDNS_DirectOP_GetAddrInfo *x = (mDNS_DirectOP_GetAddrInfo*)op;
704
+ if (x->aQuery) DNSServiceRefDeallocate(x->aQuery);
705
+ mDNSPlatformMemFree(x);
706
+ }
707
+
708
+ static void DNSSD_API DNSServiceGetAddrInfoResponse(
709
+ DNSServiceRef inRef,
710
+ DNSServiceFlags inFlags,
711
+ uint32_t inInterfaceIndex,
712
+ DNSServiceErrorType inErrorCode,
713
+ const char * inFullName,
714
+ uint16_t inRRType,
715
+ uint16_t inRRClass,
716
+ uint16_t inRDLen,
717
+ const void * inRData,
718
+ uint32_t inTTL,
719
+ void * inContext )
720
+ {
721
+ mDNS_DirectOP_GetAddrInfo * x = (mDNS_DirectOP_GetAddrInfo*)inContext;
722
+ struct sockaddr_in sa4;
723
+
724
+ mDNSPlatformMemZero(&sa4, sizeof(sa4));
725
+ if (inErrorCode == kDNSServiceErr_NoError && inRRType == kDNSServiceType_A)
726
+ {
727
+ sa4.sin_family = AF_INET;
728
+ mDNSPlatformMemCopy(&sa4.sin_addr.s_addr, inRData, 4);
729
+ }
730
+
731
+ x->callback((DNSServiceRef)x, inFlags, inInterfaceIndex, inErrorCode, inFullName,
732
+ (const struct sockaddr *) &sa4, inTTL, x->context);
733
+ }
734
+
735
+ DNSServiceErrorType DNSSD_API DNSServiceGetAddrInfo(
736
+ DNSServiceRef * outRef,
737
+ DNSServiceFlags inFlags,
738
+ uint32_t inInterfaceIndex,
739
+ DNSServiceProtocol inProtocol,
740
+ const char * inHostName,
741
+ DNSServiceGetAddrInfoReply inCallback,
742
+ void * inContext )
743
+ {
744
+ const char * errormsg = "Unknown";
745
+ DNSServiceErrorType err;
746
+ mDNS_DirectOP_GetAddrInfo * x;
747
+
748
+ // Allocate memory, and handle failure
749
+ x = (mDNS_DirectOP_GetAddrInfo *)mDNSPlatformMemAllocate(sizeof(*x));
750
+ if (!x) { err = mStatus_NoMemoryErr; errormsg = "No memory"; goto fail; }
751
+
752
+ // Set up object
753
+ x->disposefn = DNSServiceGetAddrInfoDispose;
754
+ x->callback = inCallback;
755
+ x->context = inContext;
756
+ x->aQuery = mDNSNULL;
757
+
758
+ // Start the query.
759
+ // (It would probably be more efficient to code this using mDNS_StartQuery directly,
760
+ // instead of wrapping DNSServiceQueryRecord, which then unnecessarily allocates
761
+ // more memory and then just calls through to mDNS_StartQuery. -- SC June 2010)
762
+ err = DNSServiceQueryRecord(&x->aQuery, inFlags, inInterfaceIndex, inHostName, kDNSServiceType_A,
763
+ kDNSServiceClass_IN, DNSServiceGetAddrInfoResponse, x);
764
+ if (err) { DNSServiceGetAddrInfoDispose((mDNS_DirectOP*)x); errormsg = "DNSServiceQueryRecord"; goto fail; }
765
+
766
+ *outRef = (DNSServiceRef)x;
767
+ return(mStatus_NoError);
768
+
769
+ fail:
770
+ LogMsg("DNSServiceGetAddrInfo(\"%s\", %d) failed: %s (%ld)", inHostName, inProtocol, errormsg, err);
771
+ return(err);
772
+ }
773
+
774
+ //*************************************************************************************************************
775
+ // DNSServiceReconfirmRecord
776
+
777
+ // Not yet implemented, so don't include in stub library
778
+ // We DO include it in the actual Extension, so that if a later client compiled to use this
779
+ // is run against this Extension, it will get a reasonable error code instead of just
780
+ // failing to launch (Strong Link) or calling an unresolved symbol and crashing (Weak Link)
781
+ #if !MDNS_BUILDINGSTUBLIBRARY
782
+ DNSServiceErrorType DNSSD_API DNSServiceReconfirmRecord
783
+ (
784
+ DNSServiceFlags flags,
785
+ uint32_t interfaceIndex,
786
+ const char *fullname,
787
+ uint16_t rrtype,
788
+ uint16_t rrclass,
789
+ uint16_t rdlen,
790
+ const void *rdata
791
+ )
792
+ {
793
+ (void)flags; // Unused
794
+ (void)interfaceIndex; // Unused
795
+ (void)fullname; // Unused
796
+ (void)rrtype; // Unused
797
+ (void)rrclass; // Unused
798
+ (void)rdlen; // Unused
799
+ (void)rdata; // Unused
800
+ return(kDNSServiceErr_Unsupported);
801
+ }
802
+ #endif