wearefair-grpc 1.3.1.pre.a

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 (1161) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/Makefile +19484 -0
  4. data/etc/roots.pem +5288 -0
  5. data/include/grpc/byte_buffer.h +102 -0
  6. data/include/grpc/byte_buffer_reader.h +39 -0
  7. data/include/grpc/census.h +484 -0
  8. data/include/grpc/compression.h +85 -0
  9. data/include/grpc/grpc.h +509 -0
  10. data/include/grpc/grpc_cronet.h +51 -0
  11. data/include/grpc/grpc_posix.h +81 -0
  12. data/include/grpc/grpc_security.h +390 -0
  13. data/include/grpc/grpc_security_constants.h +114 -0
  14. data/include/grpc/impl/codegen/atm.h +100 -0
  15. data/include/grpc/impl/codegen/atm_gcc_atomic.h +97 -0
  16. data/include/grpc/impl/codegen/atm_gcc_sync.h +97 -0
  17. data/include/grpc/impl/codegen/atm_windows.h +140 -0
  18. data/include/grpc/impl/codegen/byte_buffer_reader.h +57 -0
  19. data/include/grpc/impl/codegen/compression_types.h +122 -0
  20. data/include/grpc/impl/codegen/connectivity_state.h +61 -0
  21. data/include/grpc/impl/codegen/exec_ctx_fwd.h +41 -0
  22. data/include/grpc/impl/codegen/gpr_slice.h +84 -0
  23. data/include/grpc/impl/codegen/gpr_types.h +75 -0
  24. data/include/grpc/impl/codegen/grpc_types.h +550 -0
  25. data/include/grpc/impl/codegen/port_platform.h +421 -0
  26. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  27. data/include/grpc/impl/codegen/slice.h +157 -0
  28. data/include/grpc/impl/codegen/status.h +163 -0
  29. data/include/grpc/impl/codegen/sync.h +75 -0
  30. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  31. data/include/grpc/impl/codegen/sync_posix.h +47 -0
  32. data/include/grpc/impl/codegen/sync_windows.h +49 -0
  33. data/include/grpc/load_reporting.h +63 -0
  34. data/include/grpc/module.modulemap +13 -0
  35. data/include/grpc/slice.h +168 -0
  36. data/include/grpc/slice_buffer.h +94 -0
  37. data/include/grpc/status.h +39 -0
  38. data/include/grpc/support/alloc.h +82 -0
  39. data/include/grpc/support/atm.h +39 -0
  40. data/include/grpc/support/atm_gcc_atomic.h +39 -0
  41. data/include/grpc/support/atm_gcc_sync.h +39 -0
  42. data/include/grpc/support/atm_windows.h +39 -0
  43. data/include/grpc/support/avl.h +97 -0
  44. data/include/grpc/support/cmdline.h +103 -0
  45. data/include/grpc/support/cpu.h +59 -0
  46. data/include/grpc/support/histogram.h +79 -0
  47. data/include/grpc/support/host_port.h +66 -0
  48. data/include/grpc/support/log.h +118 -0
  49. data/include/grpc/support/log_windows.h +53 -0
  50. data/include/grpc/support/port_platform.h +39 -0
  51. data/include/grpc/support/string_util.h +64 -0
  52. data/include/grpc/support/subprocess.h +59 -0
  53. data/include/grpc/support/sync.h +295 -0
  54. data/include/grpc/support/sync_generic.h +39 -0
  55. data/include/grpc/support/sync_posix.h +39 -0
  56. data/include/grpc/support/sync_windows.h +39 -0
  57. data/include/grpc/support/thd.h +91 -0
  58. data/include/grpc/support/time.h +105 -0
  59. data/include/grpc/support/tls.h +77 -0
  60. data/include/grpc/support/tls_gcc.h +100 -0
  61. data/include/grpc/support/tls_msvc.h +56 -0
  62. data/include/grpc/support/tls_pthread.h +60 -0
  63. data/include/grpc/support/useful.h +80 -0
  64. data/src/boringssl/err_data.c +1270 -0
  65. data/src/core/ext/census/aggregation.h +66 -0
  66. data/src/core/ext/census/base_resources.c +71 -0
  67. data/src/core/ext/census/base_resources.h +39 -0
  68. data/src/core/ext/census/census_interface.h +76 -0
  69. data/src/core/ext/census/census_rpc_stats.h +101 -0
  70. data/src/core/ext/census/context.c +509 -0
  71. data/src/core/ext/census/gen/census.pb.c +176 -0
  72. data/src/core/ext/census/gen/census.pb.h +295 -0
  73. data/src/core/ext/census/gen/trace_context.pb.c +54 -0
  74. data/src/core/ext/census/gen/trace_context.pb.h +93 -0
  75. data/src/core/ext/census/grpc_context.c +53 -0
  76. data/src/core/ext/census/grpc_filter.c +213 -0
  77. data/src/core/ext/census/grpc_filter.h +44 -0
  78. data/src/core/ext/census/grpc_plugin.c +85 -0
  79. data/src/core/ext/census/initialize.c +66 -0
  80. data/src/core/ext/census/mlog.c +600 -0
  81. data/src/core/ext/census/mlog.h +95 -0
  82. data/src/core/ext/census/operation.c +63 -0
  83. data/src/core/ext/census/placeholders.c +64 -0
  84. data/src/core/ext/census/resource.c +312 -0
  85. data/src/core/ext/census/resource.h +63 -0
  86. data/src/core/ext/census/rpc_metric_id.h +51 -0
  87. data/src/core/ext/census/trace_context.c +86 -0
  88. data/src/core/ext/census/trace_context.h +71 -0
  89. data/src/core/ext/census/trace_label.h +61 -0
  90. data/src/core/ext/census/trace_propagation.h +63 -0
  91. data/src/core/ext/census/trace_status.h +45 -0
  92. data/src/core/ext/census/trace_string.h +50 -0
  93. data/src/core/ext/census/tracing.c +71 -0
  94. data/src/core/ext/census/tracing.h +124 -0
  95. data/src/core/ext/filters/client_channel/channel_connectivity.c +226 -0
  96. data/src/core/ext/filters/client_channel/client_channel.c +1410 -0
  97. data/src/core/ext/filters/client_channel/client_channel.h +64 -0
  98. data/src/core/ext/filters/client_channel/client_channel_factory.c +87 -0
  99. data/src/core/ext/filters/client_channel/client_channel_factory.h +92 -0
  100. data/src/core/ext/filters/client_channel/client_channel_plugin.c +106 -0
  101. data/src/core/ext/filters/client_channel/connector.c +55 -0
  102. data/src/core/ext/filters/client_channel/connector.h +88 -0
  103. data/src/core/ext/filters/client_channel/http_connect_handshaker.c +389 -0
  104. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +49 -0
  105. data/src/core/ext/filters/client_channel/http_proxy.c +125 -0
  106. data/src/core/ext/filters/client_channel/http_proxy.h +39 -0
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +1419 -0
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +44 -0
  109. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +57 -0
  110. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +107 -0
  111. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +249 -0
  112. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +105 -0
  113. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +88 -0
  114. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +158 -0
  115. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +476 -0
  116. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +795 -0
  117. data/src/core/ext/filters/client_channel/lb_policy.c +167 -0
  118. data/src/core/ext/filters/client_channel/lb_policy.h +209 -0
  119. data/src/core/ext/filters/client_channel/lb_policy_factory.c +163 -0
  120. data/src/core/ext/filters/client_channel/lb_policy_factory.h +134 -0
  121. data/src/core/ext/filters/client_channel/lb_policy_registry.c +85 -0
  122. data/src/core/ext/filters/client_channel/lb_policy_registry.h +55 -0
  123. data/src/core/ext/filters/client_channel/parse_address.c +170 -0
  124. data/src/core/ext/filters/client_channel/parse_address.h +54 -0
  125. data/src/core/ext/filters/client_channel/proxy_mapper.c +63 -0
  126. data/src/core/ext/filters/client_channel/proxy_mapper.h +89 -0
  127. data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +139 -0
  128. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +59 -0
  129. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +350 -0
  130. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +66 -0
  131. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +319 -0
  132. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +289 -0
  133. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +64 -0
  134. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +325 -0
  135. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +234 -0
  136. data/src/core/ext/filters/client_channel/resolver.c +88 -0
  137. data/src/core/ext/filters/client_channel/resolver.h +101 -0
  138. data/src/core/ext/filters/client_channel/resolver_factory.c +56 -0
  139. data/src/core/ext/filters/client_channel/resolver_factory.h +85 -0
  140. data/src/core/ext/filters/client_channel/resolver_registry.c +174 -0
  141. data/src/core/ext/filters/client_channel/resolver_registry.h +84 -0
  142. data/src/core/ext/filters/client_channel/retry_throttle.c +210 -0
  143. data/src/core/ext/filters/client_channel/retry_throttle.h +65 -0
  144. data/src/core/ext/filters/client_channel/subchannel.c +835 -0
  145. data/src/core/ext/filters/client_channel/subchannel.h +203 -0
  146. data/src/core/ext/filters/client_channel/subchannel_index.c +262 -0
  147. data/src/core/ext/filters/client_channel/subchannel_index.h +77 -0
  148. data/src/core/ext/filters/client_channel/uri_parser.c +315 -0
  149. data/src/core/ext/filters/client_channel/uri_parser.h +65 -0
  150. data/src/core/ext/filters/load_reporting/load_reporting.c +106 -0
  151. data/src/core/ext/filters/load_reporting/load_reporting.h +73 -0
  152. data/src/core/ext/filters/load_reporting/load_reporting_filter.c +218 -0
  153. data/src/core/ext/filters/load_reporting/load_reporting_filter.h +42 -0
  154. data/src/core/ext/filters/max_age/max_age_filter.c +439 -0
  155. data/src/core/ext/filters/max_age/max_age_filter.h +39 -0
  156. data/src/core/ext/transport/chttp2/alpn/alpn.c +56 -0
  157. data/src/core/ext/transport/chttp2/alpn/alpn.h +49 -0
  158. data/src/core/ext/transport/chttp2/client/chttp2_connector.c +221 -0
  159. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +41 -0
  160. data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +121 -0
  161. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +95 -0
  162. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +239 -0
  163. data/src/core/ext/transport/chttp2/server/chttp2_server.c +304 -0
  164. data/src/core/ext/transport/chttp2/server/chttp2_server.h +47 -0
  165. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +59 -0
  166. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +90 -0
  167. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +101 -0
  168. data/src/core/ext/transport/chttp2/transport/bin_decoder.c +236 -0
  169. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +67 -0
  170. data/src/core/ext/transport/chttp2/transport/bin_encoder.c +241 -0
  171. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +54 -0
  172. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +43 -0
  173. data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +2847 -0
  174. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +53 -0
  175. data/src/core/ext/transport/chttp2/transport/frame.h +61 -0
  176. data/src/core/ext/transport/chttp2/transport/frame_data.c +287 -0
  177. data/src/core/ext/transport/chttp2/transport/frame_data.h +104 -0
  178. data/src/core/ext/transport/chttp2/transport/frame_goaway.c +198 -0
  179. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +78 -0
  180. data/src/core/ext/transport/chttp2/transport/frame_ping.c +145 -0
  181. data/src/core/ext/transport/chttp2/transport/frame_ping.h +59 -0
  182. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +125 -0
  183. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +58 -0
  184. data/src/core/ext/transport/chttp2/transport/frame_settings.c +239 -0
  185. data/src/core/ext/transport/chttp2/transport/frame_settings.h +76 -0
  186. data/src/core/ext/transport/chttp2/transport/frame_window_update.c +134 -0
  187. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +57 -0
  188. data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +661 -0
  189. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +107 -0
  190. data/src/core/ext/transport/chttp2/transport/hpack_parser.c +1734 -0
  191. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +129 -0
  192. data/src/core/ext/transport/chttp2/transport/hpack_table.c +383 -0
  193. data/src/core/ext/transport/chttp2/transport/hpack_table.h +112 -0
  194. data/src/core/ext/transport/chttp2/transport/http2_settings.c +75 -0
  195. data/src/core/ext/transport/chttp2/transport/http2_settings.h +74 -0
  196. data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
  197. data/src/core/ext/transport/chttp2/transport/huffsyms.h +48 -0
  198. data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +88 -0
  199. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +63 -0
  200. data/src/core/ext/transport/chttp2/transport/internal.h +852 -0
  201. data/src/core/ext/transport/chttp2/transport/parsing.c +825 -0
  202. data/src/core/ext/transport/chttp2/transport/stream_lists.c +194 -0
  203. data/src/core/ext/transport/chttp2/transport/stream_map.c +176 -0
  204. data/src/core/ext/transport/chttp2/transport/stream_map.h +83 -0
  205. data/src/core/ext/transport/chttp2/transport/varint.c +65 -0
  206. data/src/core/ext/transport/chttp2/transport/varint.h +75 -0
  207. data/src/core/ext/transport/chttp2/transport/writing.c +429 -0
  208. data/src/core/lib/channel/channel_args.c +355 -0
  209. data/src/core/lib/channel/channel_args.h +126 -0
  210. data/src/core/lib/channel/channel_stack.c +291 -0
  211. data/src/core/lib/channel/channel_stack.h +319 -0
  212. data/src/core/lib/channel/channel_stack_builder.c +284 -0
  213. data/src/core/lib/channel/channel_stack_builder.h +170 -0
  214. data/src/core/lib/channel/compress_filter.c +353 -0
  215. data/src/core/lib/channel/compress_filter.h +67 -0
  216. data/src/core/lib/channel/connected_channel.c +188 -0
  217. data/src/core/lib/channel/connected_channel.h +48 -0
  218. data/src/core/lib/channel/context.h +64 -0
  219. data/src/core/lib/channel/deadline_filter.c +348 -0
  220. data/src/core/lib/channel/deadline_filter.h +102 -0
  221. data/src/core/lib/channel/handshaker.c +281 -0
  222. data/src/core/lib/channel/handshaker.h +182 -0
  223. data/src/core/lib/channel/handshaker_factory.c +54 -0
  224. data/src/core/lib/channel/handshaker_factory.h +66 -0
  225. data/src/core/lib/channel/handshaker_registry.c +113 -0
  226. data/src/core/lib/channel/handshaker_registry.h +63 -0
  227. data/src/core/lib/channel/http_client_filter.c +601 -0
  228. data/src/core/lib/channel/http_client_filter.h +47 -0
  229. data/src/core/lib/channel/http_server_filter.c +445 -0
  230. data/src/core/lib/channel/http_server_filter.h +42 -0
  231. data/src/core/lib/channel/message_size_filter.c +270 -0
  232. data/src/core/lib/channel/message_size_filter.h +39 -0
  233. data/src/core/lib/compression/algorithm_metadata.h +53 -0
  234. data/src/core/lib/compression/compression.c +198 -0
  235. data/src/core/lib/compression/message_compress.c +204 -0
  236. data/src/core/lib/compression/message_compress.h +54 -0
  237. data/src/core/lib/debug/trace.c +140 -0
  238. data/src/core/lib/debug/trace.h +43 -0
  239. data/src/core/lib/http/format_request.c +135 -0
  240. data/src/core/lib/http/format_request.h +47 -0
  241. data/src/core/lib/http/httpcli.c +336 -0
  242. data/src/core/lib/http/httpcli.h +141 -0
  243. data/src/core/lib/http/httpcli_security_connector.c +199 -0
  244. data/src/core/lib/http/parser.c +379 -0
  245. data/src/core/lib/http/parser.h +126 -0
  246. data/src/core/lib/iomgr/closure.c +168 -0
  247. data/src/core/lib/iomgr/closure.h +153 -0
  248. data/src/core/lib/iomgr/combiner.c +460 -0
  249. data/src/core/lib/iomgr/combiner.h +83 -0
  250. data/src/core/lib/iomgr/endpoint.c +78 -0
  251. data/src/core/lib/iomgr/endpoint.h +117 -0
  252. data/src/core/lib/iomgr/endpoint_pair.h +47 -0
  253. data/src/core/lib/iomgr/endpoint_pair_posix.c +87 -0
  254. data/src/core/lib/iomgr/endpoint_pair_uv.c +53 -0
  255. data/src/core/lib/iomgr/endpoint_pair_windows.c +101 -0
  256. data/src/core/lib/iomgr/error.c +793 -0
  257. data/src/core/lib/iomgr/error.h +218 -0
  258. data/src/core/lib/iomgr/error_internal.h +75 -0
  259. data/src/core/lib/iomgr/ev_epoll_linux.c +1965 -0
  260. data/src/core/lib/iomgr/ev_epoll_linux.h +48 -0
  261. data/src/core/lib/iomgr/ev_poll_posix.c +1593 -0
  262. data/src/core/lib/iomgr/ev_poll_posix.h +42 -0
  263. data/src/core/lib/iomgr/ev_posix.c +287 -0
  264. data/src/core/lib/iomgr/ev_posix.h +189 -0
  265. data/src/core/lib/iomgr/exec_ctx.c +117 -0
  266. data/src/core/lib/iomgr/exec_ctx.h +117 -0
  267. data/src/core/lib/iomgr/executor.c +170 -0
  268. data/src/core/lib/iomgr/executor.h +51 -0
  269. data/src/core/lib/iomgr/iocp_windows.c +168 -0
  270. data/src/core/lib/iomgr/iocp_windows.h +55 -0
  271. data/src/core/lib/iomgr/iomgr.c +183 -0
  272. data/src/core/lib/iomgr/iomgr.h +47 -0
  273. data/src/core/lib/iomgr/iomgr_internal.h +58 -0
  274. data/src/core/lib/iomgr/iomgr_posix.c +56 -0
  275. data/src/core/lib/iomgr/iomgr_posix.h +39 -0
  276. data/src/core/lib/iomgr/iomgr_uv.c +49 -0
  277. data/src/core/lib/iomgr/iomgr_windows.c +76 -0
  278. data/src/core/lib/iomgr/load_file.c +92 -0
  279. data/src/core/lib/iomgr/load_file.h +56 -0
  280. data/src/core/lib/iomgr/lockfree_event.c +238 -0
  281. data/src/core/lib/iomgr/lockfree_event.h +54 -0
  282. data/src/core/lib/iomgr/network_status_tracker.c +48 -0
  283. data/src/core/lib/iomgr/network_status_tracker.h +45 -0
  284. data/src/core/lib/iomgr/polling_entity.c +104 -0
  285. data/src/core/lib/iomgr/polling_entity.h +81 -0
  286. data/src/core/lib/iomgr/pollset.h +97 -0
  287. data/src/core/lib/iomgr/pollset_set.h +62 -0
  288. data/src/core/lib/iomgr/pollset_set_uv.c +63 -0
  289. data/src/core/lib/iomgr/pollset_set_windows.c +64 -0
  290. data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
  291. data/src/core/lib/iomgr/pollset_uv.c +156 -0
  292. data/src/core/lib/iomgr/pollset_uv.h +42 -0
  293. data/src/core/lib/iomgr/pollset_windows.c +232 -0
  294. data/src/core/lib/iomgr/pollset_windows.h +78 -0
  295. data/src/core/lib/iomgr/port.h +138 -0
  296. data/src/core/lib/iomgr/resolve_address.h +70 -0
  297. data/src/core/lib/iomgr/resolve_address_posix.c +207 -0
  298. data/src/core/lib/iomgr/resolve_address_uv.c +284 -0
  299. data/src/core/lib/iomgr/resolve_address_windows.c +190 -0
  300. data/src/core/lib/iomgr/resource_quota.c +877 -0
  301. data/src/core/lib/iomgr/resource_quota.h +167 -0
  302. data/src/core/lib/iomgr/sockaddr.h +55 -0
  303. data/src/core/lib/iomgr/sockaddr_posix.h +44 -0
  304. data/src/core/lib/iomgr/sockaddr_utils.c +272 -0
  305. data/src/core/lib/iomgr/sockaddr_utils.h +93 -0
  306. data/src/core/lib/iomgr/sockaddr_windows.h +43 -0
  307. data/src/core/lib/iomgr/socket_factory_posix.c +110 -0
  308. data/src/core/lib/iomgr/socket_factory_posix.h +90 -0
  309. data/src/core/lib/iomgr/socket_mutator.c +98 -0
  310. data/src/core/lib/iomgr/socket_mutator.h +80 -0
  311. data/src/core/lib/iomgr/socket_utils.h +42 -0
  312. data/src/core/lib/iomgr/socket_utils_common_posix.c +330 -0
  313. data/src/core/lib/iomgr/socket_utils_linux.c +57 -0
  314. data/src/core/lib/iomgr/socket_utils_posix.c +73 -0
  315. data/src/core/lib/iomgr/socket_utils_posix.h +147 -0
  316. data/src/core/lib/iomgr/socket_utils_uv.c +49 -0
  317. data/src/core/lib/iomgr/socket_utils_windows.c +52 -0
  318. data/src/core/lib/iomgr/socket_windows.c +167 -0
  319. data/src/core/lib/iomgr/socket_windows.h +125 -0
  320. data/src/core/lib/iomgr/tcp_client.h +55 -0
  321. data/src/core/lib/iomgr/tcp_client_posix.c +368 -0
  322. data/src/core/lib/iomgr/tcp_client_posix.h +45 -0
  323. data/src/core/lib/iomgr/tcp_client_uv.c +192 -0
  324. data/src/core/lib/iomgr/tcp_client_windows.c +260 -0
  325. data/src/core/lib/iomgr/tcp_posix.c +677 -0
  326. data/src/core/lib/iomgr/tcp_posix.h +70 -0
  327. data/src/core/lib/iomgr/tcp_server.h +116 -0
  328. data/src/core/lib/iomgr/tcp_server_posix.c +579 -0
  329. data/src/core/lib/iomgr/tcp_server_utils_posix.h +135 -0
  330. data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +221 -0
  331. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +196 -0
  332. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +49 -0
  333. data/src/core/lib/iomgr/tcp_server_uv.c +393 -0
  334. data/src/core/lib/iomgr/tcp_server_windows.c +558 -0
  335. data/src/core/lib/iomgr/tcp_uv.c +374 -0
  336. data/src/core/lib/iomgr/tcp_uv.h +59 -0
  337. data/src/core/lib/iomgr/tcp_windows.c +462 -0
  338. data/src/core/lib/iomgr/tcp_windows.h +59 -0
  339. data/src/core/lib/iomgr/time_averaged_stats.c +77 -0
  340. data/src/core/lib/iomgr/time_averaged_stats.h +88 -0
  341. data/src/core/lib/iomgr/timer.h +111 -0
  342. data/src/core/lib/iomgr/timer_generic.c +567 -0
  343. data/src/core/lib/iomgr/timer_generic.h +49 -0
  344. data/src/core/lib/iomgr/timer_heap.c +152 -0
  345. data/src/core/lib/iomgr/timer_heap.h +57 -0
  346. data/src/core/lib/iomgr/timer_uv.c +103 -0
  347. data/src/core/lib/iomgr/timer_uv.h +47 -0
  348. data/src/core/lib/iomgr/udp_server.c +529 -0
  349. data/src/core/lib/iomgr/udp_server.h +89 -0
  350. data/src/core/lib/iomgr/unix_sockets_posix.c +108 -0
  351. data/src/core/lib/iomgr/unix_sockets_posix.h +56 -0
  352. data/src/core/lib/iomgr/unix_sockets_posix_noop.c +62 -0
  353. data/src/core/lib/iomgr/wakeup_fd_cv.c +118 -0
  354. data/src/core/lib/iomgr/wakeup_fd_cv.h +80 -0
  355. data/src/core/lib/iomgr/wakeup_fd_eventfd.c +97 -0
  356. data/src/core/lib/iomgr/wakeup_fd_nospecial.c +51 -0
  357. data/src/core/lib/iomgr/wakeup_fd_pipe.c +112 -0
  358. data/src/core/lib/iomgr/wakeup_fd_pipe.h +41 -0
  359. data/src/core/lib/iomgr/wakeup_fd_posix.c +101 -0
  360. data/src/core/lib/iomgr/wakeup_fd_posix.h +109 -0
  361. data/src/core/lib/iomgr/workqueue.h +87 -0
  362. data/src/core/lib/iomgr/workqueue_uv.c +65 -0
  363. data/src/core/lib/iomgr/workqueue_uv.h +37 -0
  364. data/src/core/lib/iomgr/workqueue_windows.c +63 -0
  365. data/src/core/lib/iomgr/workqueue_windows.h +37 -0
  366. data/src/core/lib/json/json.c +63 -0
  367. data/src/core/lib/json/json.h +88 -0
  368. data/src/core/lib/json/json_common.h +49 -0
  369. data/src/core/lib/json/json_reader.c +675 -0
  370. data/src/core/lib/json/json_reader.h +160 -0
  371. data/src/core/lib/json/json_string.c +379 -0
  372. data/src/core/lib/json/json_writer.c +258 -0
  373. data/src/core/lib/json/json_writer.h +97 -0
  374. data/src/core/lib/profiling/basic_timers.c +298 -0
  375. data/src/core/lib/profiling/stap_timers.c +65 -0
  376. data/src/core/lib/profiling/timers.h +121 -0
  377. data/src/core/lib/security/context/security_context.c +350 -0
  378. data/src/core/lib/security/context/security_context.h +134 -0
  379. data/src/core/lib/security/credentials/composite/composite_credentials.c +274 -0
  380. data/src/core/lib/security/credentials/composite/composite_credentials.h +72 -0
  381. data/src/core/lib/security/credentials/credentials.c +308 -0
  382. data/src/core/lib/security/credentials/credentials.h +268 -0
  383. data/src/core/lib/security/credentials/credentials_metadata.c +103 -0
  384. data/src/core/lib/security/credentials/fake/fake_credentials.c +141 -0
  385. data/src/core/lib/security/credentials/fake/fake_credentials.h +71 -0
  386. data/src/core/lib/security/credentials/google_default/credentials_generic.c +54 -0
  387. data/src/core/lib/security/credentials/google_default/google_default_credentials.c +337 -0
  388. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +60 -0
  389. data/src/core/lib/security/credentials/iam/iam_credentials.c +85 -0
  390. data/src/core/lib/security/credentials/iam/iam_credentials.h +44 -0
  391. data/src/core/lib/security/credentials/jwt/json_token.c +321 -0
  392. data/src/core/lib/security/credentials/jwt/json_token.h +88 -0
  393. data/src/core/lib/security/credentials/jwt/jwt_credentials.c +195 -0
  394. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +63 -0
  395. data/src/core/lib/security/credentials/jwt/jwt_verifier.c +910 -0
  396. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +140 -0
  397. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +468 -0
  398. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +109 -0
  399. data/src/core/lib/security/credentials/plugin/plugin_credentials.c +153 -0
  400. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +45 -0
  401. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +242 -0
  402. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +48 -0
  403. data/src/core/lib/security/transport/auth_filters.h +42 -0
  404. data/src/core/lib/security/transport/client_auth_filter.c +384 -0
  405. data/src/core/lib/security/transport/lb_targets_info.c +70 -0
  406. data/src/core/lib/security/transport/lb_targets_info.h +47 -0
  407. data/src/core/lib/security/transport/secure_endpoint.c +427 -0
  408. data/src/core/lib/security/transport/secure_endpoint.h +49 -0
  409. data/src/core/lib/security/transport/security_connector.c +909 -0
  410. data/src/core/lib/security/transport/security_connector.h +252 -0
  411. data/src/core/lib/security/transport/security_handshaker.c +507 -0
  412. data/src/core/lib/security/transport/security_handshaker.h +49 -0
  413. data/src/core/lib/security/transport/server_auth_filter.c +277 -0
  414. data/src/core/lib/security/transport/tsi_error.c +42 -0
  415. data/src/core/lib/security/transport/tsi_error.h +42 -0
  416. data/src/core/lib/security/util/json_util.c +61 -0
  417. data/src/core/lib/security/util/json_util.h +55 -0
  418. data/src/core/lib/slice/b64.c +251 -0
  419. data/src/core/lib/slice/b64.h +65 -0
  420. data/src/core/lib/slice/percent_encoding.c +182 -0
  421. data/src/core/lib/slice/percent_encoding.h +78 -0
  422. data/src/core/lib/slice/slice.c +466 -0
  423. data/src/core/lib/slice/slice_buffer.c +355 -0
  424. data/src/core/lib/slice/slice_hash_table.c +125 -0
  425. data/src/core/lib/slice/slice_hash_table.h +77 -0
  426. data/src/core/lib/slice/slice_intern.c +346 -0
  427. data/src/core/lib/slice/slice_internal.h +64 -0
  428. data/src/core/lib/slice/slice_string_helpers.c +95 -0
  429. data/src/core/lib/slice/slice_string_helpers.h +63 -0
  430. data/src/core/lib/support/alloc.c +117 -0
  431. data/src/core/lib/support/arena.c +98 -0
  432. data/src/core/lib/support/arena.h +54 -0
  433. data/src/core/lib/support/atm.c +47 -0
  434. data/src/core/lib/support/avl.c +299 -0
  435. data/src/core/lib/support/backoff.c +87 -0
  436. data/src/core/lib/support/backoff.h +71 -0
  437. data/src/core/lib/support/block_annotate.h +48 -0
  438. data/src/core/lib/support/cmdline.c +345 -0
  439. data/src/core/lib/support/cpu_iphone.c +49 -0
  440. data/src/core/lib/support/cpu_linux.c +83 -0
  441. data/src/core/lib/support/cpu_posix.c +72 -0
  442. data/src/core/lib/support/cpu_windows.c +47 -0
  443. data/src/core/lib/support/env.h +58 -0
  444. data/src/core/lib/support/env_linux.c +89 -0
  445. data/src/core/lib/support/env_posix.c +57 -0
  446. data/src/core/lib/support/env_windows.c +79 -0
  447. data/src/core/lib/support/histogram.c +243 -0
  448. data/src/core/lib/support/host_port.c +110 -0
  449. data/src/core/lib/support/log.c +103 -0
  450. data/src/core/lib/support/log_android.c +87 -0
  451. data/src/core/lib/support/log_linux.c +105 -0
  452. data/src/core/lib/support/log_posix.c +106 -0
  453. data/src/core/lib/support/log_windows.c +112 -0
  454. data/src/core/lib/support/mpscq.c +83 -0
  455. data/src/core/lib/support/mpscq.h +65 -0
  456. data/src/core/lib/support/murmur_hash.c +94 -0
  457. data/src/core/lib/support/murmur_hash.h +44 -0
  458. data/src/core/lib/support/spinlock.h +52 -0
  459. data/src/core/lib/support/stack_lockfree.c +185 -0
  460. data/src/core/lib/support/stack_lockfree.h +53 -0
  461. data/src/core/lib/support/string.c +315 -0
  462. data/src/core/lib/support/string.h +128 -0
  463. data/src/core/lib/support/string_posix.c +86 -0
  464. data/src/core/lib/support/string_util_windows.c +94 -0
  465. data/src/core/lib/support/string_windows.c +83 -0
  466. data/src/core/lib/support/string_windows.h +47 -0
  467. data/src/core/lib/support/subprocess_posix.c +114 -0
  468. data/src/core/lib/support/subprocess_windows.c +141 -0
  469. data/src/core/lib/support/sync.c +137 -0
  470. data/src/core/lib/support/sync_posix.c +113 -0
  471. data/src/core/lib/support/sync_windows.c +133 -0
  472. data/src/core/lib/support/thd.c +64 -0
  473. data/src/core/lib/support/thd_internal.h +39 -0
  474. data/src/core/lib/support/thd_posix.c +95 -0
  475. data/src/core/lib/support/thd_windows.c +117 -0
  476. data/src/core/lib/support/time.c +262 -0
  477. data/src/core/lib/support/time_posix.c +176 -0
  478. data/src/core/lib/support/time_precise.c +89 -0
  479. data/src/core/lib/support/time_precise.h +42 -0
  480. data/src/core/lib/support/time_windows.c +116 -0
  481. data/src/core/lib/support/tls_pthread.c +45 -0
  482. data/src/core/lib/support/tmpfile.h +53 -0
  483. data/src/core/lib/support/tmpfile_msys.c +73 -0
  484. data/src/core/lib/support/tmpfile_posix.c +85 -0
  485. data/src/core/lib/support/tmpfile_windows.c +84 -0
  486. data/src/core/lib/support/wrap_memcpy.c +55 -0
  487. data/src/core/lib/surface/alarm.c +87 -0
  488. data/src/core/lib/surface/api_trace.c +36 -0
  489. data/src/core/lib/surface/api_trace.h +65 -0
  490. data/src/core/lib/surface/byte_buffer.c +103 -0
  491. data/src/core/lib/surface/byte_buffer_reader.c +140 -0
  492. data/src/core/lib/surface/call.c +1835 -0
  493. data/src/core/lib/surface/call.h +135 -0
  494. data/src/core/lib/surface/call_details.c +56 -0
  495. data/src/core/lib/surface/call_log_batch.c +131 -0
  496. data/src/core/lib/surface/call_test_only.h +64 -0
  497. data/src/core/lib/surface/channel.c +434 -0
  498. data/src/core/lib/surface/channel.h +99 -0
  499. data/src/core/lib/surface/channel_init.c +140 -0
  500. data/src/core/lib/surface/channel_init.h +96 -0
  501. data/src/core/lib/surface/channel_ping.c +80 -0
  502. data/src/core/lib/surface/channel_stack_type.c +54 -0
  503. data/src/core/lib/surface/channel_stack_type.h +58 -0
  504. data/src/core/lib/surface/completion_queue.c +692 -0
  505. data/src/core/lib/surface/completion_queue.h +102 -0
  506. data/src/core/lib/surface/completion_queue_factory.c +77 -0
  507. data/src/core/lib/surface/completion_queue_factory.h +51 -0
  508. data/src/core/lib/surface/event_string.c +81 -0
  509. data/src/core/lib/surface/event_string.h +42 -0
  510. data/src/core/lib/surface/init.c +261 -0
  511. data/src/core/lib/surface/init.h +42 -0
  512. data/src/core/lib/surface/init_secure.c +94 -0
  513. data/src/core/lib/surface/lame_client.c +188 -0
  514. data/src/core/lib/surface/lame_client.h +41 -0
  515. data/src/core/lib/surface/metadata_array.c +49 -0
  516. data/src/core/lib/surface/server.c +1529 -0
  517. data/src/core/lib/surface/server.h +71 -0
  518. data/src/core/lib/surface/validate_metadata.c +108 -0
  519. data/src/core/lib/surface/validate_metadata.h +43 -0
  520. data/src/core/lib/surface/version.c +41 -0
  521. data/src/core/lib/transport/bdp_estimator.c +104 -0
  522. data/src/core/lib/transport/bdp_estimator.h +76 -0
  523. data/src/core/lib/transport/byte_stream.c +81 -0
  524. data/src/core/lib/transport/byte_stream.h +85 -0
  525. data/src/core/lib/transport/connectivity_state.c +219 -0
  526. data/src/core/lib/transport/connectivity_state.h +101 -0
  527. data/src/core/lib/transport/error_utils.c +124 -0
  528. data/src/core/lib/transport/error_utils.h +56 -0
  529. data/src/core/lib/transport/http2_errors.h +56 -0
  530. data/src/core/lib/transport/metadata.c +529 -0
  531. data/src/core/lib/transport/metadata.h +186 -0
  532. data/src/core/lib/transport/metadata_batch.c +328 -0
  533. data/src/core/lib/transport/metadata_batch.h +166 -0
  534. data/src/core/lib/transport/pid_controller.c +78 -0
  535. data/src/core/lib/transport/pid_controller.h +77 -0
  536. data/src/core/lib/transport/service_config.c +266 -0
  537. data/src/core/lib/transport/service_config.h +77 -0
  538. data/src/core/lib/transport/static_metadata.c +801 -0
  539. data/src/core/lib/transport/static_metadata.h +557 -0
  540. data/src/core/lib/transport/status_conversion.c +113 -0
  541. data/src/core/lib/transport/status_conversion.h +49 -0
  542. data/src/core/lib/transport/timeout_encoding.c +190 -0
  543. data/src/core/lib/transport/timeout_encoding.h +49 -0
  544. data/src/core/lib/transport/transport.c +282 -0
  545. data/src/core/lib/transport/transport.h +354 -0
  546. data/src/core/lib/transport/transport_impl.h +90 -0
  547. data/src/core/lib/transport/transport_op_string.c +217 -0
  548. data/src/core/plugin_registry/grpc_plugin_registry.c +82 -0
  549. data/src/core/tsi/fake_transport_security.c +527 -0
  550. data/src/core/tsi/fake_transport_security.h +61 -0
  551. data/src/core/tsi/ssl_transport_security.c +1533 -0
  552. data/src/core/tsi/ssl_transport_security.h +214 -0
  553. data/src/core/tsi/ssl_types.h +55 -0
  554. data/src/core/tsi/transport_security.c +266 -0
  555. data/src/core/tsi/transport_security.h +111 -0
  556. data/src/core/tsi/transport_security_interface.h +353 -0
  557. data/src/ruby/bin/apis/google/protobuf/empty.rb +44 -0
  558. data/src/ruby/bin/apis/pubsub_demo.rb +256 -0
  559. data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +174 -0
  560. data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +103 -0
  561. data/src/ruby/bin/math_client.rb +147 -0
  562. data/src/ruby/bin/math_pb.rb +32 -0
  563. data/src/ruby/bin/math_server.rb +206 -0
  564. data/src/ruby/bin/math_services_pb.rb +66 -0
  565. data/src/ruby/bin/noproto_client.rb +108 -0
  566. data/src/ruby/bin/noproto_server.rb +112 -0
  567. data/src/ruby/ext/grpc/extconf.rb +131 -0
  568. data/src/ruby/ext/grpc/rb_byte_buffer.c +77 -0
  569. data/src/ruby/ext/grpc/rb_byte_buffer.h +50 -0
  570. data/src/ruby/ext/grpc/rb_call.c +1009 -0
  571. data/src/ruby/ext/grpc/rb_call.h +66 -0
  572. data/src/ruby/ext/grpc/rb_call_credentials.c +295 -0
  573. data/src/ruby/ext/grpc/rb_call_credentials.h +46 -0
  574. data/src/ruby/ext/grpc/rb_channel.c +662 -0
  575. data/src/ruby/ext/grpc/rb_channel.h +49 -0
  576. data/src/ruby/ext/grpc/rb_channel_args.c +168 -0
  577. data/src/ruby/ext/grpc/rb_channel_args.h +53 -0
  578. data/src/ruby/ext/grpc/rb_channel_credentials.c +268 -0
  579. data/src/ruby/ext/grpc/rb_channel_credentials.h +47 -0
  580. data/src/ruby/ext/grpc/rb_completion_queue.c +117 -0
  581. data/src/ruby/ext/grpc/rb_completion_queue.h +51 -0
  582. data/src/ruby/ext/grpc/rb_compression_options.c +472 -0
  583. data/src/ruby/ext/grpc/rb_compression_options.h +44 -0
  584. data/src/ruby/ext/grpc/rb_event_thread.c +158 -0
  585. data/src/ruby/ext/grpc/rb_event_thread.h +37 -0
  586. data/src/ruby/ext/grpc/rb_grpc.c +343 -0
  587. data/src/ruby/ext/grpc/rb_grpc.h +87 -0
  588. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +634 -0
  589. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +955 -0
  590. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  591. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  592. data/src/ruby/ext/grpc/rb_server.c +359 -0
  593. data/src/ruby/ext/grpc/rb_server.h +47 -0
  594. data/src/ruby/ext/grpc/rb_server_credentials.c +258 -0
  595. data/src/ruby/ext/grpc/rb_server_credentials.h +47 -0
  596. data/src/ruby/lib/grpc/core/time_consts.rb +71 -0
  597. data/src/ruby/lib/grpc/errors.rb +215 -0
  598. data/src/ruby/lib/grpc/generic/active_call.rb +547 -0
  599. data/src/ruby/lib/grpc/generic/bidi_call.rb +229 -0
  600. data/src/ruby/lib/grpc/generic/client_stub.rb +463 -0
  601. data/src/ruby/lib/grpc/generic/rpc_desc.rb +173 -0
  602. data/src/ruby/lib/grpc/generic/rpc_server.rb +476 -0
  603. data/src/ruby/lib/grpc/generic/service.rb +225 -0
  604. data/src/ruby/lib/grpc/grpc.rb +39 -0
  605. data/src/ruby/lib/grpc/grpc_c.bundle +0 -0
  606. data/src/ruby/lib/grpc/logconfig.rb +59 -0
  607. data/src/ruby/lib/grpc/notifier.rb +60 -0
  608. data/src/ruby/lib/grpc/version.rb +33 -0
  609. data/src/ruby/lib/grpc.rb +49 -0
  610. data/src/ruby/pb/README.md +42 -0
  611. data/src/ruby/pb/generate_proto_ruby.sh +58 -0
  612. data/src/ruby/pb/grpc/health/checker.rb +77 -0
  613. data/src/ruby/pb/grpc/health/v1/health_pb.rb +28 -0
  614. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +56 -0
  615. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +58 -0
  616. data/src/ruby/pb/grpc/testing/metrics_pb.rb +28 -0
  617. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +64 -0
  618. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +15 -0
  619. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +82 -0
  620. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +14 -0
  621. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +117 -0
  622. data/src/ruby/pb/test/client.rb +779 -0
  623. data/src/ruby/pb/test/server.rb +267 -0
  624. data/src/ruby/spec/call_credentials_spec.rb +57 -0
  625. data/src/ruby/spec/call_spec.rb +162 -0
  626. data/src/ruby/spec/channel_connection_spec.rb +141 -0
  627. data/src/ruby/spec/channel_credentials_spec.rb +97 -0
  628. data/src/ruby/spec/channel_spec.rb +205 -0
  629. data/src/ruby/spec/client_server_spec.rb +491 -0
  630. data/src/ruby/spec/compression_options_spec.rb +164 -0
  631. data/src/ruby/spec/error_sanity_spec.rb +64 -0
  632. data/src/ruby/spec/generic/active_call_spec.rb +632 -0
  633. data/src/ruby/spec/generic/client_stub_spec.rb +556 -0
  634. data/src/ruby/spec/generic/rpc_desc_spec.rb +351 -0
  635. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +142 -0
  636. data/src/ruby/spec/generic/rpc_server_spec.rb +524 -0
  637. data/src/ruby/spec/generic/service_spec.rb +276 -0
  638. data/src/ruby/spec/pb/duplicate/codegen_spec.rb +71 -0
  639. data/src/ruby/spec/pb/health/checker_spec.rb +222 -0
  640. data/src/ruby/spec/server_credentials_spec.rb +94 -0
  641. data/src/ruby/spec/server_spec.rb +205 -0
  642. data/src/ruby/spec/spec_helper.rb +71 -0
  643. data/src/ruby/spec/testdata/README +1 -0
  644. data/src/ruby/spec/testdata/ca.pem +15 -0
  645. data/src/ruby/spec/testdata/server1.key +16 -0
  646. data/src/ruby/spec/testdata/server1.pem +16 -0
  647. data/src/ruby/spec/time_consts_spec.rb +89 -0
  648. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  649. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  650. data/third_party/boringssl/crypto/aes/mode_wrappers.c +112 -0
  651. data/third_party/boringssl/crypto/asn1/a_bitstr.c +263 -0
  652. data/third_party/boringssl/crypto/asn1/a_bool.c +110 -0
  653. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +282 -0
  654. data/third_party/boringssl/crypto/asn1/a_dup.c +111 -0
  655. data/third_party/boringssl/crypto/asn1/a_enum.c +181 -0
  656. data/third_party/boringssl/crypto/asn1/a_gentm.c +256 -0
  657. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +147 -0
  658. data/third_party/boringssl/crypto/asn1/a_int.c +460 -0
  659. data/third_party/boringssl/crypto/asn1/a_mbstr.c +409 -0
  660. data/third_party/boringssl/crypto/asn1/a_object.c +400 -0
  661. data/third_party/boringssl/crypto/asn1/a_octet.c +77 -0
  662. data/third_party/boringssl/crypto/asn1/a_print.c +121 -0
  663. data/third_party/boringssl/crypto/asn1/a_strnid.c +309 -0
  664. data/third_party/boringssl/crypto/asn1/a_time.c +206 -0
  665. data/third_party/boringssl/crypto/asn1/a_type.c +151 -0
  666. data/third_party/boringssl/crypto/asn1/a_utctm.c +304 -0
  667. data/third_party/boringssl/crypto/asn1/a_utf8.c +234 -0
  668. data/third_party/boringssl/crypto/asn1/asn1_lib.c +483 -0
  669. data/third_party/boringssl/crypto/asn1/asn1_locl.h +63 -0
  670. data/third_party/boringssl/crypto/asn1/asn1_par.c +80 -0
  671. data/third_party/boringssl/crypto/asn1/asn_pack.c +105 -0
  672. data/third_party/boringssl/crypto/asn1/f_enum.c +93 -0
  673. data/third_party/boringssl/crypto/asn1/f_int.c +97 -0
  674. data/third_party/boringssl/crypto/asn1/f_string.c +91 -0
  675. data/third_party/boringssl/crypto/asn1/t_bitst.c +103 -0
  676. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1221 -0
  677. data/third_party/boringssl/crypto/asn1/tasn_enc.c +665 -0
  678. data/third_party/boringssl/crypto/asn1/tasn_fre.c +246 -0
  679. data/third_party/boringssl/crypto/asn1/tasn_new.c +381 -0
  680. data/third_party/boringssl/crypto/asn1/tasn_typ.c +131 -0
  681. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  682. data/third_party/boringssl/crypto/asn1/x_bignum.c +153 -0
  683. data/third_party/boringssl/crypto/asn1/x_long.c +197 -0
  684. data/third_party/boringssl/crypto/base64/base64.c +442 -0
  685. data/third_party/boringssl/crypto/bio/bio.c +598 -0
  686. data/third_party/boringssl/crypto/bio/bio_mem.c +328 -0
  687. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  688. data/third_party/boringssl/crypto/bio/connect.c +553 -0
  689. data/third_party/boringssl/crypto/bio/fd.c +277 -0
  690. data/third_party/boringssl/crypto/bio/file.c +313 -0
  691. data/third_party/boringssl/crypto/bio/hexdump.c +191 -0
  692. data/third_party/boringssl/crypto/bio/internal.h +111 -0
  693. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  694. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  695. data/third_party/boringssl/crypto/bio/socket.c +203 -0
  696. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  697. data/third_party/boringssl/crypto/bn/add.c +377 -0
  698. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +531 -0
  699. data/third_party/boringssl/crypto/bn/bn.c +379 -0
  700. data/third_party/boringssl/crypto/bn/bn_asn1.c +80 -0
  701. data/third_party/boringssl/crypto/bn/cmp.c +225 -0
  702. data/third_party/boringssl/crypto/bn/convert.c +599 -0
  703. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  704. data/third_party/boringssl/crypto/bn/div.c +671 -0
  705. data/third_party/boringssl/crypto/bn/exponentiation.c +1258 -0
  706. data/third_party/boringssl/crypto/bn/gcd.c +628 -0
  707. data/third_party/boringssl/crypto/bn/generic.c +703 -0
  708. data/third_party/boringssl/crypto/bn/internal.h +245 -0
  709. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  710. data/third_party/boringssl/crypto/bn/montgomery.c +410 -0
  711. data/third_party/boringssl/crypto/bn/montgomery_inv.c +160 -0
  712. data/third_party/boringssl/crypto/bn/mul.c +869 -0
  713. data/third_party/boringssl/crypto/bn/prime.c +861 -0
  714. data/third_party/boringssl/crypto/bn/random.c +340 -0
  715. data/third_party/boringssl/crypto/bn/rsaz_exp.c +319 -0
  716. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  717. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  718. data/third_party/boringssl/crypto/bn/sqrt.c +504 -0
  719. data/third_party/boringssl/crypto/buf/buf.c +239 -0
  720. data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
  721. data/third_party/boringssl/crypto/bytestring/ber.c +263 -0
  722. data/third_party/boringssl/crypto/bytestring/cbb.c +473 -0
  723. data/third_party/boringssl/crypto/bytestring/cbs.c +439 -0
  724. data/third_party/boringssl/crypto/bytestring/internal.h +75 -0
  725. data/third_party/boringssl/crypto/chacha/chacha.c +167 -0
  726. data/third_party/boringssl/crypto/cipher/aead.c +156 -0
  727. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  728. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  729. data/third_party/boringssl/crypto/cipher/e_aes.c +1717 -0
  730. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +300 -0
  731. data/third_party/boringssl/crypto/cipher/e_des.c +205 -0
  732. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  733. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  734. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  735. data/third_party/boringssl/crypto/cipher/e_ssl3.c +403 -0
  736. data/third_party/boringssl/crypto/cipher/e_tls.c +602 -0
  737. data/third_party/boringssl/crypto/cipher/internal.h +162 -0
  738. data/third_party/boringssl/crypto/cipher/tls_cbc.c +553 -0
  739. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  740. data/third_party/boringssl/crypto/conf/conf.c +788 -0
  741. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  742. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  743. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +61 -0
  744. data/third_party/boringssl/crypto/cpu-arm-linux.c +360 -0
  745. data/third_party/boringssl/crypto/cpu-arm.c +38 -0
  746. data/third_party/boringssl/crypto/cpu-intel.c +263 -0
  747. data/third_party/boringssl/crypto/cpu-ppc64le.c +40 -0
  748. data/third_party/boringssl/crypto/crypto.c +164 -0
  749. data/third_party/boringssl/crypto/curve25519/curve25519.c +4944 -0
  750. data/third_party/boringssl/crypto/curve25519/internal.h +109 -0
  751. data/third_party/boringssl/crypto/curve25519/spake25519.c +464 -0
  752. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +246 -0
  753. data/third_party/boringssl/crypto/des/des.c +771 -0
  754. data/third_party/boringssl/crypto/des/internal.h +212 -0
  755. data/third_party/boringssl/crypto/dh/check.c +218 -0
  756. data/third_party/boringssl/crypto/dh/dh.c +487 -0
  757. data/third_party/boringssl/crypto/dh/dh_asn1.c +160 -0
  758. data/third_party/boringssl/crypto/dh/params.c +253 -0
  759. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  760. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  761. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  762. data/third_party/boringssl/crypto/digest/md32_common.h +262 -0
  763. data/third_party/boringssl/crypto/dsa/dsa.c +964 -0
  764. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +339 -0
  765. data/third_party/boringssl/crypto/ec/ec.c +847 -0
  766. data/third_party/boringssl/crypto/ec/ec_asn1.c +549 -0
  767. data/third_party/boringssl/crypto/ec/ec_key.c +479 -0
  768. data/third_party/boringssl/crypto/ec/ec_montgomery.c +308 -0
  769. data/third_party/boringssl/crypto/ec/internal.h +276 -0
  770. data/third_party/boringssl/crypto/ec/oct.c +428 -0
  771. data/third_party/boringssl/crypto/ec/p224-64.c +1187 -0
  772. data/third_party/boringssl/crypto/ec/p256-64.c +1741 -0
  773. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9543 -0
  774. data/third_party/boringssl/crypto/ec/p256-x86_64.c +574 -0
  775. data/third_party/boringssl/crypto/ec/simple.c +1117 -0
  776. data/third_party/boringssl/crypto/ec/util-64.c +109 -0
  777. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  778. data/third_party/boringssl/crypto/ecdh/ecdh.c +159 -0
  779. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +478 -0
  780. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +227 -0
  781. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  782. data/third_party/boringssl/crypto/err/err.c +756 -0
  783. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  784. data/third_party/boringssl/crypto/evp/evp.c +367 -0
  785. data/third_party/boringssl/crypto/evp/evp_asn1.c +337 -0
  786. data/third_party/boringssl/crypto/evp/evp_ctx.c +448 -0
  787. data/third_party/boringssl/crypto/evp/internal.h +237 -0
  788. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +268 -0
  789. data/third_party/boringssl/crypto/evp/p_ec.c +236 -0
  790. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +257 -0
  791. data/third_party/boringssl/crypto/evp/p_rsa.c +673 -0
  792. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +200 -0
  793. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  794. data/third_party/boringssl/crypto/evp/print.c +520 -0
  795. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  796. data/third_party/boringssl/crypto/ex_data.c +292 -0
  797. data/third_party/boringssl/crypto/hkdf/hkdf.c +110 -0
  798. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  799. data/third_party/boringssl/crypto/internal.h +527 -0
  800. data/third_party/boringssl/crypto/lhash/lhash.c +342 -0
  801. data/third_party/boringssl/crypto/md4/md4.c +234 -0
  802. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  803. data/third_party/boringssl/crypto/mem.c +200 -0
  804. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  805. data/third_party/boringssl/crypto/modes/cfb.c +230 -0
  806. data/third_party/boringssl/crypto/modes/ctr.c +219 -0
  807. data/third_party/boringssl/crypto/modes/gcm.c +1288 -0
  808. data/third_party/boringssl/crypto/modes/internal.h +358 -0
  809. data/third_party/boringssl/crypto/modes/ofb.c +95 -0
  810. data/third_party/boringssl/crypto/newhope/error_correction.c +131 -0
  811. data/third_party/boringssl/crypto/newhope/internal.h +71 -0
  812. data/third_party/boringssl/crypto/newhope/newhope.c +174 -0
  813. data/third_party/boringssl/crypto/newhope/ntt.c +148 -0
  814. data/third_party/boringssl/crypto/newhope/poly.c +183 -0
  815. data/third_party/boringssl/crypto/newhope/precomp.c +306 -0
  816. data/third_party/boringssl/crypto/newhope/reduce.c +42 -0
  817. data/third_party/boringssl/crypto/obj/obj.c +640 -0
  818. data/third_party/boringssl/crypto/obj/obj_dat.h +5254 -0
  819. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  820. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  821. data/third_party/boringssl/crypto/pem/pem_all.c +262 -0
  822. data/third_party/boringssl/crypto/pem/pem_info.c +381 -0
  823. data/third_party/boringssl/crypto/pem/pem_lib.c +778 -0
  824. data/third_party/boringssl/crypto/pem/pem_oth.c +88 -0
  825. data/third_party/boringssl/crypto/pem/pem_pk8.c +257 -0
  826. data/third_party/boringssl/crypto/pem/pem_pkey.c +227 -0
  827. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  828. data/third_party/boringssl/crypto/pem/pem_xaux.c +67 -0
  829. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  830. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +151 -0
  831. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +441 -0
  832. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  833. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1219 -0
  834. data/third_party/boringssl/crypto/poly1305/internal.h +40 -0
  835. data/third_party/boringssl/crypto/poly1305/poly1305.c +324 -0
  836. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +304 -0
  837. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +890 -0
  838. data/third_party/boringssl/crypto/rand/deterministic.c +47 -0
  839. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  840. data/third_party/boringssl/crypto/rand/rand.c +244 -0
  841. data/third_party/boringssl/crypto/rand/urandom.c +221 -0
  842. data/third_party/boringssl/crypto/rand/windows.c +53 -0
  843. data/third_party/boringssl/crypto/rc4/rc4.c +98 -0
  844. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  845. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  846. data/third_party/boringssl/crypto/rsa/blinding.c +264 -0
  847. data/third_party/boringssl/crypto/rsa/internal.h +148 -0
  848. data/third_party/boringssl/crypto/rsa/padding.c +708 -0
  849. data/third_party/boringssl/crypto/rsa/rsa.c +830 -0
  850. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +446 -0
  851. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1139 -0
  852. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  853. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  854. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  855. data/third_party/boringssl/crypto/stack/stack.c +377 -0
  856. data/third_party/boringssl/crypto/thread.c +110 -0
  857. data/third_party/boringssl/crypto/thread_none.c +59 -0
  858. data/third_party/boringssl/crypto/thread_pthread.c +176 -0
  859. data/third_party/boringssl/crypto/thread_win.c +237 -0
  860. data/third_party/boringssl/crypto/time_support.c +206 -0
  861. data/third_party/boringssl/crypto/x509/a_digest.c +96 -0
  862. data/third_party/boringssl/crypto/x509/a_sign.c +135 -0
  863. data/third_party/boringssl/crypto/x509/a_strex.c +633 -0
  864. data/third_party/boringssl/crypto/x509/a_verify.c +127 -0
  865. data/third_party/boringssl/crypto/x509/algorithm.c +137 -0
  866. data/third_party/boringssl/crypto/x509/asn1_gen.c +818 -0
  867. data/third_party/boringssl/crypto/x509/by_dir.c +453 -0
  868. data/third_party/boringssl/crypto/x509/by_file.c +275 -0
  869. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  870. data/third_party/boringssl/crypto/x509/i2d_pr.c +83 -0
  871. data/third_party/boringssl/crypto/x509/internal.h +66 -0
  872. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  873. data/third_party/boringssl/crypto/x509/rsa_pss.c +385 -0
  874. data/third_party/boringssl/crypto/x509/t_crl.c +128 -0
  875. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  876. data/third_party/boringssl/crypto/x509/t_x509.c +506 -0
  877. data/third_party/boringssl/crypto/x509/t_x509a.c +111 -0
  878. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  879. data/third_party/boringssl/crypto/x509/x509.c +157 -0
  880. data/third_party/boringssl/crypto/x509/x509_att.c +381 -0
  881. data/third_party/boringssl/crypto/x509/x509_cmp.c +474 -0
  882. data/third_party/boringssl/crypto/x509/x509_d2.c +106 -0
  883. data/third_party/boringssl/crypto/x509/x509_def.c +98 -0
  884. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  885. data/third_party/boringssl/crypto/x509/x509_lu.c +690 -0
  886. data/third_party/boringssl/crypto/x509/x509_obj.c +197 -0
  887. data/third_party/boringssl/crypto/x509/x509_r2x.c +117 -0
  888. data/third_party/boringssl/crypto/x509/x509_req.c +322 -0
  889. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  890. data/third_party/boringssl/crypto/x509/x509_trs.c +326 -0
  891. data/third_party/boringssl/crypto/x509/x509_txt.c +211 -0
  892. data/third_party/boringssl/crypto/x509/x509_v3.c +278 -0
  893. data/third_party/boringssl/crypto/x509/x509_vfy.c +2436 -0
  894. data/third_party/boringssl/crypto/x509/x509_vpm.c +647 -0
  895. data/third_party/boringssl/crypto/x509/x509cset.c +170 -0
  896. data/third_party/boringssl/crypto/x509/x509name.c +386 -0
  897. data/third_party/boringssl/crypto/x509/x509rset.c +81 -0
  898. data/third_party/boringssl/crypto/x509/x509spki.c +137 -0
  899. data/third_party/boringssl/crypto/x509/x509type.c +126 -0
  900. data/third_party/boringssl/crypto/x509/x_algor.c +151 -0
  901. data/third_party/boringssl/crypto/x509/x_all.c +501 -0
  902. data/third_party/boringssl/crypto/x509/x_attrib.c +111 -0
  903. data/third_party/boringssl/crypto/x509/x_crl.c +539 -0
  904. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  905. data/third_party/boringssl/crypto/x509/x_info.c +98 -0
  906. data/third_party/boringssl/crypto/x509/x_name.c +534 -0
  907. data/third_party/boringssl/crypto/x509/x_pkey.c +103 -0
  908. data/third_party/boringssl/crypto/x509/x_pubkey.c +368 -0
  909. data/third_party/boringssl/crypto/x509/x_req.c +109 -0
  910. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  911. data/third_party/boringssl/crypto/x509/x_spki.c +80 -0
  912. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  913. data/third_party/boringssl/crypto/x509/x_x509.c +289 -0
  914. data/third_party/boringssl/crypto/x509/x_x509a.c +205 -0
  915. data/third_party/boringssl/crypto/x509v3/ext_dat.h +135 -0
  916. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +284 -0
  917. data/third_party/boringssl/crypto/x509v3/pcy_data.c +130 -0
  918. data/third_party/boringssl/crypto/x509v3/pcy_int.h +217 -0
  919. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +164 -0
  920. data/third_party/boringssl/crypto/x509v3/pcy_map.c +130 -0
  921. data/third_party/boringssl/crypto/x509v3/pcy_node.c +188 -0
  922. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +829 -0
  923. data/third_party/boringssl/crypto/x509v3/v3_akey.c +204 -0
  924. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +72 -0
  925. data/third_party/boringssl/crypto/x509v3/v3_alt.c +614 -0
  926. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +133 -0
  927. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  928. data/third_party/boringssl/crypto/x509v3/v3_conf.c +462 -0
  929. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +496 -0
  930. data/third_party/boringssl/crypto/x509v3/v3_crld.c +561 -0
  931. data/third_party/boringssl/crypto/x509v3/v3_enum.c +100 -0
  932. data/third_party/boringssl/crypto/x509v3/v3_extku.c +148 -0
  933. data/third_party/boringssl/crypto/x509v3/v3_genn.c +250 -0
  934. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +119 -0
  935. data/third_party/boringssl/crypto/x509v3/v3_info.c +212 -0
  936. data/third_party/boringssl/crypto/x509v3/v3_int.c +91 -0
  937. data/third_party/boringssl/crypto/x509v3/v3_lib.c +362 -0
  938. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +482 -0
  939. data/third_party/boringssl/crypto/x509v3/v3_pci.c +317 -0
  940. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +57 -0
  941. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +139 -0
  942. data/third_party/boringssl/crypto/x509v3/v3_pku.c +110 -0
  943. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +154 -0
  944. data/third_party/boringssl/crypto/x509v3/v3_prn.c +229 -0
  945. data/third_party/boringssl/crypto/x509v3/v3_purp.c +874 -0
  946. data/third_party/boringssl/crypto/x509v3/v3_skey.c +152 -0
  947. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +274 -0
  948. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1327 -0
  949. data/third_party/boringssl/include/openssl/aead.h +345 -0
  950. data/third_party/boringssl/include/openssl/aes.h +158 -0
  951. data/third_party/boringssl/include/openssl/arm_arch.h +121 -0
  952. data/third_party/boringssl/include/openssl/asn1.h +1038 -0
  953. data/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  954. data/third_party/boringssl/include/openssl/asn1t.h +896 -0
  955. data/third_party/boringssl/include/openssl/base.h +412 -0
  956. data/third_party/boringssl/include/openssl/base64.h +187 -0
  957. data/third_party/boringssl/include/openssl/bio.h +926 -0
  958. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  959. data/third_party/boringssl/include/openssl/bn.h +955 -0
  960. data/third_party/boringssl/include/openssl/buf.h +133 -0
  961. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  962. data/third_party/boringssl/include/openssl/bytestring.h +437 -0
  963. data/third_party/boringssl/include/openssl/cast.h +96 -0
  964. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  965. data/third_party/boringssl/include/openssl/cipher.h +588 -0
  966. data/third_party/boringssl/include/openssl/cmac.h +87 -0
  967. data/third_party/boringssl/include/openssl/conf.h +181 -0
  968. data/third_party/boringssl/include/openssl/cpu.h +181 -0
  969. data/third_party/boringssl/include/openssl/crypto.h +94 -0
  970. data/third_party/boringssl/include/openssl/curve25519.h +183 -0
  971. data/third_party/boringssl/include/openssl/des.h +177 -0
  972. data/third_party/boringssl/include/openssl/dh.h +297 -0
  973. data/third_party/boringssl/include/openssl/digest.h +285 -0
  974. data/third_party/boringssl/include/openssl/dsa.h +436 -0
  975. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  976. data/third_party/boringssl/include/openssl/ec.h +406 -0
  977. data/third_party/boringssl/include/openssl/ec_key.h +337 -0
  978. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  979. data/third_party/boringssl/include/openssl/ecdsa.h +217 -0
  980. data/third_party/boringssl/include/openssl/engine.h +109 -0
  981. data/third_party/boringssl/include/openssl/err.h +488 -0
  982. data/third_party/boringssl/include/openssl/evp.h +797 -0
  983. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  984. data/third_party/boringssl/include/openssl/hkdf.h +64 -0
  985. data/third_party/boringssl/include/openssl/hmac.h +174 -0
  986. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  987. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  988. data/third_party/boringssl/include/openssl/md4.h +106 -0
  989. data/third_party/boringssl/include/openssl/md5.h +107 -0
  990. data/third_party/boringssl/include/openssl/mem.h +150 -0
  991. data/third_party/boringssl/include/openssl/newhope.h +158 -0
  992. data/third_party/boringssl/include/openssl/nid.h +4166 -0
  993. data/third_party/boringssl/include/openssl/obj.h +226 -0
  994. data/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  995. data/third_party/boringssl/include/openssl/objects.h +18 -0
  996. data/third_party/boringssl/include/openssl/opensslconf.h +60 -0
  997. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  998. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  999. data/third_party/boringssl/include/openssl/pem.h +517 -0
  1000. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  1001. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  1002. data/third_party/boringssl/include/openssl/pkcs8.h +236 -0
  1003. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  1004. data/third_party/boringssl/include/openssl/rand.h +122 -0
  1005. data/third_party/boringssl/include/openssl/rc4.h +96 -0
  1006. data/third_party/boringssl/include/openssl/ripemd.h +107 -0
  1007. data/third_party/boringssl/include/openssl/rsa.h +699 -0
  1008. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  1009. data/third_party/boringssl/include/openssl/sha.h +260 -0
  1010. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  1011. data/third_party/boringssl/include/openssl/ssl.h +4826 -0
  1012. data/third_party/boringssl/include/openssl/ssl3.h +434 -0
  1013. data/third_party/boringssl/include/openssl/stack.h +293 -0
  1014. data/third_party/boringssl/include/openssl/stack_macros.h +3902 -0
  1015. data/third_party/boringssl/include/openssl/thread.h +191 -0
  1016. data/third_party/boringssl/include/openssl/time_support.h +91 -0
  1017. data/third_party/boringssl/include/openssl/tls1.h +657 -0
  1018. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  1019. data/third_party/boringssl/include/openssl/x509.h +1299 -0
  1020. data/third_party/boringssl/include/openssl/x509_vfy.h +618 -0
  1021. data/third_party/boringssl/include/openssl/x509v3.h +819 -0
  1022. data/third_party/boringssl/ssl/custom_extensions.c +255 -0
  1023. data/third_party/boringssl/ssl/d1_both.c +845 -0
  1024. data/third_party/boringssl/ssl/d1_lib.c +270 -0
  1025. data/third_party/boringssl/ssl/d1_pkt.c +419 -0
  1026. data/third_party/boringssl/ssl/d1_srtp.c +236 -0
  1027. data/third_party/boringssl/ssl/dtls_method.c +203 -0
  1028. data/third_party/boringssl/ssl/dtls_record.c +309 -0
  1029. data/third_party/boringssl/ssl/handshake_client.c +2002 -0
  1030. data/third_party/boringssl/ssl/handshake_server.c +1932 -0
  1031. data/third_party/boringssl/ssl/internal.h +1551 -0
  1032. data/third_party/boringssl/ssl/s3_both.c +745 -0
  1033. data/third_party/boringssl/ssl/s3_enc.c +412 -0
  1034. data/third_party/boringssl/ssl/s3_lib.c +336 -0
  1035. data/third_party/boringssl/ssl/s3_pkt.c +497 -0
  1036. data/third_party/boringssl/ssl/ssl_aead_ctx.c +329 -0
  1037. data/third_party/boringssl/ssl/ssl_asn1.c +748 -0
  1038. data/third_party/boringssl/ssl/ssl_buffer.c +311 -0
  1039. data/third_party/boringssl/ssl/ssl_cert.c +814 -0
  1040. data/third_party/boringssl/ssl/ssl_cipher.c +2062 -0
  1041. data/third_party/boringssl/ssl/ssl_ecdh.c +610 -0
  1042. data/third_party/boringssl/ssl/ssl_file.c +586 -0
  1043. data/third_party/boringssl/ssl/ssl_lib.c +3063 -0
  1044. data/third_party/boringssl/ssl/ssl_rsa.c +793 -0
  1045. data/third_party/boringssl/ssl/ssl_session.c +985 -0
  1046. data/third_party/boringssl/ssl/ssl_stat.c +509 -0
  1047. data/third_party/boringssl/ssl/t1_enc.c +547 -0
  1048. data/third_party/boringssl/ssl/t1_lib.c +3279 -0
  1049. data/third_party/boringssl/ssl/tls13_both.c +440 -0
  1050. data/third_party/boringssl/ssl/tls13_client.c +682 -0
  1051. data/third_party/boringssl/ssl/tls13_enc.c +391 -0
  1052. data/third_party/boringssl/ssl/tls13_server.c +672 -0
  1053. data/third_party/boringssl/ssl/tls_method.c +245 -0
  1054. data/third_party/boringssl/ssl/tls_record.c +461 -0
  1055. data/third_party/cares/ares_build.h +264 -0
  1056. data/third_party/cares/cares/ares.h +636 -0
  1057. data/third_party/cares/cares/ares__close_sockets.c +61 -0
  1058. data/third_party/cares/cares/ares__get_hostent.c +261 -0
  1059. data/third_party/cares/cares/ares__read_line.c +73 -0
  1060. data/third_party/cares/cares/ares__timeval.c +111 -0
  1061. data/third_party/cares/cares/ares_cancel.c +63 -0
  1062. data/third_party/cares/cares/ares_create_query.c +202 -0
  1063. data/third_party/cares/cares/ares_data.c +221 -0
  1064. data/third_party/cares/cares/ares_data.h +72 -0
  1065. data/third_party/cares/cares/ares_destroy.c +108 -0
  1066. data/third_party/cares/cares/ares_dns.h +103 -0
  1067. data/third_party/cares/cares/ares_expand_name.c +205 -0
  1068. data/third_party/cares/cares/ares_expand_string.c +70 -0
  1069. data/third_party/cares/cares/ares_fds.c +59 -0
  1070. data/third_party/cares/cares/ares_free_hostent.c +41 -0
  1071. data/third_party/cares/cares/ares_free_string.c +25 -0
  1072. data/third_party/cares/cares/ares_getenv.c +30 -0
  1073. data/third_party/cares/cares/ares_getenv.h +26 -0
  1074. data/third_party/cares/cares/ares_gethostbyaddr.c +294 -0
  1075. data/third_party/cares/cares/ares_gethostbyname.c +518 -0
  1076. data/third_party/cares/cares/ares_getnameinfo.c +422 -0
  1077. data/third_party/cares/cares/ares_getopt.c +122 -0
  1078. data/third_party/cares/cares/ares_getopt.h +53 -0
  1079. data/third_party/cares/cares/ares_getsock.c +66 -0
  1080. data/third_party/cares/cares/ares_inet_net_pton.h +25 -0
  1081. data/third_party/cares/cares/ares_init.c +2146 -0
  1082. data/third_party/cares/cares/ares_iphlpapi.h +221 -0
  1083. data/third_party/cares/cares/ares_ipv6.h +78 -0
  1084. data/third_party/cares/cares/ares_library_init.c +167 -0
  1085. data/third_party/cares/cares/ares_library_init.h +42 -0
  1086. data/third_party/cares/cares/ares_llist.c +63 -0
  1087. data/third_party/cares/cares/ares_llist.h +39 -0
  1088. data/third_party/cares/cares/ares_mkquery.c +24 -0
  1089. data/third_party/cares/cares/ares_nowarn.c +260 -0
  1090. data/third_party/cares/cares/ares_nowarn.h +61 -0
  1091. data/third_party/cares/cares/ares_options.c +402 -0
  1092. data/third_party/cares/cares/ares_parse_a_reply.c +264 -0
  1093. data/third_party/cares/cares/ares_parse_aaaa_reply.c +264 -0
  1094. data/third_party/cares/cares/ares_parse_mx_reply.c +170 -0
  1095. data/third_party/cares/cares/ares_parse_naptr_reply.c +188 -0
  1096. data/third_party/cares/cares/ares_parse_ns_reply.c +183 -0
  1097. data/third_party/cares/cares/ares_parse_ptr_reply.c +219 -0
  1098. data/third_party/cares/cares/ares_parse_soa_reply.c +133 -0
  1099. data/third_party/cares/cares/ares_parse_srv_reply.c +179 -0
  1100. data/third_party/cares/cares/ares_parse_txt_reply.c +220 -0
  1101. data/third_party/cares/cares/ares_platform.c +11035 -0
  1102. data/third_party/cares/cares/ares_platform.h +43 -0
  1103. data/third_party/cares/cares/ares_private.h +363 -0
  1104. data/third_party/cares/cares/ares_process.c +1359 -0
  1105. data/third_party/cares/cares/ares_query.c +186 -0
  1106. data/third_party/cares/cares/ares_rules.h +125 -0
  1107. data/third_party/cares/cares/ares_search.c +316 -0
  1108. data/third_party/cares/cares/ares_send.c +131 -0
  1109. data/third_party/cares/cares/ares_setup.h +217 -0
  1110. data/third_party/cares/cares/ares_strcasecmp.c +66 -0
  1111. data/third_party/cares/cares/ares_strcasecmp.h +30 -0
  1112. data/third_party/cares/cares/ares_strdup.c +49 -0
  1113. data/third_party/cares/cares/ares_strdup.h +24 -0
  1114. data/third_party/cares/cares/ares_strerror.c +56 -0
  1115. data/third_party/cares/cares/ares_timeout.c +88 -0
  1116. data/third_party/cares/cares/ares_version.c +11 -0
  1117. data/third_party/cares/cares/ares_version.h +24 -0
  1118. data/third_party/cares/cares/ares_writev.c +79 -0
  1119. data/third_party/cares/cares/bitncmp.c +59 -0
  1120. data/third_party/cares/cares/bitncmp.h +26 -0
  1121. data/third_party/cares/cares/config-win32.h +377 -0
  1122. data/third_party/cares/cares/inet_net_pton.c +450 -0
  1123. data/third_party/cares/cares/inet_ntop.c +208 -0
  1124. data/third_party/cares/cares/setup_once.h +554 -0
  1125. data/third_party/cares/cares/windows_port.c +22 -0
  1126. data/third_party/cares/config_darwin/ares_config.h +523 -0
  1127. data/third_party/cares/config_linux/ares_config.h +524 -0
  1128. data/third_party/nanopb/pb.h +579 -0
  1129. data/third_party/nanopb/pb_common.c +97 -0
  1130. data/third_party/nanopb/pb_common.h +42 -0
  1131. data/third_party/nanopb/pb_decode.c +1347 -0
  1132. data/third_party/nanopb/pb_decode.h +149 -0
  1133. data/third_party/nanopb/pb_encode.c +696 -0
  1134. data/third_party/nanopb/pb_encode.h +154 -0
  1135. data/third_party/zlib/adler32.c +179 -0
  1136. data/third_party/zlib/compress.c +80 -0
  1137. data/third_party/zlib/crc32.c +425 -0
  1138. data/third_party/zlib/crc32.h +441 -0
  1139. data/third_party/zlib/deflate.c +1967 -0
  1140. data/third_party/zlib/deflate.h +346 -0
  1141. data/third_party/zlib/gzclose.c +25 -0
  1142. data/third_party/zlib/gzguts.h +209 -0
  1143. data/third_party/zlib/gzlib.c +634 -0
  1144. data/third_party/zlib/gzread.c +594 -0
  1145. data/third_party/zlib/gzwrite.c +577 -0
  1146. data/third_party/zlib/infback.c +640 -0
  1147. data/third_party/zlib/inffast.c +340 -0
  1148. data/third_party/zlib/inffast.h +11 -0
  1149. data/third_party/zlib/inffixed.h +94 -0
  1150. data/third_party/zlib/inflate.c +1512 -0
  1151. data/third_party/zlib/inflate.h +122 -0
  1152. data/third_party/zlib/inftrees.c +306 -0
  1153. data/third_party/zlib/inftrees.h +62 -0
  1154. data/third_party/zlib/trees.c +1226 -0
  1155. data/third_party/zlib/trees.h +128 -0
  1156. data/third_party/zlib/uncompr.c +59 -0
  1157. data/third_party/zlib/zconf.h +511 -0
  1158. data/third_party/zlib/zlib.h +1768 -0
  1159. data/third_party/zlib/zutil.c +324 -0
  1160. data/third_party/zlib/zutil.h +253 -0
  1161. metadata +1397 -0
@@ -0,0 +1,114 @@
1
+ /*
2
+ *
3
+ * Copyright 2016, Google Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are
8
+ * met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following disclaimer
14
+ * in the documentation and/or other materials provided with the
15
+ * distribution.
16
+ * * Neither the name of Google Inc. nor the names of its
17
+ * contributors may be used to endorse or promote products derived from
18
+ * this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ #ifndef GRPC_GRPC_SECURITY_CONSTANTS_H
35
+ #define GRPC_GRPC_SECURITY_CONSTANTS_H
36
+
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ #define GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME "transport_security_type"
42
+ #define GRPC_SSL_TRANSPORT_SECURITY_TYPE "ssl"
43
+
44
+ #define GRPC_X509_CN_PROPERTY_NAME "x509_common_name"
45
+ #define GRPC_X509_SAN_PROPERTY_NAME "x509_subject_alternative_name"
46
+ #define GRPC_X509_PEM_CERT_PROPERTY_NAME "x509_pem_cert"
47
+
48
+ /* Environment variable that points to the default SSL roots file. This file
49
+ must be a PEM encoded file with all the roots such as the one that can be
50
+ downloaded from https://pki.google.com/roots.pem. */
51
+ #define GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR \
52
+ "GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"
53
+
54
+ /* Environment variable that points to the google default application
55
+ credentials json key or refresh token. Used in the
56
+ grpc_google_default_credentials_create function. */
57
+ #define GRPC_GOOGLE_CREDENTIALS_ENV_VAR "GOOGLE_APPLICATION_CREDENTIALS"
58
+
59
+ /* Results for the SSL roots override callback. */
60
+ typedef enum {
61
+ GRPC_SSL_ROOTS_OVERRIDE_OK,
62
+ GRPC_SSL_ROOTS_OVERRIDE_FAIL_PERMANENTLY, /* Do not try fallback options. */
63
+ GRPC_SSL_ROOTS_OVERRIDE_FAIL
64
+ } grpc_ssl_roots_override_result;
65
+
66
+ typedef enum {
67
+ /* Server does not request client certificate. A client can present a self
68
+ signed or signed certificates if it wishes to do so and they would be
69
+ accepted. */
70
+ GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE,
71
+ /* Server requests client certificate but does not enforce that the client
72
+ presents a certificate.
73
+
74
+ If the client presents a certificate, the client authentication is left to
75
+ the application based on the metadata like certificate etc.
76
+
77
+ The key cert pair should still be valid for the SSL connection to be
78
+ established. */
79
+ GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY,
80
+ /* Server requests client certificate but does not enforce that the client
81
+ presents a certificate.
82
+
83
+ If the client presents a certificate, the client authentication is done by
84
+ grpc framework (The client needs to either present a signed cert or skip no
85
+ certificate for a successful connection).
86
+
87
+ The key cert pair should still be valid for the SSL connection to be
88
+ established. */
89
+ GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY,
90
+ /* Server requests client certificate but enforces that the client presents a
91
+ certificate.
92
+
93
+ If the client presents a certificate, the client authentication is left to
94
+ the application based on the metadata like certificate etc.
95
+
96
+ The key cert pair should still be valid for the SSL connection to be
97
+ established. */
98
+ GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY,
99
+ /* Server requests client certificate but enforces that the client presents a
100
+ certificate.
101
+
102
+ The cerificate presented by the client is verified by grpc framework (The
103
+ client needs to present signed certs for a successful connection).
104
+
105
+ The key cert pair should still be valid for the SSL connection to be
106
+ established. */
107
+ GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY
108
+ } grpc_ssl_client_certificate_request_type;
109
+
110
+ #ifdef __cplusplus
111
+ }
112
+ #endif
113
+
114
+ #endif /* GRPC_GRPC_SECURITY_CONSTANTS_H */
@@ -0,0 +1,100 @@
1
+ /*
2
+ *
3
+ * Copyright 2015, Google Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are
8
+ * met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following disclaimer
14
+ * in the documentation and/or other materials provided with the
15
+ * distribution.
16
+ * * Neither the name of Google Inc. nor the names of its
17
+ * contributors may be used to endorse or promote products derived from
18
+ * this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ #ifndef GRPC_IMPL_CODEGEN_ATM_H
35
+ #define GRPC_IMPL_CODEGEN_ATM_H
36
+
37
+ /* This interface provides atomic operations and barriers.
38
+ It is internal to gpr support code and should not be used outside it.
39
+
40
+ If an operation with acquire semantics precedes another memory access by the
41
+ same thread, the operation will precede that other access as seen by other
42
+ threads.
43
+
44
+ If an operation with release semantics follows another memory access by the
45
+ same thread, the operation will follow that other access as seen by other
46
+ threads.
47
+
48
+ Routines with "acq" or "full" in the name have acquire semantics. Routines
49
+ with "rel" or "full" in the name have release semantics. Routines with
50
+ "no_barrier" in the name have neither acquire not release semantics.
51
+
52
+ The routines may be implemented as macros.
53
+
54
+ // Atomic operations act on an intergral_type gpr_atm that is guaranteed to
55
+ // be the same size as a pointer.
56
+ typedef intptr_t gpr_atm;
57
+
58
+ // A memory barrier, providing both acquire and release semantics, but not
59
+ // otherwise acting on memory.
60
+ void gpr_atm_full_barrier(void);
61
+
62
+ // Atomically return *p, with acquire semantics.
63
+ gpr_atm gpr_atm_acq_load(gpr_atm *p);
64
+
65
+ // Atomically set *p = value, with release semantics.
66
+ void gpr_atm_rel_store(gpr_atm *p, gpr_atm value);
67
+
68
+ // Atomically add delta to *p, and return the old value of *p, with
69
+ // the barriers specified.
70
+ gpr_atm gpr_atm_no_barrier_fetch_add(gpr_atm *p, gpr_atm delta);
71
+ gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta);
72
+
73
+ // Atomically, if *p==o, set *p=n and return non-zero otherwise return 0,
74
+ // with the barriers specified if the operation succeeds.
75
+ int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n);
76
+ int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n);
77
+ int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n);
78
+
79
+ // Atomically, set *p=n and return the old value of *p
80
+ gpr_atm gpr_atm_full_xchg(gpr_atm *p, gpr_atm n);
81
+ */
82
+
83
+ #include <grpc/impl/codegen/port_platform.h>
84
+
85
+ #if defined(GPR_GCC_ATOMIC)
86
+ #include <grpc/impl/codegen/atm_gcc_atomic.h>
87
+ #elif defined(GPR_GCC_SYNC)
88
+ #include <grpc/impl/codegen/atm_gcc_sync.h>
89
+ #elif defined(GPR_WINDOWS_ATOMIC)
90
+ #include <grpc/impl/codegen/atm_windows.h>
91
+ #else
92
+ #error could not determine platform for atm
93
+ #endif
94
+
95
+ /** Adds \a delta to \a *value, clamping the result to the range specified
96
+ by \a min and \a max. Returns the new value. */
97
+ gpr_atm gpr_atm_no_barrier_clamped_add(gpr_atm *value, gpr_atm delta,
98
+ gpr_atm min, gpr_atm max);
99
+
100
+ #endif /* GRPC_IMPL_CODEGEN_ATM_H */
@@ -0,0 +1,97 @@
1
+ /*
2
+ *
3
+ * Copyright 2015, Google Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are
8
+ * met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following disclaimer
14
+ * in the documentation and/or other materials provided with the
15
+ * distribution.
16
+ * * Neither the name of Google Inc. nor the names of its
17
+ * contributors may be used to endorse or promote products derived from
18
+ * this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ #ifndef GRPC_IMPL_CODEGEN_ATM_GCC_ATOMIC_H
35
+ #define GRPC_IMPL_CODEGEN_ATM_GCC_ATOMIC_H
36
+
37
+ /* atm_platform.h for gcc and gcc-like compilers with the
38
+ __atomic_* interface. */
39
+ #include <grpc/impl/codegen/port_platform.h>
40
+
41
+ typedef intptr_t gpr_atm;
42
+ #define GPR_ATM_MAX INTPTR_MAX
43
+
44
+ #ifdef GPR_LOW_LEVEL_COUNTERS
45
+ extern gpr_atm gpr_counter_atm_cas;
46
+ extern gpr_atm gpr_counter_atm_add;
47
+ #define GPR_ATM_INC_COUNTER(counter) \
48
+ __atomic_fetch_add(&counter, 1, __ATOMIC_RELAXED)
49
+ #define GPR_ATM_INC_CAS_THEN(blah) \
50
+ (GPR_ATM_INC_COUNTER(gpr_counter_atm_cas), blah)
51
+ #define GPR_ATM_INC_ADD_THEN(blah) \
52
+ (GPR_ATM_INC_COUNTER(gpr_counter_atm_add), blah)
53
+ #else
54
+ #define GPR_ATM_INC_CAS_THEN(blah) blah
55
+ #define GPR_ATM_INC_ADD_THEN(blah) blah
56
+ #endif
57
+
58
+ #define gpr_atm_full_barrier() (__atomic_thread_fence(__ATOMIC_SEQ_CST))
59
+
60
+ #define gpr_atm_acq_load(p) (__atomic_load_n((p), __ATOMIC_ACQUIRE))
61
+ #define gpr_atm_no_barrier_load(p) (__atomic_load_n((p), __ATOMIC_RELAXED))
62
+ #define gpr_atm_rel_store(p, value) \
63
+ (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELEASE))
64
+ #define gpr_atm_no_barrier_store(p, value) \
65
+ (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELAXED))
66
+
67
+ #define gpr_atm_no_barrier_fetch_add(p, delta) \
68
+ GPR_ATM_INC_ADD_THEN( \
69
+ __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_RELAXED))
70
+ #define gpr_atm_full_fetch_add(p, delta) \
71
+ GPR_ATM_INC_ADD_THEN( \
72
+ __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_ACQ_REL))
73
+
74
+ static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
75
+ return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n(
76
+ p, &o, n, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED));
77
+ }
78
+
79
+ static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
80
+ return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n(
81
+ p, &o, n, 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED));
82
+ }
83
+
84
+ static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
85
+ return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n(
86
+ p, &o, n, 0, __ATOMIC_RELEASE, __ATOMIC_RELAXED));
87
+ }
88
+
89
+ static __inline int gpr_atm_full_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
90
+ return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n(
91
+ p, &o, n, 0, __ATOMIC_ACQ_REL, __ATOMIC_RELAXED));
92
+ }
93
+
94
+ #define gpr_atm_full_xchg(p, n) \
95
+ GPR_ATM_INC_CAS_THEN(__atomic_exchange_n((p), (n), __ATOMIC_ACQ_REL))
96
+
97
+ #endif /* GRPC_IMPL_CODEGEN_ATM_GCC_ATOMIC_H */
@@ -0,0 +1,97 @@
1
+ /*
2
+ *
3
+ * Copyright 2015, Google Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are
8
+ * met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following disclaimer
14
+ * in the documentation and/or other materials provided with the
15
+ * distribution.
16
+ * * Neither the name of Google Inc. nor the names of its
17
+ * contributors may be used to endorse or promote products derived from
18
+ * this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ #ifndef GRPC_IMPL_CODEGEN_ATM_GCC_SYNC_H
35
+ #define GRPC_IMPL_CODEGEN_ATM_GCC_SYNC_H
36
+
37
+ /* variant of atm_platform.h for gcc and gcc-like compiers with __sync_*
38
+ interface */
39
+ #include <grpc/impl/codegen/port_platform.h>
40
+
41
+ typedef intptr_t gpr_atm;
42
+ #define GPR_ATM_MAX INTPTR_MAX
43
+
44
+ #define GPR_ATM_COMPILE_BARRIER_() __asm__ __volatile__("" : : : "memory")
45
+
46
+ #if defined(__i386) || defined(__x86_64__)
47
+ /* All loads are acquire loads and all stores are release stores. */
48
+ #define GPR_ATM_LS_BARRIER_() GPR_ATM_COMPILE_BARRIER_()
49
+ #else
50
+ #define GPR_ATM_LS_BARRIER_() gpr_atm_full_barrier()
51
+ #endif
52
+
53
+ #define gpr_atm_full_barrier() (__sync_synchronize())
54
+
55
+ static __inline gpr_atm gpr_atm_acq_load(const gpr_atm *p) {
56
+ gpr_atm value = *p;
57
+ GPR_ATM_LS_BARRIER_();
58
+ return value;
59
+ }
60
+
61
+ static __inline gpr_atm gpr_atm_no_barrier_load(const gpr_atm *p) {
62
+ gpr_atm value = *p;
63
+ GPR_ATM_COMPILE_BARRIER_();
64
+ return value;
65
+ }
66
+
67
+ static __inline void gpr_atm_rel_store(gpr_atm *p, gpr_atm value) {
68
+ GPR_ATM_LS_BARRIER_();
69
+ *p = value;
70
+ }
71
+
72
+ static __inline void gpr_atm_no_barrier_store(gpr_atm *p, gpr_atm value) {
73
+ GPR_ATM_COMPILE_BARRIER_();
74
+ *p = value;
75
+ }
76
+
77
+ #undef GPR_ATM_LS_BARRIER_
78
+ #undef GPR_ATM_COMPILE_BARRIER_
79
+
80
+ #define gpr_atm_no_barrier_fetch_add(p, delta) \
81
+ gpr_atm_full_fetch_add((p), (delta))
82
+ #define gpr_atm_full_fetch_add(p, delta) (__sync_fetch_and_add((p), (delta)))
83
+
84
+ #define gpr_atm_no_barrier_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))
85
+ #define gpr_atm_acq_cas(p, o, n) (__sync_bool_compare_and_swap((p), (o), (n)))
86
+ #define gpr_atm_rel_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))
87
+ #define gpr_atm_full_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))
88
+
89
+ static __inline gpr_atm gpr_atm_full_xchg(gpr_atm *p, gpr_atm n) {
90
+ gpr_atm cur;
91
+ do {
92
+ cur = gpr_atm_acq_load(p);
93
+ } while (!gpr_atm_rel_cas(p, cur, n));
94
+ return cur;
95
+ }
96
+
97
+ #endif /* GRPC_IMPL_CODEGEN_ATM_GCC_SYNC_H */
@@ -0,0 +1,140 @@
1
+ /*
2
+ *
3
+ * Copyright 2015, Google Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are
8
+ * met:
9
+ *
10
+ * * Redistributions of source code must retain the above copyright
11
+ * notice, this list of conditions and the following disclaimer.
12
+ * * Redistributions in binary form must reproduce the above
13
+ * copyright notice, this list of conditions and the following disclaimer
14
+ * in the documentation and/or other materials provided with the
15
+ * distribution.
16
+ * * Neither the name of Google Inc. nor the names of its
17
+ * contributors may be used to endorse or promote products derived from
18
+ * this software without specific prior written permission.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ */
33
+
34
+ #ifndef GRPC_IMPL_CODEGEN_ATM_WINDOWS_H
35
+ #define GRPC_IMPL_CODEGEN_ATM_WINDOWS_H
36
+
37
+ /* Win32 variant of atm_platform.h */
38
+ #include <grpc/impl/codegen/port_platform.h>
39
+
40
+ typedef intptr_t gpr_atm;
41
+ #define GPR_ATM_MAX INTPTR_MAX
42
+
43
+ #define gpr_atm_full_barrier MemoryBarrier
44
+
45
+ static __inline gpr_atm gpr_atm_acq_load(const gpr_atm *p) {
46
+ gpr_atm result = *p;
47
+ gpr_atm_full_barrier();
48
+ return result;
49
+ }
50
+
51
+ static __inline gpr_atm gpr_atm_no_barrier_load(const gpr_atm *p) {
52
+ /* TODO(dklempner): Can we implement something better here? */
53
+ return gpr_atm_acq_load(p);
54
+ }
55
+
56
+ static __inline void gpr_atm_rel_store(gpr_atm *p, gpr_atm value) {
57
+ gpr_atm_full_barrier();
58
+ *p = value;
59
+ }
60
+
61
+ static __inline void gpr_atm_no_barrier_store(gpr_atm *p, gpr_atm value) {
62
+ /* TODO(ctiller): Can we implement something better here? */
63
+ gpr_atm_rel_store(p, value);
64
+ }
65
+
66
+ static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
67
+ /* InterlockedCompareExchangePointerNoFence() not available on vista or
68
+ windows7 */
69
+ #ifdef GPR_ARCH_64
70
+ return o == (gpr_atm)InterlockedCompareExchangeAcquire64(
71
+ (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
72
+ #else
73
+ return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *)p,
74
+ (LONG)n, (LONG)o);
75
+ #endif
76
+ }
77
+
78
+ static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
79
+ #ifdef GPR_ARCH_64
80
+ return o == (gpr_atm)InterlockedCompareExchangeAcquire64(
81
+ (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
82
+ #else
83
+ return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *)p,
84
+ (LONG)n, (LONG)o);
85
+ #endif
86
+ }
87
+
88
+ static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
89
+ #ifdef GPR_ARCH_64
90
+ return o == (gpr_atm)InterlockedCompareExchangeRelease64(
91
+ (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
92
+ #else
93
+ return o == (gpr_atm)InterlockedCompareExchangeRelease((volatile LONG *)p,
94
+ (LONG)n, (LONG)o);
95
+ #endif
96
+ }
97
+
98
+ static __inline int gpr_atm_full_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
99
+ #ifdef GPR_ARCH_64
100
+ return o == (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *)p,
101
+ (LONGLONG)n, (LONGLONG)o);
102
+ #else
103
+ return o == (gpr_atm)InterlockedCompareExchange((volatile LONG *)p, (LONG)n,
104
+ (LONG)o);
105
+ #endif
106
+ }
107
+
108
+ static __inline gpr_atm gpr_atm_no_barrier_fetch_add(gpr_atm *p,
109
+ gpr_atm delta) {
110
+ /* Use the CAS operation to get pointer-sized fetch and add */
111
+ gpr_atm old;
112
+ do {
113
+ old = *p;
114
+ } while (!gpr_atm_no_barrier_cas(p, old, old + delta));
115
+ return old;
116
+ }
117
+
118
+ static __inline gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta) {
119
+ /* Use a CAS operation to get pointer-sized fetch and add */
120
+ gpr_atm old;
121
+ #ifdef GPR_ARCH_64
122
+ do {
123
+ old = *p;
124
+ } while (old != (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *)p,
125
+ (LONGLONG)old + delta,
126
+ (LONGLONG)old));
127
+ #else
128
+ do {
129
+ old = *p;
130
+ } while (old != (gpr_atm)InterlockedCompareExchange(
131
+ (volatile LONG *)p, (LONG)old + delta, (LONG)old));
132
+ #endif
133
+ return old;
134
+ }
135
+
136
+ static __inline gpr_atm gpr_atm_full_xchg(gpr_atm *p, gpr_atm n) {
137
+ return (gpr_atm)InterlockedExchangePointer((PVOID *)p, (PVOID)n);
138
+ }
139
+
140
+ #endif /* GRPC_IMPL_CODEGEN_ATM_WINDOWS_H */