couchbase 3.0.0.alpha.4-x86_64-linux → 3.5.0-x86_64-linux

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 (2212) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -13
  3. data/ext/extconf.rb +0 -47
  4. data/lib/active_support/cache/couchbase_store.rb +339 -0
  5. data/lib/couchbase/3.0/libcouchbase.so +0 -0
  6. data/lib/couchbase/3.1/libcouchbase.so +0 -0
  7. data/lib/couchbase/3.2/libcouchbase.so +0 -0
  8. data/lib/couchbase/3.3/libcouchbase.so +0 -0
  9. data/lib/couchbase/analytics_options.rb +2 -60
  10. data/lib/couchbase/authenticator.rb +40 -1
  11. data/lib/couchbase/binary_collection.rb +66 -27
  12. data/lib/couchbase/binary_collection_options.rb +1 -75
  13. data/lib/couchbase/bucket.rb +50 -42
  14. data/lib/couchbase/cluster.rb +315 -168
  15. data/lib/couchbase/cluster_registry.rb +49 -0
  16. data/lib/couchbase/collection.rb +482 -96
  17. data/lib/couchbase/collection_options.rb +233 -281
  18. data/lib/couchbase/config_profiles.rb +55 -0
  19. data/lib/couchbase/configuration.rb +56 -0
  20. data/lib/couchbase/datastructures/couchbase_list.rb +160 -0
  21. data/lib/couchbase/datastructures/couchbase_map.rb +194 -0
  22. data/lib/couchbase/datastructures/couchbase_queue.rb +134 -0
  23. data/lib/couchbase/datastructures/couchbase_set.rb +128 -0
  24. data/lib/couchbase/datastructures.rb +24 -0
  25. data/lib/couchbase/diagnostics.rb +181 -0
  26. data/lib/couchbase/errors.rb +219 -67
  27. data/lib/couchbase/json_transcoder.rb +12 -5
  28. data/lib/couchbase/key_value_scan.rb +117 -0
  29. data/lib/couchbase/libcouchbase.rb +6 -0
  30. data/lib/couchbase/logger.rb +85 -0
  31. data/lib/couchbase/management/analytics_index_manager.rb +923 -229
  32. data/lib/couchbase/management/bucket_manager.rb +298 -107
  33. data/lib/couchbase/management/collection_manager.rb +329 -61
  34. data/lib/couchbase/management/collection_query_index_manager.rb +222 -0
  35. data/lib/couchbase/management/query_index_manager.rb +462 -142
  36. data/lib/couchbase/management/scope_search_index_manager.rb +198 -0
  37. data/lib/couchbase/management/search_index_manager.rb +90 -30
  38. data/lib/couchbase/management/user_manager.rb +196 -51
  39. data/lib/couchbase/management/view_index_manager.rb +12 -6
  40. data/lib/couchbase/management.rb +29 -0
  41. data/lib/couchbase/mutation_state.rb +14 -1
  42. data/lib/couchbase/options.rb +2837 -0
  43. data/lib/couchbase/protostellar/binary_collection.rb +55 -0
  44. data/lib/couchbase/protostellar/bucket.rb +51 -0
  45. data/lib/couchbase/protostellar/client.rb +99 -0
  46. data/lib/couchbase/protostellar/cluster.rb +163 -0
  47. data/lib/couchbase/protostellar/collection.rb +152 -0
  48. data/lib/couchbase/protostellar/connect_options.rb +63 -0
  49. data/lib/couchbase/protostellar/error_handling.rb +203 -0
  50. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +61 -0
  51. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +35 -0
  52. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +57 -0
  53. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +36 -0
  54. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +61 -0
  55. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +37 -0
  56. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +72 -0
  57. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +44 -0
  58. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +52 -0
  59. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +30 -0
  60. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +70 -0
  61. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +36 -0
  62. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +97 -0
  63. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +46 -0
  64. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +57 -0
  65. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +30 -0
  66. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +52 -0
  67. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +30 -0
  68. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +99 -0
  69. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +30 -0
  70. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +57 -0
  71. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +36 -0
  72. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +51 -0
  73. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +30 -0
  74. data/lib/couchbase/protostellar/generated.rb +9 -0
  75. data/lib/couchbase/protostellar/management/bucket_manager.rb +67 -0
  76. data/lib/couchbase/protostellar/management/collection_manager.rb +94 -0
  77. data/lib/couchbase/protostellar/management/collection_query_index_manager.rb +124 -0
  78. data/lib/couchbase/protostellar/management/query_index_manager.rb +112 -0
  79. data/lib/couchbase/protostellar/management.rb +24 -0
  80. data/lib/couchbase/protostellar/request.rb +78 -0
  81. data/lib/couchbase/protostellar/request_behaviour.rb +42 -0
  82. data/lib/couchbase/protostellar/request_generator/admin/bucket.rb +124 -0
  83. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +94 -0
  84. data/lib/couchbase/protostellar/request_generator/admin/query.rb +130 -0
  85. data/lib/couchbase/protostellar/request_generator/admin.rb +24 -0
  86. data/lib/couchbase/protostellar/request_generator/kv.rb +474 -0
  87. data/lib/couchbase/protostellar/request_generator/query.rb +133 -0
  88. data/lib/couchbase/protostellar/request_generator/search.rb +387 -0
  89. data/lib/couchbase/protostellar/request_generator.rb +26 -0
  90. data/lib/couchbase/protostellar/response_converter/admin/bucket.rb +55 -0
  91. data/lib/couchbase/protostellar/response_converter/admin/collection.rb +42 -0
  92. data/lib/couchbase/protostellar/response_converter/admin/query.rb +59 -0
  93. data/lib/couchbase/protostellar/response_converter/admin.rb +24 -0
  94. data/lib/couchbase/protostellar/response_converter/kv.rb +151 -0
  95. data/lib/couchbase/protostellar/response_converter/query.rb +84 -0
  96. data/lib/couchbase/protostellar/response_converter/search.rb +136 -0
  97. data/lib/couchbase/protostellar/response_converter.rb +26 -0
  98. data/lib/couchbase/protostellar/retry/action.rb +38 -0
  99. data/lib/couchbase/protostellar/retry/orchestrator.rb +60 -0
  100. data/lib/couchbase/protostellar/retry/reason.rb +67 -0
  101. data/lib/couchbase/protostellar/retry/strategies/best_effort.rb +49 -0
  102. data/lib/couchbase/protostellar/retry/strategies.rb +26 -0
  103. data/lib/couchbase/protostellar/retry.rb +28 -0
  104. data/lib/couchbase/protostellar/scope.rb +57 -0
  105. data/lib/couchbase/protostellar/timeout_defaults.rb +30 -0
  106. data/lib/couchbase/protostellar/timeouts.rb +83 -0
  107. data/lib/couchbase/protostellar.rb +29 -0
  108. data/lib/couchbase/query_options.rb +7 -106
  109. data/lib/couchbase/railtie.rb +45 -0
  110. data/lib/couchbase/raw_binary_transcoder.rb +37 -0
  111. data/lib/couchbase/raw_json_transcoder.rb +38 -0
  112. data/lib/couchbase/raw_string_transcoder.rb +40 -0
  113. data/lib/couchbase/scope.rb +217 -10
  114. data/lib/couchbase/search_options.rb +1306 -1176
  115. data/lib/couchbase/subdoc.rb +89 -25
  116. data/lib/couchbase/transcoder_flags.rb +62 -0
  117. data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
  118. data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
  119. data/lib/couchbase/utils/time.rb +69 -0
  120. data/lib/couchbase/utils.rb +21 -0
  121. data/lib/couchbase/version.rb +8 -3
  122. data/lib/couchbase/view_options.rb +5 -95
  123. data/lib/couchbase.rb +11 -1
  124. data/lib/rails/generators/couchbase/config/config_generator.rb +27 -0
  125. metadata +114 -2143
  126. data/.github/workflows/tests-6.0.3.yml +0 -52
  127. data/.github/workflows/tests-dev-preview.yml +0 -55
  128. data/.github/workflows/tests.yml +0 -50
  129. data/.gitignore +0 -20
  130. data/.gitmodules +0 -21
  131. data/.idea/.gitignore +0 -5
  132. data/.idea/dictionaries/gem_terms.xml +0 -18
  133. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  134. data/.idea/vcs.xml +0 -13
  135. data/.yardopts +0 -1
  136. data/Gemfile +0 -24
  137. data/Rakefile +0 -51
  138. data/bin/check-cluster +0 -31
  139. data/bin/console +0 -21
  140. data/bin/init-cluster +0 -82
  141. data/bin/setup +0 -24
  142. data/couchbase.gemspec +0 -47
  143. data/examples/analytics.rb +0 -221
  144. data/examples/crud.rb +0 -20
  145. data/examples/managing_analytics_indexes.rb +0 -72
  146. data/examples/managing_buckets.rb +0 -47
  147. data/examples/managing_collections.rb +0 -58
  148. data/examples/managing_query_indexes.rb +0 -63
  149. data/examples/managing_search_indexes.rb +0 -62
  150. data/examples/managing_view_indexes.rb +0 -54
  151. data/examples/query.rb +0 -18
  152. data/examples/query_with_consistency.rb +0 -76
  153. data/examples/search.rb +0 -187
  154. data/examples/search_with_consistency.rb +0 -84
  155. data/examples/subdocument.rb +0 -51
  156. data/examples/view.rb +0 -50
  157. data/ext/.clang-format +0 -15
  158. data/ext/.clang-tidy +0 -22
  159. data/ext/.cmake-format.yaml +0 -8
  160. data/ext/.gitignore +0 -2
  161. data/ext/.idea/.name +0 -1
  162. data/ext/.idea/dictionaries/couchbase_terms.xml +0 -14
  163. data/ext/.idea/ext.iml +0 -2
  164. data/ext/.idea/misc.xml +0 -4
  165. data/ext/.idea/modules.xml +0 -8
  166. data/ext/.idea/vcs.xml +0 -12
  167. data/ext/CMakeLists.txt +0 -163
  168. data/ext/LICENSE.txt +0 -202
  169. data/ext/build_version.hxx.in +0 -26
  170. data/ext/couchbase/bucket.hxx +0 -95
  171. data/ext/couchbase/cbcrypto/cbcrypto.cc +0 -888
  172. data/ext/couchbase/cbcrypto/cbcrypto.h +0 -89
  173. data/ext/couchbase/cbsasl/client.cc +0 -48
  174. data/ext/couchbase/cbsasl/client.h +0 -127
  175. data/ext/couchbase/cbsasl/context.cc +0 -33
  176. data/ext/couchbase/cbsasl/context.h +0 -52
  177. data/ext/couchbase/cbsasl/error.h +0 -72
  178. data/ext/couchbase/cbsasl/mechanism.cc +0 -48
  179. data/ext/couchbase/cbsasl/mechanism.h +0 -55
  180. data/ext/couchbase/cbsasl/plain/plain.cc +0 -36
  181. data/ext/couchbase/cbsasl/plain/plain.h +0 -53
  182. data/ext/couchbase/cbsasl/scram-sha/scram-sha.cc +0 -390
  183. data/ext/couchbase/cbsasl/scram-sha/scram-sha.h +0 -185
  184. data/ext/couchbase/cbsasl/scram-sha/stringutils.cc +0 -81
  185. data/ext/couchbase/cbsasl/scram-sha/stringutils.h +0 -48
  186. data/ext/couchbase/cluster.hxx +0 -175
  187. data/ext/couchbase/collections_manifest.hxx +0 -88
  188. data/ext/couchbase/configuration.hxx +0 -256
  189. data/ext/couchbase/configuration_monitor.hxx +0 -93
  190. data/ext/couchbase/couchbase.cxx +0 -5336
  191. data/ext/couchbase/document_id.hxx +0 -38
  192. data/ext/couchbase/error_map.hxx +0 -61
  193. data/ext/couchbase/errors.hxx +0 -691
  194. data/ext/couchbase/io/dns_client.hxx +0 -215
  195. data/ext/couchbase/io/dns_codec.hxx +0 -207
  196. data/ext/couchbase/io/dns_config.hxx +0 -116
  197. data/ext/couchbase/io/dns_message.hxx +0 -558
  198. data/ext/couchbase/io/http_message.hxx +0 -38
  199. data/ext/couchbase/io/http_parser.hxx +0 -174
  200. data/ext/couchbase/io/http_session.hxx +0 -316
  201. data/ext/couchbase/io/mcbp_message.hxx +0 -41
  202. data/ext/couchbase/io/mcbp_parser.hxx +0 -101
  203. data/ext/couchbase/io/mcbp_session.hxx +0 -889
  204. data/ext/couchbase/io/session_manager.hxx +0 -127
  205. data/ext/couchbase/mutation_token.hxx +0 -38
  206. data/ext/couchbase/operations/analytics_dataset_create.hxx +0 -117
  207. data/ext/couchbase/operations/analytics_dataset_drop.hxx +0 -103
  208. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +0 -107
  209. data/ext/couchbase/operations/analytics_dataverse_create.hxx +0 -104
  210. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +0 -104
  211. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +0 -91
  212. data/ext/couchbase/operations/analytics_index_create.hxx +0 -128
  213. data/ext/couchbase/operations/analytics_index_drop.hxx +0 -110
  214. data/ext/couchbase/operations/analytics_index_get_all.hxx +0 -106
  215. data/ext/couchbase/operations/analytics_link_connect.hxx +0 -102
  216. data/ext/couchbase/operations/analytics_link_disconnect.hxx +0 -101
  217. data/ext/couchbase/operations/bucket_create.hxx +0 -139
  218. data/ext/couchbase/operations/bucket_drop.hxx +0 -66
  219. data/ext/couchbase/operations/bucket_flush.hxx +0 -66
  220. data/ext/couchbase/operations/bucket_get.hxx +0 -70
  221. data/ext/couchbase/operations/bucket_get_all.hxx +0 -63
  222. data/ext/couchbase/operations/bucket_settings.hxx +0 -111
  223. data/ext/couchbase/operations/bucket_update.hxx +0 -116
  224. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +0 -61
  225. data/ext/couchbase/operations/collection_create.hxx +0 -91
  226. data/ext/couchbase/operations/collection_drop.hxx +0 -83
  227. data/ext/couchbase/operations/command.hxx +0 -152
  228. data/ext/couchbase/operations/design_document.hxx +0 -59
  229. data/ext/couchbase/operations/document_analytics.hxx +0 -293
  230. data/ext/couchbase/operations/document_decrement.hxx +0 -81
  231. data/ext/couchbase/operations/document_exists.hxx +0 -81
  232. data/ext/couchbase/operations/document_get.hxx +0 -63
  233. data/ext/couchbase/operations/document_get_and_lock.hxx +0 -65
  234. data/ext/couchbase/operations/document_get_and_touch.hxx +0 -65
  235. data/ext/couchbase/operations/document_get_projected.hxx +0 -243
  236. data/ext/couchbase/operations/document_increment.hxx +0 -83
  237. data/ext/couchbase/operations/document_insert.hxx +0 -75
  238. data/ext/couchbase/operations/document_lookup_in.hxx +0 -86
  239. data/ext/couchbase/operations/document_mutate_in.hxx +0 -97
  240. data/ext/couchbase/operations/document_query.hxx +0 -336
  241. data/ext/couchbase/operations/document_remove.hxx +0 -68
  242. data/ext/couchbase/operations/document_replace.hxx +0 -77
  243. data/ext/couchbase/operations/document_search.hxx +0 -355
  244. data/ext/couchbase/operations/document_touch.hxx +0 -61
  245. data/ext/couchbase/operations/document_unlock.hxx +0 -61
  246. data/ext/couchbase/operations/document_upsert.hxx +0 -75
  247. data/ext/couchbase/operations/document_view.hxx +0 -227
  248. data/ext/couchbase/operations/query_index_build_deferred.hxx +0 -86
  249. data/ext/couchbase/operations/query_index_create.hxx +0 -135
  250. data/ext/couchbase/operations/query_index_drop.hxx +0 -109
  251. data/ext/couchbase/operations/query_index_get_all.hxx +0 -107
  252. data/ext/couchbase/operations/scope_create.hxx +0 -82
  253. data/ext/couchbase/operations/scope_drop.hxx +0 -80
  254. data/ext/couchbase/operations/scope_get_all.hxx +0 -74
  255. data/ext/couchbase/operations/search_index.hxx +0 -79
  256. data/ext/couchbase/operations/search_index_analyze_document.hxx +0 -92
  257. data/ext/couchbase/operations/search_index_control_ingest.hxx +0 -80
  258. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +0 -80
  259. data/ext/couchbase/operations/search_index_control_query.hxx +0 -80
  260. data/ext/couchbase/operations/search_index_drop.hxx +0 -77
  261. data/ext/couchbase/operations/search_index_get.hxx +0 -80
  262. data/ext/couchbase/operations/search_index_get_all.hxx +0 -82
  263. data/ext/couchbase/operations/search_index_get_documents_count.hxx +0 -81
  264. data/ext/couchbase/operations/search_index_upsert.hxx +0 -106
  265. data/ext/couchbase/operations/view_index_drop.hxx +0 -67
  266. data/ext/couchbase/operations/view_index_get.hxx +0 -90
  267. data/ext/couchbase/operations/view_index_get_all.hxx +0 -125
  268. data/ext/couchbase/operations/view_index_upsert.hxx +0 -87
  269. data/ext/couchbase/operations.hxx +0 -91
  270. data/ext/couchbase/platform/base64.cc +0 -234
  271. data/ext/couchbase/platform/base64.h +0 -47
  272. data/ext/couchbase/platform/random.cc +0 -119
  273. data/ext/couchbase/platform/random.h +0 -39
  274. data/ext/couchbase/platform/string_hex.cc +0 -99
  275. data/ext/couchbase/platform/string_hex.h +0 -50
  276. data/ext/couchbase/platform/uuid.cc +0 -96
  277. data/ext/couchbase/platform/uuid.h +0 -56
  278. data/ext/couchbase/protocol/client_opcode.hxx +0 -260
  279. data/ext/couchbase/protocol/client_request.hxx +0 -160
  280. data/ext/couchbase/protocol/client_response.hxx +0 -218
  281. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -81
  282. data/ext/couchbase/protocol/cmd_decrement.hxx +0 -187
  283. data/ext/couchbase/protocol/cmd_exists.hxx +0 -171
  284. data/ext/couchbase/protocol/cmd_get.hxx +0 -122
  285. data/ext/couchbase/protocol/cmd_get_and_lock.hxx +0 -142
  286. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +0 -142
  287. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +0 -124
  288. data/ext/couchbase/protocol/cmd_get_collection_id.hxx +0 -117
  289. data/ext/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -99
  290. data/ext/couchbase/protocol/cmd_get_error_map.hxx +0 -126
  291. data/ext/couchbase/protocol/cmd_hello.hxx +0 -146
  292. data/ext/couchbase/protocol/cmd_increment.hxx +0 -187
  293. data/ext/couchbase/protocol/cmd_info.hxx +0 -36
  294. data/ext/couchbase/protocol/cmd_insert.hxx +0 -172
  295. data/ext/couchbase/protocol/cmd_lookup_in.hxx +0 -218
  296. data/ext/couchbase/protocol/cmd_mutate_in.hxx +0 -317
  297. data/ext/couchbase/protocol/cmd_remove.hxx +0 -134
  298. data/ext/couchbase/protocol/cmd_replace.hxx +0 -172
  299. data/ext/couchbase/protocol/cmd_sasl_auth.hxx +0 -106
  300. data/ext/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -100
  301. data/ext/couchbase/protocol/cmd_sasl_step.hxx +0 -104
  302. data/ext/couchbase/protocol/cmd_select_bucket.hxx +0 -85
  303. data/ext/couchbase/protocol/cmd_touch.hxx +0 -102
  304. data/ext/couchbase/protocol/cmd_unlock.hxx +0 -95
  305. data/ext/couchbase/protocol/cmd_upsert.hxx +0 -172
  306. data/ext/couchbase/protocol/datatype.hxx +0 -48
  307. data/ext/couchbase/protocol/durability_level.hxx +0 -67
  308. data/ext/couchbase/protocol/frame_info_id.hxx +0 -187
  309. data/ext/couchbase/protocol/hello_feature.hxx +0 -255
  310. data/ext/couchbase/protocol/magic.hxx +0 -83
  311. data/ext/couchbase/protocol/server_opcode.hxx +0 -57
  312. data/ext/couchbase/protocol/server_request.hxx +0 -122
  313. data/ext/couchbase/protocol/status.hxx +0 -333
  314. data/ext/couchbase/protocol/unsigned_leb128.h +0 -195
  315. data/ext/couchbase/service_type.hxx +0 -60
  316. data/ext/couchbase/timeout_defaults.hxx +0 -34
  317. data/ext/couchbase/utils/byteswap.hxx +0 -33
  318. data/ext/couchbase/utils/connection_string.hxx +0 -231
  319. data/ext/couchbase/utils/crc32.hxx +0 -48
  320. data/ext/couchbase/utils/url_codec.hxx +0 -225
  321. data/ext/couchbase/version.hxx +0 -24
  322. data/ext/test/main.cxx +0 -58
  323. data/ext/third_party/asio/.appveyor.yml +0 -107
  324. data/ext/third_party/asio/.cirrus.yml +0 -16
  325. data/ext/third_party/asio/.gitignore +0 -3
  326. data/ext/third_party/asio/.travis.yml +0 -323
  327. data/ext/third_party/asio/asio/.gitignore +0 -23
  328. data/ext/third_party/asio/asio/COPYING +0 -4
  329. data/ext/third_party/asio/asio/INSTALL +0 -5
  330. data/ext/third_party/asio/asio/LICENSE_1_0.txt +0 -23
  331. data/ext/third_party/asio/asio/Makefile.am +0 -19
  332. data/ext/third_party/asio/asio/README +0 -4
  333. data/ext/third_party/asio/asio/asio.manifest +0 -4865
  334. data/ext/third_party/asio/asio/autogen.sh +0 -55
  335. data/ext/third_party/asio/asio/boost_asio.manifest +0 -5193
  336. data/ext/third_party/asio/asio/boostify.pl +0 -603
  337. data/ext/third_party/asio/asio/configure.ac +0 -182
  338. data/ext/third_party/asio/asio/include/.gitignore +0 -2
  339. data/ext/third_party/asio/asio/include/Makefile.am +0 -484
  340. data/ext/third_party/asio/asio/include/asio/associated_allocator.hpp +0 -131
  341. data/ext/third_party/asio/asio/include/asio/associated_executor.hpp +0 -149
  342. data/ext/third_party/asio/asio/include/asio/async_result.hpp +0 -589
  343. data/ext/third_party/asio/asio/include/asio/awaitable.hpp +0 -123
  344. data/ext/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +0 -1210
  345. data/ext/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +0 -693
  346. data/ext/third_party/asio/asio/include/asio/basic_io_object.hpp +0 -290
  347. data/ext/third_party/asio/asio/include/asio/basic_raw_socket.hpp +0 -1202
  348. data/ext/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +0 -756
  349. data/ext/third_party/asio/asio/include/asio/basic_serial_port.hpp +0 -907
  350. data/ext/third_party/asio/asio/include/asio/basic_signal_set.hpp +0 -568
  351. data/ext/third_party/asio/asio/include/asio/basic_socket.hpp +0 -1894
  352. data/ext/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +0 -2495
  353. data/ext/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +0 -407
  354. data/ext/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +0 -687
  355. data/ext/third_party/asio/asio/include/asio/basic_stream_socket.hpp +0 -1049
  356. data/ext/third_party/asio/asio/include/asio/basic_streambuf.hpp +0 -452
  357. data/ext/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +0 -36
  358. data/ext/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +0 -763
  359. data/ext/third_party/asio/asio/include/asio/bind_executor.hpp +0 -580
  360. data/ext/third_party/asio/asio/include/asio/buffer.hpp +0 -2494
  361. data/ext/third_party/asio/asio/include/asio/buffered_read_stream.hpp +0 -253
  362. data/ext/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +0 -25
  363. data/ext/third_party/asio/asio/include/asio/buffered_stream.hpp +0 -279
  364. data/ext/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +0 -25
  365. data/ext/third_party/asio/asio/include/asio/buffered_write_stream.hpp +0 -245
  366. data/ext/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +0 -25
  367. data/ext/third_party/asio/asio/include/asio/buffers_iterator.hpp +0 -521
  368. data/ext/third_party/asio/asio/include/asio/co_spawn.hpp +0 -100
  369. data/ext/third_party/asio/asio/include/asio/completion_condition.hpp +0 -218
  370. data/ext/third_party/asio/asio/include/asio/compose.hpp +0 -136
  371. data/ext/third_party/asio/asio/include/asio/connect.hpp +0 -1076
  372. data/ext/third_party/asio/asio/include/asio/coroutine.hpp +0 -328
  373. data/ext/third_party/asio/asio/include/asio/deadline_timer.hpp +0 -38
  374. data/ext/third_party/asio/asio/include/asio/defer.hpp +0 -127
  375. data/ext/third_party/asio/asio/include/asio/detached.hpp +0 -62
  376. data/ext/third_party/asio/asio/include/asio/detail/array.hpp +0 -38
  377. data/ext/third_party/asio/asio/include/asio/detail/array_fwd.hpp +0 -34
  378. data/ext/third_party/asio/asio/include/asio/detail/assert.hpp +0 -32
  379. data/ext/third_party/asio/asio/include/asio/detail/atomic_count.hpp +0 -45
  380. data/ext/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +0 -69
  381. data/ext/third_party/asio/asio/include/asio/detail/bind_handler.hpp +0 -816
  382. data/ext/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +0 -66
  383. data/ext/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +0 -544
  384. data/ext/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +0 -126
  385. data/ext/third_party/asio/asio/include/asio/detail/call_stack.hpp +0 -125
  386. data/ext/third_party/asio/asio/include/asio/detail/chrono.hpp +0 -66
  387. data/ext/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +0 -190
  388. data/ext/third_party/asio/asio/include/asio/detail/completion_handler.hpp +0 -83
  389. data/ext/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +0 -94
  390. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +0 -112
  391. data/ext/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +0 -149
  392. data/ext/third_party/asio/asio/include/asio/detail/config.hpp +0 -1499
  393. data/ext/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +0 -414
  394. data/ext/third_party/asio/asio/include/asio/detail/cstddef.hpp +0 -31
  395. data/ext/third_party/asio/asio/include/asio/detail/cstdint.hpp +0 -60
  396. data/ext/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +0 -34
  397. data/ext/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +0 -280
  398. data/ext/third_party/asio/asio/include/asio/detail/dependent_type.hpp +0 -36
  399. data/ext/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +0 -121
  400. data/ext/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +0 -130
  401. data/ext/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +0 -130
  402. data/ext/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +0 -218
  403. data/ext/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +0 -266
  404. data/ext/third_party/asio/asio/include/asio/detail/event.hpp +0 -48
  405. data/ext/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +0 -83
  406. data/ext/third_party/asio/asio/include/asio/detail/executor_function.hpp +0 -104
  407. data/ext/third_party/asio/asio/include/asio/detail/executor_op.hpp +0 -84
  408. data/ext/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +0 -39
  409. data/ext/third_party/asio/asio/include/asio/detail/fenced_block.hpp +0 -80
  410. data/ext/third_party/asio/asio/include/asio/detail/functional.hpp +0 -38
  411. data/ext/third_party/asio/asio/include/asio/detail/future.hpp +0 -33
  412. data/ext/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +0 -91
  413. data/ext/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +0 -68
  414. data/ext/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +0 -65
  415. data/ext/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +0 -99
  416. data/ext/third_party/asio/asio/include/asio/detail/global.hpp +0 -52
  417. data/ext/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +0 -242
  418. data/ext/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +0 -45
  419. data/ext/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +0 -57
  420. data/ext/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +0 -238
  421. data/ext/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +0 -556
  422. data/ext/third_party/asio/asio/include/asio/detail/handler_work.hpp +0 -113
  423. data/ext/third_party/asio/asio/include/asio/detail/hash_map.hpp +0 -331
  424. data/ext/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +0 -118
  425. data/ext/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +0 -474
  426. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +0 -91
  427. data/ext/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +0 -446
  428. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +0 -89
  429. data/ext/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +0 -787
  430. data/ext/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +0 -169
  431. data/ext/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +0 -358
  432. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +0 -93
  433. data/ext/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +0 -570
  434. data/ext/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +0 -74
  435. data/ext/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +0 -129
  436. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +0 -59
  437. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +0 -46
  438. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +0 -84
  439. data/ext/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +0 -46
  440. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +0 -223
  441. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +0 -152
  442. data/ext/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +0 -300
  443. data/ext/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +0 -158
  444. data/ext/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +0 -617
  445. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +0 -100
  446. data/ext/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +0 -338
  447. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +0 -94
  448. data/ext/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +0 -197
  449. data/ext/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +0 -667
  450. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +0 -3575
  451. data/ext/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +0 -185
  452. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +0 -179
  453. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +0 -134
  454. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +0 -118
  455. data/ext/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +0 -177
  456. data/ext/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +0 -60
  457. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +0 -91
  458. data/ext/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +0 -101
  459. data/ext/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +0 -76
  460. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +0 -525
  461. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +0 -103
  462. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +0 -594
  463. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +0 -192
  464. data/ext/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +0 -801
  465. data/ext/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +0 -84
  466. data/ext/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +0 -448
  467. data/ext/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +0 -136
  468. data/ext/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +0 -150
  469. data/ext/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +0 -57
  470. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +0 -626
  471. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +0 -92
  472. data/ext/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +0 -121
  473. data/ext/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +0 -82
  474. data/ext/third_party/asio/asio/include/asio/detail/io_control.hpp +0 -84
  475. data/ext/third_party/asio/asio/include/asio/detail/io_object_executor.hpp +0 -167
  476. data/ext/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +0 -193
  477. data/ext/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +0 -312
  478. data/ext/third_party/asio/asio/include/asio/detail/is_executor.hpp +0 -126
  479. data/ext/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +0 -70
  480. data/ext/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +0 -242
  481. data/ext/third_party/asio/asio/include/asio/detail/limits.hpp +0 -26
  482. data/ext/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +0 -59
  483. data/ext/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +0 -62
  484. data/ext/third_party/asio/asio/include/asio/detail/memory.hpp +0 -70
  485. data/ext/third_party/asio/asio/include/asio/detail/mutex.hpp +0 -48
  486. data/ext/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +0 -54
  487. data/ext/third_party/asio/asio/include/asio/detail/noncopyable.hpp +0 -43
  488. data/ext/third_party/asio/asio/include/asio/detail/null_event.hpp +0 -100
  489. data/ext/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +0 -47
  490. data/ext/third_party/asio/asio/include/asio/detail/null_global.hpp +0 -59
  491. data/ext/third_party/asio/asio/include/asio/detail/null_mutex.hpp +0 -64
  492. data/ext/third_party/asio/asio/include/asio/detail/null_reactor.hpp +0 -68
  493. data/ext/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +0 -69
  494. data/ext/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +0 -519
  495. data/ext/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +0 -60
  496. data/ext/third_party/asio/asio/include/asio/detail/null_thread.hpp +0 -67
  497. data/ext/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +0 -68
  498. data/ext/third_party/asio/asio/include/asio/detail/object_pool.hpp +0 -171
  499. data/ext/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +0 -214
  500. data/ext/third_party/asio/asio/include/asio/detail/op_queue.hpp +0 -162
  501. data/ext/third_party/asio/asio/include/asio/detail/operation.hpp +0 -38
  502. data/ext/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +0 -89
  503. data/ext/third_party/asio/asio/include/asio/detail/pop_options.hpp +0 -141
  504. data/ext/third_party/asio/asio/include/asio/detail/posix_event.hpp +0 -162
  505. data/ext/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +0 -118
  506. data/ext/third_party/asio/asio/include/asio/detail/posix_global.hpp +0 -80
  507. data/ext/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +0 -76
  508. data/ext/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +0 -85
  509. data/ext/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +0 -64
  510. data/ext/third_party/asio/asio/include/asio/detail/posix_thread.hpp +0 -109
  511. data/ext/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +0 -79
  512. data/ext/third_party/asio/asio/include/asio/detail/push_options.hpp +0 -185
  513. data/ext/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +0 -391
  514. data/ext/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +0 -92
  515. data/ext/third_party/asio/asio/include/asio/detail/reactive_serial_port_service.hpp +0 -238
  516. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +0 -230
  517. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +0 -116
  518. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +0 -137
  519. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +0 -142
  520. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +0 -135
  521. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +0 -136
  522. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +0 -134
  523. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +0 -505
  524. data/ext/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +0 -518
  525. data/ext/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +0 -92
  526. data/ext/third_party/asio/asio/include/asio/detail/reactor.hpp +0 -32
  527. data/ext/third_party/asio/asio/include/asio/detail/reactor_fwd.hpp +0 -40
  528. data/ext/third_party/asio/asio/include/asio/detail/reactor_op.hpp +0 -65
  529. data/ext/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +0 -168
  530. data/ext/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +0 -106
  531. data/ext/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +0 -35
  532. data/ext/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +0 -138
  533. data/ext/third_party/asio/asio/include/asio/detail/resolve_op.hpp +0 -45
  534. data/ext/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +0 -148
  535. data/ext/third_party/asio/asio/include/asio/detail/resolver_service.hpp +0 -145
  536. data/ext/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +0 -143
  537. data/ext/third_party/asio/asio/include/asio/detail/scheduler.hpp +0 -224
  538. data/ext/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +0 -78
  539. data/ext/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +0 -40
  540. data/ext/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +0 -101
  541. data/ext/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +0 -87
  542. data/ext/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +0 -46
  543. data/ext/third_party/asio/asio/include/asio/detail/select_reactor.hpp +0 -238
  544. data/ext/third_party/asio/asio/include/asio/detail/service_registry.hpp +0 -164
  545. data/ext/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +0 -44
  546. data/ext/third_party/asio/asio/include/asio/detail/signal_handler.hpp +0 -88
  547. data/ext/third_party/asio/asio/include/asio/detail/signal_init.hpp +0 -47
  548. data/ext/third_party/asio/asio/include/asio/detail/signal_op.hpp +0 -49
  549. data/ext/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +0 -229
  550. data/ext/third_party/asio/asio/include/asio/detail/socket_holder.hpp +0 -98
  551. data/ext/third_party/asio/asio/include/asio/detail/socket_ops.hpp +0 -337
  552. data/ext/third_party/asio/asio/include/asio/detail/socket_option.hpp +0 -316
  553. data/ext/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +0 -91
  554. data/ext/third_party/asio/asio/include/asio/detail/socket_types.hpp +0 -416
  555. data/ext/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +0 -62
  556. data/ext/third_party/asio/asio/include/asio/detail/static_mutex.hpp +0 -52
  557. data/ext/third_party/asio/asio/include/asio/detail/std_event.hpp +0 -176
  558. data/ext/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +0 -62
  559. data/ext/third_party/asio/asio/include/asio/detail/std_global.hpp +0 -70
  560. data/ext/third_party/asio/asio/include/asio/detail/std_mutex.hpp +0 -73
  561. data/ext/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +0 -81
  562. data/ext/third_party/asio/asio/include/asio/detail/std_thread.hpp +0 -71
  563. data/ext/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +0 -142
  564. data/ext/third_party/asio/asio/include/asio/detail/strand_service.hpp +0 -142
  565. data/ext/third_party/asio/asio/include/asio/detail/string_view.hpp +0 -47
  566. data/ext/third_party/asio/asio/include/asio/detail/thread.hpp +0 -60
  567. data/ext/third_party/asio/asio/include/asio/detail/thread_context.hpp +0 -42
  568. data/ext/third_party/asio/asio/include/asio/detail/thread_group.hpp +0 -95
  569. data/ext/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +0 -125
  570. data/ext/third_party/asio/asio/include/asio/detail/throw_error.hpp +0 -53
  571. data/ext/third_party/asio/asio/include/asio/detail/throw_exception.hpp +0 -51
  572. data/ext/third_party/asio/asio/include/asio/detail/timer_queue.hpp +0 -360
  573. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +0 -68
  574. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +0 -99
  575. data/ext/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +0 -66
  576. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +0 -35
  577. data/ext/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +0 -40
  578. data/ext/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +0 -69
  579. data/ext/third_party/asio/asio/include/asio/detail/type_traits.hpp +0 -89
  580. data/ext/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +0 -151
  581. data/ext/third_party/asio/asio/include/asio/detail/wait_handler.hpp +0 -87
  582. data/ext/third_party/asio/asio/include/asio/detail/wait_op.hpp +0 -45
  583. data/ext/third_party/asio/asio/include/asio/detail/win_event.hpp +0 -151
  584. data/ext/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +0 -149
  585. data/ext/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +0 -90
  586. data/ext/third_party/asio/asio/include/asio/detail/win_global.hpp +0 -71
  587. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +0 -113
  588. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +0 -335
  589. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +0 -106
  590. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +0 -338
  591. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +0 -123
  592. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +0 -96
  593. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +0 -92
  594. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +0 -159
  595. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +0 -232
  596. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +0 -308
  597. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +0 -130
  598. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +0 -120
  599. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +0 -129
  600. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +0 -121
  601. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +0 -114
  602. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +0 -581
  603. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +0 -600
  604. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +0 -34
  605. data/ext/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +0 -123
  606. data/ext/third_party/asio/asio/include/asio/detail/win_mutex.hpp +0 -78
  607. data/ext/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +0 -195
  608. data/ext/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +0 -74
  609. data/ext/third_party/asio/asio/include/asio/detail/win_thread.hpp +0 -147
  610. data/ext/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +0 -79
  611. data/ext/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +0 -124
  612. data/ext/third_party/asio/asio/include/asio/detail/wince_thread.hpp +0 -124
  613. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +0 -305
  614. data/ext/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +0 -65
  615. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +0 -121
  616. data/ext/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +0 -212
  617. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +0 -94
  618. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +0 -115
  619. data/ext/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +0 -106
  620. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +0 -250
  621. data/ext/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +0 -362
  622. data/ext/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +0 -147
  623. data/ext/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +0 -106
  624. data/ext/third_party/asio/asio/include/asio/detail/winsock_init.hpp +0 -128
  625. data/ext/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +0 -73
  626. data/ext/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +0 -291
  627. data/ext/third_party/asio/asio/include/asio/dispatch.hpp +0 -118
  628. data/ext/third_party/asio/asio/include/asio/error.hpp +0 -356
  629. data/ext/third_party/asio/asio/include/asio/error_code.hpp +0 -202
  630. data/ext/third_party/asio/asio/include/asio/execution_context.hpp +0 -412
  631. data/ext/third_party/asio/asio/include/asio/executor.hpp +0 -341
  632. data/ext/third_party/asio/asio/include/asio/executor_work_guard.hpp +0 -170
  633. data/ext/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +0 -193
  634. data/ext/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +0 -123
  635. data/ext/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +0 -133
  636. data/ext/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +0 -110
  637. data/ext/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +0 -121
  638. data/ext/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +0 -122
  639. data/ext/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +0 -127
  640. data/ext/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +0 -81
  641. data/ext/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +0 -54
  642. data/ext/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +0 -85
  643. data/ext/third_party/asio/asio/include/asio/high_resolution_timer.hpp +0 -44
  644. data/ext/third_party/asio/asio/include/asio/impl/awaitable.hpp +0 -422
  645. data/ext/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +0 -491
  646. data/ext/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +0 -471
  647. data/ext/third_party/asio/asio/include/asio/impl/co_spawn.hpp +0 -160
  648. data/ext/third_party/asio/asio/include/asio/impl/compose.hpp +0 -533
  649. data/ext/third_party/asio/asio/include/asio/impl/connect.hpp +0 -872
  650. data/ext/third_party/asio/asio/include/asio/impl/defer.hpp +0 -113
  651. data/ext/third_party/asio/asio/include/asio/impl/detached.hpp +0 -130
  652. data/ext/third_party/asio/asio/include/asio/impl/dispatch.hpp +0 -113
  653. data/ext/third_party/asio/asio/include/asio/impl/error.ipp +0 -128
  654. data/ext/third_party/asio/asio/include/asio/impl/error_code.ipp +0 -206
  655. data/ext/third_party/asio/asio/include/asio/impl/execution_context.hpp +0 -109
  656. data/ext/third_party/asio/asio/include/asio/impl/execution_context.ipp +0 -82
  657. data/ext/third_party/asio/asio/include/asio/impl/executor.hpp +0 -387
  658. data/ext/third_party/asio/asio/include/asio/impl/executor.ipp +0 -38
  659. data/ext/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +0 -52
  660. data/ext/third_party/asio/asio/include/asio/impl/io_context.hpp +0 -353
  661. data/ext/third_party/asio/asio/include/asio/impl/io_context.ipp +0 -175
  662. data/ext/third_party/asio/asio/include/asio/impl/post.hpp +0 -113
  663. data/ext/third_party/asio/asio/include/asio/impl/read.hpp +0 -1135
  664. data/ext/third_party/asio/asio/include/asio/impl/read_at.hpp +0 -699
  665. data/ext/third_party/asio/asio/include/asio/impl/read_until.hpp +0 -3150
  666. data/ext/third_party/asio/asio/include/asio/impl/redirect_error.hpp +0 -372
  667. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +0 -59
  668. data/ext/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +0 -554
  669. data/ext/third_party/asio/asio/include/asio/impl/spawn.hpp +0 -490
  670. data/ext/third_party/asio/asio/include/asio/impl/src.cpp +0 -25
  671. data/ext/third_party/asio/asio/include/asio/impl/src.hpp +0 -82
  672. data/ext/third_party/asio/asio/include/asio/impl/system_context.hpp +0 -34
  673. data/ext/third_party/asio/asio/include/asio/impl/system_context.ipp +0 -80
  674. data/ext/third_party/asio/asio/include/asio/impl/system_executor.hpp +0 -85
  675. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.hpp +0 -127
  676. data/ext/third_party/asio/asio/include/asio/impl/thread_pool.ipp +0 -87
  677. data/ext/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +0 -276
  678. data/ext/third_party/asio/asio/include/asio/impl/use_future.hpp +0 -887
  679. data/ext/third_party/asio/asio/include/asio/impl/write.hpp +0 -1043
  680. data/ext/third_party/asio/asio/include/asio/impl/write_at.hpp +0 -624
  681. data/ext/third_party/asio/asio/include/asio/io_context.hpp +0 -872
  682. data/ext/third_party/asio/asio/include/asio/io_context_strand.hpp +0 -374
  683. data/ext/third_party/asio/asio/include/asio/io_service.hpp +0 -33
  684. data/ext/third_party/asio/asio/include/asio/io_service_strand.hpp +0 -20
  685. data/ext/third_party/asio/asio/include/asio/ip/address.hpp +0 -268
  686. data/ext/third_party/asio/asio/include/asio/ip/address_v4.hpp +0 -335
  687. data/ext/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +0 -162
  688. data/ext/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +0 -134
  689. data/ext/third_party/asio/asio/include/asio/ip/address_v6.hpp +0 -341
  690. data/ext/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +0 -183
  691. data/ext/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +0 -129
  692. data/ext/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +0 -53
  693. data/ext/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +0 -264
  694. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +0 -1030
  695. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +0 -113
  696. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +0 -192
  697. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +0 -244
  698. data/ext/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +0 -311
  699. data/ext/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +0 -141
  700. data/ext/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +0 -199
  701. data/ext/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +0 -566
  702. data/ext/third_party/asio/asio/include/asio/ip/host_name.hpp +0 -42
  703. data/ext/third_party/asio/asio/include/asio/ip/icmp.hpp +0 -115
  704. data/ext/third_party/asio/asio/include/asio/ip/impl/address.hpp +0 -67
  705. data/ext/third_party/asio/asio/include/asio/ip/impl/address.ipp +0 -239
  706. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +0 -67
  707. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +0 -210
  708. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +0 -67
  709. data/ext/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +0 -350
  710. data/ext/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +0 -43
  711. data/ext/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +0 -54
  712. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +0 -54
  713. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +0 -216
  714. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +0 -53
  715. data/ext/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +0 -185
  716. data/ext/third_party/asio/asio/include/asio/ip/multicast.hpp +0 -191
  717. data/ext/third_party/asio/asio/include/asio/ip/network_v4.hpp +0 -261
  718. data/ext/third_party/asio/asio/include/asio/ip/network_v6.hpp +0 -235
  719. data/ext/third_party/asio/asio/include/asio/ip/resolver_base.hpp +0 -129
  720. data/ext/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +0 -43
  721. data/ext/third_party/asio/asio/include/asio/ip/tcp.hpp +0 -155
  722. data/ext/third_party/asio/asio/include/asio/ip/udp.hpp +0 -111
  723. data/ext/third_party/asio/asio/include/asio/ip/unicast.hpp +0 -70
  724. data/ext/third_party/asio/asio/include/asio/ip/v6_only.hpp +0 -69
  725. data/ext/third_party/asio/asio/include/asio/is_executor.hpp +0 -46
  726. data/ext/third_party/asio/asio/include/asio/is_read_buffered.hpp +0 -59
  727. data/ext/third_party/asio/asio/include/asio/is_write_buffered.hpp +0 -59
  728. data/ext/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +0 -247
  729. data/ext/third_party/asio/asio/include/asio/local/connect_pair.hpp +0 -101
  730. data/ext/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +0 -80
  731. data/ext/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +0 -139
  732. data/ext/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +0 -136
  733. data/ext/third_party/asio/asio/include/asio/local/stream_protocol.hpp +0 -90
  734. data/ext/third_party/asio/asio/include/asio/packaged_task.hpp +0 -126
  735. data/ext/third_party/asio/asio/include/asio/placeholders.hpp +0 -151
  736. data/ext/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +0 -697
  737. data/ext/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +0 -470
  738. data/ext/third_party/asio/asio/include/asio/posix/descriptor.hpp +0 -37
  739. data/ext/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +0 -90
  740. data/ext/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +0 -37
  741. data/ext/third_party/asio/asio/include/asio/post.hpp +0 -123
  742. data/ext/third_party/asio/asio/include/asio/read.hpp +0 -1288
  743. data/ext/third_party/asio/asio/include/asio/read_at.hpp +0 -694
  744. data/ext/third_party/asio/asio/include/asio/read_until.hpp +0 -2863
  745. data/ext/third_party/asio/asio/include/asio/redirect_error.hpp +0 -66
  746. data/ext/third_party/asio/asio/include/asio/serial_port.hpp +0 -36
  747. data/ext/third_party/asio/asio/include/asio/serial_port_base.hpp +0 -167
  748. data/ext/third_party/asio/asio/include/asio/signal_set.hpp +0 -28
  749. data/ext/third_party/asio/asio/include/asio/socket_base.hpp +0 -559
  750. data/ext/third_party/asio/asio/include/asio/spawn.hpp +0 -336
  751. data/ext/third_party/asio/asio/include/asio/ssl/context.hpp +0 -761
  752. data/ext/third_party/asio/asio/include/asio/ssl/context_base.hpp +0 -209
  753. data/ext/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +0 -114
  754. data/ext/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +0 -160
  755. data/ext/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +0 -62
  756. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +0 -336
  757. data/ext/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +0 -165
  758. data/ext/third_party/asio/asio/include/asio/ssl/detail/io.hpp +0 -381
  759. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +0 -101
  760. data/ext/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +0 -34
  761. data/ext/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +0 -66
  762. data/ext/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +0 -67
  763. data/ext/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +0 -64
  764. data/ext/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +0 -135
  765. data/ext/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +0 -62
  766. data/ext/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +0 -67
  767. data/ext/third_party/asio/asio/include/asio/ssl/error.hpp +0 -125
  768. data/ext/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +0 -90
  769. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.hpp +0 -67
  770. data/ext/third_party/asio/asio/include/asio/ssl/impl/context.ipp +0 -1238
  771. data/ext/third_party/asio/asio/include/asio/ssl/impl/error.ipp +0 -102
  772. data/ext/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +0 -73
  773. data/ext/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +0 -164
  774. data/ext/third_party/asio/asio/include/asio/ssl/impl/src.hpp +0 -29
  775. data/ext/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +0 -98
  776. data/ext/third_party/asio/asio/include/asio/ssl/stream.hpp +0 -885
  777. data/ext/third_party/asio/asio/include/asio/ssl/stream_base.hpp +0 -52
  778. data/ext/third_party/asio/asio/include/asio/ssl/verify_context.hpp +0 -67
  779. data/ext/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +0 -63
  780. data/ext/third_party/asio/asio/include/asio/ssl.hpp +0 -28
  781. data/ext/third_party/asio/asio/include/asio/steady_timer.hpp +0 -42
  782. data/ext/third_party/asio/asio/include/asio/strand.hpp +0 -314
  783. data/ext/third_party/asio/asio/include/asio/streambuf.hpp +0 -33
  784. data/ext/third_party/asio/asio/include/asio/system_context.hpp +0 -81
  785. data/ext/third_party/asio/asio/include/asio/system_error.hpp +0 -131
  786. data/ext/third_party/asio/asio/include/asio/system_executor.hpp +0 -129
  787. data/ext/third_party/asio/asio/include/asio/system_timer.hpp +0 -42
  788. data/ext/third_party/asio/asio/include/asio/this_coro.hpp +0 -45
  789. data/ext/third_party/asio/asio/include/asio/thread.hpp +0 -92
  790. data/ext/third_party/asio/asio/include/asio/thread_pool.hpp +0 -235
  791. data/ext/third_party/asio/asio/include/asio/time_traits.hpp +0 -86
  792. data/ext/third_party/asio/asio/include/asio/ts/buffer.hpp +0 -24
  793. data/ext/third_party/asio/asio/include/asio/ts/executor.hpp +0 -34
  794. data/ext/third_party/asio/asio/include/asio/ts/internet.hpp +0 -40
  795. data/ext/third_party/asio/asio/include/asio/ts/io_context.hpp +0 -20
  796. data/ext/third_party/asio/asio/include/asio/ts/net.hpp +0 -26
  797. data/ext/third_party/asio/asio/include/asio/ts/netfwd.hpp +0 -203
  798. data/ext/third_party/asio/asio/include/asio/ts/socket.hpp +0 -27
  799. data/ext/third_party/asio/asio/include/asio/ts/timer.hpp +0 -26
  800. data/ext/third_party/asio/asio/include/asio/unyield.hpp +0 -21
  801. data/ext/third_party/asio/asio/include/asio/use_awaitable.hpp +0 -110
  802. data/ext/third_party/asio/asio/include/asio/use_future.hpp +0 -160
  803. data/ext/third_party/asio/asio/include/asio/uses_executor.hpp +0 -71
  804. data/ext/third_party/asio/asio/include/asio/version.hpp +0 -23
  805. data/ext/third_party/asio/asio/include/asio/wait_traits.hpp +0 -56
  806. data/ext/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +0 -435
  807. data/ext/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +0 -361
  808. data/ext/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +0 -490
  809. data/ext/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +0 -474
  810. data/ext/third_party/asio/asio/include/asio/windows/object_handle.hpp +0 -38
  811. data/ext/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +0 -39
  812. data/ext/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +0 -143
  813. data/ext/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +0 -37
  814. data/ext/third_party/asio/asio/include/asio/windows/stream_handle.hpp +0 -37
  815. data/ext/third_party/asio/asio/include/asio/write.hpp +0 -1246
  816. data/ext/third_party/asio/asio/include/asio/write_at.hpp +0 -702
  817. data/ext/third_party/asio/asio/include/asio/yield.hpp +0 -23
  818. data/ext/third_party/asio/asio/include/asio.hpp +0 -147
  819. data/ext/third_party/asio/asio/release.pl +0 -440
  820. data/ext/third_party/asio/asio/src/.gitignore +0 -11
  821. data/ext/third_party/asio/asio/src/Makefile.am +0 -23
  822. data/ext/third_party/asio/asio/src/Makefile.mgw +0 -204
  823. data/ext/third_party/asio/asio/src/Makefile.msc +0 -497
  824. data/ext/third_party/asio/asio/src/asio.cpp +0 -11
  825. data/ext/third_party/asio/asio/src/asio_ssl.cpp +0 -11
  826. data/ext/third_party/asio/asio/src/doc/.gitignore +0 -5
  827. data/ext/third_party/asio/asio/src/doc/Jamfile.v2 +0 -62
  828. data/ext/third_party/asio/asio/src/doc/asio.png +0 -0
  829. data/ext/third_party/asio/asio/src/doc/asio.qbk +0 -127
  830. data/ext/third_party/asio/asio/src/doc/asioref.sty +0 -90
  831. data/ext/third_party/asio/asio/src/doc/asioref.xsl +0 -94
  832. data/ext/third_party/asio/asio/src/doc/boost_bind_dox.txt +0 -5
  833. data/ext/third_party/asio/asio/src/doc/doxy2qbk.pl +0 -22
  834. data/ext/third_party/asio/asio/src/doc/examples.qbk +0 -564
  835. data/ext/third_party/asio/asio/src/doc/history.qbk +0 -1794
  836. data/ext/third_party/asio/asio/src/doc/index.xml +0 -13
  837. data/ext/third_party/asio/asio/src/doc/makepdf.pl +0 -26
  838. data/ext/third_party/asio/asio/src/doc/net_ts.qbk +0 -479
  839. data/ext/third_party/asio/asio/src/doc/noncopyable_dox.txt +0 -3
  840. data/ext/third_party/asio/asio/src/doc/overview/allocation.qbk +0 -89
  841. data/ext/third_party/asio/asio/src/doc/overview/async.qbk +0 -185
  842. data/ext/third_party/asio/asio/src/doc/overview/async_op1.dot +0 -78
  843. data/ext/third_party/asio/asio/src/doc/overview/async_op1.png +0 -0
  844. data/ext/third_party/asio/asio/src/doc/overview/async_op2.dot +0 -78
  845. data/ext/third_party/asio/asio/src/doc/overview/async_op2.png +0 -0
  846. data/ext/third_party/asio/asio/src/doc/overview/basics.qbk +0 -106
  847. data/ext/third_party/asio/asio/src/doc/overview/bsd_sockets.qbk +0 -270
  848. data/ext/third_party/asio/asio/src/doc/overview/buffers.qbk +0 -163
  849. data/ext/third_party/asio/asio/src/doc/overview/concurrency_hint.qbk +0 -88
  850. data/ext/third_party/asio/asio/src/doc/overview/coroutine.qbk +0 -51
  851. data/ext/third_party/asio/asio/src/doc/overview/coroutines_ts.qbk +0 -97
  852. data/ext/third_party/asio/asio/src/doc/overview/cpp2011.qbk +0 -271
  853. data/ext/third_party/asio/asio/src/doc/overview/handler_tracking.qbk +0 -220
  854. data/ext/third_party/asio/asio/src/doc/overview/implementation.qbk +0 -305
  855. data/ext/third_party/asio/asio/src/doc/overview/iostreams.qbk +0 -72
  856. data/ext/third_party/asio/asio/src/doc/overview/line_based.qbk +0 -118
  857. data/ext/third_party/asio/asio/src/doc/overview/other_protocols.qbk +0 -94
  858. data/ext/third_party/asio/asio/src/doc/overview/posix.qbk +0 -152
  859. data/ext/third_party/asio/asio/src/doc/overview/proactor.dot +0 -100
  860. data/ext/third_party/asio/asio/src/doc/overview/proactor.png +0 -0
  861. data/ext/third_party/asio/asio/src/doc/overview/protocols.qbk +0 -149
  862. data/ext/third_party/asio/asio/src/doc/overview/rationale.qbk +0 -54
  863. data/ext/third_party/asio/asio/src/doc/overview/reactor.qbk +0 -44
  864. data/ext/third_party/asio/asio/src/doc/overview/serial_ports.qbk +0 -45
  865. data/ext/third_party/asio/asio/src/doc/overview/signals.qbk +0 -44
  866. data/ext/third_party/asio/asio/src/doc/overview/spawn.qbk +0 -102
  867. data/ext/third_party/asio/asio/src/doc/overview/ssl.qbk +0 -124
  868. data/ext/third_party/asio/asio/src/doc/overview/strands.qbk +0 -114
  869. data/ext/third_party/asio/asio/src/doc/overview/streams.qbk +0 -62
  870. data/ext/third_party/asio/asio/src/doc/overview/sync_op.dot +0 -67
  871. data/ext/third_party/asio/asio/src/doc/overview/sync_op.png +0 -0
  872. data/ext/third_party/asio/asio/src/doc/overview/threads.qbk +0 -67
  873. data/ext/third_party/asio/asio/src/doc/overview/timers.qbk +0 -52
  874. data/ext/third_party/asio/asio/src/doc/overview/windows.qbk +0 -126
  875. data/ext/third_party/asio/asio/src/doc/overview.qbk +0 -103
  876. data/ext/third_party/asio/asio/src/doc/project-root.jam +0 -1
  877. data/ext/third_party/asio/asio/src/doc/quickref.xml +0 -561
  878. data/ext/third_party/asio/asio/src/doc/reference.dox +0 -264
  879. data/ext/third_party/asio/asio/src/doc/reference.qbk +0 -125973
  880. data/ext/third_party/asio/asio/src/doc/reference.xsl +0 -1831
  881. data/ext/third_party/asio/asio/src/doc/release_checklist.htm +0 -68
  882. data/ext/third_party/asio/asio/src/doc/requirements/AcceptHandler.qbk +0 -72
  883. data/ext/third_party/asio/asio/src/doc/requirements/AcceptableProtocol.qbk +0 -25
  884. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessReadDevice.qbk +0 -56
  885. data/ext/third_party/asio/asio/src/doc/requirements/AsyncRandomAccessWriteDevice.qbk +0 -57
  886. data/ext/third_party/asio/asio/src/doc/requirements/AsyncReadStream.qbk +0 -50
  887. data/ext/third_party/asio/asio/src/doc/requirements/AsyncWriteStream.qbk +0 -48
  888. data/ext/third_party/asio/asio/src/doc/requirements/BufferedHandshakeHandler.qbk +0 -55
  889. data/ext/third_party/asio/asio/src/doc/requirements/CompletionCondition.qbk +0 -42
  890. data/ext/third_party/asio/asio/src/doc/requirements/CompletionHandler.qbk +0 -63
  891. data/ext/third_party/asio/asio/src/doc/requirements/ConnectCondition.qbk +0 -34
  892. data/ext/third_party/asio/asio/src/doc/requirements/ConnectHandler.qbk +0 -72
  893. data/ext/third_party/asio/asio/src/doc/requirements/ConstBufferSequence.qbk +0 -53
  894. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer.qbk +0 -16
  895. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v1.qbk +0 -93
  896. data/ext/third_party/asio/asio/src/doc/requirements/DynamicBuffer_v2.qbk +0 -94
  897. data/ext/third_party/asio/asio/src/doc/requirements/Endpoint.qbk +0 -97
  898. data/ext/third_party/asio/asio/src/doc/requirements/EndpointSequence.qbk +0 -30
  899. data/ext/third_party/asio/asio/src/doc/requirements/ExecutionContext.qbk +0 -36
  900. data/ext/third_party/asio/asio/src/doc/requirements/Executor.qbk +0 -141
  901. data/ext/third_party/asio/asio/src/doc/requirements/GettableSerialPortOption.qbk +0 -33
  902. data/ext/third_party/asio/asio/src/doc/requirements/GettableSocketOption.qbk +0 -67
  903. data/ext/third_party/asio/asio/src/doc/requirements/Handler.qbk +0 -64
  904. data/ext/third_party/asio/asio/src/doc/requirements/HandshakeHandler.qbk +0 -72
  905. data/ext/third_party/asio/asio/src/doc/requirements/InternetProtocol.qbk +0 -47
  906. data/ext/third_party/asio/asio/src/doc/requirements/IoControlCommand.qbk +0 -34
  907. data/ext/third_party/asio/asio/src/doc/requirements/IoObjectService.qbk +0 -62
  908. data/ext/third_party/asio/asio/src/doc/requirements/IteratorConnectHandler.qbk +0 -81
  909. data/ext/third_party/asio/asio/src/doc/requirements/LegacyCompletionHandler.qbk +0 -65
  910. data/ext/third_party/asio/asio/src/doc/requirements/MoveAcceptHandler.qbk +0 -61
  911. data/ext/third_party/asio/asio/src/doc/requirements/MutableBufferSequence.qbk +0 -54
  912. data/ext/third_party/asio/asio/src/doc/requirements/ProtoAllocator.qbk +0 -19
  913. data/ext/third_party/asio/asio/src/doc/requirements/Protocol.qbk +0 -56
  914. data/ext/third_party/asio/asio/src/doc/requirements/RangeConnectHandler.qbk +0 -82
  915. data/ext/third_party/asio/asio/src/doc/requirements/ReadHandler.qbk +0 -79
  916. data/ext/third_party/asio/asio/src/doc/requirements/ResolveHandler.qbk +0 -82
  917. data/ext/third_party/asio/asio/src/doc/requirements/Service.qbk +0 -40
  918. data/ext/third_party/asio/asio/src/doc/requirements/SettableSerialPortOption.qbk +0 -33
  919. data/ext/third_party/asio/asio/src/doc/requirements/SettableSocketOption.qbk +0 -54
  920. data/ext/third_party/asio/asio/src/doc/requirements/ShutdownHandler.qbk +0 -72
  921. data/ext/third_party/asio/asio/src/doc/requirements/SignalHandler.qbk +0 -79
  922. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessReadDevice.qbk +0 -49
  923. data/ext/third_party/asio/asio/src/doc/requirements/SyncRandomAccessWriteDevice.qbk +0 -49
  924. data/ext/third_party/asio/asio/src/doc/requirements/SyncReadStream.qbk +0 -41
  925. data/ext/third_party/asio/asio/src/doc/requirements/SyncWriteStream.qbk +0 -39
  926. data/ext/third_party/asio/asio/src/doc/requirements/TimeTraits.qbk +0 -72
  927. data/ext/third_party/asio/asio/src/doc/requirements/WaitHandler.qbk +0 -72
  928. data/ext/third_party/asio/asio/src/doc/requirements/WaitTraits.qbk +0 -52
  929. data/ext/third_party/asio/asio/src/doc/requirements/WriteHandler.qbk +0 -79
  930. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_operations.qbk +0 -300
  931. data/ext/third_party/asio/asio/src/doc/requirements/asynchronous_socket_operations.qbk +0 -39
  932. data/ext/third_party/asio/asio/src/doc/requirements/read_write_operations.qbk +0 -34
  933. data/ext/third_party/asio/asio/src/doc/requirements/synchronous_socket_operations.qbk +0 -37
  934. data/ext/third_party/asio/asio/src/doc/std_exception_dox.txt +0 -7
  935. data/ext/third_party/asio/asio/src/doc/tutorial.dox +0 -226
  936. data/ext/third_party/asio/asio/src/doc/tutorial.qbk +0 -2387
  937. data/ext/third_party/asio/asio/src/doc/tutorial.xsl +0 -437
  938. data/ext/third_party/asio/asio/src/doc/using.qbk +0 -309
  939. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  940. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  941. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  942. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  943. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  944. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  945. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  946. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  947. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  948. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  949. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  950. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  951. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  952. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  953. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  954. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  955. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  956. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  957. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  958. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  959. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  960. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  961. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  962. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  963. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  964. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  965. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  966. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  967. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  968. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  969. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  970. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  971. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  972. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  973. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  974. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  975. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  976. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  977. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  978. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  979. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  980. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  981. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  982. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  983. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  984. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  985. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  986. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  987. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  988. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  989. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  990. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  991. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  992. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  993. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  994. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  995. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  996. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  997. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  998. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  999. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  1000. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  1001. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  1002. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  1003. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  1004. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  1005. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  1006. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  1007. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  1008. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  1009. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  1010. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  1011. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  1012. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  1013. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  1014. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  1015. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  1016. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  1017. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  1018. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  1019. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  1020. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  1021. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  1022. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  1023. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  1024. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  1025. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  1026. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  1027. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  1028. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  1029. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  1030. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  1031. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  1032. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  1033. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  1034. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  1035. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  1036. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  1037. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  1038. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  1039. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  1040. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  1041. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  1042. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  1043. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  1044. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  1045. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  1046. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  1047. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  1048. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  1049. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  1050. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  1051. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  1052. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  1053. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  1054. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  1055. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  1056. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  1057. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  1058. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  1059. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  1060. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  1061. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  1062. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  1063. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  1064. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  1065. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  1066. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  1067. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  1068. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  1069. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  1070. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  1071. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  1072. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  1073. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  1074. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  1075. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  1076. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  1077. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  1078. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  1079. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  1080. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  1081. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  1082. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  1083. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  1084. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  1085. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  1086. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  1087. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  1088. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  1089. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  1090. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  1091. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  1092. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  1093. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  1094. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  1095. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  1096. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  1097. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  1098. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  1099. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  1100. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  1101. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  1102. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  1103. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  1104. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  1105. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  1106. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  1107. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  1108. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  1109. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  1110. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  1111. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  1112. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  1113. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  1114. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  1115. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  1116. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  1117. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  1118. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  1119. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  1120. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  1121. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  1122. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  1123. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  1124. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  1125. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  1126. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  1127. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  1128. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  1129. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  1130. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  1131. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  1132. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  1133. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  1134. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  1135. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  1136. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  1137. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  1138. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  1139. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  1140. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  1141. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  1142. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  1143. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  1144. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  1145. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  1146. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  1147. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  1148. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  1149. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  1150. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  1151. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  1152. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  1153. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  1154. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  1155. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  1156. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  1157. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  1158. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  1159. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  1160. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  1161. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  1162. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  1163. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  1164. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  1165. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  1166. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  1167. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  1168. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  1169. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  1170. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  1171. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  1172. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  1173. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  1174. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  1175. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  1176. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  1177. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  1178. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  1179. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  1180. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  1181. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  1182. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  1183. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  1184. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  1185. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  1186. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  1187. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  1188. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  1189. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  1190. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  1191. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  1192. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  1193. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  1194. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  1195. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  1196. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  1197. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  1198. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  1199. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  1200. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  1201. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  1202. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  1203. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  1204. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  1205. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  1206. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  1207. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  1208. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  1209. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  1210. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  1211. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  1212. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  1213. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  1214. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  1215. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  1216. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  1217. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  1218. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  1219. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  1220. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  1221. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  1222. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  1223. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  1224. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  1225. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  1226. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  1227. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  1228. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  1229. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  1230. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  1231. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  1232. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  1233. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  1234. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  1235. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  1236. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  1237. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  1238. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  1239. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  1240. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  1241. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  1242. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  1243. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  1244. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  1245. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  1246. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  1247. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  1248. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  1249. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  1250. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  1251. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  1252. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  1253. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  1254. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  1255. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  1256. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  1257. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  1258. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  1259. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  1260. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  1261. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  1262. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  1263. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  1264. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  1265. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  1266. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  1267. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  1268. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  1269. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  1270. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  1271. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  1272. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  1273. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  1274. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  1275. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  1276. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  1277. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  1278. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  1279. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  1280. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  1281. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  1282. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  1283. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  1284. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  1285. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  1286. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  1287. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  1288. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  1289. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  1290. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  1291. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  1292. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  1293. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  1294. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  1295. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  1296. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  1297. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  1298. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  1299. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  1300. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  1301. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  1302. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  1303. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  1304. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  1305. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  1306. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v4.cpp +0 -324
  1307. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v4_iterator.cpp +0 -27
  1308. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v4_range.cpp +0 -27
  1309. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v6.cpp +0 -409
  1310. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v6_iterator.cpp +0 -27
  1311. data/ext/third_party/asio/asio/src/tests/unit/ip/address_v6_range.cpp +0 -27
  1312. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  1313. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  1314. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  1315. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  1316. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  1317. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  1318. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  1319. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  1320. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  1321. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  1322. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  1323. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  1324. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  1325. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  1326. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  1327. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  1328. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  1329. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  1330. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  1331. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  1332. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  1333. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  1334. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  1335. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  1336. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  1337. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  1338. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  1339. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  1340. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  1341. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  1342. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  1343. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  1344. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  1345. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  1346. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  1347. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  1348. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  1349. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  1350. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  1351. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  1352. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  1353. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  1354. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  1355. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  1356. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  1357. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  1358. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  1359. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  1360. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  1361. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  1362. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  1363. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  1364. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  1365. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  1366. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  1367. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  1368. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  1369. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  1370. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  1371. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  1372. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  1373. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  1374. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  1375. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  1376. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  1377. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  1378. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  1379. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  1380. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  1381. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  1382. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  1383. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  1384. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  1385. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  1386. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  1387. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  1388. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  1389. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  1390. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  1391. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  1392. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  1393. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  1394. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  1395. data/ext/third_party/asio/asio/tsify.pl +0 -574
  1396. data/ext/third_party/gsl/.clang-format +0 -34
  1397. data/ext/third_party/gsl/.github/workflows/main.yml +0 -94
  1398. data/ext/third_party/gsl/.gitignore +0 -16
  1399. data/ext/third_party/gsl/.travis.yml +0 -551
  1400. data/ext/third_party/gsl/CMakeLists.txt +0 -119
  1401. data/ext/third_party/gsl/CMakeSettings.json +0 -18
  1402. data/ext/third_party/gsl/CONTRIBUTING.md +0 -29
  1403. data/ext/third_party/gsl/GSL.natvis +0 -98
  1404. data/ext/third_party/gsl/LICENSE +0 -21
  1405. data/ext/third_party/gsl/README.md +0 -124
  1406. data/ext/third_party/gsl/ThirdPartyNotices.txt +0 -41
  1407. data/ext/third_party/gsl/appveyor.yml +0 -128
  1408. data/ext/third_party/gsl/include/gsl/gsl +0 -29
  1409. data/ext/third_party/gsl/include/gsl/gsl_algorithm +0 -61
  1410. data/ext/third_party/gsl/include/gsl/gsl_assert +0 -133
  1411. data/ext/third_party/gsl/include/gsl/gsl_byte +0 -209
  1412. data/ext/third_party/gsl/include/gsl/gsl_util +0 -171
  1413. data/ext/third_party/gsl/include/gsl/multi_span +0 -2273
  1414. data/ext/third_party/gsl/include/gsl/pointers +0 -301
  1415. data/ext/third_party/gsl/include/gsl/span +0 -764
  1416. data/ext/third_party/gsl/include/gsl/span_ext +0 -198
  1417. data/ext/third_party/gsl/include/gsl/string_span +0 -716
  1418. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  1419. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  1420. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  1421. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  1422. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  1423. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  1424. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  1425. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  1426. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  1427. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  1428. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  1429. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  1430. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  1431. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  1432. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  1433. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  1434. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  1435. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  1436. data/ext/third_party/http_parser/.gitignore +0 -30
  1437. data/ext/third_party/http_parser/.mailmap +0 -8
  1438. data/ext/third_party/http_parser/.travis.yml +0 -13
  1439. data/ext/third_party/http_parser/AUTHORS +0 -68
  1440. data/ext/third_party/http_parser/LICENSE-MIT +0 -19
  1441. data/ext/third_party/http_parser/Makefile +0 -160
  1442. data/ext/third_party/http_parser/README.md +0 -246
  1443. data/ext/third_party/http_parser/bench.c +0 -128
  1444. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  1445. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  1446. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  1447. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  1448. data/ext/third_party/http_parser/http_parser.c +0 -2568
  1449. data/ext/third_party/http_parser/http_parser.gyp +0 -111
  1450. data/ext/third_party/http_parser/http_parser.h +0 -447
  1451. data/ext/third_party/http_parser/test.c +0 -4600
  1452. data/ext/third_party/json/.appveyor.yml +0 -44
  1453. data/ext/third_party/json/.clang-format +0 -84
  1454. data/ext/third_party/json/.conan/build.py +0 -80
  1455. data/ext/third_party/json/.conan/test_package/CMakeLists.txt +0 -12
  1456. data/ext/third_party/json/.conan/test_package/conanfile.py +0 -24
  1457. data/ext/third_party/json/.conan/test_package/test_package.cpp +0 -16
  1458. data/ext/third_party/json/.gitignore +0 -3
  1459. data/ext/third_party/json/.travis.yml +0 -173
  1460. data/ext/third_party/json/CMakeLists.txt +0 -44
  1461. data/ext/third_party/json/LICENSE +0 -21
  1462. data/ext/third_party/json/LICENSE.double-conversion +0 -32
  1463. data/ext/third_party/json/LICENSE.itoa +0 -19
  1464. data/ext/third_party/json/LICENSE.ryu +0 -201
  1465. data/ext/third_party/json/Makefile +0 -77
  1466. data/ext/third_party/json/README.md +0 -149
  1467. data/ext/third_party/json/conanfile.py +0 -28
  1468. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  1469. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  1470. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  1471. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  1472. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  1473. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  1474. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  1475. data/ext/third_party/json/doc/Changelog.md +0 -31
  1476. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  1477. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  1478. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  1479. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  1480. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  1481. data/ext/third_party/json/doc/Interoperability.md +0 -75
  1482. data/ext/third_party/json/doc/Overview.md +0 -24
  1483. data/ext/third_party/json/doc/Overview.png +0 -0
  1484. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  1485. data/ext/third_party/json/doc/README.md +0 -78
  1486. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  1487. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  1488. data/ext/third_party/json/doc/Types.png +0 -0
  1489. data/ext/third_party/json/doc/Value-Class.md +0 -525
  1490. data/ext/third_party/json/include/tao/json/basic_value.hpp +0 -941
  1491. data/ext/third_party/json/include/tao/json/binary.hpp +0 -103
  1492. data/ext/third_party/json/include/tao/json/binary_view.hpp +0 -31
  1493. data/ext/third_party/json/include/tao/json/binding/constant.hpp +0 -232
  1494. data/ext/third_party/json/include/tao/json/binding/element.hpp +0 -182
  1495. data/ext/third_party/json/include/tao/json/binding/factory.hpp +0 -250
  1496. data/ext/third_party/json/include/tao/json/binding/for_nothing_value.hpp +0 -17
  1497. data/ext/third_party/json/include/tao/json/binding/for_unknown_key.hpp +0 -17
  1498. data/ext/third_party/json/include/tao/json/binding/inherit.hpp +0 -14
  1499. data/ext/third_party/json/include/tao/json/binding/internal/array.hpp +0 -103
  1500. data/ext/third_party/json/include/tao/json/binding/internal/inherit.hpp +0 -45
  1501. data/ext/third_party/json/include/tao/json/binding/internal/object.hpp +0 -267
  1502. data/ext/third_party/json/include/tao/json/binding/internal/type_key.hpp +0 -54
  1503. data/ext/third_party/json/include/tao/json/binding/member.hpp +0 -32
  1504. data/ext/third_party/json/include/tao/json/binding/member_kind.hpp +0 -17
  1505. data/ext/third_party/json/include/tao/json/binding/versions.hpp +0 -127
  1506. data/ext/third_party/json/include/tao/json/binding.hpp +0 -71
  1507. data/ext/third_party/json/include/tao/json/cbor/consume_file.hpp +0 -34
  1508. data/ext/third_party/json/include/tao/json/cbor/consume_string.hpp +0 -32
  1509. data/ext/third_party/json/include/tao/json/cbor/events/from_file.hpp +0 -27
  1510. data/ext/third_party/json/include/tao/json/cbor/events/from_input.hpp +0 -43
  1511. data/ext/third_party/json/include/tao/json/cbor/events/from_string.hpp +0 -37
  1512. data/ext/third_party/json/include/tao/json/cbor/events/to_stream.hpp +0 -161
  1513. data/ext/third_party/json/include/tao/json/cbor/events/to_string.hpp +0 -31
  1514. data/ext/third_party/json/include/tao/json/cbor/from_file.hpp +0 -33
  1515. data/ext/third_party/json/include/tao/json/cbor/from_input.hpp +0 -33
  1516. data/ext/third_party/json/include/tao/json/cbor/from_string.hpp +0 -32
  1517. data/ext/third_party/json/include/tao/json/cbor/internal/grammar.hpp +0 -417
  1518. data/ext/third_party/json/include/tao/json/cbor/internal/major.hpp +0 -28
  1519. data/ext/third_party/json/include/tao/json/cbor/parts_parser.hpp +0 -392
  1520. data/ext/third_party/json/include/tao/json/cbor/to_stream.hpp +0 -27
  1521. data/ext/third_party/json/include/tao/json/cbor/to_string.hpp +0 -28
  1522. data/ext/third_party/json/include/tao/json/cbor.hpp +0 -18
  1523. data/ext/third_party/json/include/tao/json/consume.hpp +0 -43
  1524. data/ext/third_party/json/include/tao/json/consume_file.hpp +0 -33
  1525. data/ext/third_party/json/include/tao/json/consume_string.hpp +0 -31
  1526. data/ext/third_party/json/include/tao/json/contrib/array_traits.hpp +0 -43
  1527. data/ext/third_party/json/include/tao/json/contrib/deque_traits.hpp +0 -41
  1528. data/ext/third_party/json/include/tao/json/contrib/diff.hpp +0 -106
  1529. data/ext/third_party/json/include/tao/json/contrib/get.hpp +0 -152
  1530. data/ext/third_party/json/include/tao/json/contrib/internal/array_traits.hpp +0 -92
  1531. data/ext/third_party/json/include/tao/json/contrib/internal/indirect_traits.hpp +0 -69
  1532. data/ext/third_party/json/include/tao/json/contrib/internal/object_traits.hpp +0 -105
  1533. data/ext/third_party/json/include/tao/json/contrib/internal/type_traits.hpp +0 -36
  1534. data/ext/third_party/json/include/tao/json/contrib/list_traits.hpp +0 -41
  1535. data/ext/third_party/json/include/tao/json/contrib/map_traits.hpp +0 -43
  1536. data/ext/third_party/json/include/tao/json/contrib/multimap_traits.hpp +0 -43
  1537. data/ext/third_party/json/include/tao/json/contrib/multiset_traits.hpp +0 -41
  1538. data/ext/third_party/json/include/tao/json/contrib/pair_traits.hpp +0 -21
  1539. data/ext/third_party/json/include/tao/json/contrib/patch.hpp +0 -105
  1540. data/ext/third_party/json/include/tao/json/contrib/pointer_traits.hpp +0 -59
  1541. data/ext/third_party/json/include/tao/json/contrib/position.hpp +0 -166
  1542. data/ext/third_party/json/include/tao/json/contrib/reference.hpp +0 -115
  1543. data/ext/third_party/json/include/tao/json/contrib/schema.hpp +0 -1851
  1544. data/ext/third_party/json/include/tao/json/contrib/set_traits.hpp +0 -41
  1545. data/ext/third_party/json/include/tao/json/contrib/shared_ptr_traits.hpp +0 -90
  1546. data/ext/third_party/json/include/tao/json/contrib/traits.hpp +0 -121
  1547. data/ext/third_party/json/include/tao/json/contrib/tuple_traits.hpp +0 -51
  1548. data/ext/third_party/json/include/tao/json/contrib/unique_ptr_traits.hpp +0 -89
  1549. data/ext/third_party/json/include/tao/json/contrib/unordered_map_traits.hpp +0 -43
  1550. data/ext/third_party/json/include/tao/json/contrib/unordered_set_traits.hpp +0 -41
  1551. data/ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp +0 -45
  1552. data/ext/third_party/json/include/tao/json/contrib/vector_traits.hpp +0 -51
  1553. data/ext/third_party/json/include/tao/json/events/apply.hpp +0 -20
  1554. data/ext/third_party/json/include/tao/json/events/binary_to_base64.hpp +0 -26
  1555. data/ext/third_party/json/include/tao/json/events/binary_to_base64url.hpp +0 -28
  1556. data/ext/third_party/json/include/tao/json/events/binary_to_exception.hpp +0 -27
  1557. data/ext/third_party/json/include/tao/json/events/binary_to_hex.hpp +0 -26
  1558. data/ext/third_party/json/include/tao/json/events/compare.hpp +0 -265
  1559. data/ext/third_party/json/include/tao/json/events/debug.hpp +0 -145
  1560. data/ext/third_party/json/include/tao/json/events/discard.hpp +0 -43
  1561. data/ext/third_party/json/include/tao/json/events/from_file.hpp +0 -28
  1562. data/ext/third_party/json/include/tao/json/events/from_input.hpp +0 -45
  1563. data/ext/third_party/json/include/tao/json/events/from_stream.hpp +0 -33
  1564. data/ext/third_party/json/include/tao/json/events/from_string.hpp +0 -38
  1565. data/ext/third_party/json/include/tao/json/events/from_value.hpp +0 -202
  1566. data/ext/third_party/json/include/tao/json/events/hash.hpp +0 -174
  1567. data/ext/third_party/json/include/tao/json/events/invalid_string_to_binary.hpp +0 -50
  1568. data/ext/third_party/json/include/tao/json/events/invalid_string_to_exception.hpp +0 -49
  1569. data/ext/third_party/json/include/tao/json/events/invalid_string_to_hex.hpp +0 -48
  1570. data/ext/third_party/json/include/tao/json/events/key_camel_case_to_snake_case.hpp +0 -62
  1571. data/ext/third_party/json/include/tao/json/events/key_snake_case_to_camel_case.hpp +0 -57
  1572. data/ext/third_party/json/include/tao/json/events/limit_nesting_depth.hpp +0 -82
  1573. data/ext/third_party/json/include/tao/json/events/limit_value_count.hpp +0 -46
  1574. data/ext/third_party/json/include/tao/json/events/non_finite_to_exception.hpp +0 -31
  1575. data/ext/third_party/json/include/tao/json/events/non_finite_to_null.hpp +0 -32
  1576. data/ext/third_party/json/include/tao/json/events/non_finite_to_string.hpp +0 -40
  1577. data/ext/third_party/json/include/tao/json/events/prefer_signed.hpp +0 -32
  1578. data/ext/third_party/json/include/tao/json/events/prefer_unsigned.hpp +0 -32
  1579. data/ext/third_party/json/include/tao/json/events/produce.hpp +0 -22
  1580. data/ext/third_party/json/include/tao/json/events/ref.hpp +0 -111
  1581. data/ext/third_party/json/include/tao/json/events/statistics.hpp +0 -112
  1582. data/ext/third_party/json/include/tao/json/events/tee.hpp +0 -386
  1583. data/ext/third_party/json/include/tao/json/events/to_pretty_stream.hpp +0 -172
  1584. data/ext/third_party/json/include/tao/json/events/to_stream.hpp +0 -142
  1585. data/ext/third_party/json/include/tao/json/events/to_string.hpp +0 -33
  1586. data/ext/third_party/json/include/tao/json/events/to_value.hpp +0 -137
  1587. data/ext/third_party/json/include/tao/json/events/transformer.hpp +0 -70
  1588. data/ext/third_party/json/include/tao/json/events/validate_event_order.hpp +0 -411
  1589. data/ext/third_party/json/include/tao/json/events/validate_keys.hpp +0 -51
  1590. data/ext/third_party/json/include/tao/json/events/virtual_base.hpp +0 -192
  1591. data/ext/third_party/json/include/tao/json/events/virtual_ref.hpp +0 -170
  1592. data/ext/third_party/json/include/tao/json/events.hpp +0 -47
  1593. data/ext/third_party/json/include/tao/json/external/double.hpp +0 -1313
  1594. data/ext/third_party/json/include/tao/json/external/itoa.hpp +0 -149
  1595. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/analyze_cycles.hpp +0 -127
  1596. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/counted.hpp +0 -23
  1597. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/generic.hpp +0 -31
  1598. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/grammar_info.hpp +0 -32
  1599. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_guard.hpp +0 -51
  1600. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/insert_rules.hpp +0 -25
  1601. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_info.hpp +0 -29
  1602. data/ext/third_party/json/include/tao/json/external/pegtl/analysis/rule_type.hpp +0 -21
  1603. data/ext/third_party/json/include/tao/json/external/pegtl/analyze.hpp +0 -21
  1604. data/ext/third_party/json/include/tao/json/external/pegtl/apply_mode.hpp +0 -19
  1605. data/ext/third_party/json/include/tao/json/external/pegtl/argv_input.hpp +0 -51
  1606. data/ext/third_party/json/include/tao/json/external/pegtl/ascii.hpp +0 -67
  1607. data/ext/third_party/json/include/tao/json/external/pegtl/buffer_input.hpp +0 -212
  1608. data/ext/third_party/json/include/tao/json/external/pegtl/change_action.hpp +0 -38
  1609. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_state.hpp +0 -53
  1610. data/ext/third_party/json/include/tao/json/external/pegtl/change_action_and_states.hpp +0 -62
  1611. data/ext/third_party/json/include/tao/json/external/pegtl/change_control.hpp +0 -36
  1612. data/ext/third_party/json/include/tao/json/external/pegtl/change_state.hpp +0 -50
  1613. data/ext/third_party/json/include/tao/json/external/pegtl/change_states.hpp +0 -61
  1614. data/ext/third_party/json/include/tao/json/external/pegtl/config.hpp +0 -11
  1615. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/abnf.hpp +0 -35
  1616. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/alphabet.hpp +0 -67
  1617. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/counter.hpp +0 -54
  1618. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/http.hpp +0 -253
  1619. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/internal.hpp +0 -68
  1620. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf16.hpp +0 -200
  1621. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf32.hpp +0 -200
  1622. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/icu/utf8.hpp +0 -105
  1623. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/if_then.hpp +0 -55
  1624. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/integer.hpp +0 -446
  1625. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json.hpp +0 -88
  1626. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/json_pointer.hpp +0 -33
  1627. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree.hpp +0 -561
  1628. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/parse_tree_to_dot.hpp +0 -104
  1629. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/raw_string.hpp +0 -225
  1630. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/remove_first_state.hpp +0 -86
  1631. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_one_min_max.hpp +0 -62
  1632. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/rep_string.hpp +0 -44
  1633. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/to_string.hpp +0 -38
  1634. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/tracer.hpp +0 -158
  1635. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/unescape.hpp +0 -199
  1636. data/ext/third_party/json/include/tao/json/external/pegtl/contrib/uri.hpp +0 -106
  1637. data/ext/third_party/json/include/tao/json/external/pegtl/cstream_input.hpp +0 -33
  1638. data/ext/third_party/json/include/tao/json/external/pegtl/disable_action.hpp +0 -35
  1639. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input.hpp +0 -37
  1640. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_failure.hpp +0 -39
  1641. data/ext/third_party/json/include/tao/json/external/pegtl/discard_input_on_success.hpp +0 -39
  1642. data/ext/third_party/json/include/tao/json/external/pegtl/enable_action.hpp +0 -35
  1643. data/ext/third_party/json/include/tao/json/external/pegtl/eol.hpp +0 -37
  1644. data/ext/third_party/json/include/tao/json/external/pegtl/eol_pair.hpp +0 -18
  1645. data/ext/third_party/json/include/tao/json/external/pegtl/file_input.hpp +0 -44
  1646. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action.hpp +0 -44
  1647. data/ext/third_party/json/include/tao/json/external/pegtl/internal/action_input.hpp +0 -107
  1648. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alnum.hpp +0 -18
  1649. data/ext/third_party/json/include/tao/json/external/pegtl/internal/alpha.hpp +0 -18
  1650. data/ext/third_party/json/include/tao/json/external/pegtl/internal/always_false.hpp +0 -21
  1651. data/ext/third_party/json/include/tao/json/external/pegtl/internal/any.hpp +0 -58
  1652. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply.hpp +0 -53
  1653. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0.hpp +0 -50
  1654. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply0_single.hpp +0 -34
  1655. data/ext/third_party/json/include/tao/json/external/pegtl/internal/apply_single.hpp +0 -34
  1656. data/ext/third_party/json/include/tao/json/external/pegtl/internal/at.hpp +0 -53
  1657. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bof.hpp +0 -31
  1658. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bol.hpp +0 -31
  1659. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump.hpp +0 -45
  1660. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bump_help.hpp +0 -29
  1661. data/ext/third_party/json/include/tao/json/external/pegtl/internal/bytes.hpp +0 -36
  1662. data/ext/third_party/json/include/tao/json/external/pegtl/internal/control.hpp +0 -44
  1663. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_crlf_eol.hpp +0 -32
  1664. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cr_eol.hpp +0 -32
  1665. data/ext/third_party/json/include/tao/json/external/pegtl/internal/crlf_eol.hpp +0 -32
  1666. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstream_reader.hpp +0 -49
  1667. data/ext/third_party/json/include/tao/json/external/pegtl/internal/cstring_reader.hpp +0 -40
  1668. data/ext/third_party/json/include/tao/json/external/pegtl/internal/demangle.hpp +0 -140
  1669. data/ext/third_party/json/include/tao/json/external/pegtl/internal/disable.hpp +0 -44
  1670. data/ext/third_party/json/include/tao/json/external/pegtl/internal/discard.hpp +0 -33
  1671. data/ext/third_party/json/include/tao/json/external/pegtl/internal/dusel_mode.hpp +0 -23
  1672. data/ext/third_party/json/include/tao/json/external/pegtl/internal/duseltronik.hpp +0 -187
  1673. data/ext/third_party/json/include/tao/json/external/pegtl/internal/enable.hpp +0 -44
  1674. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian.hpp +0 -62
  1675. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_gcc.hpp +0 -206
  1676. data/ext/third_party/json/include/tao/json/external/pegtl/internal/endian_win.hpp +0 -106
  1677. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eof.hpp +0 -31
  1678. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eol.hpp +0 -31
  1679. data/ext/third_party/json/include/tao/json/external/pegtl/internal/eolf.hpp +0 -32
  1680. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_posix.hpp +0 -83
  1681. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_mapper_win32.hpp +0 -219
  1682. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_opener.hpp +0 -72
  1683. data/ext/third_party/json/include/tao/json/external/pegtl/internal/file_reader.hpp +0 -114
  1684. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply.hpp +0 -25
  1685. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_apply0.hpp +0 -25
  1686. data/ext/third_party/json/include/tao/json/external/pegtl/internal/has_match.hpp +0 -56
  1687. data/ext/third_party/json/include/tao/json/external/pegtl/internal/identifier.hpp +0 -22
  1688. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_apply.hpp +0 -53
  1689. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must.hpp +0 -48
  1690. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_must_else.hpp +0 -19
  1691. data/ext/third_party/json/include/tao/json/external/pegtl/internal/if_then_else.hpp +0 -51
  1692. data/ext/third_party/json/include/tao/json/external/pegtl/internal/input_pair.hpp +0 -29
  1693. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istream_reader.hpp +0 -40
  1694. data/ext/third_party/json/include/tao/json/external/pegtl/internal/istring.hpp +0 -72
  1695. data/ext/third_party/json/include/tao/json/external/pegtl/internal/iterator.hpp +0 -52
  1696. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_crlf_eol.hpp +0 -37
  1697. data/ext/third_party/json/include/tao/json/external/pegtl/internal/lf_eol.hpp +0 -32
  1698. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list.hpp +0 -19
  1699. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_must.hpp +0 -20
  1700. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail.hpp +0 -20
  1701. data/ext/third_party/json/include/tao/json/external/pegtl/internal/list_tail_pad.hpp +0 -22
  1702. data/ext/third_party/json/include/tao/json/external/pegtl/internal/marker.hpp +0 -82
  1703. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply.hpp +0 -25
  1704. data/ext/third_party/json/include/tao/json/external/pegtl/internal/missing_apply0.hpp +0 -23
  1705. data/ext/third_party/json/include/tao/json/external/pegtl/internal/must.hpp +0 -72
  1706. data/ext/third_party/json/include/tao/json/external/pegtl/internal/not_at.hpp +0 -53
  1707. data/ext/third_party/json/include/tao/json/external/pegtl/internal/one.hpp +0 -44
  1708. data/ext/third_party/json/include/tao/json/external/pegtl/internal/opt.hpp +0 -57
  1709. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad.hpp +0 -19
  1710. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pad_opt.hpp +0 -20
  1711. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_char.hpp +0 -32
  1712. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint.hpp +0 -54
  1713. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_mask_uint8.hpp +0 -34
  1714. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint.hpp +0 -45
  1715. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_uint8.hpp +0 -33
  1716. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf16.hpp +0 -54
  1717. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf32.hpp +0 -43
  1718. data/ext/third_party/json/include/tao/json/external/pegtl/internal/peek_utf8.hpp +0 -90
  1719. data/ext/third_party/json/include/tao/json/external/pegtl/internal/pegtl_string.hpp +0 -90
  1720. data/ext/third_party/json/include/tao/json/external/pegtl/internal/plus.hpp +0 -53
  1721. data/ext/third_party/json/include/tao/json/external/pegtl/internal/raise.hpp +0 -53
  1722. data/ext/third_party/json/include/tao/json/external/pegtl/internal/range.hpp +0 -51
  1723. data/ext/third_party/json/include/tao/json/external/pegtl/internal/ranges.hpp +0 -93
  1724. data/ext/third_party/json/include/tao/json/external/pegtl/internal/read_uint.hpp +0 -77
  1725. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rematch.hpp +0 -69
  1726. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep.hpp +0 -66
  1727. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min.hpp +0 -20
  1728. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_min_max.hpp +0 -79
  1729. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rep_opt.hpp +0 -46
  1730. data/ext/third_party/json/include/tao/json/external/pegtl/internal/require.hpp +0 -42
  1731. data/ext/third_party/json/include/tao/json/external/pegtl/internal/result_on_found.hpp +0 -19
  1732. data/ext/third_party/json/include/tao/json/external/pegtl/internal/rules.hpp +0 -61
  1733. data/ext/third_party/json/include/tao/json/external/pegtl/internal/seq.hpp +0 -73
  1734. data/ext/third_party/json/include/tao/json/external/pegtl/internal/skip_control.hpp +0 -25
  1735. data/ext/third_party/json/include/tao/json/external/pegtl/internal/sor.hpp +0 -60
  1736. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star.hpp +0 -47
  1737. data/ext/third_party/json/include/tao/json/external/pegtl/internal/star_must.hpp +0 -19
  1738. data/ext/third_party/json/include/tao/json/external/pegtl/internal/state.hpp +0 -49
  1739. data/ext/third_party/json/include/tao/json/external/pegtl/internal/string.hpp +0 -58
  1740. data/ext/third_party/json/include/tao/json/external/pegtl/internal/trivial.hpp +0 -32
  1741. data/ext/third_party/json/include/tao/json/external/pegtl/internal/try_catch_type.hpp +0 -64
  1742. data/ext/third_party/json/include/tao/json/external/pegtl/internal/until.hpp +0 -84
  1743. data/ext/third_party/json/include/tao/json/external/pegtl/istream_input.hpp +0 -33
  1744. data/ext/third_party/json/include/tao/json/external/pegtl/match.hpp +0 -73
  1745. data/ext/third_party/json/include/tao/json/external/pegtl/memory_input.hpp +0 -381
  1746. data/ext/third_party/json/include/tao/json/external/pegtl/mmap_input.hpp +0 -79
  1747. data/ext/third_party/json/include/tao/json/external/pegtl/normal.hpp +0 -87
  1748. data/ext/third_party/json/include/tao/json/external/pegtl/nothing.hpp +0 -20
  1749. data/ext/third_party/json/include/tao/json/external/pegtl/parse.hpp +0 -53
  1750. data/ext/third_party/json/include/tao/json/external/pegtl/parse_error.hpp +0 -69
  1751. data/ext/third_party/json/include/tao/json/external/pegtl/position.hpp +0 -75
  1752. data/ext/third_party/json/include/tao/json/external/pegtl/read_input.hpp +0 -74
  1753. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply.hpp +0 -16
  1754. data/ext/third_party/json/include/tao/json/external/pegtl/require_apply0.hpp +0 -16
  1755. data/ext/third_party/json/include/tao/json/external/pegtl/rewind_mode.hpp +0 -20
  1756. data/ext/third_party/json/include/tao/json/external/pegtl/rules.hpp +0 -67
  1757. data/ext/third_party/json/include/tao/json/external/pegtl/string_input.hpp +0 -66
  1758. data/ext/third_party/json/include/tao/json/external/pegtl/tracking_mode.hpp +0 -19
  1759. data/ext/third_party/json/include/tao/json/external/pegtl/uint16.hpp +0 -62
  1760. data/ext/third_party/json/include/tao/json/external/pegtl/uint32.hpp +0 -62
  1761. data/ext/third_party/json/include/tao/json/external/pegtl/uint64.hpp +0 -63
  1762. data/ext/third_party/json/include/tao/json/external/pegtl/uint8.hpp +0 -36
  1763. data/ext/third_party/json/include/tao/json/external/pegtl/utf16.hpp +0 -49
  1764. data/ext/third_party/json/include/tao/json/external/pegtl/utf32.hpp +0 -49
  1765. data/ext/third_party/json/include/tao/json/external/pegtl/utf8.hpp +0 -28
  1766. data/ext/third_party/json/include/tao/json/external/pegtl/version.hpp +0 -13
  1767. data/ext/third_party/json/include/tao/json/external/pegtl.hpp +0 -53
  1768. data/ext/third_party/json/include/tao/json/external/ryu.hpp +0 -1216
  1769. data/ext/third_party/json/include/tao/json/forward.hpp +0 -44
  1770. data/ext/third_party/json/include/tao/json/from_file.hpp +0 -32
  1771. data/ext/third_party/json/include/tao/json/from_input.hpp +0 -32
  1772. data/ext/third_party/json/include/tao/json/from_stream.hpp +0 -45
  1773. data/ext/third_party/json/include/tao/json/from_string.hpp +0 -41
  1774. data/ext/third_party/json/include/tao/json/internal/action.hpp +0 -268
  1775. data/ext/third_party/json/include/tao/json/internal/base64.hpp +0 -55
  1776. data/ext/third_party/json/include/tao/json/internal/base64url.hpp +0 -53
  1777. data/ext/third_party/json/include/tao/json/internal/endian.hpp +0 -60
  1778. data/ext/third_party/json/include/tao/json/internal/endian_gcc.hpp +0 -198
  1779. data/ext/third_party/json/include/tao/json/internal/endian_win.hpp +0 -103
  1780. data/ext/third_party/json/include/tao/json/internal/errors.hpp +0 -85
  1781. data/ext/third_party/json/include/tao/json/internal/escape.hpp +0 -77
  1782. data/ext/third_party/json/include/tao/json/internal/format.hpp +0 -59
  1783. data/ext/third_party/json/include/tao/json/internal/grammar.hpp +0 -229
  1784. data/ext/third_party/json/include/tao/json/internal/hexdump.hpp +0 -31
  1785. data/ext/third_party/json/include/tao/json/internal/identity.hpp +0 -22
  1786. data/ext/third_party/json/include/tao/json/internal/number_state.hpp +0 -80
  1787. data/ext/third_party/json/include/tao/json/internal/number_traits.hpp +0 -267
  1788. data/ext/third_party/json/include/tao/json/internal/pair.hpp +0 -42
  1789. data/ext/third_party/json/include/tao/json/internal/parse_util.hpp +0 -112
  1790. data/ext/third_party/json/include/tao/json/internal/sha256.hpp +0 -218
  1791. data/ext/third_party/json/include/tao/json/internal/single.hpp +0 -40
  1792. data/ext/third_party/json/include/tao/json/internal/string_t.hpp +0 -35
  1793. data/ext/third_party/json/include/tao/json/internal/type_traits.hpp +0 -113
  1794. data/ext/third_party/json/include/tao/json/internal/unescape_action.hpp +0 -24
  1795. data/ext/third_party/json/include/tao/json/internal/uri_fragment.hpp +0 -182
  1796. data/ext/third_party/json/include/tao/json/jaxn/consume_file.hpp +0 -34
  1797. data/ext/third_party/json/include/tao/json/jaxn/consume_string.hpp +0 -32
  1798. data/ext/third_party/json/include/tao/json/jaxn/events/from_file.hpp +0 -28
  1799. data/ext/third_party/json/include/tao/json/jaxn/events/from_input.hpp +0 -45
  1800. data/ext/third_party/json/include/tao/json/jaxn/events/from_stream.hpp +0 -33
  1801. data/ext/third_party/json/include/tao/json/jaxn/events/from_string.hpp +0 -39
  1802. data/ext/third_party/json/include/tao/json/jaxn/events/to_pretty_stream.hpp +0 -69
  1803. data/ext/third_party/json/include/tao/json/jaxn/events/to_stream.hpp +0 -67
  1804. data/ext/third_party/json/include/tao/json/jaxn/events/to_string.hpp +0 -33
  1805. data/ext/third_party/json/include/tao/json/jaxn/from_file.hpp +0 -33
  1806. data/ext/third_party/json/include/tao/json/jaxn/from_input.hpp +0 -33
  1807. data/ext/third_party/json/include/tao/json/jaxn/from_stream.hpp +0 -48
  1808. data/ext/third_party/json/include/tao/json/jaxn/from_string.hpp +0 -42
  1809. data/ext/third_party/json/include/tao/json/jaxn/internal/action.hpp +0 -355
  1810. data/ext/third_party/json/include/tao/json/jaxn/internal/bunescape_action.hpp +0 -114
  1811. data/ext/third_party/json/include/tao/json/jaxn/internal/errors.hpp +0 -108
  1812. data/ext/third_party/json/include/tao/json/jaxn/internal/grammar.hpp +0 -375
  1813. data/ext/third_party/json/include/tao/json/jaxn/internal/integer.hpp +0 -256
  1814. data/ext/third_party/json/include/tao/json/jaxn/internal/unescape_action.hpp +0 -28
  1815. data/ext/third_party/json/include/tao/json/jaxn/is_identifier.hpp +0 -27
  1816. data/ext/third_party/json/include/tao/json/jaxn/parts_parser.hpp +0 -263
  1817. data/ext/third_party/json/include/tao/json/jaxn/to_stream.hpp +0 -36
  1818. data/ext/third_party/json/include/tao/json/jaxn/to_string.hpp +0 -33
  1819. data/ext/third_party/json/include/tao/json/jaxn.hpp +0 -19
  1820. data/ext/third_party/json/include/tao/json/message_extension.hpp +0 -49
  1821. data/ext/third_party/json/include/tao/json/msgpack/consume_file.hpp +0 -34
  1822. data/ext/third_party/json/include/tao/json/msgpack/consume_string.hpp +0 -32
  1823. data/ext/third_party/json/include/tao/json/msgpack/events/from_file.hpp +0 -27
  1824. data/ext/third_party/json/include/tao/json/msgpack/events/from_input.hpp +0 -43
  1825. data/ext/third_party/json/include/tao/json/msgpack/events/from_string.hpp +0 -37
  1826. data/ext/third_party/json/include/tao/json/msgpack/events/to_stream.hpp +0 -214
  1827. data/ext/third_party/json/include/tao/json/msgpack/events/to_string.hpp +0 -31
  1828. data/ext/third_party/json/include/tao/json/msgpack/from_file.hpp +0 -33
  1829. data/ext/third_party/json/include/tao/json/msgpack/from_input.hpp +0 -33
  1830. data/ext/third_party/json/include/tao/json/msgpack/from_string.hpp +0 -32
  1831. data/ext/third_party/json/include/tao/json/msgpack/internal/format.hpp +0 -57
  1832. data/ext/third_party/json/include/tao/json/msgpack/internal/grammar.hpp +0 -249
  1833. data/ext/third_party/json/include/tao/json/msgpack/parts_parser.hpp +0 -311
  1834. data/ext/third_party/json/include/tao/json/msgpack/to_stream.hpp +0 -27
  1835. data/ext/third_party/json/include/tao/json/msgpack/to_string.hpp +0 -28
  1836. data/ext/third_party/json/include/tao/json/msgpack.hpp +0 -18
  1837. data/ext/third_party/json/include/tao/json/operators.hpp +0 -494
  1838. data/ext/third_party/json/include/tao/json/parts_parser.hpp +0 -306
  1839. data/ext/third_party/json/include/tao/json/pointer.hpp +0 -432
  1840. data/ext/third_party/json/include/tao/json/produce.hpp +0 -61
  1841. data/ext/third_party/json/include/tao/json/self_contained.hpp +0 -143
  1842. data/ext/third_party/json/include/tao/json/span.hpp +0 -568
  1843. data/ext/third_party/json/include/tao/json/stream.hpp +0 -38
  1844. data/ext/third_party/json/include/tao/json/to_stream.hpp +0 -42
  1845. data/ext/third_party/json/include/tao/json/to_string.hpp +0 -23
  1846. data/ext/third_party/json/include/tao/json/traits.hpp +0 -971
  1847. data/ext/third_party/json/include/tao/json/type.hpp +0 -112
  1848. data/ext/third_party/json/include/tao/json/ubjson/consume_file.hpp +0 -34
  1849. data/ext/third_party/json/include/tao/json/ubjson/consume_string.hpp +0 -32
  1850. data/ext/third_party/json/include/tao/json/ubjson/events/from_file.hpp +0 -27
  1851. data/ext/third_party/json/include/tao/json/ubjson/events/from_input.hpp +0 -43
  1852. data/ext/third_party/json/include/tao/json/ubjson/events/from_string.hpp +0 -37
  1853. data/ext/third_party/json/include/tao/json/ubjson/events/to_stream.hpp +0 -174
  1854. data/ext/third_party/json/include/tao/json/ubjson/events/to_string.hpp +0 -31
  1855. data/ext/third_party/json/include/tao/json/ubjson/from_file.hpp +0 -33
  1856. data/ext/third_party/json/include/tao/json/ubjson/from_input.hpp +0 -33
  1857. data/ext/third_party/json/include/tao/json/ubjson/from_string.hpp +0 -32
  1858. data/ext/third_party/json/include/tao/json/ubjson/internal/grammar.hpp +0 -413
  1859. data/ext/third_party/json/include/tao/json/ubjson/internal/marker.hpp +0 -46
  1860. data/ext/third_party/json/include/tao/json/ubjson/parts_parser.hpp +0 -393
  1861. data/ext/third_party/json/include/tao/json/ubjson/to_stream.hpp +0 -28
  1862. data/ext/third_party/json/include/tao/json/ubjson/to_string.hpp +0 -29
  1863. data/ext/third_party/json/include/tao/json/ubjson.hpp +0 -18
  1864. data/ext/third_party/json/include/tao/json/utf8.hpp +0 -57
  1865. data/ext/third_party/json/include/tao/json/value.hpp +0 -12
  1866. data/ext/third_party/json/include/tao/json.hpp +0 -45
  1867. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  1868. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  1869. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  1870. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  1871. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  1872. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  1873. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  1874. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  1875. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  1876. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  1877. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  1878. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  1879. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  1880. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  1881. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  1882. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  1883. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  1884. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  1885. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  1886. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  1887. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  1888. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  1889. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  1890. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  1891. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  1892. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  1893. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  1894. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  1895. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  1896. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  1897. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  1898. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  1899. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  1900. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  1901. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  1902. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  1903. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  1904. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  1905. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  1906. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  1907. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  1908. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  1909. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  1910. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  1911. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  1912. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  1913. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  1914. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  1915. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  1916. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  1917. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  1918. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  1919. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  1920. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  1921. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  1922. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  1923. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  1924. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  1925. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  1926. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  1927. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  1928. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  1929. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  1930. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  1931. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  1932. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  1933. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  1934. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  1935. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  1936. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  1937. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  1938. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  1939. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  1940. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  1941. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  1942. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  1943. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  1944. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  1945. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  1946. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  1947. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  1948. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  1949. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  1950. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  1951. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  1952. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  1953. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  1954. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  1955. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  1956. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  1957. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  1958. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  1959. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  1960. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  1961. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  1962. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  1963. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  1964. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  1965. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  1966. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  1967. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  1968. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  1969. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  1970. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  1971. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  1972. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  1973. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  1974. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  1975. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  1976. data/ext/third_party/json/tests/blns.json +0 -496
  1977. data/ext/third_party/json/tests/canada.json +0 -9
  1978. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  1979. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  1980. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  1981. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  1982. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  1983. data/ext/third_party/json/tests/draft4/default.json +0 -49
  1984. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  1985. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  1986. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  1987. data/ext/third_party/json/tests/draft4/items.json +0 -46
  1988. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  1989. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  1990. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  1991. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  1992. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  1993. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  1994. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  1995. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  1996. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  1997. data/ext/third_party/json/tests/draft4/not.json +0 -96
  1998. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  1999. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  2000. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  2001. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  2002. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  2003. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  2004. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  2005. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  2006. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  2007. data/ext/third_party/json/tests/draft4/required.json +0 -44
  2008. data/ext/third_party/json/tests/draft4/type.json +0 -345
  2009. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  2010. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  2011. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  2012. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  2013. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  2014. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  2015. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  2016. data/ext/third_party/json/tests/twitter.json +0 -15482
  2017. data/ext/third_party/snappy/.appveyor.yml +0 -36
  2018. data/ext/third_party/snappy/.gitignore +0 -8
  2019. data/ext/third_party/snappy/.travis.yml +0 -98
  2020. data/ext/third_party/snappy/AUTHORS +0 -1
  2021. data/ext/third_party/snappy/CMakeLists.txt +0 -345
  2022. data/ext/third_party/snappy/CONTRIBUTING.md +0 -26
  2023. data/ext/third_party/snappy/COPYING +0 -54
  2024. data/ext/third_party/snappy/NEWS +0 -188
  2025. data/ext/third_party/snappy/README.md +0 -148
  2026. data/ext/third_party/snappy/cmake/SnappyConfig.cmake.in +0 -33
  2027. data/ext/third_party/snappy/cmake/config.h.in +0 -59
  2028. data/ext/third_party/snappy/docs/README.md +0 -72
  2029. data/ext/third_party/snappy/format_description.txt +0 -110
  2030. data/ext/third_party/snappy/framing_format.txt +0 -135
  2031. data/ext/third_party/snappy/snappy-c.cc +0 -90
  2032. data/ext/third_party/snappy/snappy-c.h +0 -138
  2033. data/ext/third_party/snappy/snappy-internal.h +0 -315
  2034. data/ext/third_party/snappy/snappy-sinksource.cc +0 -121
  2035. data/ext/third_party/snappy/snappy-sinksource.h +0 -182
  2036. data/ext/third_party/snappy/snappy-stubs-internal.cc +0 -42
  2037. data/ext/third_party/snappy/snappy-stubs-internal.h +0 -493
  2038. data/ext/third_party/snappy/snappy-stubs-public.h.in +0 -63
  2039. data/ext/third_party/snappy/snappy-test.cc +0 -613
  2040. data/ext/third_party/snappy/snappy-test.h +0 -526
  2041. data/ext/third_party/snappy/snappy.cc +0 -1770
  2042. data/ext/third_party/snappy/snappy.h +0 -209
  2043. data/ext/third_party/snappy/snappy_compress_fuzzer.cc +0 -60
  2044. data/ext/third_party/snappy/snappy_uncompress_fuzzer.cc +0 -58
  2045. data/ext/third_party/snappy/snappy_unittest.cc +0 -1512
  2046. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  2047. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  2048. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  2049. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  2050. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  2051. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  2052. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  2053. data/ext/third_party/snappy/testdata/html +0 -1
  2054. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  2055. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  2056. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  2057. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  2058. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  2059. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  2060. data/ext/third_party/spdlog/.clang-format +0 -108
  2061. data/ext/third_party/spdlog/.clang-tidy +0 -54
  2062. data/ext/third_party/spdlog/.gitattributes +0 -1
  2063. data/ext/third_party/spdlog/.gitignore +0 -83
  2064. data/ext/third_party/spdlog/.travis.yml +0 -112
  2065. data/ext/third_party/spdlog/CMakeLists.txt +0 -324
  2066. data/ext/third_party/spdlog/INSTALL +0 -24
  2067. data/ext/third_party/spdlog/LICENSE +0 -26
  2068. data/ext/third_party/spdlog/README.md +0 -423
  2069. data/ext/third_party/spdlog/appveyor.yml +0 -51
  2070. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  2071. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  2072. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  2073. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  2074. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  2075. data/ext/third_party/spdlog/bench/utils.h +0 -34
  2076. data/ext/third_party/spdlog/cmake/ide.cmake +0 -18
  2077. data/ext/third_party/spdlog/cmake/pch.h.in +0 -258
  2078. data/ext/third_party/spdlog/cmake/spdlog.pc.in +0 -13
  2079. data/ext/third_party/spdlog/cmake/spdlogCPack.cmake +0 -46
  2080. data/ext/third_party/spdlog/cmake/spdlogConfig.cmake.in +0 -15
  2081. data/ext/third_party/spdlog/cmake/utils.cmake +0 -61
  2082. data/ext/third_party/spdlog/cmake/version.rc.in +0 -42
  2083. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  2084. data/ext/third_party/spdlog/example/example.cpp +0 -282
  2085. data/ext/third_party/spdlog/include/spdlog/async.h +0 -93
  2086. data/ext/third_party/spdlog/include/spdlog/async_logger-inl.h +0 -92
  2087. data/ext/third_party/spdlog/include/spdlog/async_logger.h +0 -68
  2088. data/ext/third_party/spdlog/include/spdlog/cfg/argv.h +0 -45
  2089. data/ext/third_party/spdlog/include/spdlog/cfg/env.h +0 -36
  2090. data/ext/third_party/spdlog/include/spdlog/cfg/helpers-inl.h +0 -103
  2091. data/ext/third_party/spdlog/include/spdlog/cfg/helpers.h +0 -28
  2092. data/ext/third_party/spdlog/include/spdlog/cfg/log_levels.h +0 -47
  2093. data/ext/third_party/spdlog/include/spdlog/common-inl.h +0 -76
  2094. data/ext/third_party/spdlog/include/spdlog/common.h +0 -246
  2095. data/ext/third_party/spdlog/include/spdlog/details/backtracer-inl.h +0 -69
  2096. data/ext/third_party/spdlog/include/spdlog/details/backtracer.h +0 -45
  2097. data/ext/third_party/spdlog/include/spdlog/details/circular_q.h +0 -141
  2098. data/ext/third_party/spdlog/include/spdlog/details/console_globals.h +0 -32
  2099. data/ext/third_party/spdlog/include/spdlog/details/file_helper-inl.h +0 -132
  2100. data/ext/third_party/spdlog/include/spdlog/details/file_helper.h +0 -59
  2101. data/ext/third_party/spdlog/include/spdlog/details/fmt_helper.h +0 -108
  2102. data/ext/third_party/spdlog/include/spdlog/details/log_msg-inl.h +0 -37
  2103. data/ext/third_party/spdlog/include/spdlog/details/log_msg.h +0 -36
  2104. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -58
  2105. data/ext/third_party/spdlog/include/spdlog/details/log_msg_buffer.h +0 -33
  2106. data/ext/third_party/spdlog/include/spdlog/details/mpmc_blocking_q.h +0 -120
  2107. data/ext/third_party/spdlog/include/spdlog/details/null_mutex.h +0 -49
  2108. data/ext/third_party/spdlog/include/spdlog/details/os-inl.h +0 -554
  2109. data/ext/third_party/spdlog/include/spdlog/details/os.h +0 -111
  2110. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -49
  2111. data/ext/third_party/spdlog/include/spdlog/details/periodic_worker.h +0 -40
  2112. data/ext/third_party/spdlog/include/spdlog/details/registry-inl.h +0 -299
  2113. data/ext/third_party/spdlog/include/spdlog/details/registry.h +0 -112
  2114. data/ext/third_party/spdlog/include/spdlog/details/synchronous_factory.h +0 -24
  2115. data/ext/third_party/spdlog/include/spdlog/details/tcp_client-windows.h +0 -175
  2116. data/ext/third_party/spdlog/include/spdlog/details/tcp_client.h +0 -145
  2117. data/ext/third_party/spdlog/include/spdlog/details/thread_pool-inl.h +0 -124
  2118. data/ext/third_party/spdlog/include/spdlog/details/thread_pool.h +0 -120
  2119. data/ext/third_party/spdlog/include/spdlog/details/windows_include.h +0 -11
  2120. data/ext/third_party/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -216
  2121. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/LICENSE.rst +0 -27
  2122. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -1119
  2123. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/color.h +0 -568
  2124. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/compile.h +0 -595
  2125. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/core.h +0 -1789
  2126. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1403
  2127. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/format.h +0 -3648
  2128. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/locale.h +0 -78
  2129. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -143
  2130. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/posix.h +0 -2
  2131. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/printf.h +0 -721
  2132. data/ext/third_party/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -387
  2133. data/ext/third_party/spdlog/include/spdlog/fmt/fmt.h +0 -25
  2134. data/ext/third_party/spdlog/include/spdlog/fmt/ostr.h +0 -20
  2135. data/ext/third_party/spdlog/include/spdlog/formatter.h +0 -18
  2136. data/ext/third_party/spdlog/include/spdlog/fwd.h +0 -14
  2137. data/ext/third_party/spdlog/include/spdlog/logger-inl.h +0 -253
  2138. data/ext/third_party/spdlog/include/spdlog/logger.h +0 -392
  2139. data/ext/third_party/spdlog/include/spdlog/pattern_formatter-inl.h +0 -1358
  2140. data/ext/third_party/spdlog/include/spdlog/pattern_formatter.h +0 -126
  2141. data/ext/third_party/spdlog/include/spdlog/sinks/android_sink.h +0 -119
  2142. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -143
  2143. data/ext/third_party/spdlog/include/spdlog/sinks/ansicolor_sink.h +0 -118
  2144. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -63
  2145. data/ext/third_party/spdlog/include/spdlog/sinks/base_sink.h +0 -52
  2146. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -43
  2147. data/ext/third_party/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -58
  2148. data/ext/third_party/spdlog/include/spdlog/sinks/daily_file_sink.h +0 -204
  2149. data/ext/third_party/spdlog/include/spdlog/sinks/dist_sink.h +0 -97
  2150. data/ext/third_party/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -90
  2151. data/ext/third_party/spdlog/include/spdlog/sinks/msvc_sink.h +0 -49
  2152. data/ext/third_party/spdlog/include/spdlog/sinks/null_sink.h +0 -44
  2153. data/ext/third_party/spdlog/include/spdlog/sinks/ostream_sink.h +0 -50
  2154. data/ext/third_party/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -72
  2155. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +0 -131
  2156. data/ext/third_party/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -78
  2157. data/ext/third_party/spdlog/include/spdlog/sinks/sink-inl.h +0 -25
  2158. data/ext/third_party/spdlog/include/spdlog/sinks/sink.h +0 -35
  2159. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -38
  2160. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -45
  2161. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -94
  2162. data/ext/third_party/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -80
  2163. data/ext/third_party/spdlog/include/spdlog/sinks/syslog_sink.h +0 -109
  2164. data/ext/third_party/spdlog/include/spdlog/sinks/systemd_sink.h +0 -103
  2165. data/ext/third_party/spdlog/include/spdlog/sinks/tcp_sink.h +0 -81
  2166. data/ext/third_party/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -266
  2167. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +0 -180
  2168. data/ext/third_party/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -94
  2169. data/ext/third_party/spdlog/include/spdlog/spdlog-inl.h +0 -115
  2170. data/ext/third_party/spdlog/include/spdlog/spdlog.h +0 -340
  2171. data/ext/third_party/spdlog/include/spdlog/tweakme.h +0 -116
  2172. data/ext/third_party/spdlog/include/spdlog/version.h +0 -10
  2173. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  2174. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  2175. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  2176. data/ext/third_party/spdlog/src/async.cpp +0 -13
  2177. data/ext/third_party/spdlog/src/cfg.cpp +0 -8
  2178. data/ext/third_party/spdlog/src/color_sinks.cpp +0 -51
  2179. data/ext/third_party/spdlog/src/file_sinks.cpp +0 -20
  2180. data/ext/third_party/spdlog/src/fmt.cpp +0 -189
  2181. data/ext/third_party/spdlog/src/spdlog.cpp +0 -26
  2182. data/ext/third_party/spdlog/src/stdout_sinks.cpp +0 -29
  2183. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  2184. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  2185. data/ext/third_party/spdlog/tests/catch.license +0 -23
  2186. data/ext/third_party/spdlog/tests/includes.h +0 -26
  2187. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  2188. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  2189. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  2190. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  2191. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  2192. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  2193. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  2194. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  2195. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  2196. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  2197. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  2198. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  2199. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  2200. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  2201. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  2202. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  2203. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  2204. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  2205. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  2206. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  2207. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  2208. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  2209. data/ext/third_party/spdlog/tests/utils.h +0 -18
  2210. data/lib/couchbase/common_options.rb +0 -29
  2211. data/lib/couchbase/libcouchbase.so +0 -0
  2212. data/rbi/couchbase.rbi +0 -79
@@ -1,3575 +0,0 @@
1
- //
2
- // detail/impl/socket_ops.ipp
3
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
- //
5
- // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
- //
7
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
- //
10
-
11
- #ifndef ASIO_DETAIL_SOCKET_OPS_IPP
12
- #define ASIO_DETAIL_SOCKET_OPS_IPP
13
-
14
- #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
- # pragma once
16
- #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
-
18
- #include "asio/detail/config.hpp"
19
-
20
- #include <cctype>
21
- #include <cstdio>
22
- #include <cstdlib>
23
- #include <cstring>
24
- #include <cerrno>
25
- #include <new>
26
- #include "asio/detail/assert.hpp"
27
- #include "asio/detail/socket_ops.hpp"
28
- #include "asio/error.hpp"
29
-
30
- #if defined(ASIO_WINDOWS_RUNTIME)
31
- # include <codecvt>
32
- # include <locale>
33
- # include <string>
34
- #endif // defined(ASIO_WINDOWS_RUNTIME)
35
-
36
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__) \
37
- || defined(__MACH__) && defined(__APPLE__)
38
- # if defined(ASIO_HAS_PTHREADS)
39
- # include <pthread.h>
40
- # endif // defined(ASIO_HAS_PTHREADS)
41
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
42
- // || defined(__MACH__) && defined(__APPLE__)
43
-
44
- #include "asio/detail/push_options.hpp"
45
-
46
- namespace asio {
47
- namespace detail {
48
- namespace socket_ops {
49
-
50
- #if !defined(ASIO_WINDOWS_RUNTIME)
51
-
52
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
53
- struct msghdr { int msg_namelen; };
54
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
55
-
56
- #if defined(__hpux)
57
- // HP-UX doesn't declare these functions extern "C", so they are declared again
58
- // here to avoid linker errors about undefined symbols.
59
- extern "C" char* if_indextoname(unsigned int, char*);
60
- extern "C" unsigned int if_nametoindex(const char*);
61
- #endif // defined(__hpux)
62
-
63
- #endif // !defined(ASIO_WINDOWS_RUNTIME)
64
-
65
- inline void clear_last_error()
66
- {
67
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
68
- WSASetLastError(0);
69
- #else
70
- errno = 0;
71
- #endif
72
- }
73
-
74
- #if !defined(ASIO_WINDOWS_RUNTIME)
75
-
76
- template <typename ReturnType>
77
- inline ReturnType error_wrapper(ReturnType return_value,
78
- asio::error_code& ec)
79
- {
80
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
81
- ec = asio::error_code(WSAGetLastError(),
82
- asio::error::get_system_category());
83
- #else
84
- ec = asio::error_code(errno,
85
- asio::error::get_system_category());
86
- #endif
87
- return return_value;
88
- }
89
-
90
- template <typename SockLenType>
91
- inline socket_type call_accept(SockLenType msghdr::*,
92
- socket_type s, socket_addr_type* addr, std::size_t* addrlen)
93
- {
94
- SockLenType tmp_addrlen = addrlen ? (SockLenType)*addrlen : 0;
95
- socket_type result = ::accept(s, addr, addrlen ? &tmp_addrlen : 0);
96
- if (addrlen)
97
- *addrlen = (std::size_t)tmp_addrlen;
98
- return result;
99
- }
100
-
101
- socket_type accept(socket_type s, socket_addr_type* addr,
102
- std::size_t* addrlen, asio::error_code& ec)
103
- {
104
- if (s == invalid_socket)
105
- {
106
- ec = asio::error::bad_descriptor;
107
- return invalid_socket;
108
- }
109
-
110
- clear_last_error();
111
-
112
- socket_type new_s = error_wrapper(call_accept(
113
- &msghdr::msg_namelen, s, addr, addrlen), ec);
114
- if (new_s == invalid_socket)
115
- return new_s;
116
-
117
- #if defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__)
118
- int optval = 1;
119
- int result = error_wrapper(::setsockopt(new_s,
120
- SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec);
121
- if (result != 0)
122
- {
123
- ::close(new_s);
124
- return invalid_socket;
125
- }
126
- #endif
127
-
128
- ec = asio::error_code();
129
- return new_s;
130
- }
131
-
132
- socket_type sync_accept(socket_type s, state_type state,
133
- socket_addr_type* addr, std::size_t* addrlen, asio::error_code& ec)
134
- {
135
- // Accept a socket.
136
- for (;;)
137
- {
138
- // Try to complete the operation without blocking.
139
- socket_type new_socket = socket_ops::accept(s, addr, addrlen, ec);
140
-
141
- // Check if operation succeeded.
142
- if (new_socket != invalid_socket)
143
- return new_socket;
144
-
145
- // Operation failed.
146
- if (ec == asio::error::would_block
147
- || ec == asio::error::try_again)
148
- {
149
- if (state & user_set_non_blocking)
150
- return invalid_socket;
151
- // Fall through to retry operation.
152
- }
153
- else if (ec == asio::error::connection_aborted)
154
- {
155
- if (state & enable_connection_aborted)
156
- return invalid_socket;
157
- // Fall through to retry operation.
158
- }
159
- #if defined(EPROTO)
160
- else if (ec.value() == EPROTO)
161
- {
162
- if (state & enable_connection_aborted)
163
- return invalid_socket;
164
- // Fall through to retry operation.
165
- }
166
- #endif // defined(EPROTO)
167
- else
168
- return invalid_socket;
169
-
170
- // Wait for socket to become ready.
171
- if (socket_ops::poll_read(s, 0, -1, ec) < 0)
172
- return invalid_socket;
173
- }
174
- }
175
-
176
- #if defined(ASIO_HAS_IOCP)
177
-
178
- void complete_iocp_accept(socket_type s,
179
- void* output_buffer, DWORD address_length,
180
- socket_addr_type* addr, std::size_t* addrlen,
181
- socket_type new_socket, asio::error_code& ec)
182
- {
183
- // Map non-portable errors to their portable counterparts.
184
- if (ec.value() == ERROR_NETNAME_DELETED)
185
- ec = asio::error::connection_aborted;
186
-
187
- if (!ec)
188
- {
189
- // Get the address of the peer.
190
- if (addr && addrlen)
191
- {
192
- LPSOCKADDR local_addr = 0;
193
- int local_addr_length = 0;
194
- LPSOCKADDR remote_addr = 0;
195
- int remote_addr_length = 0;
196
- GetAcceptExSockaddrs(output_buffer, 0, address_length,
197
- address_length, &local_addr, &local_addr_length,
198
- &remote_addr, &remote_addr_length);
199
- if (static_cast<std::size_t>(remote_addr_length) > *addrlen)
200
- {
201
- ec = asio::error::invalid_argument;
202
- }
203
- else
204
- {
205
- using namespace std; // For memcpy.
206
- memcpy(addr, remote_addr, remote_addr_length);
207
- *addrlen = static_cast<std::size_t>(remote_addr_length);
208
- }
209
- }
210
-
211
- // Need to set the SO_UPDATE_ACCEPT_CONTEXT option so that getsockname
212
- // and getpeername will work on the accepted socket.
213
- SOCKET update_ctx_param = s;
214
- socket_ops::state_type state = 0;
215
- socket_ops::setsockopt(new_socket, state,
216
- SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT,
217
- &update_ctx_param, sizeof(SOCKET), ec);
218
- }
219
- }
220
-
221
- #else // defined(ASIO_HAS_IOCP)
222
-
223
- bool non_blocking_accept(socket_type s,
224
- state_type state, socket_addr_type* addr, std::size_t* addrlen,
225
- asio::error_code& ec, socket_type& new_socket)
226
- {
227
- for (;;)
228
- {
229
- // Accept the waiting connection.
230
- new_socket = socket_ops::accept(s, addr, addrlen, ec);
231
-
232
- // Check if operation succeeded.
233
- if (new_socket != invalid_socket)
234
- return true;
235
-
236
- // Retry operation if interrupted by signal.
237
- if (ec == asio::error::interrupted)
238
- continue;
239
-
240
- // Operation failed.
241
- if (ec == asio::error::would_block
242
- || ec == asio::error::try_again)
243
- {
244
- // Fall through to retry operation.
245
- }
246
- else if (ec == asio::error::connection_aborted)
247
- {
248
- if (state & enable_connection_aborted)
249
- return true;
250
- // Fall through to retry operation.
251
- }
252
- #if defined(EPROTO)
253
- else if (ec.value() == EPROTO)
254
- {
255
- if (state & enable_connection_aborted)
256
- return true;
257
- // Fall through to retry operation.
258
- }
259
- #endif // defined(EPROTO)
260
- else
261
- return true;
262
-
263
- return false;
264
- }
265
- }
266
-
267
- #endif // defined(ASIO_HAS_IOCP)
268
-
269
- template <typename SockLenType>
270
- inline int call_bind(SockLenType msghdr::*,
271
- socket_type s, const socket_addr_type* addr, std::size_t addrlen)
272
- {
273
- return ::bind(s, addr, (SockLenType)addrlen);
274
- }
275
-
276
- int bind(socket_type s, const socket_addr_type* addr,
277
- std::size_t addrlen, asio::error_code& ec)
278
- {
279
- if (s == invalid_socket)
280
- {
281
- ec = asio::error::bad_descriptor;
282
- return socket_error_retval;
283
- }
284
-
285
- clear_last_error();
286
- int result = error_wrapper(call_bind(
287
- &msghdr::msg_namelen, s, addr, addrlen), ec);
288
- if (result == 0)
289
- ec = asio::error_code();
290
- return result;
291
- }
292
-
293
- int close(socket_type s, state_type& state,
294
- bool destruction, asio::error_code& ec)
295
- {
296
- int result = 0;
297
- if (s != invalid_socket)
298
- {
299
- // We don't want the destructor to block, so set the socket to linger in
300
- // the background. If the user doesn't like this behaviour then they need
301
- // to explicitly close the socket.
302
- if (destruction && (state & user_set_linger))
303
- {
304
- ::linger opt;
305
- opt.l_onoff = 0;
306
- opt.l_linger = 0;
307
- asio::error_code ignored_ec;
308
- socket_ops::setsockopt(s, state, SOL_SOCKET,
309
- SO_LINGER, &opt, sizeof(opt), ignored_ec);
310
- }
311
-
312
- clear_last_error();
313
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
314
- result = error_wrapper(::closesocket(s), ec);
315
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
316
- result = error_wrapper(::close(s), ec);
317
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
318
-
319
- if (result != 0
320
- && (ec == asio::error::would_block
321
- || ec == asio::error::try_again))
322
- {
323
- // According to UNIX Network Programming Vol. 1, it is possible for
324
- // close() to fail with EWOULDBLOCK under certain circumstances. What
325
- // isn't clear is the state of the descriptor after this error. The one
326
- // current OS where this behaviour is seen, Windows, says that the socket
327
- // remains open. Therefore we'll put the descriptor back into blocking
328
- // mode and have another attempt at closing it.
329
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
330
- ioctl_arg_type arg = 0;
331
- ::ioctlsocket(s, FIONBIO, &arg);
332
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
333
- # if defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
334
- int flags = ::fcntl(s, F_GETFL, 0);
335
- if (flags >= 0)
336
- ::fcntl(s, F_SETFL, flags & ~O_NONBLOCK);
337
- # else // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
338
- ioctl_arg_type arg = 0;
339
- ::ioctl(s, FIONBIO, &arg);
340
- # endif // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
341
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
342
- state &= ~non_blocking;
343
-
344
- clear_last_error();
345
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
346
- result = error_wrapper(::closesocket(s), ec);
347
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
348
- result = error_wrapper(::close(s), ec);
349
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
350
- }
351
- }
352
-
353
- if (result == 0)
354
- ec = asio::error_code();
355
- return result;
356
- }
357
-
358
- bool set_user_non_blocking(socket_type s,
359
- state_type& state, bool value, asio::error_code& ec)
360
- {
361
- if (s == invalid_socket)
362
- {
363
- ec = asio::error::bad_descriptor;
364
- return false;
365
- }
366
-
367
- clear_last_error();
368
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
369
- ioctl_arg_type arg = (value ? 1 : 0);
370
- int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec);
371
- #elif defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
372
- int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec);
373
- if (result >= 0)
374
- {
375
- clear_last_error();
376
- int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
377
- result = error_wrapper(::fcntl(s, F_SETFL, flag), ec);
378
- }
379
- #else
380
- ioctl_arg_type arg = (value ? 1 : 0);
381
- int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec);
382
- #endif
383
-
384
- if (result >= 0)
385
- {
386
- ec = asio::error_code();
387
- if (value)
388
- state |= user_set_non_blocking;
389
- else
390
- {
391
- // Clearing the user-set non-blocking mode always overrides any
392
- // internally-set non-blocking flag. Any subsequent asynchronous
393
- // operations will need to re-enable non-blocking I/O.
394
- state &= ~(user_set_non_blocking | internal_non_blocking);
395
- }
396
- return true;
397
- }
398
-
399
- return false;
400
- }
401
-
402
- bool set_internal_non_blocking(socket_type s,
403
- state_type& state, bool value, asio::error_code& ec)
404
- {
405
- if (s == invalid_socket)
406
- {
407
- ec = asio::error::bad_descriptor;
408
- return false;
409
- }
410
-
411
- if (!value && (state & user_set_non_blocking))
412
- {
413
- // It does not make sense to clear the internal non-blocking flag if the
414
- // user still wants non-blocking behaviour. Return an error and let the
415
- // caller figure out whether to update the user-set non-blocking flag.
416
- ec = asio::error::invalid_argument;
417
- return false;
418
- }
419
-
420
- clear_last_error();
421
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
422
- ioctl_arg_type arg = (value ? 1 : 0);
423
- int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec);
424
- #elif defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
425
- int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec);
426
- if (result >= 0)
427
- {
428
- clear_last_error();
429
- int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
430
- result = error_wrapper(::fcntl(s, F_SETFL, flag), ec);
431
- }
432
- #else
433
- ioctl_arg_type arg = (value ? 1 : 0);
434
- int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec);
435
- #endif
436
-
437
- if (result >= 0)
438
- {
439
- ec = asio::error_code();
440
- if (value)
441
- state |= internal_non_blocking;
442
- else
443
- state &= ~internal_non_blocking;
444
- return true;
445
- }
446
-
447
- return false;
448
- }
449
-
450
- int shutdown(socket_type s, int what, asio::error_code& ec)
451
- {
452
- if (s == invalid_socket)
453
- {
454
- ec = asio::error::bad_descriptor;
455
- return socket_error_retval;
456
- }
457
-
458
- clear_last_error();
459
- int result = error_wrapper(::shutdown(s, what), ec);
460
- if (result == 0)
461
- ec = asio::error_code();
462
- return result;
463
- }
464
-
465
- template <typename SockLenType>
466
- inline int call_connect(SockLenType msghdr::*,
467
- socket_type s, const socket_addr_type* addr, std::size_t addrlen)
468
- {
469
- return ::connect(s, addr, (SockLenType)addrlen);
470
- }
471
-
472
- int connect(socket_type s, const socket_addr_type* addr,
473
- std::size_t addrlen, asio::error_code& ec)
474
- {
475
- if (s == invalid_socket)
476
- {
477
- ec = asio::error::bad_descriptor;
478
- return socket_error_retval;
479
- }
480
-
481
- clear_last_error();
482
- int result = error_wrapper(call_connect(
483
- &msghdr::msg_namelen, s, addr, addrlen), ec);
484
- if (result == 0)
485
- ec = asio::error_code();
486
- #if defined(__linux__)
487
- else if (ec == asio::error::try_again)
488
- ec = asio::error::no_buffer_space;
489
- #endif // defined(__linux__)
490
- return result;
491
- }
492
-
493
- void sync_connect(socket_type s, const socket_addr_type* addr,
494
- std::size_t addrlen, asio::error_code& ec)
495
- {
496
- // Perform the connect operation.
497
- socket_ops::connect(s, addr, addrlen, ec);
498
- if (ec != asio::error::in_progress
499
- && ec != asio::error::would_block)
500
- {
501
- // The connect operation finished immediately.
502
- return;
503
- }
504
-
505
- // Wait for socket to become ready.
506
- if (socket_ops::poll_connect(s, -1, ec) < 0)
507
- return;
508
-
509
- // Get the error code from the connect operation.
510
- int connect_error = 0;
511
- size_t connect_error_len = sizeof(connect_error);
512
- if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR,
513
- &connect_error, &connect_error_len, ec) == socket_error_retval)
514
- return;
515
-
516
- // Return the result of the connect operation.
517
- ec = asio::error_code(connect_error,
518
- asio::error::get_system_category());
519
- }
520
-
521
- #if defined(ASIO_HAS_IOCP)
522
-
523
- void complete_iocp_connect(socket_type s, asio::error_code& ec)
524
- {
525
- // Map non-portable errors to their portable counterparts.
526
- switch (ec.value())
527
- {
528
- case ERROR_CONNECTION_REFUSED:
529
- ec = asio::error::connection_refused;
530
- break;
531
- case ERROR_NETWORK_UNREACHABLE:
532
- ec = asio::error::network_unreachable;
533
- break;
534
- case ERROR_HOST_UNREACHABLE:
535
- ec = asio::error::host_unreachable;
536
- break;
537
- case ERROR_SEM_TIMEOUT:
538
- ec = asio::error::timed_out;
539
- break;
540
- default:
541
- break;
542
- }
543
-
544
- if (!ec)
545
- {
546
- // Need to set the SO_UPDATE_CONNECT_CONTEXT option so that getsockname
547
- // and getpeername will work on the connected socket.
548
- socket_ops::state_type state = 0;
549
- const int so_update_connect_context = 0x7010;
550
- socket_ops::setsockopt(s, state, SOL_SOCKET,
551
- so_update_connect_context, 0, 0, ec);
552
- }
553
- }
554
-
555
- #endif // defined(ASIO_HAS_IOCP)
556
-
557
- bool non_blocking_connect(socket_type s, asio::error_code& ec)
558
- {
559
- // Check if the connect operation has finished. This is required since we may
560
- // get spurious readiness notifications from the reactor.
561
- #if defined(ASIO_WINDOWS) \
562
- || defined(__CYGWIN__) \
563
- || defined(__SYMBIAN32__)
564
- fd_set write_fds;
565
- FD_ZERO(&write_fds);
566
- FD_SET(s, &write_fds);
567
- fd_set except_fds;
568
- FD_ZERO(&except_fds);
569
- FD_SET(s, &except_fds);
570
- timeval zero_timeout;
571
- zero_timeout.tv_sec = 0;
572
- zero_timeout.tv_usec = 0;
573
- int ready = ::select(s + 1, 0, &write_fds, &except_fds, &zero_timeout);
574
- #else // defined(ASIO_WINDOWS)
575
- // || defined(__CYGWIN__)
576
- // || defined(__SYMBIAN32__)
577
- pollfd fds;
578
- fds.fd = s;
579
- fds.events = POLLOUT;
580
- fds.revents = 0;
581
- int ready = ::poll(&fds, 1, 0);
582
- #endif // defined(ASIO_WINDOWS)
583
- // || defined(__CYGWIN__)
584
- // || defined(__SYMBIAN32__)
585
- if (ready == 0)
586
- {
587
- // The asynchronous connect operation is still in progress.
588
- return false;
589
- }
590
-
591
- // Get the error code from the connect operation.
592
- int connect_error = 0;
593
- size_t connect_error_len = sizeof(connect_error);
594
- if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR,
595
- &connect_error, &connect_error_len, ec) == 0)
596
- {
597
- if (connect_error)
598
- {
599
- ec = asio::error_code(connect_error,
600
- asio::error::get_system_category());
601
- }
602
- else
603
- ec = asio::error_code();
604
- }
605
-
606
- return true;
607
- }
608
-
609
- int socketpair(int af, int type, int protocol,
610
- socket_type sv[2], asio::error_code& ec)
611
- {
612
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
613
- (void)(af);
614
- (void)(type);
615
- (void)(protocol);
616
- (void)(sv);
617
- ec = asio::error::operation_not_supported;
618
- return socket_error_retval;
619
- #else
620
- clear_last_error();
621
- int result = error_wrapper(::socketpair(af, type, protocol, sv), ec);
622
- if (result == 0)
623
- ec = asio::error_code();
624
- return result;
625
- #endif
626
- }
627
-
628
- bool sockatmark(socket_type s, asio::error_code& ec)
629
- {
630
- if (s == invalid_socket)
631
- {
632
- ec = asio::error::bad_descriptor;
633
- return false;
634
- }
635
-
636
- #if defined(SIOCATMARK)
637
- ioctl_arg_type value = 0;
638
- # if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
639
- int result = error_wrapper(::ioctlsocket(s, SIOCATMARK, &value), ec);
640
- # else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
641
- int result = error_wrapper(::ioctl(s, SIOCATMARK, &value), ec);
642
- # endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
643
- if (result == 0)
644
- ec = asio::error_code();
645
- # if defined(ENOTTY)
646
- if (ec.value() == ENOTTY)
647
- ec = asio::error::not_socket;
648
- # endif // defined(ENOTTY)
649
- #else // defined(SIOCATMARK)
650
- int value = error_wrapper(::sockatmark(s), ec);
651
- if (value != -1)
652
- ec = asio::error_code();
653
- #endif // defined(SIOCATMARK)
654
-
655
- return ec ? false : value != 0;
656
- }
657
-
658
- size_t available(socket_type s, asio::error_code& ec)
659
- {
660
- if (s == invalid_socket)
661
- {
662
- ec = asio::error::bad_descriptor;
663
- return 0;
664
- }
665
-
666
- ioctl_arg_type value = 0;
667
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
668
- int result = error_wrapper(::ioctlsocket(s, FIONREAD, &value), ec);
669
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
670
- int result = error_wrapper(::ioctl(s, FIONREAD, &value), ec);
671
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
672
- if (result == 0)
673
- ec = asio::error_code();
674
- #if defined(ENOTTY)
675
- if (ec.value() == ENOTTY)
676
- ec = asio::error::not_socket;
677
- #endif // defined(ENOTTY)
678
-
679
- return ec ? static_cast<size_t>(0) : static_cast<size_t>(value);
680
- }
681
-
682
- int listen(socket_type s, int backlog, asio::error_code& ec)
683
- {
684
- if (s == invalid_socket)
685
- {
686
- ec = asio::error::bad_descriptor;
687
- return socket_error_retval;
688
- }
689
-
690
- clear_last_error();
691
- int result = error_wrapper(::listen(s, backlog), ec);
692
- if (result == 0)
693
- ec = asio::error_code();
694
- return result;
695
- }
696
-
697
- inline void init_buf_iov_base(void*& base, void* addr)
698
- {
699
- base = addr;
700
- }
701
-
702
- template <typename T>
703
- inline void init_buf_iov_base(T& base, void* addr)
704
- {
705
- base = static_cast<T>(addr);
706
- }
707
-
708
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
709
- typedef WSABUF buf;
710
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
711
- typedef iovec buf;
712
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
713
-
714
- void init_buf(buf& b, void* data, size_t size)
715
- {
716
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
717
- b.buf = static_cast<char*>(data);
718
- b.len = static_cast<u_long>(size);
719
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
720
- init_buf_iov_base(b.iov_base, data);
721
- b.iov_len = size;
722
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
723
- }
724
-
725
- void init_buf(buf& b, const void* data, size_t size)
726
- {
727
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
728
- b.buf = static_cast<char*>(const_cast<void*>(data));
729
- b.len = static_cast<u_long>(size);
730
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
731
- init_buf_iov_base(b.iov_base, const_cast<void*>(data));
732
- b.iov_len = size;
733
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
734
- }
735
-
736
- inline void init_msghdr_msg_name(void*& name, socket_addr_type* addr)
737
- {
738
- name = addr;
739
- }
740
-
741
- inline void init_msghdr_msg_name(void*& name, const socket_addr_type* addr)
742
- {
743
- name = const_cast<socket_addr_type*>(addr);
744
- }
745
-
746
- template <typename T>
747
- inline void init_msghdr_msg_name(T& name, socket_addr_type* addr)
748
- {
749
- name = reinterpret_cast<T>(addr);
750
- }
751
-
752
- template <typename T>
753
- inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr)
754
- {
755
- name = reinterpret_cast<T>(const_cast<socket_addr_type*>(addr));
756
- }
757
-
758
- signed_size_type recv(socket_type s, buf* bufs, size_t count,
759
- int flags, asio::error_code& ec)
760
- {
761
- clear_last_error();
762
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
763
- // Receive some data.
764
- DWORD recv_buf_count = static_cast<DWORD>(count);
765
- DWORD bytes_transferred = 0;
766
- DWORD recv_flags = flags;
767
- int result = error_wrapper(::WSARecv(s, bufs,
768
- recv_buf_count, &bytes_transferred, &recv_flags, 0, 0), ec);
769
- if (ec.value() == ERROR_NETNAME_DELETED)
770
- ec = asio::error::connection_reset;
771
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
772
- ec = asio::error::connection_refused;
773
- else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
774
- result = 0;
775
- if (result != 0)
776
- return socket_error_retval;
777
- ec = asio::error_code();
778
- return bytes_transferred;
779
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
780
- msghdr msg = msghdr();
781
- msg.msg_iov = bufs;
782
- msg.msg_iovlen = static_cast<int>(count);
783
- signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec);
784
- if (result >= 0)
785
- ec = asio::error_code();
786
- return result;
787
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
788
- }
789
-
790
- size_t sync_recv(socket_type s, state_type state, buf* bufs,
791
- size_t count, int flags, bool all_empty, asio::error_code& ec)
792
- {
793
- if (s == invalid_socket)
794
- {
795
- ec = asio::error::bad_descriptor;
796
- return 0;
797
- }
798
-
799
- // A request to read 0 bytes on a stream is a no-op.
800
- if (all_empty && (state & stream_oriented))
801
- {
802
- ec = asio::error_code();
803
- return 0;
804
- }
805
-
806
- // Read some data.
807
- for (;;)
808
- {
809
- // Try to complete the operation without blocking.
810
- signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec);
811
-
812
- // Check if operation succeeded.
813
- if (bytes > 0)
814
- return bytes;
815
-
816
- // Check for EOF.
817
- if ((state & stream_oriented) && bytes == 0)
818
- {
819
- ec = asio::error::eof;
820
- return 0;
821
- }
822
-
823
- // Operation failed.
824
- if ((state & user_set_non_blocking)
825
- || (ec != asio::error::would_block
826
- && ec != asio::error::try_again))
827
- return 0;
828
-
829
- // Wait for socket to become ready.
830
- if (socket_ops::poll_read(s, 0, -1, ec) < 0)
831
- return 0;
832
- }
833
- }
834
-
835
- #if defined(ASIO_HAS_IOCP)
836
-
837
- void complete_iocp_recv(state_type state,
838
- const weak_cancel_token_type& cancel_token, bool all_empty,
839
- asio::error_code& ec, size_t bytes_transferred)
840
- {
841
- // Map non-portable errors to their portable counterparts.
842
- if (ec.value() == ERROR_NETNAME_DELETED)
843
- {
844
- if (cancel_token.expired())
845
- ec = asio::error::operation_aborted;
846
- else
847
- ec = asio::error::connection_reset;
848
- }
849
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
850
- {
851
- ec = asio::error::connection_refused;
852
- }
853
- else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
854
- {
855
- ec.assign(0, ec.category());
856
- }
857
-
858
- // Check for connection closed.
859
- else if (!ec && bytes_transferred == 0
860
- && (state & stream_oriented) != 0
861
- && !all_empty)
862
- {
863
- ec = asio::error::eof;
864
- }
865
- }
866
-
867
- #else // defined(ASIO_HAS_IOCP)
868
-
869
- bool non_blocking_recv(socket_type s,
870
- buf* bufs, size_t count, int flags, bool is_stream,
871
- asio::error_code& ec, size_t& bytes_transferred)
872
- {
873
- for (;;)
874
- {
875
- // Read some data.
876
- signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec);
877
-
878
- // Check for end of stream.
879
- if (is_stream && bytes == 0)
880
- {
881
- ec = asio::error::eof;
882
- return true;
883
- }
884
-
885
- // Retry operation if interrupted by signal.
886
- if (ec == asio::error::interrupted)
887
- continue;
888
-
889
- // Check if we need to run the operation again.
890
- if (ec == asio::error::would_block
891
- || ec == asio::error::try_again)
892
- return false;
893
-
894
- // Operation is complete.
895
- if (bytes >= 0)
896
- {
897
- ec = asio::error_code();
898
- bytes_transferred = bytes;
899
- }
900
- else
901
- bytes_transferred = 0;
902
-
903
- return true;
904
- }
905
- }
906
-
907
- #endif // defined(ASIO_HAS_IOCP)
908
-
909
- signed_size_type recvfrom(socket_type s, buf* bufs, size_t count,
910
- int flags, socket_addr_type* addr, std::size_t* addrlen,
911
- asio::error_code& ec)
912
- {
913
- clear_last_error();
914
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
915
- // Receive some data.
916
- DWORD recv_buf_count = static_cast<DWORD>(count);
917
- DWORD bytes_transferred = 0;
918
- DWORD recv_flags = flags;
919
- int tmp_addrlen = (int)*addrlen;
920
- int result = error_wrapper(::WSARecvFrom(s, bufs, recv_buf_count,
921
- &bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0), ec);
922
- *addrlen = (std::size_t)tmp_addrlen;
923
- if (ec.value() == ERROR_NETNAME_DELETED)
924
- ec = asio::error::connection_reset;
925
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
926
- ec = asio::error::connection_refused;
927
- else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
928
- result = 0;
929
- if (result != 0)
930
- return socket_error_retval;
931
- ec = asio::error_code();
932
- return bytes_transferred;
933
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
934
- msghdr msg = msghdr();
935
- init_msghdr_msg_name(msg.msg_name, addr);
936
- msg.msg_namelen = static_cast<int>(*addrlen);
937
- msg.msg_iov = bufs;
938
- msg.msg_iovlen = static_cast<int>(count);
939
- signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec);
940
- *addrlen = msg.msg_namelen;
941
- if (result >= 0)
942
- ec = asio::error_code();
943
- return result;
944
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
945
- }
946
-
947
- size_t sync_recvfrom(socket_type s, state_type state, buf* bufs,
948
- size_t count, int flags, socket_addr_type* addr,
949
- std::size_t* addrlen, asio::error_code& ec)
950
- {
951
- if (s == invalid_socket)
952
- {
953
- ec = asio::error::bad_descriptor;
954
- return 0;
955
- }
956
-
957
- // Read some data.
958
- for (;;)
959
- {
960
- // Try to complete the operation without blocking.
961
- signed_size_type bytes = socket_ops::recvfrom(
962
- s, bufs, count, flags, addr, addrlen, ec);
963
-
964
- // Check if operation succeeded.
965
- if (bytes >= 0)
966
- return bytes;
967
-
968
- // Operation failed.
969
- if ((state & user_set_non_blocking)
970
- || (ec != asio::error::would_block
971
- && ec != asio::error::try_again))
972
- return 0;
973
-
974
- // Wait for socket to become ready.
975
- if (socket_ops::poll_read(s, 0, -1, ec) < 0)
976
- return 0;
977
- }
978
- }
979
-
980
- #if defined(ASIO_HAS_IOCP)
981
-
982
- void complete_iocp_recvfrom(
983
- const weak_cancel_token_type& cancel_token,
984
- asio::error_code& ec)
985
- {
986
- // Map non-portable errors to their portable counterparts.
987
- if (ec.value() == ERROR_NETNAME_DELETED)
988
- {
989
- if (cancel_token.expired())
990
- ec = asio::error::operation_aborted;
991
- else
992
- ec = asio::error::connection_reset;
993
- }
994
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
995
- {
996
- ec = asio::error::connection_refused;
997
- }
998
- else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
999
- {
1000
- ec.assign(0, ec.category());
1001
- }
1002
- }
1003
-
1004
- #else // defined(ASIO_HAS_IOCP)
1005
-
1006
- bool non_blocking_recvfrom(socket_type s,
1007
- buf* bufs, size_t count, int flags,
1008
- socket_addr_type* addr, std::size_t* addrlen,
1009
- asio::error_code& ec, size_t& bytes_transferred)
1010
- {
1011
- for (;;)
1012
- {
1013
- // Read some data.
1014
- signed_size_type bytes = socket_ops::recvfrom(
1015
- s, bufs, count, flags, addr, addrlen, ec);
1016
-
1017
- // Retry operation if interrupted by signal.
1018
- if (ec == asio::error::interrupted)
1019
- continue;
1020
-
1021
- // Check if we need to run the operation again.
1022
- if (ec == asio::error::would_block
1023
- || ec == asio::error::try_again)
1024
- return false;
1025
-
1026
- // Operation is complete.
1027
- if (bytes >= 0)
1028
- {
1029
- ec = asio::error_code();
1030
- bytes_transferred = bytes;
1031
- }
1032
- else
1033
- bytes_transferred = 0;
1034
-
1035
- return true;
1036
- }
1037
- }
1038
-
1039
- #endif // defined(ASIO_HAS_IOCP)
1040
-
1041
- signed_size_type recvmsg(socket_type s, buf* bufs, size_t count,
1042
- int in_flags, int& out_flags, asio::error_code& ec)
1043
- {
1044
- clear_last_error();
1045
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1046
- out_flags = 0;
1047
- return socket_ops::recv(s, bufs, count, in_flags, ec);
1048
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1049
- msghdr msg = msghdr();
1050
- msg.msg_iov = bufs;
1051
- msg.msg_iovlen = static_cast<int>(count);
1052
- signed_size_type result = error_wrapper(::recvmsg(s, &msg, in_flags), ec);
1053
- if (result >= 0)
1054
- {
1055
- ec = asio::error_code();
1056
- out_flags = msg.msg_flags;
1057
- }
1058
- else
1059
- out_flags = 0;
1060
- return result;
1061
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1062
- }
1063
-
1064
- size_t sync_recvmsg(socket_type s, state_type state,
1065
- buf* bufs, size_t count, int in_flags, int& out_flags,
1066
- asio::error_code& ec)
1067
- {
1068
- if (s == invalid_socket)
1069
- {
1070
- ec = asio::error::bad_descriptor;
1071
- return 0;
1072
- }
1073
-
1074
- // Read some data.
1075
- for (;;)
1076
- {
1077
- // Try to complete the operation without blocking.
1078
- signed_size_type bytes = socket_ops::recvmsg(
1079
- s, bufs, count, in_flags, out_flags, ec);
1080
-
1081
- // Check if operation succeeded.
1082
- if (bytes >= 0)
1083
- return bytes;
1084
-
1085
- // Operation failed.
1086
- if ((state & user_set_non_blocking)
1087
- || (ec != asio::error::would_block
1088
- && ec != asio::error::try_again))
1089
- return 0;
1090
-
1091
- // Wait for socket to become ready.
1092
- if (socket_ops::poll_read(s, 0, -1, ec) < 0)
1093
- return 0;
1094
- }
1095
- }
1096
-
1097
- #if defined(ASIO_HAS_IOCP)
1098
-
1099
- void complete_iocp_recvmsg(
1100
- const weak_cancel_token_type& cancel_token,
1101
- asio::error_code& ec)
1102
- {
1103
- // Map non-portable errors to their portable counterparts.
1104
- if (ec.value() == ERROR_NETNAME_DELETED)
1105
- {
1106
- if (cancel_token.expired())
1107
- ec = asio::error::operation_aborted;
1108
- else
1109
- ec = asio::error::connection_reset;
1110
- }
1111
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
1112
- {
1113
- ec = asio::error::connection_refused;
1114
- }
1115
- else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
1116
- {
1117
- ec.assign(0, ec.category());
1118
- }
1119
- }
1120
-
1121
- #else // defined(ASIO_HAS_IOCP)
1122
-
1123
- bool non_blocking_recvmsg(socket_type s,
1124
- buf* bufs, size_t count, int in_flags, int& out_flags,
1125
- asio::error_code& ec, size_t& bytes_transferred)
1126
- {
1127
- for (;;)
1128
- {
1129
- // Read some data.
1130
- signed_size_type bytes = socket_ops::recvmsg(
1131
- s, bufs, count, in_flags, out_flags, ec);
1132
-
1133
- // Retry operation if interrupted by signal.
1134
- if (ec == asio::error::interrupted)
1135
- continue;
1136
-
1137
- // Check if we need to run the operation again.
1138
- if (ec == asio::error::would_block
1139
- || ec == asio::error::try_again)
1140
- return false;
1141
-
1142
- // Operation is complete.
1143
- if (bytes >= 0)
1144
- {
1145
- ec = asio::error_code();
1146
- bytes_transferred = bytes;
1147
- }
1148
- else
1149
- bytes_transferred = 0;
1150
-
1151
- return true;
1152
- }
1153
- }
1154
-
1155
- #endif // defined(ASIO_HAS_IOCP)
1156
-
1157
- signed_size_type send(socket_type s, const buf* bufs, size_t count,
1158
- int flags, asio::error_code& ec)
1159
- {
1160
- clear_last_error();
1161
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1162
- // Send the data.
1163
- DWORD send_buf_count = static_cast<DWORD>(count);
1164
- DWORD bytes_transferred = 0;
1165
- DWORD send_flags = flags;
1166
- int result = error_wrapper(::WSASend(s, const_cast<buf*>(bufs),
1167
- send_buf_count, &bytes_transferred, send_flags, 0, 0), ec);
1168
- if (ec.value() == ERROR_NETNAME_DELETED)
1169
- ec = asio::error::connection_reset;
1170
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
1171
- ec = asio::error::connection_refused;
1172
- if (result != 0)
1173
- return socket_error_retval;
1174
- ec = asio::error_code();
1175
- return bytes_transferred;
1176
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1177
- msghdr msg = msghdr();
1178
- msg.msg_iov = const_cast<buf*>(bufs);
1179
- msg.msg_iovlen = static_cast<int>(count);
1180
- #if defined(__linux__)
1181
- flags |= MSG_NOSIGNAL;
1182
- #endif // defined(__linux__)
1183
- signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec);
1184
- if (result >= 0)
1185
- ec = asio::error_code();
1186
- return result;
1187
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1188
- }
1189
-
1190
- size_t sync_send(socket_type s, state_type state, const buf* bufs,
1191
- size_t count, int flags, bool all_empty, asio::error_code& ec)
1192
- {
1193
- if (s == invalid_socket)
1194
- {
1195
- ec = asio::error::bad_descriptor;
1196
- return 0;
1197
- }
1198
-
1199
- // A request to write 0 bytes to a stream is a no-op.
1200
- if (all_empty && (state & stream_oriented))
1201
- {
1202
- ec = asio::error_code();
1203
- return 0;
1204
- }
1205
-
1206
- // Read some data.
1207
- for (;;)
1208
- {
1209
- // Try to complete the operation without blocking.
1210
- signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec);
1211
-
1212
- // Check if operation succeeded.
1213
- if (bytes >= 0)
1214
- return bytes;
1215
-
1216
- // Operation failed.
1217
- if ((state & user_set_non_blocking)
1218
- || (ec != asio::error::would_block
1219
- && ec != asio::error::try_again))
1220
- return 0;
1221
-
1222
- // Wait for socket to become ready.
1223
- if (socket_ops::poll_write(s, 0, -1, ec) < 0)
1224
- return 0;
1225
- }
1226
- }
1227
-
1228
- #if defined(ASIO_HAS_IOCP)
1229
-
1230
- void complete_iocp_send(
1231
- const weak_cancel_token_type& cancel_token,
1232
- asio::error_code& ec)
1233
- {
1234
- // Map non-portable errors to their portable counterparts.
1235
- if (ec.value() == ERROR_NETNAME_DELETED)
1236
- {
1237
- if (cancel_token.expired())
1238
- ec = asio::error::operation_aborted;
1239
- else
1240
- ec = asio::error::connection_reset;
1241
- }
1242
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
1243
- {
1244
- ec = asio::error::connection_refused;
1245
- }
1246
- }
1247
-
1248
- #else // defined(ASIO_HAS_IOCP)
1249
-
1250
- bool non_blocking_send(socket_type s,
1251
- const buf* bufs, size_t count, int flags,
1252
- asio::error_code& ec, size_t& bytes_transferred)
1253
- {
1254
- for (;;)
1255
- {
1256
- // Write some data.
1257
- signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec);
1258
-
1259
- // Retry operation if interrupted by signal.
1260
- if (ec == asio::error::interrupted)
1261
- continue;
1262
-
1263
- // Check if we need to run the operation again.
1264
- if (ec == asio::error::would_block
1265
- || ec == asio::error::try_again)
1266
- return false;
1267
-
1268
- // Operation is complete.
1269
- if (bytes >= 0)
1270
- {
1271
- ec = asio::error_code();
1272
- bytes_transferred = bytes;
1273
- }
1274
- else
1275
- bytes_transferred = 0;
1276
-
1277
- return true;
1278
- }
1279
- }
1280
-
1281
- #endif // defined(ASIO_HAS_IOCP)
1282
-
1283
- signed_size_type sendto(socket_type s, const buf* bufs, size_t count,
1284
- int flags, const socket_addr_type* addr, std::size_t addrlen,
1285
- asio::error_code& ec)
1286
- {
1287
- clear_last_error();
1288
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1289
- // Send the data.
1290
- DWORD send_buf_count = static_cast<DWORD>(count);
1291
- DWORD bytes_transferred = 0;
1292
- int result = error_wrapper(::WSASendTo(s, const_cast<buf*>(bufs),
1293
- send_buf_count, &bytes_transferred, flags, addr,
1294
- static_cast<int>(addrlen), 0, 0), ec);
1295
- if (ec.value() == ERROR_NETNAME_DELETED)
1296
- ec = asio::error::connection_reset;
1297
- else if (ec.value() == ERROR_PORT_UNREACHABLE)
1298
- ec = asio::error::connection_refused;
1299
- if (result != 0)
1300
- return socket_error_retval;
1301
- ec = asio::error_code();
1302
- return bytes_transferred;
1303
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1304
- msghdr msg = msghdr();
1305
- init_msghdr_msg_name(msg.msg_name, addr);
1306
- msg.msg_namelen = static_cast<int>(addrlen);
1307
- msg.msg_iov = const_cast<buf*>(bufs);
1308
- msg.msg_iovlen = static_cast<int>(count);
1309
- #if defined(__linux__)
1310
- flags |= MSG_NOSIGNAL;
1311
- #endif // defined(__linux__)
1312
- signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec);
1313
- if (result >= 0)
1314
- ec = asio::error_code();
1315
- return result;
1316
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1317
- }
1318
-
1319
- size_t sync_sendto(socket_type s, state_type state, const buf* bufs,
1320
- size_t count, int flags, const socket_addr_type* addr,
1321
- std::size_t addrlen, asio::error_code& ec)
1322
- {
1323
- if (s == invalid_socket)
1324
- {
1325
- ec = asio::error::bad_descriptor;
1326
- return 0;
1327
- }
1328
-
1329
- // Write some data.
1330
- for (;;)
1331
- {
1332
- // Try to complete the operation without blocking.
1333
- signed_size_type bytes = socket_ops::sendto(
1334
- s, bufs, count, flags, addr, addrlen, ec);
1335
-
1336
- // Check if operation succeeded.
1337
- if (bytes >= 0)
1338
- return bytes;
1339
-
1340
- // Operation failed.
1341
- if ((state & user_set_non_blocking)
1342
- || (ec != asio::error::would_block
1343
- && ec != asio::error::try_again))
1344
- return 0;
1345
-
1346
- // Wait for socket to become ready.
1347
- if (socket_ops::poll_write(s, 0, -1, ec) < 0)
1348
- return 0;
1349
- }
1350
- }
1351
-
1352
- #if !defined(ASIO_HAS_IOCP)
1353
-
1354
- bool non_blocking_sendto(socket_type s,
1355
- const buf* bufs, size_t count, int flags,
1356
- const socket_addr_type* addr, std::size_t addrlen,
1357
- asio::error_code& ec, size_t& bytes_transferred)
1358
- {
1359
- for (;;)
1360
- {
1361
- // Write some data.
1362
- signed_size_type bytes = socket_ops::sendto(
1363
- s, bufs, count, flags, addr, addrlen, ec);
1364
-
1365
- // Retry operation if interrupted by signal.
1366
- if (ec == asio::error::interrupted)
1367
- continue;
1368
-
1369
- // Check if we need to run the operation again.
1370
- if (ec == asio::error::would_block
1371
- || ec == asio::error::try_again)
1372
- return false;
1373
-
1374
- // Operation is complete.
1375
- if (bytes >= 0)
1376
- {
1377
- ec = asio::error_code();
1378
- bytes_transferred = bytes;
1379
- }
1380
- else
1381
- bytes_transferred = 0;
1382
-
1383
- return true;
1384
- }
1385
- }
1386
-
1387
- #endif // !defined(ASIO_HAS_IOCP)
1388
-
1389
- socket_type socket(int af, int type, int protocol,
1390
- asio::error_code& ec)
1391
- {
1392
- clear_last_error();
1393
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1394
- socket_type s = error_wrapper(::WSASocketW(af, type, protocol, 0, 0,
1395
- WSA_FLAG_OVERLAPPED), ec);
1396
- if (s == invalid_socket)
1397
- return s;
1398
-
1399
- if (af == ASIO_OS_DEF(AF_INET6))
1400
- {
1401
- // Try to enable the POSIX default behaviour of having IPV6_V6ONLY set to
1402
- // false. This will only succeed on Windows Vista and later versions of
1403
- // Windows, where a dual-stack IPv4/v6 implementation is available.
1404
- DWORD optval = 0;
1405
- ::setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
1406
- reinterpret_cast<const char*>(&optval), sizeof(optval));
1407
- }
1408
-
1409
- ec = asio::error_code();
1410
-
1411
- return s;
1412
- #elif defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__)
1413
- socket_type s = error_wrapper(::socket(af, type, protocol), ec);
1414
- if (s == invalid_socket)
1415
- return s;
1416
-
1417
- int optval = 1;
1418
- int result = error_wrapper(::setsockopt(s,
1419
- SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec);
1420
- if (result != 0)
1421
- {
1422
- ::close(s);
1423
- return invalid_socket;
1424
- }
1425
-
1426
- return s;
1427
- #else
1428
- int s = error_wrapper(::socket(af, type, protocol), ec);
1429
- if (s >= 0)
1430
- ec = asio::error_code();
1431
- return s;
1432
- #endif
1433
- }
1434
-
1435
- template <typename SockLenType>
1436
- inline int call_setsockopt(SockLenType msghdr::*,
1437
- socket_type s, int level, int optname,
1438
- const void* optval, std::size_t optlen)
1439
- {
1440
- return ::setsockopt(s, level, optname,
1441
- (const char*)optval, (SockLenType)optlen);
1442
- }
1443
-
1444
- int setsockopt(socket_type s, state_type& state, int level, int optname,
1445
- const void* optval, std::size_t optlen, asio::error_code& ec)
1446
- {
1447
- if (s == invalid_socket)
1448
- {
1449
- ec = asio::error::bad_descriptor;
1450
- return socket_error_retval;
1451
- }
1452
-
1453
- if (level == custom_socket_option_level && optname == always_fail_option)
1454
- {
1455
- ec = asio::error::invalid_argument;
1456
- return socket_error_retval;
1457
- }
1458
-
1459
- if (level == custom_socket_option_level
1460
- && optname == enable_connection_aborted_option)
1461
- {
1462
- if (optlen != sizeof(int))
1463
- {
1464
- ec = asio::error::invalid_argument;
1465
- return socket_error_retval;
1466
- }
1467
-
1468
- if (*static_cast<const int*>(optval))
1469
- state |= enable_connection_aborted;
1470
- else
1471
- state &= ~enable_connection_aborted;
1472
- ec = asio::error_code();
1473
- return 0;
1474
- }
1475
-
1476
- if (level == SOL_SOCKET && optname == SO_LINGER)
1477
- state |= user_set_linger;
1478
-
1479
- #if defined(__BORLANDC__)
1480
- // Mysteriously, using the getsockopt and setsockopt functions directly with
1481
- // Borland C++ results in incorrect values being set and read. The bug can be
1482
- // worked around by using function addresses resolved with GetProcAddress.
1483
- if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
1484
- {
1485
- typedef int (WSAAPI *sso_t)(SOCKET, int, int, const char*, int);
1486
- if (sso_t sso = (sso_t)::GetProcAddress(winsock_module, "setsockopt"))
1487
- {
1488
- clear_last_error();
1489
- return error_wrapper(sso(s, level, optname,
1490
- reinterpret_cast<const char*>(optval),
1491
- static_cast<int>(optlen)), ec);
1492
- }
1493
- }
1494
- ec = asio::error::fault;
1495
- return socket_error_retval;
1496
- #else // defined(__BORLANDC__)
1497
- clear_last_error();
1498
- int result = error_wrapper(call_setsockopt(&msghdr::msg_namelen,
1499
- s, level, optname, optval, optlen), ec);
1500
- if (result == 0)
1501
- {
1502
- ec = asio::error_code();
1503
-
1504
- #if defined(__MACH__) && defined(__APPLE__) \
1505
- || defined(__NetBSD__) || defined(__FreeBSD__) \
1506
- || defined(__OpenBSD__) || defined(__QNX__)
1507
- // To implement portable behaviour for SO_REUSEADDR with UDP sockets we
1508
- // need to also set SO_REUSEPORT on BSD-based platforms.
1509
- if ((state & datagram_oriented)
1510
- && level == SOL_SOCKET && optname == SO_REUSEADDR)
1511
- {
1512
- call_setsockopt(&msghdr::msg_namelen, s,
1513
- SOL_SOCKET, SO_REUSEPORT, optval, optlen);
1514
- }
1515
- #endif
1516
- }
1517
-
1518
- return result;
1519
- #endif // defined(__BORLANDC__)
1520
- }
1521
-
1522
- template <typename SockLenType>
1523
- inline int call_getsockopt(SockLenType msghdr::*,
1524
- socket_type s, int level, int optname,
1525
- void* optval, std::size_t* optlen)
1526
- {
1527
- SockLenType tmp_optlen = (SockLenType)*optlen;
1528
- int result = ::getsockopt(s, level, optname, (char*)optval, &tmp_optlen);
1529
- *optlen = (std::size_t)tmp_optlen;
1530
- return result;
1531
- }
1532
-
1533
- int getsockopt(socket_type s, state_type state, int level, int optname,
1534
- void* optval, size_t* optlen, asio::error_code& ec)
1535
- {
1536
- if (s == invalid_socket)
1537
- {
1538
- ec = asio::error::bad_descriptor;
1539
- return socket_error_retval;
1540
- }
1541
-
1542
- if (level == custom_socket_option_level && optname == always_fail_option)
1543
- {
1544
- ec = asio::error::invalid_argument;
1545
- return socket_error_retval;
1546
- }
1547
-
1548
- if (level == custom_socket_option_level
1549
- && optname == enable_connection_aborted_option)
1550
- {
1551
- if (*optlen != sizeof(int))
1552
- {
1553
- ec = asio::error::invalid_argument;
1554
- return socket_error_retval;
1555
- }
1556
-
1557
- *static_cast<int*>(optval) = (state & enable_connection_aborted) ? 1 : 0;
1558
- ec = asio::error_code();
1559
- return 0;
1560
- }
1561
-
1562
- #if defined(__BORLANDC__)
1563
- // Mysteriously, using the getsockopt and setsockopt functions directly with
1564
- // Borland C++ results in incorrect values being set and read. The bug can be
1565
- // worked around by using function addresses resolved with GetProcAddress.
1566
- if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
1567
- {
1568
- typedef int (WSAAPI *gso_t)(SOCKET, int, int, char*, int*);
1569
- if (gso_t gso = (gso_t)::GetProcAddress(winsock_module, "getsockopt"))
1570
- {
1571
- clear_last_error();
1572
- int tmp_optlen = static_cast<int>(*optlen);
1573
- int result = error_wrapper(gso(s, level, optname,
1574
- reinterpret_cast<char*>(optval), &tmp_optlen), ec);
1575
- *optlen = static_cast<size_t>(tmp_optlen);
1576
- if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY
1577
- && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD))
1578
- {
1579
- // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are
1580
- // only supported on Windows Vista and later. To simplify program logic
1581
- // we will fake success of getting this option and specify that the
1582
- // value is non-zero (i.e. true). This corresponds to the behavior of
1583
- // IPv6 sockets on Windows platforms pre-Vista.
1584
- *static_cast<DWORD*>(optval) = 1;
1585
- ec = asio::error_code();
1586
- }
1587
- return result;
1588
- }
1589
- }
1590
- ec = asio::error::fault;
1591
- return socket_error_retval;
1592
- #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1593
- clear_last_error();
1594
- int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen,
1595
- s, level, optname, optval, optlen), ec);
1596
- if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY
1597
- && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD))
1598
- {
1599
- // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are only
1600
- // supported on Windows Vista and later. To simplify program logic we will
1601
- // fake success of getting this option and specify that the value is
1602
- // non-zero (i.e. true). This corresponds to the behavior of IPv6 sockets
1603
- // on Windows platforms pre-Vista.
1604
- *static_cast<DWORD*>(optval) = 1;
1605
- ec = asio::error_code();
1606
- }
1607
- if (result == 0)
1608
- ec = asio::error_code();
1609
- return result;
1610
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1611
- clear_last_error();
1612
- int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen,
1613
- s, level, optname, optval, optlen), ec);
1614
- #if defined(__linux__)
1615
- if (result == 0 && level == SOL_SOCKET && *optlen == sizeof(int)
1616
- && (optname == SO_SNDBUF || optname == SO_RCVBUF))
1617
- {
1618
- // On Linux, setting SO_SNDBUF or SO_RCVBUF to N actually causes the kernel
1619
- // to set the buffer size to N*2. Linux puts additional stuff into the
1620
- // buffers so that only about half is actually available to the application.
1621
- // The retrieved value is divided by 2 here to make it appear as though the
1622
- // correct value has been set.
1623
- *static_cast<int*>(optval) /= 2;
1624
- }
1625
- #endif // defined(__linux__)
1626
- if (result == 0)
1627
- ec = asio::error_code();
1628
- return result;
1629
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1630
- }
1631
-
1632
- template <typename SockLenType>
1633
- inline int call_getpeername(SockLenType msghdr::*,
1634
- socket_type s, socket_addr_type* addr, std::size_t* addrlen)
1635
- {
1636
- SockLenType tmp_addrlen = (SockLenType)*addrlen;
1637
- int result = ::getpeername(s, addr, &tmp_addrlen);
1638
- *addrlen = (std::size_t)tmp_addrlen;
1639
- return result;
1640
- }
1641
-
1642
- int getpeername(socket_type s, socket_addr_type* addr,
1643
- std::size_t* addrlen, bool cached, asio::error_code& ec)
1644
- {
1645
- if (s == invalid_socket)
1646
- {
1647
- ec = asio::error::bad_descriptor;
1648
- return socket_error_retval;
1649
- }
1650
-
1651
- #if defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) \
1652
- || defined(__CYGWIN__)
1653
- if (cached)
1654
- {
1655
- // Check if socket is still connected.
1656
- DWORD connect_time = 0;
1657
- size_t connect_time_len = sizeof(connect_time);
1658
- if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_CONNECT_TIME,
1659
- &connect_time, &connect_time_len, ec) == socket_error_retval)
1660
- {
1661
- return socket_error_retval;
1662
- }
1663
- if (connect_time == 0xFFFFFFFF)
1664
- {
1665
- ec = asio::error::not_connected;
1666
- return socket_error_retval;
1667
- }
1668
-
1669
- // The cached value is still valid.
1670
- ec = asio::error_code();
1671
- return 0;
1672
- }
1673
- #else // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP)
1674
- // || defined(__CYGWIN__)
1675
- (void)cached;
1676
- #endif // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP)
1677
- // || defined(__CYGWIN__)
1678
-
1679
- clear_last_error();
1680
- int result = error_wrapper(call_getpeername(
1681
- &msghdr::msg_namelen, s, addr, addrlen), ec);
1682
- if (result == 0)
1683
- ec = asio::error_code();
1684
- return result;
1685
- }
1686
-
1687
- template <typename SockLenType>
1688
- inline int call_getsockname(SockLenType msghdr::*,
1689
- socket_type s, socket_addr_type* addr, std::size_t* addrlen)
1690
- {
1691
- SockLenType tmp_addrlen = (SockLenType)*addrlen;
1692
- int result = ::getsockname(s, addr, &tmp_addrlen);
1693
- *addrlen = (std::size_t)tmp_addrlen;
1694
- return result;
1695
- }
1696
-
1697
- int getsockname(socket_type s, socket_addr_type* addr,
1698
- std::size_t* addrlen, asio::error_code& ec)
1699
- {
1700
- if (s == invalid_socket)
1701
- {
1702
- ec = asio::error::bad_descriptor;
1703
- return socket_error_retval;
1704
- }
1705
-
1706
- clear_last_error();
1707
- int result = error_wrapper(call_getsockname(
1708
- &msghdr::msg_namelen, s, addr, addrlen), ec);
1709
- if (result == 0)
1710
- ec = asio::error_code();
1711
- return result;
1712
- }
1713
-
1714
- int ioctl(socket_type s, state_type& state, int cmd,
1715
- ioctl_arg_type* arg, asio::error_code& ec)
1716
- {
1717
- if (s == invalid_socket)
1718
- {
1719
- ec = asio::error::bad_descriptor;
1720
- return socket_error_retval;
1721
- }
1722
-
1723
- clear_last_error();
1724
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1725
- int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec);
1726
- #elif defined(__MACH__) && defined(__APPLE__) \
1727
- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
1728
- int result = error_wrapper(::ioctl(s,
1729
- static_cast<unsigned int>(cmd), arg), ec);
1730
- #else
1731
- int result = error_wrapper(::ioctl(s, cmd, arg), ec);
1732
- #endif
1733
- if (result >= 0)
1734
- {
1735
- ec = asio::error_code();
1736
-
1737
- // When updating the non-blocking mode we always perform the ioctl syscall,
1738
- // even if the flags would otherwise indicate that the socket is already in
1739
- // the correct state. This ensures that the underlying socket is put into
1740
- // the state that has been requested by the user. If the ioctl syscall was
1741
- // successful then we need to update the flags to match.
1742
- if (cmd == static_cast<int>(FIONBIO))
1743
- {
1744
- if (*arg)
1745
- {
1746
- state |= user_set_non_blocking;
1747
- }
1748
- else
1749
- {
1750
- // Clearing the non-blocking mode always overrides any internally-set
1751
- // non-blocking flag. Any subsequent asynchronous operations will need
1752
- // to re-enable non-blocking I/O.
1753
- state &= ~(user_set_non_blocking | internal_non_blocking);
1754
- }
1755
- }
1756
- }
1757
-
1758
- return result;
1759
- }
1760
-
1761
- int select(int nfds, fd_set* readfds, fd_set* writefds,
1762
- fd_set* exceptfds, timeval* timeout, asio::error_code& ec)
1763
- {
1764
- clear_last_error();
1765
- #if defined(__EMSCRIPTEN__)
1766
- exceptfds = 0;
1767
- #endif // defined(__EMSCRIPTEN__)
1768
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1769
- if (!readfds && !writefds && !exceptfds && timeout)
1770
- {
1771
- DWORD milliseconds = timeout->tv_sec * 1000 + timeout->tv_usec / 1000;
1772
- if (milliseconds == 0)
1773
- milliseconds = 1; // Force context switch.
1774
- ::Sleep(milliseconds);
1775
- ec = asio::error_code();
1776
- return 0;
1777
- }
1778
-
1779
- // The select() call allows timeout values measured in microseconds, but the
1780
- // system clock (as wrapped by boost::posix_time::microsec_clock) typically
1781
- // has a resolution of 10 milliseconds. This can lead to a spinning select
1782
- // reactor, meaning increased CPU usage, when waiting for the earliest
1783
- // scheduled timeout if it's less than 10 milliseconds away. To avoid a tight
1784
- // spin we'll use a minimum timeout of 1 millisecond.
1785
- if (timeout && timeout->tv_sec == 0
1786
- && timeout->tv_usec > 0 && timeout->tv_usec < 1000)
1787
- timeout->tv_usec = 1000;
1788
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
1789
-
1790
- #if defined(__hpux) && defined(__SELECT)
1791
- timespec ts;
1792
- ts.tv_sec = timeout ? timeout->tv_sec : 0;
1793
- ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0;
1794
- return error_wrapper(::pselect(nfds, readfds,
1795
- writefds, exceptfds, timeout ? &ts : 0, 0), ec);
1796
- #else
1797
- int result = error_wrapper(::select(nfds, readfds,
1798
- writefds, exceptfds, timeout), ec);
1799
- if (result >= 0)
1800
- ec = asio::error_code();
1801
- return result;
1802
- #endif
1803
- }
1804
-
1805
- int poll_read(socket_type s, state_type state,
1806
- int msec, asio::error_code& ec)
1807
- {
1808
- if (s == invalid_socket)
1809
- {
1810
- ec = asio::error::bad_descriptor;
1811
- return socket_error_retval;
1812
- }
1813
-
1814
- #if defined(ASIO_WINDOWS) \
1815
- || defined(__CYGWIN__) \
1816
- || defined(__SYMBIAN32__)
1817
- fd_set fds;
1818
- FD_ZERO(&fds);
1819
- FD_SET(s, &fds);
1820
- timeval timeout_obj;
1821
- timeval* timeout;
1822
- if (state & user_set_non_blocking)
1823
- {
1824
- timeout_obj.tv_sec = 0;
1825
- timeout_obj.tv_usec = 0;
1826
- timeout = &timeout_obj;
1827
- }
1828
- else if (msec >= 0)
1829
- {
1830
- timeout_obj.tv_sec = msec / 1000;
1831
- timeout_obj.tv_usec = (msec % 1000) * 1000;
1832
- timeout = &timeout_obj;
1833
- }
1834
- else
1835
- timeout = 0;
1836
- clear_last_error();
1837
- int result = error_wrapper(::select(s + 1, &fds, 0, 0, timeout), ec);
1838
- #else // defined(ASIO_WINDOWS)
1839
- // || defined(__CYGWIN__)
1840
- // || defined(__SYMBIAN32__)
1841
- pollfd fds;
1842
- fds.fd = s;
1843
- fds.events = POLLIN;
1844
- fds.revents = 0;
1845
- int timeout = (state & user_set_non_blocking) ? 0 : msec;
1846
- clear_last_error();
1847
- int result = error_wrapper(::poll(&fds, 1, timeout), ec);
1848
- #endif // defined(ASIO_WINDOWS)
1849
- // || defined(__CYGWIN__)
1850
- // || defined(__SYMBIAN32__)
1851
- if (result == 0)
1852
- ec = (state & user_set_non_blocking)
1853
- ? asio::error::would_block : asio::error_code();
1854
- else if (result > 0)
1855
- ec = asio::error_code();
1856
- return result;
1857
- }
1858
-
1859
- int poll_write(socket_type s, state_type state,
1860
- int msec, asio::error_code& ec)
1861
- {
1862
- if (s == invalid_socket)
1863
- {
1864
- ec = asio::error::bad_descriptor;
1865
- return socket_error_retval;
1866
- }
1867
-
1868
- #if defined(ASIO_WINDOWS) \
1869
- || defined(__CYGWIN__) \
1870
- || defined(__SYMBIAN32__)
1871
- fd_set fds;
1872
- FD_ZERO(&fds);
1873
- FD_SET(s, &fds);
1874
- timeval timeout_obj;
1875
- timeval* timeout;
1876
- if (state & user_set_non_blocking)
1877
- {
1878
- timeout_obj.tv_sec = 0;
1879
- timeout_obj.tv_usec = 0;
1880
- timeout = &timeout_obj;
1881
- }
1882
- else if (msec >= 0)
1883
- {
1884
- timeout_obj.tv_sec = msec / 1000;
1885
- timeout_obj.tv_usec = (msec % 1000) * 1000;
1886
- timeout = &timeout_obj;
1887
- }
1888
- else
1889
- timeout = 0;
1890
- clear_last_error();
1891
- int result = error_wrapper(::select(s + 1, 0, &fds, 0, timeout), ec);
1892
- #else // defined(ASIO_WINDOWS)
1893
- // || defined(__CYGWIN__)
1894
- // || defined(__SYMBIAN32__)
1895
- pollfd fds;
1896
- fds.fd = s;
1897
- fds.events = POLLOUT;
1898
- fds.revents = 0;
1899
- int timeout = (state & user_set_non_blocking) ? 0 : msec;
1900
- clear_last_error();
1901
- int result = error_wrapper(::poll(&fds, 1, timeout), ec);
1902
- #endif // defined(ASIO_WINDOWS)
1903
- // || defined(__CYGWIN__)
1904
- // || defined(__SYMBIAN32__)
1905
- if (result == 0)
1906
- ec = (state & user_set_non_blocking)
1907
- ? asio::error::would_block : asio::error_code();
1908
- else if (result > 0)
1909
- ec = asio::error_code();
1910
- return result;
1911
- }
1912
-
1913
- int poll_error(socket_type s, state_type state,
1914
- int msec, asio::error_code& ec)
1915
- {
1916
- if (s == invalid_socket)
1917
- {
1918
- ec = asio::error::bad_descriptor;
1919
- return socket_error_retval;
1920
- }
1921
-
1922
- #if defined(ASIO_WINDOWS) \
1923
- || defined(__CYGWIN__) \
1924
- || defined(__SYMBIAN32__)
1925
- fd_set fds;
1926
- FD_ZERO(&fds);
1927
- FD_SET(s, &fds);
1928
- timeval timeout_obj;
1929
- timeval* timeout;
1930
- if (state & user_set_non_blocking)
1931
- {
1932
- timeout_obj.tv_sec = 0;
1933
- timeout_obj.tv_usec = 0;
1934
- timeout = &timeout_obj;
1935
- }
1936
- else if (msec >= 0)
1937
- {
1938
- timeout_obj.tv_sec = msec / 1000;
1939
- timeout_obj.tv_usec = (msec % 1000) * 1000;
1940
- timeout = &timeout_obj;
1941
- }
1942
- else
1943
- timeout = 0;
1944
- clear_last_error();
1945
- int result = error_wrapper(::select(s + 1, 0, 0, &fds, timeout), ec);
1946
- #else // defined(ASIO_WINDOWS)
1947
- // || defined(__CYGWIN__)
1948
- // || defined(__SYMBIAN32__)
1949
- pollfd fds;
1950
- fds.fd = s;
1951
- fds.events = POLLPRI | POLLERR | POLLHUP;
1952
- fds.revents = 0;
1953
- int timeout = (state & user_set_non_blocking) ? 0 : msec;
1954
- clear_last_error();
1955
- int result = error_wrapper(::poll(&fds, 1, timeout), ec);
1956
- #endif // defined(ASIO_WINDOWS)
1957
- // || defined(__CYGWIN__)
1958
- // || defined(__SYMBIAN32__)
1959
- if (result == 0)
1960
- ec = (state & user_set_non_blocking)
1961
- ? asio::error::would_block : asio::error_code();
1962
- else if (result > 0)
1963
- ec = asio::error_code();
1964
- return result;
1965
- }
1966
-
1967
- int poll_connect(socket_type s, int msec, asio::error_code& ec)
1968
- {
1969
- if (s == invalid_socket)
1970
- {
1971
- ec = asio::error::bad_descriptor;
1972
- return socket_error_retval;
1973
- }
1974
-
1975
- #if defined(ASIO_WINDOWS) \
1976
- || defined(__CYGWIN__) \
1977
- || defined(__SYMBIAN32__)
1978
- fd_set write_fds;
1979
- FD_ZERO(&write_fds);
1980
- FD_SET(s, &write_fds);
1981
- fd_set except_fds;
1982
- FD_ZERO(&except_fds);
1983
- FD_SET(s, &except_fds);
1984
- timeval timeout_obj;
1985
- timeval* timeout;
1986
- if (msec >= 0)
1987
- {
1988
- timeout_obj.tv_sec = msec / 1000;
1989
- timeout_obj.tv_usec = (msec % 1000) * 1000;
1990
- timeout = &timeout_obj;
1991
- }
1992
- else
1993
- timeout = 0;
1994
- clear_last_error();
1995
- int result = error_wrapper(::select(
1996
- s + 1, 0, &write_fds, &except_fds, timeout), ec);
1997
- if (result >= 0)
1998
- ec = asio::error_code();
1999
- return result;
2000
- #else // defined(ASIO_WINDOWS)
2001
- // || defined(__CYGWIN__)
2002
- // || defined(__SYMBIAN32__)
2003
- pollfd fds;
2004
- fds.fd = s;
2005
- fds.events = POLLOUT;
2006
- fds.revents = 0;
2007
- clear_last_error();
2008
- int result = error_wrapper(::poll(&fds, 1, msec), ec);
2009
- if (result >= 0)
2010
- ec = asio::error_code();
2011
- return result;
2012
- #endif // defined(ASIO_WINDOWS)
2013
- // || defined(__CYGWIN__)
2014
- // || defined(__SYMBIAN32__)
2015
- }
2016
-
2017
- #endif // !defined(ASIO_WINDOWS_RUNTIME)
2018
-
2019
- const char* inet_ntop(int af, const void* src, char* dest, size_t length,
2020
- unsigned long scope_id, asio::error_code& ec)
2021
- {
2022
- clear_last_error();
2023
- #if defined(ASIO_WINDOWS_RUNTIME)
2024
- using namespace std; // For sprintf.
2025
- const unsigned char* bytes = static_cast<const unsigned char*>(src);
2026
- if (af == ASIO_OS_DEF(AF_INET))
2027
- {
2028
- sprintf_s(dest, length, "%u.%u.%u.%u",
2029
- bytes[0], bytes[1], bytes[2], bytes[3]);
2030
- return dest;
2031
- }
2032
- else if (af == ASIO_OS_DEF(AF_INET6))
2033
- {
2034
- size_t n = 0, b = 0, z = 0;
2035
- while (n < length && b < 16)
2036
- {
2037
- if (bytes[b] == 0 && bytes[b + 1] == 0 && z == 0)
2038
- {
2039
- do b += 2; while (b < 16 && bytes[b] == 0 && bytes[b + 1] == 0);
2040
- n += sprintf_s(dest + n, length - n, ":%s", b < 16 ? "" : ":"), ++z;
2041
- }
2042
- else
2043
- {
2044
- n += sprintf_s(dest + n, length - n, "%s%x", b ? ":" : "",
2045
- (static_cast<u_long_type>(bytes[b]) << 8) | bytes[b + 1]);
2046
- b += 2;
2047
- }
2048
- }
2049
- if (scope_id)
2050
- n += sprintf_s(dest + n, length - n, "%%%lu", scope_id);
2051
- return dest;
2052
- }
2053
- else
2054
- {
2055
- ec = asio::error::address_family_not_supported;
2056
- return 0;
2057
- }
2058
- #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2059
- using namespace std; // For memcpy.
2060
-
2061
- if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6))
2062
- {
2063
- ec = asio::error::address_family_not_supported;
2064
- return 0;
2065
- }
2066
-
2067
- union
2068
- {
2069
- socket_addr_type base;
2070
- sockaddr_storage_type storage;
2071
- sockaddr_in4_type v4;
2072
- sockaddr_in6_type v6;
2073
- } address;
2074
- DWORD address_length;
2075
- if (af == ASIO_OS_DEF(AF_INET))
2076
- {
2077
- address_length = sizeof(sockaddr_in4_type);
2078
- address.v4.sin_family = ASIO_OS_DEF(AF_INET);
2079
- address.v4.sin_port = 0;
2080
- memcpy(&address.v4.sin_addr, src, sizeof(in4_addr_type));
2081
- }
2082
- else // AF_INET6
2083
- {
2084
- address_length = sizeof(sockaddr_in6_type);
2085
- address.v6.sin6_family = ASIO_OS_DEF(AF_INET6);
2086
- address.v6.sin6_port = 0;
2087
- address.v6.sin6_flowinfo = 0;
2088
- address.v6.sin6_scope_id = scope_id;
2089
- memcpy(&address.v6.sin6_addr, src, sizeof(in6_addr_type));
2090
- }
2091
-
2092
- DWORD string_length = static_cast<DWORD>(length);
2093
- #if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800))
2094
- LPWSTR string_buffer = (LPWSTR)_alloca(length * sizeof(WCHAR));
2095
- int result = error_wrapper(::WSAAddressToStringW(&address.base,
2096
- address_length, 0, string_buffer, &string_length), ec);
2097
- ::WideCharToMultiByte(CP_ACP, 0, string_buffer, -1,
2098
- dest, static_cast<int>(length), 0, 0);
2099
- #else
2100
- int result = error_wrapper(::WSAAddressToStringA(
2101
- &address.base, address_length, 0, dest, &string_length), ec);
2102
- #endif
2103
-
2104
- // Windows may set error code on success.
2105
- if (result != socket_error_retval)
2106
- ec = asio::error_code();
2107
-
2108
- // Windows may not set an error code on failure.
2109
- else if (result == socket_error_retval && !ec)
2110
- ec = asio::error::invalid_argument;
2111
-
2112
- return result == socket_error_retval ? 0 : dest;
2113
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2114
- const char* result = error_wrapper(::inet_ntop(
2115
- af, src, dest, static_cast<int>(length)), ec);
2116
- if (result == 0 && !ec)
2117
- ec = asio::error::invalid_argument;
2118
- if (result != 0 && af == ASIO_OS_DEF(AF_INET6) && scope_id != 0)
2119
- {
2120
- using namespace std; // For strcat and sprintf.
2121
- char if_name[(IF_NAMESIZE > 21 ? IF_NAMESIZE : 21) + 1] = "%";
2122
- const in6_addr_type* ipv6_address = static_cast<const in6_addr_type*>(src);
2123
- bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe)
2124
- && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80));
2125
- bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff)
2126
- && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02));
2127
- if ((!is_link_local && !is_multicast_link_local)
2128
- || if_indextoname(static_cast<unsigned>(scope_id), if_name + 1) == 0)
2129
- sprintf(if_name + 1, "%lu", scope_id);
2130
- strcat(dest, if_name);
2131
- }
2132
- return result;
2133
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2134
- }
2135
-
2136
- int inet_pton(int af, const char* src, void* dest,
2137
- unsigned long* scope_id, asio::error_code& ec)
2138
- {
2139
- clear_last_error();
2140
- #if defined(ASIO_WINDOWS_RUNTIME)
2141
- using namespace std; // For sscanf.
2142
- unsigned char* bytes = static_cast<unsigned char*>(dest);
2143
- if (af == ASIO_OS_DEF(AF_INET))
2144
- {
2145
- unsigned int b0, b1, b2, b3;
2146
- if (sscanf_s(src, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) != 4)
2147
- {
2148
- ec = asio::error::invalid_argument;
2149
- return -1;
2150
- }
2151
- if (b0 > 255 || b1 > 255 || b2 > 255 || b3 > 255)
2152
- {
2153
- ec = asio::error::invalid_argument;
2154
- return -1;
2155
- }
2156
- bytes[0] = static_cast<unsigned char>(b0);
2157
- bytes[1] = static_cast<unsigned char>(b1);
2158
- bytes[2] = static_cast<unsigned char>(b2);
2159
- bytes[3] = static_cast<unsigned char>(b3);
2160
- ec = asio::error_code();
2161
- return 1;
2162
- }
2163
- else if (af == ASIO_OS_DEF(AF_INET6))
2164
- {
2165
- unsigned char* bytes = static_cast<unsigned char*>(dest);
2166
- std::memset(bytes, 0, 16);
2167
- unsigned char back_bytes[16] = { 0 };
2168
- int num_front_bytes = 0, num_back_bytes = 0;
2169
- const char* p = src;
2170
-
2171
- enum { fword, fcolon, bword, scope, done } state = fword;
2172
- unsigned long current_word = 0;
2173
- while (state != done)
2174
- {
2175
- if (current_word > 0xFFFF)
2176
- {
2177
- ec = asio::error::invalid_argument;
2178
- return -1;
2179
- }
2180
-
2181
- switch (state)
2182
- {
2183
- case fword:
2184
- if (*p >= '0' && *p <= '9')
2185
- current_word = current_word * 16 + *p++ - '0';
2186
- else if (*p >= 'a' && *p <= 'f')
2187
- current_word = current_word * 16 + *p++ - 'a' + 10;
2188
- else if (*p >= 'A' && *p <= 'F')
2189
- current_word = current_word * 16 + *p++ - 'A' + 10;
2190
- else
2191
- {
2192
- if (num_front_bytes == 16)
2193
- {
2194
- ec = asio::error::invalid_argument;
2195
- return -1;
2196
- }
2197
-
2198
- bytes[num_front_bytes++] = (current_word >> 8) & 0xFF;
2199
- bytes[num_front_bytes++] = current_word & 0xFF;
2200
- current_word = 0;
2201
-
2202
- if (*p == ':')
2203
- state = fcolon, ++p;
2204
- else if (*p == '%')
2205
- state = scope, ++p;
2206
- else if (*p == 0)
2207
- state = done;
2208
- else
2209
- {
2210
- ec = asio::error::invalid_argument;
2211
- return -1;
2212
- }
2213
- }
2214
- break;
2215
-
2216
- case fcolon:
2217
- if (*p == ':')
2218
- state = bword, ++p;
2219
- else
2220
- state = fword;
2221
- break;
2222
-
2223
- case bword:
2224
- if (*p >= '0' && *p <= '9')
2225
- current_word = current_word * 16 + *p++ - '0';
2226
- else if (*p >= 'a' && *p <= 'f')
2227
- current_word = current_word * 16 + *p++ - 'a' + 10;
2228
- else if (*p >= 'A' && *p <= 'F')
2229
- current_word = current_word * 16 + *p++ - 'A' + 10;
2230
- else
2231
- {
2232
- if (num_front_bytes + num_back_bytes == 16)
2233
- {
2234
- ec = asio::error::invalid_argument;
2235
- return -1;
2236
- }
2237
-
2238
- back_bytes[num_back_bytes++] = (current_word >> 8) & 0xFF;
2239
- back_bytes[num_back_bytes++] = current_word & 0xFF;
2240
- current_word = 0;
2241
-
2242
- if (*p == ':')
2243
- state = bword, ++p;
2244
- else if (*p == '%')
2245
- state = scope, ++p;
2246
- else if (*p == 0)
2247
- state = done;
2248
- else
2249
- {
2250
- ec = asio::error::invalid_argument;
2251
- return -1;
2252
- }
2253
- }
2254
- break;
2255
-
2256
- case scope:
2257
- if (*p >= '0' && *p <= '9')
2258
- current_word = current_word * 10 + *p++ - '0';
2259
- else if (*p == 0)
2260
- *scope_id = current_word, state = done;
2261
- else
2262
- {
2263
- ec = asio::error::invalid_argument;
2264
- return -1;
2265
- }
2266
- break;
2267
-
2268
- default:
2269
- break;
2270
- }
2271
- }
2272
-
2273
- for (int i = 0; i < num_back_bytes; ++i)
2274
- bytes[16 - num_back_bytes + i] = back_bytes[i];
2275
-
2276
- ec = asio::error_code();
2277
- return 1;
2278
- }
2279
- else
2280
- {
2281
- ec = asio::error::address_family_not_supported;
2282
- return -1;
2283
- }
2284
- #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2285
- using namespace std; // For memcpy and strcmp.
2286
-
2287
- if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6))
2288
- {
2289
- ec = asio::error::address_family_not_supported;
2290
- return -1;
2291
- }
2292
-
2293
- union
2294
- {
2295
- socket_addr_type base;
2296
- sockaddr_storage_type storage;
2297
- sockaddr_in4_type v4;
2298
- sockaddr_in6_type v6;
2299
- } address;
2300
- int address_length = sizeof(sockaddr_storage_type);
2301
- #if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800))
2302
- int num_wide_chars = static_cast<int>(strlen(src)) + 1;
2303
- LPWSTR wide_buffer = (LPWSTR)_alloca(num_wide_chars * sizeof(WCHAR));
2304
- ::MultiByteToWideChar(CP_ACP, 0, src, -1, wide_buffer, num_wide_chars);
2305
- int result = error_wrapper(::WSAStringToAddressW(
2306
- wide_buffer, af, 0, &address.base, &address_length), ec);
2307
- #else
2308
- int result = error_wrapper(::WSAStringToAddressA(
2309
- const_cast<char*>(src), af, 0, &address.base, &address_length), ec);
2310
- #endif
2311
-
2312
- if (af == ASIO_OS_DEF(AF_INET))
2313
- {
2314
- if (result != socket_error_retval)
2315
- {
2316
- memcpy(dest, &address.v4.sin_addr, sizeof(in4_addr_type));
2317
- ec = asio::error_code();
2318
- }
2319
- else if (strcmp(src, "255.255.255.255") == 0)
2320
- {
2321
- static_cast<in4_addr_type*>(dest)->s_addr = INADDR_NONE;
2322
- ec = asio::error_code();
2323
- }
2324
- }
2325
- else // AF_INET6
2326
- {
2327
- if (result != socket_error_retval)
2328
- {
2329
- memcpy(dest, &address.v6.sin6_addr, sizeof(in6_addr_type));
2330
- if (scope_id)
2331
- *scope_id = address.v6.sin6_scope_id;
2332
- ec = asio::error_code();
2333
- }
2334
- }
2335
-
2336
- // Windows may not set an error code on failure.
2337
- if (result == socket_error_retval && !ec)
2338
- ec = asio::error::invalid_argument;
2339
-
2340
- if (result != socket_error_retval)
2341
- ec = asio::error_code();
2342
-
2343
- return result == socket_error_retval ? -1 : 1;
2344
- #else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2345
- using namespace std; // For strchr, memcpy and atoi.
2346
-
2347
- // On some platforms, inet_pton fails if an address string contains a scope
2348
- // id. Detect and remove the scope id before passing the string to inet_pton.
2349
- const bool is_v6 = (af == ASIO_OS_DEF(AF_INET6));
2350
- const char* if_name = is_v6 ? strchr(src, '%') : 0;
2351
- char src_buf[max_addr_v6_str_len + 1];
2352
- const char* src_ptr = src;
2353
- if (if_name != 0)
2354
- {
2355
- if (if_name - src > max_addr_v6_str_len)
2356
- {
2357
- ec = asio::error::invalid_argument;
2358
- return 0;
2359
- }
2360
- memcpy(src_buf, src, if_name - src);
2361
- src_buf[if_name - src] = 0;
2362
- src_ptr = src_buf;
2363
- }
2364
-
2365
- int result = error_wrapper(::inet_pton(af, src_ptr, dest), ec);
2366
- if (result <= 0 && !ec)
2367
- ec = asio::error::invalid_argument;
2368
- if (result > 0 && is_v6 && scope_id)
2369
- {
2370
- using namespace std; // For strchr and atoi.
2371
- *scope_id = 0;
2372
- if (if_name != 0)
2373
- {
2374
- in6_addr_type* ipv6_address = static_cast<in6_addr_type*>(dest);
2375
- bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe)
2376
- && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80));
2377
- bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff)
2378
- && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02));
2379
- if (is_link_local || is_multicast_link_local)
2380
- *scope_id = if_nametoindex(if_name + 1);
2381
- if (*scope_id == 0)
2382
- *scope_id = atoi(if_name + 1);
2383
- }
2384
- }
2385
- return result;
2386
- #endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2387
- }
2388
-
2389
- int gethostname(char* name, int namelen, asio::error_code& ec)
2390
- {
2391
- clear_last_error();
2392
- #if defined(ASIO_WINDOWS_RUNTIME)
2393
- try
2394
- {
2395
- using namespace Windows::Foundation::Collections;
2396
- using namespace Windows::Networking;
2397
- using namespace Windows::Networking::Connectivity;
2398
- IVectorView<HostName^>^ hostnames = NetworkInformation::GetHostNames();
2399
- for (unsigned i = 0; i < hostnames->Size; ++i)
2400
- {
2401
- HostName^ hostname = hostnames->GetAt(i);
2402
- if (hostname->Type == HostNameType::DomainName)
2403
- {
2404
- std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
2405
- std::string raw_name = converter.to_bytes(hostname->RawName->Data());
2406
- if (namelen > 0 && raw_name.size() < static_cast<std::size_t>(namelen))
2407
- {
2408
- strcpy_s(name, namelen, raw_name.c_str());
2409
- return 0;
2410
- }
2411
- }
2412
- }
2413
- return -1;
2414
- }
2415
- catch (Platform::Exception^ e)
2416
- {
2417
- ec = asio::error_code(e->HResult,
2418
- asio::system_category());
2419
- return -1;
2420
- }
2421
- #else // defined(ASIO_WINDOWS_RUNTIME)
2422
- int result = error_wrapper(::gethostname(name, namelen), ec);
2423
- # if defined(ASIO_WINDOWS)
2424
- if (result == 0)
2425
- ec = asio::error_code();
2426
- # endif // defined(ASIO_WINDOWS)
2427
- return result;
2428
- #endif // defined(ASIO_WINDOWS_RUNTIME)
2429
- }
2430
-
2431
- #if !defined(ASIO_WINDOWS_RUNTIME)
2432
-
2433
- #if !defined(ASIO_HAS_GETADDRINFO)
2434
-
2435
- // The following functions are only needed for emulation of getaddrinfo and
2436
- // getnameinfo.
2437
-
2438
- inline asio::error_code translate_netdb_error(int error)
2439
- {
2440
- switch (error)
2441
- {
2442
- case 0:
2443
- return asio::error_code();
2444
- case HOST_NOT_FOUND:
2445
- return asio::error::host_not_found;
2446
- case TRY_AGAIN:
2447
- return asio::error::host_not_found_try_again;
2448
- case NO_RECOVERY:
2449
- return asio::error::no_recovery;
2450
- case NO_DATA:
2451
- return asio::error::no_data;
2452
- default:
2453
- ASIO_ASSERT(false);
2454
- return asio::error::invalid_argument;
2455
- }
2456
- }
2457
-
2458
- inline hostent* gethostbyaddr(const char* addr, int length, int af,
2459
- hostent* result, char* buffer, int buflength, asio::error_code& ec)
2460
- {
2461
- clear_last_error();
2462
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2463
- (void)(buffer);
2464
- (void)(buflength);
2465
- hostent* retval = error_wrapper(::gethostbyaddr(addr, length, af), ec);
2466
- if (!retval)
2467
- return 0;
2468
- ec = asio::error_code();
2469
- *result = *retval;
2470
- return retval;
2471
- #elif defined(__sun) || defined(__QNX__)
2472
- int error = 0;
2473
- hostent* retval = error_wrapper(::gethostbyaddr_r(addr, length, af, result,
2474
- buffer, buflength, &error), ec);
2475
- if (error)
2476
- ec = translate_netdb_error(error);
2477
- return retval;
2478
- #elif defined(__MACH__) && defined(__APPLE__)
2479
- (void)(buffer);
2480
- (void)(buflength);
2481
- int error = 0;
2482
- hostent* retval = error_wrapper(::getipnodebyaddr(
2483
- addr, length, af, &error), ec);
2484
- if (error)
2485
- ec = translate_netdb_error(error);
2486
- if (!retval)
2487
- return 0;
2488
- *result = *retval;
2489
- return retval;
2490
- #else
2491
- hostent* retval = 0;
2492
- int error = 0;
2493
- error_wrapper(::gethostbyaddr_r(addr, length, af, result, buffer,
2494
- buflength, &retval, &error), ec);
2495
- if (error)
2496
- ec = translate_netdb_error(error);
2497
- return retval;
2498
- #endif
2499
- }
2500
-
2501
- inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
2502
- char* buffer, int buflength, int ai_flags, asio::error_code& ec)
2503
- {
2504
- clear_last_error();
2505
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
2506
- (void)(buffer);
2507
- (void)(buflength);
2508
- (void)(ai_flags);
2509
- if (af != ASIO_OS_DEF(AF_INET))
2510
- {
2511
- ec = asio::error::address_family_not_supported;
2512
- return 0;
2513
- }
2514
- hostent* retval = error_wrapper(::gethostbyname(name), ec);
2515
- if (!retval)
2516
- return 0;
2517
- ec = asio::error_code();
2518
- *result = *retval;
2519
- return result;
2520
- #elif defined(__sun) || defined(__QNX__)
2521
- (void)(ai_flags);
2522
- if (af != ASIO_OS_DEF(AF_INET))
2523
- {
2524
- ec = asio::error::address_family_not_supported;
2525
- return 0;
2526
- }
2527
- int error = 0;
2528
- hostent* retval = error_wrapper(::gethostbyname_r(name, result, buffer,
2529
- buflength, &error), ec);
2530
- if (error)
2531
- ec = translate_netdb_error(error);
2532
- return retval;
2533
- #elif defined(__MACH__) && defined(__APPLE__)
2534
- (void)(buffer);
2535
- (void)(buflength);
2536
- int error = 0;
2537
- hostent* retval = error_wrapper(::getipnodebyname(
2538
- name, af, ai_flags, &error), ec);
2539
- if (error)
2540
- ec = translate_netdb_error(error);
2541
- if (!retval)
2542
- return 0;
2543
- *result = *retval;
2544
- return retval;
2545
- #else
2546
- (void)(ai_flags);
2547
- if (af != ASIO_OS_DEF(AF_INET))
2548
- {
2549
- ec = asio::error::address_family_not_supported;
2550
- return 0;
2551
- }
2552
- hostent* retval = 0;
2553
- int error = 0;
2554
- error_wrapper(::gethostbyname_r(name, result,
2555
- buffer, buflength, &retval, &error), ec);
2556
- if (error)
2557
- ec = translate_netdb_error(error);
2558
- return retval;
2559
- #endif
2560
- }
2561
-
2562
- inline void freehostent(hostent* h)
2563
- {
2564
- #if defined(__MACH__) && defined(__APPLE__)
2565
- if (h)
2566
- ::freehostent(h);
2567
- #else
2568
- (void)(h);
2569
- #endif
2570
- }
2571
-
2572
- // Emulation of getaddrinfo based on implementation in:
2573
- // Stevens, W. R., UNIX Network Programming Vol. 1, 2nd Ed., Prentice-Hall 1998.
2574
-
2575
- struct gai_search
2576
- {
2577
- const char* host;
2578
- int family;
2579
- };
2580
-
2581
- inline int gai_nsearch(const char* host,
2582
- const addrinfo_type* hints, gai_search (&search)[2])
2583
- {
2584
- int search_count = 0;
2585
- if (host == 0 || host[0] == '\0')
2586
- {
2587
- if (hints->ai_flags & AI_PASSIVE)
2588
- {
2589
- // No host and AI_PASSIVE implies wildcard bind.
2590
- switch (hints->ai_family)
2591
- {
2592
- case ASIO_OS_DEF(AF_INET):
2593
- search[search_count].host = "0.0.0.0";
2594
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2595
- ++search_count;
2596
- break;
2597
- case ASIO_OS_DEF(AF_INET6):
2598
- search[search_count].host = "0::0";
2599
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2600
- ++search_count;
2601
- break;
2602
- case ASIO_OS_DEF(AF_UNSPEC):
2603
- search[search_count].host = "0::0";
2604
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2605
- ++search_count;
2606
- search[search_count].host = "0.0.0.0";
2607
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2608
- ++search_count;
2609
- break;
2610
- default:
2611
- break;
2612
- }
2613
- }
2614
- else
2615
- {
2616
- // No host and not AI_PASSIVE means connect to local host.
2617
- switch (hints->ai_family)
2618
- {
2619
- case ASIO_OS_DEF(AF_INET):
2620
- search[search_count].host = "localhost";
2621
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2622
- ++search_count;
2623
- break;
2624
- case ASIO_OS_DEF(AF_INET6):
2625
- search[search_count].host = "localhost";
2626
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2627
- ++search_count;
2628
- break;
2629
- case ASIO_OS_DEF(AF_UNSPEC):
2630
- search[search_count].host = "localhost";
2631
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2632
- ++search_count;
2633
- search[search_count].host = "localhost";
2634
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2635
- ++search_count;
2636
- break;
2637
- default:
2638
- break;
2639
- }
2640
- }
2641
- }
2642
- else
2643
- {
2644
- // Host is specified.
2645
- switch (hints->ai_family)
2646
- {
2647
- case ASIO_OS_DEF(AF_INET):
2648
- search[search_count].host = host;
2649
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2650
- ++search_count;
2651
- break;
2652
- case ASIO_OS_DEF(AF_INET6):
2653
- search[search_count].host = host;
2654
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2655
- ++search_count;
2656
- break;
2657
- case ASIO_OS_DEF(AF_UNSPEC):
2658
- search[search_count].host = host;
2659
- search[search_count].family = ASIO_OS_DEF(AF_INET6);
2660
- ++search_count;
2661
- search[search_count].host = host;
2662
- search[search_count].family = ASIO_OS_DEF(AF_INET);
2663
- ++search_count;
2664
- break;
2665
- default:
2666
- break;
2667
- }
2668
- }
2669
- return search_count;
2670
- }
2671
-
2672
- template <typename T>
2673
- inline T* gai_alloc(std::size_t size = sizeof(T))
2674
- {
2675
- using namespace std;
2676
- T* p = static_cast<T*>(::operator new(size, std::nothrow));
2677
- if (p)
2678
- memset(p, 0, size);
2679
- return p;
2680
- }
2681
-
2682
- inline void gai_free(void* p)
2683
- {
2684
- ::operator delete(p);
2685
- }
2686
-
2687
- inline void gai_strcpy(char* target, const char* source, std::size_t max_size)
2688
- {
2689
- using namespace std;
2690
- #if defined(ASIO_HAS_SECURE_RTL)
2691
- strcpy_s(target, max_size, source);
2692
- #else // defined(ASIO_HAS_SECURE_RTL)
2693
- *target = 0;
2694
- if (max_size > 0)
2695
- strncat(target, source, max_size - 1);
2696
- #endif // defined(ASIO_HAS_SECURE_RTL)
2697
- }
2698
-
2699
- enum { gai_clone_flag = 1 << 30 };
2700
-
2701
- inline int gai_aistruct(addrinfo_type*** next, const addrinfo_type* hints,
2702
- const void* addr, int family)
2703
- {
2704
- using namespace std;
2705
-
2706
- addrinfo_type* ai = gai_alloc<addrinfo_type>();
2707
- if (ai == 0)
2708
- return EAI_MEMORY;
2709
-
2710
- ai->ai_next = 0;
2711
- **next = ai;
2712
- *next = &ai->ai_next;
2713
-
2714
- ai->ai_canonname = 0;
2715
- ai->ai_socktype = hints->ai_socktype;
2716
- if (ai->ai_socktype == 0)
2717
- ai->ai_flags |= gai_clone_flag;
2718
- ai->ai_protocol = hints->ai_protocol;
2719
- ai->ai_family = family;
2720
-
2721
- switch (ai->ai_family)
2722
- {
2723
- case ASIO_OS_DEF(AF_INET):
2724
- {
2725
- sockaddr_in4_type* sinptr = gai_alloc<sockaddr_in4_type>();
2726
- if (sinptr == 0)
2727
- return EAI_MEMORY;
2728
- sinptr->sin_family = ASIO_OS_DEF(AF_INET);
2729
- memcpy(&sinptr->sin_addr, addr, sizeof(in4_addr_type));
2730
- ai->ai_addr = reinterpret_cast<sockaddr*>(sinptr);
2731
- ai->ai_addrlen = sizeof(sockaddr_in4_type);
2732
- break;
2733
- }
2734
- case ASIO_OS_DEF(AF_INET6):
2735
- {
2736
- sockaddr_in6_type* sin6ptr = gai_alloc<sockaddr_in6_type>();
2737
- if (sin6ptr == 0)
2738
- return EAI_MEMORY;
2739
- sin6ptr->sin6_family = ASIO_OS_DEF(AF_INET6);
2740
- memcpy(&sin6ptr->sin6_addr, addr, sizeof(in6_addr_type));
2741
- ai->ai_addr = reinterpret_cast<sockaddr*>(sin6ptr);
2742
- ai->ai_addrlen = sizeof(sockaddr_in6_type);
2743
- break;
2744
- }
2745
- default:
2746
- break;
2747
- }
2748
-
2749
- return 0;
2750
- }
2751
-
2752
- inline addrinfo_type* gai_clone(addrinfo_type* ai)
2753
- {
2754
- using namespace std;
2755
-
2756
- addrinfo_type* new_ai = gai_alloc<addrinfo_type>();
2757
- if (new_ai == 0)
2758
- return new_ai;
2759
-
2760
- new_ai->ai_next = ai->ai_next;
2761
- ai->ai_next = new_ai;
2762
-
2763
- new_ai->ai_flags = 0;
2764
- new_ai->ai_family = ai->ai_family;
2765
- new_ai->ai_socktype = ai->ai_socktype;
2766
- new_ai->ai_protocol = ai->ai_protocol;
2767
- new_ai->ai_canonname = 0;
2768
- new_ai->ai_addrlen = ai->ai_addrlen;
2769
- new_ai->ai_addr = gai_alloc<sockaddr>(ai->ai_addrlen);
2770
- memcpy(new_ai->ai_addr, ai->ai_addr, ai->ai_addrlen);
2771
-
2772
- return new_ai;
2773
- }
2774
-
2775
- inline int gai_port(addrinfo_type* aihead, int port, int socktype)
2776
- {
2777
- int num_found = 0;
2778
-
2779
- for (addrinfo_type* ai = aihead; ai; ai = ai->ai_next)
2780
- {
2781
- if (ai->ai_flags & gai_clone_flag)
2782
- {
2783
- if (ai->ai_socktype != 0)
2784
- {
2785
- ai = gai_clone(ai);
2786
- if (ai == 0)
2787
- return -1;
2788
- // ai now points to newly cloned entry.
2789
- }
2790
- }
2791
- else if (ai->ai_socktype != socktype)
2792
- {
2793
- // Ignore if mismatch on socket type.
2794
- continue;
2795
- }
2796
-
2797
- ai->ai_socktype = socktype;
2798
-
2799
- switch (ai->ai_family)
2800
- {
2801
- case ASIO_OS_DEF(AF_INET):
2802
- {
2803
- sockaddr_in4_type* sinptr =
2804
- reinterpret_cast<sockaddr_in4_type*>(ai->ai_addr);
2805
- sinptr->sin_port = port;
2806
- ++num_found;
2807
- break;
2808
- }
2809
- case ASIO_OS_DEF(AF_INET6):
2810
- {
2811
- sockaddr_in6_type* sin6ptr =
2812
- reinterpret_cast<sockaddr_in6_type*>(ai->ai_addr);
2813
- sin6ptr->sin6_port = port;
2814
- ++num_found;
2815
- break;
2816
- }
2817
- default:
2818
- break;
2819
- }
2820
- }
2821
-
2822
- return num_found;
2823
- }
2824
-
2825
- inline int gai_serv(addrinfo_type* aihead,
2826
- const addrinfo_type* hints, const char* serv)
2827
- {
2828
- using namespace std;
2829
-
2830
- int num_found = 0;
2831
-
2832
- if (
2833
- #if defined(AI_NUMERICSERV)
2834
- (hints->ai_flags & AI_NUMERICSERV) ||
2835
- #endif
2836
- isdigit(static_cast<unsigned char>(serv[0])))
2837
- {
2838
- int port = htons(atoi(serv));
2839
- if (hints->ai_socktype)
2840
- {
2841
- // Caller specifies socket type.
2842
- int rc = gai_port(aihead, port, hints->ai_socktype);
2843
- if (rc < 0)
2844
- return EAI_MEMORY;
2845
- num_found += rc;
2846
- }
2847
- else
2848
- {
2849
- // Caller does not specify socket type.
2850
- int rc = gai_port(aihead, port, SOCK_STREAM);
2851
- if (rc < 0)
2852
- return EAI_MEMORY;
2853
- num_found += rc;
2854
- rc = gai_port(aihead, port, SOCK_DGRAM);
2855
- if (rc < 0)
2856
- return EAI_MEMORY;
2857
- num_found += rc;
2858
- }
2859
- }
2860
- else
2861
- {
2862
- // Try service name with TCP first, then UDP.
2863
- if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_STREAM)
2864
- {
2865
- servent* sptr = getservbyname(serv, "tcp");
2866
- if (sptr != 0)
2867
- {
2868
- int rc = gai_port(aihead, sptr->s_port, SOCK_STREAM);
2869
- if (rc < 0)
2870
- return EAI_MEMORY;
2871
- num_found += rc;
2872
- }
2873
- }
2874
- if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_DGRAM)
2875
- {
2876
- servent* sptr = getservbyname(serv, "udp");
2877
- if (sptr != 0)
2878
- {
2879
- int rc = gai_port(aihead, sptr->s_port, SOCK_DGRAM);
2880
- if (rc < 0)
2881
- return EAI_MEMORY;
2882
- num_found += rc;
2883
- }
2884
- }
2885
- }
2886
-
2887
- if (num_found == 0)
2888
- {
2889
- if (hints->ai_socktype == 0)
2890
- {
2891
- // All calls to getservbyname() failed.
2892
- return EAI_NONAME;
2893
- }
2894
- else
2895
- {
2896
- // Service not supported for socket type.
2897
- return EAI_SERVICE;
2898
- }
2899
- }
2900
-
2901
- return 0;
2902
- }
2903
-
2904
- inline int gai_echeck(const char* host, const char* service,
2905
- int flags, int family, int socktype, int protocol)
2906
- {
2907
- (void)(flags);
2908
- (void)(protocol);
2909
-
2910
- // Host or service must be specified.
2911
- if (host == 0 || host[0] == '\0')
2912
- if (service == 0 || service[0] == '\0')
2913
- return EAI_NONAME;
2914
-
2915
- // Check combination of family and socket type.
2916
- switch (family)
2917
- {
2918
- case ASIO_OS_DEF(AF_UNSPEC):
2919
- break;
2920
- case ASIO_OS_DEF(AF_INET):
2921
- case ASIO_OS_DEF(AF_INET6):
2922
- if (service != 0 && service[0] != '\0')
2923
- if (socktype != 0 && socktype != SOCK_STREAM && socktype != SOCK_DGRAM)
2924
- return EAI_SOCKTYPE;
2925
- break;
2926
- default:
2927
- return EAI_FAMILY;
2928
- }
2929
-
2930
- return 0;
2931
- }
2932
-
2933
- inline void freeaddrinfo_emulation(addrinfo_type* aihead)
2934
- {
2935
- addrinfo_type* ai = aihead;
2936
- while (ai)
2937
- {
2938
- gai_free(ai->ai_addr);
2939
- gai_free(ai->ai_canonname);
2940
- addrinfo_type* ainext = ai->ai_next;
2941
- gai_free(ai);
2942
- ai = ainext;
2943
- }
2944
- }
2945
-
2946
- inline int getaddrinfo_emulation(const char* host, const char* service,
2947
- const addrinfo_type* hintsp, addrinfo_type** result)
2948
- {
2949
- // Set up linked list of addrinfo structures.
2950
- addrinfo_type* aihead = 0;
2951
- addrinfo_type** ainext = &aihead;
2952
- char* canon = 0;
2953
-
2954
- // Supply default hints if not specified by caller.
2955
- addrinfo_type hints = addrinfo_type();
2956
- hints.ai_family = ASIO_OS_DEF(AF_UNSPEC);
2957
- if (hintsp)
2958
- hints = *hintsp;
2959
-
2960
- // If the resolution is not specifically for AF_INET6, remove the AI_V4MAPPED
2961
- // and AI_ALL flags.
2962
- #if defined(AI_V4MAPPED)
2963
- if (hints.ai_family != ASIO_OS_DEF(AF_INET6))
2964
- hints.ai_flags &= ~AI_V4MAPPED;
2965
- #endif
2966
- #if defined(AI_ALL)
2967
- if (hints.ai_family != ASIO_OS_DEF(AF_INET6))
2968
- hints.ai_flags &= ~AI_ALL;
2969
- #endif
2970
-
2971
- // Basic error checking.
2972
- int rc = gai_echeck(host, service, hints.ai_flags, hints.ai_family,
2973
- hints.ai_socktype, hints.ai_protocol);
2974
- if (rc != 0)
2975
- {
2976
- freeaddrinfo_emulation(aihead);
2977
- return rc;
2978
- }
2979
-
2980
- gai_search search[2];
2981
- int search_count = gai_nsearch(host, &hints, search);
2982
- for (gai_search* sptr = search; sptr < search + search_count; ++sptr)
2983
- {
2984
- // Check for IPv4 dotted decimal string.
2985
- in4_addr_type inaddr;
2986
- asio::error_code ec;
2987
- if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET),
2988
- sptr->host, &inaddr, 0, ec) == 1)
2989
- {
2990
- if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC)
2991
- && hints.ai_family != ASIO_OS_DEF(AF_INET))
2992
- {
2993
- freeaddrinfo_emulation(aihead);
2994
- gai_free(canon);
2995
- return EAI_FAMILY;
2996
- }
2997
- if (sptr->family == ASIO_OS_DEF(AF_INET))
2998
- {
2999
- rc = gai_aistruct(&ainext, &hints, &inaddr, ASIO_OS_DEF(AF_INET));
3000
- if (rc != 0)
3001
- {
3002
- freeaddrinfo_emulation(aihead);
3003
- gai_free(canon);
3004
- return rc;
3005
- }
3006
- }
3007
- continue;
3008
- }
3009
-
3010
- // Check for IPv6 hex string.
3011
- in6_addr_type in6addr;
3012
- if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET6),
3013
- sptr->host, &in6addr, 0, ec) == 1)
3014
- {
3015
- if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC)
3016
- && hints.ai_family != ASIO_OS_DEF(AF_INET6))
3017
- {
3018
- freeaddrinfo_emulation(aihead);
3019
- gai_free(canon);
3020
- return EAI_FAMILY;
3021
- }
3022
- if (sptr->family == ASIO_OS_DEF(AF_INET6))
3023
- {
3024
- rc = gai_aistruct(&ainext, &hints, &in6addr,
3025
- ASIO_OS_DEF(AF_INET6));
3026
- if (rc != 0)
3027
- {
3028
- freeaddrinfo_emulation(aihead);
3029
- gai_free(canon);
3030
- return rc;
3031
- }
3032
- }
3033
- continue;
3034
- }
3035
-
3036
- // Look up hostname.
3037
- hostent hent;
3038
- char hbuf[8192] = "";
3039
- hostent* hptr = socket_ops::gethostbyname(sptr->host,
3040
- sptr->family, &hent, hbuf, sizeof(hbuf), hints.ai_flags, ec);
3041
- if (hptr == 0)
3042
- {
3043
- if (search_count == 2)
3044
- {
3045
- // Failure is OK if there are multiple searches.
3046
- continue;
3047
- }
3048
- freeaddrinfo_emulation(aihead);
3049
- gai_free(canon);
3050
- if (ec == asio::error::host_not_found)
3051
- return EAI_NONAME;
3052
- if (ec == asio::error::host_not_found_try_again)
3053
- return EAI_AGAIN;
3054
- if (ec == asio::error::no_recovery)
3055
- return EAI_FAIL;
3056
- if (ec == asio::error::no_data)
3057
- return EAI_NONAME;
3058
- return EAI_NONAME;
3059
- }
3060
-
3061
- // Check for address family mismatch if one was specified.
3062
- if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC)
3063
- && hints.ai_family != hptr->h_addrtype)
3064
- {
3065
- freeaddrinfo_emulation(aihead);
3066
- gai_free(canon);
3067
- socket_ops::freehostent(hptr);
3068
- return EAI_FAMILY;
3069
- }
3070
-
3071
- // Save canonical name first time.
3072
- if (host != 0 && host[0] != '\0' && hptr->h_name && hptr->h_name[0]
3073
- && (hints.ai_flags & AI_CANONNAME) && canon == 0)
3074
- {
3075
- std::size_t canon_len = strlen(hptr->h_name) + 1;
3076
- canon = gai_alloc<char>(canon_len);
3077
- if (canon == 0)
3078
- {
3079
- freeaddrinfo_emulation(aihead);
3080
- socket_ops::freehostent(hptr);
3081
- return EAI_MEMORY;
3082
- }
3083
- gai_strcpy(canon, hptr->h_name, canon_len);
3084
- }
3085
-
3086
- // Create an addrinfo structure for each returned address.
3087
- for (char** ap = hptr->h_addr_list; *ap; ++ap)
3088
- {
3089
- rc = gai_aistruct(&ainext, &hints, *ap, hptr->h_addrtype);
3090
- if (rc != 0)
3091
- {
3092
- freeaddrinfo_emulation(aihead);
3093
- gai_free(canon);
3094
- socket_ops::freehostent(hptr);
3095
- return EAI_FAMILY;
3096
- }
3097
- }
3098
-
3099
- socket_ops::freehostent(hptr);
3100
- }
3101
-
3102
- // Check if we found anything.
3103
- if (aihead == 0)
3104
- {
3105
- gai_free(canon);
3106
- return EAI_NONAME;
3107
- }
3108
-
3109
- // Return canonical name in first entry.
3110
- if (host != 0 && host[0] != '\0' && (hints.ai_flags & AI_CANONNAME))
3111
- {
3112
- if (canon)
3113
- {
3114
- aihead->ai_canonname = canon;
3115
- canon = 0;
3116
- }
3117
- else
3118
- {
3119
- std::size_t canonname_len = strlen(search[0].host) + 1;
3120
- aihead->ai_canonname = gai_alloc<char>(canonname_len);
3121
- if (aihead->ai_canonname == 0)
3122
- {
3123
- freeaddrinfo_emulation(aihead);
3124
- return EAI_MEMORY;
3125
- }
3126
- gai_strcpy(aihead->ai_canonname, search[0].host, canonname_len);
3127
- }
3128
- }
3129
- gai_free(canon);
3130
-
3131
- // Process the service name.
3132
- if (service != 0 && service[0] != '\0')
3133
- {
3134
- rc = gai_serv(aihead, &hints, service);
3135
- if (rc != 0)
3136
- {
3137
- freeaddrinfo_emulation(aihead);
3138
- return rc;
3139
- }
3140
- }
3141
-
3142
- // Return result to caller.
3143
- *result = aihead;
3144
- return 0;
3145
- }
3146
-
3147
- inline asio::error_code getnameinfo_emulation(
3148
- const socket_addr_type* sa, std::size_t salen, char* host,
3149
- std::size_t hostlen, char* serv, std::size_t servlen, int flags,
3150
- asio::error_code& ec)
3151
- {
3152
- using namespace std;
3153
-
3154
- const char* addr;
3155
- size_t addr_len;
3156
- unsigned short port;
3157
- switch (sa->sa_family)
3158
- {
3159
- case ASIO_OS_DEF(AF_INET):
3160
- if (salen != sizeof(sockaddr_in4_type))
3161
- {
3162
- return ec = asio::error::invalid_argument;
3163
- }
3164
- addr = reinterpret_cast<const char*>(
3165
- &reinterpret_cast<const sockaddr_in4_type*>(sa)->sin_addr);
3166
- addr_len = sizeof(in4_addr_type);
3167
- port = reinterpret_cast<const sockaddr_in4_type*>(sa)->sin_port;
3168
- break;
3169
- case ASIO_OS_DEF(AF_INET6):
3170
- if (salen != sizeof(sockaddr_in6_type))
3171
- {
3172
- return ec = asio::error::invalid_argument;
3173
- }
3174
- addr = reinterpret_cast<const char*>(
3175
- &reinterpret_cast<const sockaddr_in6_type*>(sa)->sin6_addr);
3176
- addr_len = sizeof(in6_addr_type);
3177
- port = reinterpret_cast<const sockaddr_in6_type*>(sa)->sin6_port;
3178
- break;
3179
- default:
3180
- return ec = asio::error::address_family_not_supported;
3181
- }
3182
-
3183
- if (host && hostlen > 0)
3184
- {
3185
- if (flags & NI_NUMERICHOST)
3186
- {
3187
- if (socket_ops::inet_ntop(sa->sa_family, addr, host, hostlen, 0, ec) == 0)
3188
- {
3189
- return ec;
3190
- }
3191
- }
3192
- else
3193
- {
3194
- hostent hent;
3195
- char hbuf[8192] = "";
3196
- hostent* hptr = socket_ops::gethostbyaddr(addr,
3197
- static_cast<int>(addr_len), sa->sa_family,
3198
- &hent, hbuf, sizeof(hbuf), ec);
3199
- if (hptr && hptr->h_name && hptr->h_name[0] != '\0')
3200
- {
3201
- if (flags & NI_NOFQDN)
3202
- {
3203
- char* dot = strchr(hptr->h_name, '.');
3204
- if (dot)
3205
- {
3206
- *dot = 0;
3207
- }
3208
- }
3209
- gai_strcpy(host, hptr->h_name, hostlen);
3210
- socket_ops::freehostent(hptr);
3211
- }
3212
- else
3213
- {
3214
- socket_ops::freehostent(hptr);
3215
- if (flags & NI_NAMEREQD)
3216
- {
3217
- return ec = asio::error::host_not_found;
3218
- }
3219
- if (socket_ops::inet_ntop(sa->sa_family,
3220
- addr, host, hostlen, 0, ec) == 0)
3221
- {
3222
- return ec;
3223
- }
3224
- }
3225
- }
3226
- }
3227
-
3228
- if (serv && servlen > 0)
3229
- {
3230
- if (flags & NI_NUMERICSERV)
3231
- {
3232
- if (servlen < 6)
3233
- {
3234
- return ec = asio::error::no_buffer_space;
3235
- }
3236
- #if defined(ASIO_HAS_SECURE_RTL)
3237
- sprintf_s(serv, servlen, "%u", ntohs(port));
3238
- #else // defined(ASIO_HAS_SECURE_RTL)
3239
- sprintf(serv, "%u", ntohs(port));
3240
- #endif // defined(ASIO_HAS_SECURE_RTL)
3241
- }
3242
- else
3243
- {
3244
- #if defined(ASIO_HAS_PTHREADS)
3245
- static ::pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
3246
- ::pthread_mutex_lock(&mutex);
3247
- #endif // defined(ASIO_HAS_PTHREADS)
3248
- servent* sptr = ::getservbyport(port, (flags & NI_DGRAM) ? "udp" : 0);
3249
- if (sptr && sptr->s_name && sptr->s_name[0] != '\0')
3250
- {
3251
- gai_strcpy(serv, sptr->s_name, servlen);
3252
- }
3253
- else
3254
- {
3255
- if (servlen < 6)
3256
- {
3257
- return ec = asio::error::no_buffer_space;
3258
- }
3259
- #if defined(ASIO_HAS_SECURE_RTL)
3260
- sprintf_s(serv, servlen, "%u", ntohs(port));
3261
- #else // defined(ASIO_HAS_SECURE_RTL)
3262
- sprintf(serv, "%u", ntohs(port));
3263
- #endif // defined(ASIO_HAS_SECURE_RTL)
3264
- }
3265
- #if defined(ASIO_HAS_PTHREADS)
3266
- ::pthread_mutex_unlock(&mutex);
3267
- #endif // defined(ASIO_HAS_PTHREADS)
3268
- }
3269
- }
3270
-
3271
- ec = asio::error_code();
3272
- return ec;
3273
- }
3274
-
3275
- #endif // !defined(ASIO_HAS_GETADDRINFO)
3276
-
3277
- inline asio::error_code translate_addrinfo_error(int error)
3278
- {
3279
- switch (error)
3280
- {
3281
- case 0:
3282
- return asio::error_code();
3283
- case EAI_AGAIN:
3284
- return asio::error::host_not_found_try_again;
3285
- case EAI_BADFLAGS:
3286
- return asio::error::invalid_argument;
3287
- case EAI_FAIL:
3288
- return asio::error::no_recovery;
3289
- case EAI_FAMILY:
3290
- return asio::error::address_family_not_supported;
3291
- case EAI_MEMORY:
3292
- return asio::error::no_memory;
3293
- case EAI_NONAME:
3294
- #if defined(EAI_ADDRFAMILY)
3295
- case EAI_ADDRFAMILY:
3296
- #endif
3297
- #if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME)
3298
- case EAI_NODATA:
3299
- #endif
3300
- return asio::error::host_not_found;
3301
- case EAI_SERVICE:
3302
- return asio::error::service_not_found;
3303
- case EAI_SOCKTYPE:
3304
- return asio::error::socket_type_not_supported;
3305
- default: // Possibly the non-portable EAI_SYSTEM.
3306
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
3307
- return asio::error_code(
3308
- WSAGetLastError(), asio::error::get_system_category());
3309
- #else
3310
- return asio::error_code(
3311
- errno, asio::error::get_system_category());
3312
- #endif
3313
- }
3314
- }
3315
-
3316
- asio::error_code getaddrinfo(const char* host,
3317
- const char* service, const addrinfo_type& hints,
3318
- addrinfo_type** result, asio::error_code& ec)
3319
- {
3320
- host = (host && *host) ? host : 0;
3321
- service = (service && *service) ? service : 0;
3322
- clear_last_error();
3323
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
3324
- # if defined(ASIO_HAS_GETADDRINFO)
3325
- // Building for Windows XP, Windows Server 2003, or later.
3326
- int error = ::getaddrinfo(host, service, &hints, result);
3327
- return ec = translate_addrinfo_error(error);
3328
- # else
3329
- // Building for Windows 2000 or earlier.
3330
- typedef int (WSAAPI *gai_t)(const char*,
3331
- const char*, const addrinfo_type*, addrinfo_type**);
3332
- if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
3333
- {
3334
- if (gai_t gai = (gai_t)::GetProcAddress(winsock_module, "getaddrinfo"))
3335
- {
3336
- int error = gai(host, service, &hints, result);
3337
- return ec = translate_addrinfo_error(error);
3338
- }
3339
- }
3340
- int error = getaddrinfo_emulation(host, service, &hints, result);
3341
- return ec = translate_addrinfo_error(error);
3342
- # endif
3343
- #elif !defined(ASIO_HAS_GETADDRINFO)
3344
- int error = getaddrinfo_emulation(host, service, &hints, result);
3345
- return ec = translate_addrinfo_error(error);
3346
- #else
3347
- int error = ::getaddrinfo(host, service, &hints, result);
3348
- #if defined(__MACH__) && defined(__APPLE__)
3349
- using namespace std; // For isdigit and atoi.
3350
- if (error == 0 && service && isdigit(static_cast<unsigned char>(service[0])))
3351
- {
3352
- u_short_type port = host_to_network_short(atoi(service));
3353
- for (addrinfo_type* ai = *result; ai; ai = ai->ai_next)
3354
- {
3355
- switch (ai->ai_family)
3356
- {
3357
- case ASIO_OS_DEF(AF_INET):
3358
- {
3359
- sockaddr_in4_type* sinptr =
3360
- reinterpret_cast<sockaddr_in4_type*>(ai->ai_addr);
3361
- if (sinptr->sin_port == 0)
3362
- sinptr->sin_port = port;
3363
- break;
3364
- }
3365
- case ASIO_OS_DEF(AF_INET6):
3366
- {
3367
- sockaddr_in6_type* sin6ptr =
3368
- reinterpret_cast<sockaddr_in6_type*>(ai->ai_addr);
3369
- if (sin6ptr->sin6_port == 0)
3370
- sin6ptr->sin6_port = port;
3371
- break;
3372
- }
3373
- default:
3374
- break;
3375
- }
3376
- }
3377
- }
3378
- #endif
3379
- return ec = translate_addrinfo_error(error);
3380
- #endif
3381
- }
3382
-
3383
- asio::error_code background_getaddrinfo(
3384
- const weak_cancel_token_type& cancel_token, const char* host,
3385
- const char* service, const addrinfo_type& hints,
3386
- addrinfo_type** result, asio::error_code& ec)
3387
- {
3388
- if (cancel_token.expired())
3389
- ec = asio::error::operation_aborted;
3390
- else
3391
- socket_ops::getaddrinfo(host, service, hints, result, ec);
3392
- return ec;
3393
- }
3394
-
3395
- void freeaddrinfo(addrinfo_type* ai)
3396
- {
3397
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
3398
- # if defined(ASIO_HAS_GETADDRINFO)
3399
- // Building for Windows XP, Windows Server 2003, or later.
3400
- ::freeaddrinfo(ai);
3401
- # else
3402
- // Building for Windows 2000 or earlier.
3403
- typedef int (WSAAPI *fai_t)(addrinfo_type*);
3404
- if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
3405
- {
3406
- if (fai_t fai = (fai_t)::GetProcAddress(winsock_module, "freeaddrinfo"))
3407
- {
3408
- fai(ai);
3409
- return;
3410
- }
3411
- }
3412
- freeaddrinfo_emulation(ai);
3413
- # endif
3414
- #elif !defined(ASIO_HAS_GETADDRINFO)
3415
- freeaddrinfo_emulation(ai);
3416
- #else
3417
- ::freeaddrinfo(ai);
3418
- #endif
3419
- }
3420
-
3421
- asio::error_code getnameinfo(const socket_addr_type* addr,
3422
- std::size_t addrlen, char* host, std::size_t hostlen,
3423
- char* serv, std::size_t servlen, int flags, asio::error_code& ec)
3424
- {
3425
- #if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
3426
- # if defined(ASIO_HAS_GETADDRINFO)
3427
- // Building for Windows XP, Windows Server 2003, or later.
3428
- clear_last_error();
3429
- int error = ::getnameinfo(addr, static_cast<socklen_t>(addrlen),
3430
- host, static_cast<DWORD>(hostlen),
3431
- serv, static_cast<DWORD>(servlen), flags);
3432
- return ec = translate_addrinfo_error(error);
3433
- # else
3434
- // Building for Windows 2000 or earlier.
3435
- typedef int (WSAAPI *gni_t)(const socket_addr_type*,
3436
- int, char*, DWORD, char*, DWORD, int);
3437
- if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
3438
- {
3439
- if (gni_t gni = (gni_t)::GetProcAddress(winsock_module, "getnameinfo"))
3440
- {
3441
- clear_last_error();
3442
- int error = gni(addr, static_cast<int>(addrlen),
3443
- host, static_cast<DWORD>(hostlen),
3444
- serv, static_cast<DWORD>(servlen), flags);
3445
- return ec = translate_addrinfo_error(error);
3446
- }
3447
- }
3448
- clear_last_error();
3449
- return getnameinfo_emulation(addr, addrlen,
3450
- host, hostlen, serv, servlen, flags, ec);
3451
- # endif
3452
- #elif !defined(ASIO_HAS_GETADDRINFO)
3453
- using namespace std; // For memcpy.
3454
- sockaddr_storage_type tmp_addr;
3455
- memcpy(&tmp_addr, addr, addrlen);
3456
- addr = reinterpret_cast<socket_addr_type*>(&tmp_addr);
3457
- clear_last_error();
3458
- return getnameinfo_emulation(addr, addrlen,
3459
- host, hostlen, serv, servlen, flags, ec);
3460
- #else
3461
- clear_last_error();
3462
- int error = ::getnameinfo(addr, addrlen, host, hostlen, serv, servlen, flags);
3463
- return ec = translate_addrinfo_error(error);
3464
- #endif
3465
- }
3466
-
3467
- asio::error_code sync_getnameinfo(
3468
- const socket_addr_type* addr, std::size_t addrlen,
3469
- char* host, std::size_t hostlen, char* serv,
3470
- std::size_t servlen, int sock_type, asio::error_code& ec)
3471
- {
3472
- // First try resolving with the service name. If that fails try resolving
3473
- // but allow the service to be returned as a number.
3474
- int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0;
3475
- socket_ops::getnameinfo(addr, addrlen, host,
3476
- hostlen, serv, servlen, flags, ec);
3477
- if (ec)
3478
- {
3479
- socket_ops::getnameinfo(addr, addrlen, host, hostlen,
3480
- serv, servlen, flags | NI_NUMERICSERV, ec);
3481
- }
3482
-
3483
- return ec;
3484
- }
3485
-
3486
- asio::error_code background_getnameinfo(
3487
- const weak_cancel_token_type& cancel_token,
3488
- const socket_addr_type* addr, std::size_t addrlen,
3489
- char* host, std::size_t hostlen, char* serv,
3490
- std::size_t servlen, int sock_type, asio::error_code& ec)
3491
- {
3492
- if (cancel_token.expired())
3493
- {
3494
- ec = asio::error::operation_aborted;
3495
- }
3496
- else
3497
- {
3498
- // First try resolving with the service name. If that fails try resolving
3499
- // but allow the service to be returned as a number.
3500
- int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0;
3501
- socket_ops::getnameinfo(addr, addrlen, host,
3502
- hostlen, serv, servlen, flags, ec);
3503
- if (ec)
3504
- {
3505
- socket_ops::getnameinfo(addr, addrlen, host, hostlen,
3506
- serv, servlen, flags | NI_NUMERICSERV, ec);
3507
- }
3508
- }
3509
-
3510
- return ec;
3511
- }
3512
-
3513
- #endif // !defined(ASIO_WINDOWS_RUNTIME)
3514
-
3515
- u_long_type network_to_host_long(u_long_type value)
3516
- {
3517
- #if defined(ASIO_WINDOWS_RUNTIME)
3518
- unsigned char* value_p = reinterpret_cast<unsigned char*>(&value);
3519
- u_long_type result = (static_cast<u_long_type>(value_p[0]) << 24)
3520
- | (static_cast<u_long_type>(value_p[1]) << 16)
3521
- | (static_cast<u_long_type>(value_p[2]) << 8)
3522
- | static_cast<u_long_type>(value_p[3]);
3523
- return result;
3524
- #else // defined(ASIO_WINDOWS_RUNTIME)
3525
- return ntohl(value);
3526
- #endif // defined(ASIO_WINDOWS_RUNTIME)
3527
- }
3528
-
3529
- u_long_type host_to_network_long(u_long_type value)
3530
- {
3531
- #if defined(ASIO_WINDOWS_RUNTIME)
3532
- u_long_type result;
3533
- unsigned char* result_p = reinterpret_cast<unsigned char*>(&result);
3534
- result_p[0] = static_cast<unsigned char>((value >> 24) & 0xFF);
3535
- result_p[1] = static_cast<unsigned char>((value >> 16) & 0xFF);
3536
- result_p[2] = static_cast<unsigned char>((value >> 8) & 0xFF);
3537
- result_p[3] = static_cast<unsigned char>(value & 0xFF);
3538
- return result;
3539
- #else // defined(ASIO_WINDOWS_RUNTIME)
3540
- return htonl(value);
3541
- #endif // defined(ASIO_WINDOWS_RUNTIME)
3542
- }
3543
-
3544
- u_short_type network_to_host_short(u_short_type value)
3545
- {
3546
- #if defined(ASIO_WINDOWS_RUNTIME)
3547
- unsigned char* value_p = reinterpret_cast<unsigned char*>(&value);
3548
- u_short_type result = (static_cast<u_short_type>(value_p[0]) << 8)
3549
- | static_cast<u_short_type>(value_p[1]);
3550
- return result;
3551
- #else // defined(ASIO_WINDOWS_RUNTIME)
3552
- return ntohs(value);
3553
- #endif // defined(ASIO_WINDOWS_RUNTIME)
3554
- }
3555
-
3556
- u_short_type host_to_network_short(u_short_type value)
3557
- {
3558
- #if defined(ASIO_WINDOWS_RUNTIME)
3559
- u_short_type result;
3560
- unsigned char* result_p = reinterpret_cast<unsigned char*>(&result);
3561
- result_p[0] = static_cast<unsigned char>((value >> 8) & 0xFF);
3562
- result_p[1] = static_cast<unsigned char>(value & 0xFF);
3563
- return result;
3564
- #else // defined(ASIO_WINDOWS_RUNTIME)
3565
- return htons(value);
3566
- #endif // defined(ASIO_WINDOWS_RUNTIME)
3567
- }
3568
-
3569
- } // namespace socket_ops
3570
- } // namespace detail
3571
- } // namespace asio
3572
-
3573
- #include "asio/detail/pop_options.hpp"
3574
-
3575
- #endif // ASIO_DETAIL_SOCKET_OPS_IPP