contrast-agent 3.8.4

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 (500) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +5 -0
  3. data/.dockerignore +10 -0
  4. data/.gitignore +58 -0
  5. data/.gitmodules +6 -0
  6. data/.rspec +6 -0
  7. data/.simplecov +4 -0
  8. data/Gemfile +7 -0
  9. data/LICENSE.txt +12 -0
  10. data/Rakefile +15 -0
  11. data/exe/contrast_service +29 -0
  12. data/ext/build_funchook.rb +48 -0
  13. data/ext/cs__assess_active_record_named/cs__active_record_named.c +47 -0
  14. data/ext/cs__assess_active_record_named/cs__active_record_named.h +10 -0
  15. data/ext/cs__assess_active_record_named/extconf.rb +2 -0
  16. data/ext/cs__assess_array/cs__assess_array.c +38 -0
  17. data/ext/cs__assess_array/cs__assess_array.h +9 -0
  18. data/ext/cs__assess_array/extconf.rb +2 -0
  19. data/ext/cs__assess_basic_object/cs__assess_basic_object.c +50 -0
  20. data/ext/cs__assess_basic_object/cs__assess_basic_object.h +17 -0
  21. data/ext/cs__assess_basic_object/extconf.rb +2 -0
  22. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +86 -0
  23. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +34 -0
  24. data/ext/cs__assess_fiber_track/extconf.rb +2 -0
  25. data/ext/cs__assess_hash/cs__assess_hash.c +64 -0
  26. data/ext/cs__assess_hash/cs__assess_hash.h +24 -0
  27. data/ext/cs__assess_hash/extconf.rb +2 -0
  28. data/ext/cs__assess_kernel/cs__assess_kernel.c +36 -0
  29. data/ext/cs__assess_kernel/cs__assess_kernel.h +10 -0
  30. data/ext/cs__assess_kernel/extconf.rb +2 -0
  31. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.c +47 -0
  32. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.h +18 -0
  33. data/ext/cs__assess_marshal_module/extconf.rb +2 -0
  34. data/ext/cs__assess_module/cs__assess_module.c +78 -0
  35. data/ext/cs__assess_module/cs__assess_module.h +25 -0
  36. data/ext/cs__assess_module/extconf.rb +2 -0
  37. data/ext/cs__assess_regexp/cs__assess_regexp.c +48 -0
  38. data/ext/cs__assess_regexp/cs__assess_regexp.h +22 -0
  39. data/ext/cs__assess_regexp/extconf.rb +2 -0
  40. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.c +63 -0
  41. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.h +29 -0
  42. data/ext/cs__assess_regexp_track/extconf.rb +2 -0
  43. data/ext/cs__assess_string/cs__assess_string.c +38 -0
  44. data/ext/cs__assess_string/cs__assess_string.h +19 -0
  45. data/ext/cs__assess_string/extconf.rb +2 -0
  46. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +31 -0
  47. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.h +13 -0
  48. data/ext/cs__assess_string_interpolation26/extconf.rb +2 -0
  49. data/ext/cs__common/cs__common.c +60 -0
  50. data/ext/cs__common/cs__common.h +28 -0
  51. data/ext/cs__common/extconf.rb +20 -0
  52. data/ext/cs__contrast_patch/cs__contrast_patch.c +445 -0
  53. data/ext/cs__contrast_patch/cs__contrast_patch.h +196 -0
  54. data/ext/cs__contrast_patch/extconf.rb +2 -0
  55. data/ext/cs__protect_kernel/cs__protect_kernel.c +37 -0
  56. data/ext/cs__protect_kernel/cs__protect_kernel.h +11 -0
  57. data/ext/cs__protect_kernel/extconf.rb +2 -0
  58. data/ext/cs__scope/cs__scope.c +96 -0
  59. data/ext/cs__scope/cs__scope.h +33 -0
  60. data/ext/cs__scope/extconf.rb +2 -0
  61. data/ext/extconf_common.rb +49 -0
  62. data/funchook/LICENSE +360 -0
  63. data/funchook/Makefile +29 -0
  64. data/funchook/Makefile.in +29 -0
  65. data/funchook/README.md +121 -0
  66. data/funchook/appveyor.yml +42 -0
  67. data/funchook/autogen.sh +3 -0
  68. data/funchook/autom4te.cache/output.0 +4976 -0
  69. data/funchook/autom4te.cache/requests +78 -0
  70. data/funchook/autom4te.cache/traces.0 +364 -0
  71. data/funchook/config.guess +1530 -0
  72. data/funchook/config.log +490 -0
  73. data/funchook/config.status +1016 -0
  74. data/funchook/config.sub +1773 -0
  75. data/funchook/configure +4976 -0
  76. data/funchook/configure.ac +59 -0
  77. data/funchook/distorm/COPYING +26 -0
  78. data/funchook/distorm/MANIFEST +25 -0
  79. data/funchook/distorm/MANIFEST.in +4 -0
  80. data/funchook/distorm/README.md +12 -0
  81. data/funchook/distorm/disOps/disOps.py +795 -0
  82. data/funchook/distorm/disOps/x86db.py +404 -0
  83. data/funchook/distorm/disOps/x86header.py +247 -0
  84. data/funchook/distorm/disOps/x86sets.py +1664 -0
  85. data/funchook/distorm/examples/cs/TestdiStorm/Program.cs +79 -0
  86. data/funchook/distorm/examples/cs/TestdiStorm/Properties/AssemblyInfo.cs +36 -0
  87. data/funchook/distorm/examples/cs/TestdiStorm/TestdiStorm.csproj +69 -0
  88. data/funchook/distorm/examples/cs/distorm-net.sln +26 -0
  89. data/funchook/distorm/examples/cs/distorm-net/CodeInfo.cs +23 -0
  90. data/funchook/distorm/examples/cs/distorm-net/DecodedInst.cs +15 -0
  91. data/funchook/distorm/examples/cs/distorm-net/DecodedResult.cs +14 -0
  92. data/funchook/distorm/examples/cs/distorm-net/DecomposedInst.cs +36 -0
  93. data/funchook/distorm/examples/cs/distorm-net/DecomposedResult.cs +14 -0
  94. data/funchook/distorm/examples/cs/distorm-net/Opcodes.cs +1268 -0
  95. data/funchook/distorm/examples/cs/distorm-net/Opcodes.tt +37 -0
  96. data/funchook/distorm/examples/cs/distorm-net/Operand.cs +25 -0
  97. data/funchook/distorm/examples/cs/distorm-net/Properties/AssemblyInfo.cs +36 -0
  98. data/funchook/distorm/examples/cs/distorm-net/diStorm3.cs +411 -0
  99. data/funchook/distorm/examples/cs/distorm-net/distorm-net.csproj +80 -0
  100. data/funchook/distorm/examples/cs/readme +3 -0
  101. data/funchook/distorm/examples/ddk/README +48 -0
  102. data/funchook/distorm/examples/ddk/distorm.ini +11 -0
  103. data/funchook/distorm/examples/ddk/dummy.c +15 -0
  104. data/funchook/distorm/examples/ddk/main.c +91 -0
  105. data/funchook/distorm/examples/ddk/makefile +1 -0
  106. data/funchook/distorm/examples/ddk/sources +10 -0
  107. data/funchook/distorm/examples/java/Makefile +23 -0
  108. data/funchook/distorm/examples/java/distorm/src/Main.java +43 -0
  109. data/funchook/distorm/examples/java/distorm/src/diStorm3/CodeInfo.java +27 -0
  110. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedInst.java +32 -0
  111. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedResult.java +11 -0
  112. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedInst.java +89 -0
  113. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedResult.java +11 -0
  114. data/funchook/distorm/examples/java/distorm/src/diStorm3/OpcodeEnum.java +131 -0
  115. data/funchook/distorm/examples/java/distorm/src/diStorm3/Opcodes.java +1123 -0
  116. data/funchook/distorm/examples/java/distorm/src/diStorm3/Operand.java +24 -0
  117. data/funchook/distorm/examples/java/distorm/src/diStorm3/distorm3.java +41 -0
  118. data/funchook/distorm/examples/java/jdistorm.c +405 -0
  119. data/funchook/distorm/examples/java/jdistorm.h +40 -0
  120. data/funchook/distorm/examples/java/jdistorm.sln +20 -0
  121. data/funchook/distorm/examples/java/jdistorm.vcproj +208 -0
  122. data/funchook/distorm/examples/linux/Makefile +15 -0
  123. data/funchook/distorm/examples/linux/main.c +181 -0
  124. data/funchook/distorm/examples/tests/Makefile +15 -0
  125. data/funchook/distorm/examples/tests/main.cpp +42 -0
  126. data/funchook/distorm/examples/tests/main.py +66 -0
  127. data/funchook/distorm/examples/tests/test_distorm3.py +1672 -0
  128. data/funchook/distorm/examples/tests/tests.sln +20 -0
  129. data/funchook/distorm/examples/tests/tests.vcxproj +82 -0
  130. data/funchook/distorm/examples/tests/tests.vcxproj.filters +22 -0
  131. data/funchook/distorm/examples/win32/disasm.sln +25 -0
  132. data/funchook/distorm/examples/win32/disasm.vcxproj +201 -0
  133. data/funchook/distorm/examples/win32/disasm.vcxproj.filters +14 -0
  134. data/funchook/distorm/examples/win32/main.cpp +163 -0
  135. data/funchook/distorm/include/distorm.h +482 -0
  136. data/funchook/distorm/include/mnemonics.h +301 -0
  137. data/funchook/distorm/make/linux/Makefile +28 -0
  138. data/funchook/distorm/make/mac/Makefile +24 -0
  139. data/funchook/distorm/make/win32/cdistorm.vcxproj +239 -0
  140. data/funchook/distorm/make/win32/cdistorm.vcxproj.filters +80 -0
  141. data/funchook/distorm/make/win32/distorm.sln +25 -0
  142. data/funchook/distorm/make/win32/resource.h +14 -0
  143. data/funchook/distorm/make/win32/resource.rc +99 -0
  144. data/funchook/distorm/python/distorm3/__init__.py +957 -0
  145. data/funchook/distorm/python/distorm3/sample.py +51 -0
  146. data/funchook/distorm/setup.cfg +10 -0
  147. data/funchook/distorm/setup.py +266 -0
  148. data/funchook/distorm/src/config.h +169 -0
  149. data/funchook/distorm/src/decoder.c +641 -0
  150. data/funchook/distorm/src/decoder.h +33 -0
  151. data/funchook/distorm/src/distorm.c +413 -0
  152. data/funchook/distorm/src/instructions.c +597 -0
  153. data/funchook/distorm/src/instructions.h +463 -0
  154. data/funchook/distorm/src/insts.c +7939 -0
  155. data/funchook/distorm/src/insts.h +64 -0
  156. data/funchook/distorm/src/mnemonics.c +284 -0
  157. data/funchook/distorm/src/operands.c +1290 -0
  158. data/funchook/distorm/src/operands.h +28 -0
  159. data/funchook/distorm/src/prefix.c +368 -0
  160. data/funchook/distorm/src/prefix.h +64 -0
  161. data/funchook/distorm/src/textdefs.c +172 -0
  162. data/funchook/distorm/src/textdefs.h +57 -0
  163. data/funchook/distorm/src/wstring.c +47 -0
  164. data/funchook/distorm/src/wstring.h +35 -0
  165. data/funchook/distorm/src/x86defs.h +82 -0
  166. data/funchook/include/funchook.h +123 -0
  167. data/funchook/install-sh +527 -0
  168. data/funchook/src/Makefile +70 -0
  169. data/funchook/src/Makefile.in +70 -0
  170. data/funchook/src/__strerror.h +109 -0
  171. data/funchook/src/config.h +101 -0
  172. data/funchook/src/config.h.in +100 -0
  173. data/funchook/src/decoder.o +0 -0
  174. data/funchook/src/distorm.o +0 -0
  175. data/funchook/src/funchook.c +440 -0
  176. data/funchook/src/funchook.o +0 -0
  177. data/funchook/src/funchook_internal.h +155 -0
  178. data/funchook/src/funchook_io.c +182 -0
  179. data/funchook/src/funchook_io.h +64 -0
  180. data/funchook/src/funchook_io.o +0 -0
  181. data/funchook/src/funchook_syscall.S +134 -0
  182. data/funchook/src/funchook_syscall.o +0 -0
  183. data/funchook/src/funchook_unix.c +480 -0
  184. data/funchook/src/funchook_unix.o +0 -0
  185. data/funchook/src/funchook_windows.c +397 -0
  186. data/funchook/src/funchook_x86.c +622 -0
  187. data/funchook/src/funchook_x86.o +0 -0
  188. data/funchook/src/instructions.o +0 -0
  189. data/funchook/src/insts.o +0 -0
  190. data/funchook/src/libfunchook.so +0 -0
  191. data/funchook/src/mnemonics.o +0 -0
  192. data/funchook/src/operands.o +0 -0
  193. data/funchook/src/os_func.c +115 -0
  194. data/funchook/src/os_func.h +75 -0
  195. data/funchook/src/os_func.o +0 -0
  196. data/funchook/src/os_func_unix.c +94 -0
  197. data/funchook/src/os_func_unix.o +0 -0
  198. data/funchook/src/os_func_windows.c +32 -0
  199. data/funchook/src/prefix.o +0 -0
  200. data/funchook/src/printf_base.c +1688 -0
  201. data/funchook/src/printf_base.h +46 -0
  202. data/funchook/src/printf_base.o +0 -0
  203. data/funchook/src/textdefs.o +0 -0
  204. data/funchook/src/wstring.o +0 -0
  205. data/funchook/test/Makefile +43 -0
  206. data/funchook/test/Makefile.in +43 -0
  207. data/funchook/test/funchook_test +0 -0
  208. data/funchook/test/libfunchook_test.c +25 -0
  209. data/funchook/test/libfunchook_test.so +0 -0
  210. data/funchook/test/libfunchook_test2.c +18 -0
  211. data/funchook/test/suffix.list +600 -0
  212. data/funchook/test/test_main.c +430 -0
  213. data/funchook/test/test_main.o +0 -0
  214. data/funchook/test/x86_64_test.S +10 -0
  215. data/funchook/test/x86_64_test.o +0 -0
  216. data/funchook/test/x86_test.S +339 -0
  217. data/funchook/win32/config.h +1 -0
  218. data/funchook/win32/funchook.sln +52 -0
  219. data/funchook/win32/funchook.vcxproj +188 -0
  220. data/funchook/win32/funchook.vcxproj.filters +84 -0
  221. data/funchook/win32/funchook_test.vcxproj +170 -0
  222. data/funchook/win32/funchook_test.vcxproj.filters +22 -0
  223. data/funchook/win32/funchook_test_dll.vcxproj +184 -0
  224. data/funchook/win32/funchook_test_dll.vcxproj.filters +30 -0
  225. data/funchook/win32/funchook_test_exe.def +3 -0
  226. data/lib/contrast-agent.rb +8 -0
  227. data/lib/contrast.rb +57 -0
  228. data/lib/contrast/agent.rb +80 -0
  229. data/lib/contrast/agent/assess.rb +45 -0
  230. data/lib/contrast/agent/assess/adjusted_span.rb +25 -0
  231. data/lib/contrast/agent/assess/class_reverter.rb +82 -0
  232. data/lib/contrast/agent/assess/contrast_event.rb +398 -0
  233. data/lib/contrast/agent/assess/frozen_properties.rb +41 -0
  234. data/lib/contrast/agent/assess/insulator.rb +53 -0
  235. data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +78 -0
  236. data/lib/contrast/agent/assess/policy/patcher.rb +85 -0
  237. data/lib/contrast/agent/assess/policy/policy.rb +116 -0
  238. data/lib/contrast/agent/assess/policy/policy_node.rb +289 -0
  239. data/lib/contrast/agent/assess/policy/policy_scanner.rb +44 -0
  240. data/lib/contrast/agent/assess/policy/preshift.rb +94 -0
  241. data/lib/contrast/agent/assess/policy/propagation_method.rb +260 -0
  242. data/lib/contrast/agent/assess/policy/propagation_node.rb +127 -0
  243. data/lib/contrast/agent/assess/policy/propagator.rb +35 -0
  244. data/lib/contrast/agent/assess/policy/propagator/append.rb +54 -0
  245. data/lib/contrast/agent/assess/policy/propagator/base.rb +37 -0
  246. data/lib/contrast/agent/assess/policy/propagator/center.rb +73 -0
  247. data/lib/contrast/agent/assess/policy/propagator/custom.rb +36 -0
  248. data/lib/contrast/agent/assess/policy/propagator/database_write.rb +62 -0
  249. data/lib/contrast/agent/assess/policy/propagator/insert.rb +55 -0
  250. data/lib/contrast/agent/assess/policy/propagator/keep.rb +26 -0
  251. data/lib/contrast/agent/assess/policy/propagator/next.rb +42 -0
  252. data/lib/contrast/agent/assess/policy/propagator/prepend.rb +50 -0
  253. data/lib/contrast/agent/assess/policy/propagator/remove.rb +76 -0
  254. data/lib/contrast/agent/assess/policy/propagator/replace.rb +27 -0
  255. data/lib/contrast/agent/assess/policy/propagator/reverse.rb +38 -0
  256. data/lib/contrast/agent/assess/policy/propagator/select.rb +86 -0
  257. data/lib/contrast/agent/assess/policy/propagator/splat.rb +60 -0
  258. data/lib/contrast/agent/assess/policy/propagator/split.rb +49 -0
  259. data/lib/contrast/agent/assess/policy/propagator/substitution.rb +169 -0
  260. data/lib/contrast/agent/assess/policy/propagator/trim.rb +81 -0
  261. data/lib/contrast/agent/assess/policy/rewriter_patch.rb +79 -0
  262. data/lib/contrast/agent/assess/policy/source_method.rb +209 -0
  263. data/lib/contrast/agent/assess/policy/source_node.rb +62 -0
  264. data/lib/contrast/agent/assess/policy/trigger_method.rb +209 -0
  265. data/lib/contrast/agent/assess/policy/trigger_node.rb +198 -0
  266. data/lib/contrast/agent/assess/policy/trigger_validation/ssrf_validator.rb +77 -0
  267. data/lib/contrast/agent/assess/policy/trigger_validation/trigger_validation.rb +31 -0
  268. data/lib/contrast/agent/assess/policy/trigger_validation/xss_validator.rb +40 -0
  269. data/lib/contrast/agent/assess/properties.rb +392 -0
  270. data/lib/contrast/agent/assess/rule.rb +18 -0
  271. data/lib/contrast/agent/assess/rule/base.rb +72 -0
  272. data/lib/contrast/agent/assess/rule/csrf.rb +66 -0
  273. data/lib/contrast/agent/assess/rule/csrf/csrf_action.rb +28 -0
  274. data/lib/contrast/agent/assess/rule/csrf/csrf_applicator.rb +69 -0
  275. data/lib/contrast/agent/assess/rule/csrf/csrf_watcher.rb +132 -0
  276. data/lib/contrast/agent/assess/rule/provider.rb +21 -0
  277. data/lib/contrast/agent/assess/rule/provider/hardcoded_key.rb +62 -0
  278. data/lib/contrast/agent/assess/rule/provider/hardcoded_password.rb +73 -0
  279. data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +121 -0
  280. data/lib/contrast/agent/assess/rule/redos.rb +68 -0
  281. data/lib/contrast/agent/assess/rule/response_scanning_rule.rb +47 -0
  282. data/lib/contrast/agent/assess/rule/response_watcher.rb +36 -0
  283. data/lib/contrast/agent/assess/rule/watcher.rb +36 -0
  284. data/lib/contrast/agent/assess/tag.rb +151 -0
  285. data/lib/contrast/agent/at_exit_hook.rb +33 -0
  286. data/lib/contrast/agent/class_reopener.rb +195 -0
  287. data/lib/contrast/agent/deadzone/policy/deadzone_node.rb +26 -0
  288. data/lib/contrast/agent/deadzone/policy/policy.rb +57 -0
  289. data/lib/contrast/agent/disable_reaction.rb +24 -0
  290. data/lib/contrast/agent/exclusion_matcher.rb +190 -0
  291. data/lib/contrast/agent/feature_state.rb +379 -0
  292. data/lib/contrast/agent/inventory/policy/policy.rb +32 -0
  293. data/lib/contrast/agent/inventory/policy/trigger_node.rb +22 -0
  294. data/lib/contrast/agent/logger_manager.rb +116 -0
  295. data/lib/contrast/agent/middleware.rb +352 -0
  296. data/lib/contrast/agent/module_data.rb +16 -0
  297. data/lib/contrast/agent/patching/policy/after_load_patch.rb +37 -0
  298. data/lib/contrast/agent/patching/policy/after_load_patcher.rb +58 -0
  299. data/lib/contrast/agent/patching/policy/method_policy.rb +94 -0
  300. data/lib/contrast/agent/patching/policy/module_policy.rb +116 -0
  301. data/lib/contrast/agent/patching/policy/patch.rb +312 -0
  302. data/lib/contrast/agent/patching/policy/patch_status.rb +192 -0
  303. data/lib/contrast/agent/patching/policy/patcher.rb +310 -0
  304. data/lib/contrast/agent/patching/policy/policy.rb +138 -0
  305. data/lib/contrast/agent/patching/policy/policy_node.rb +80 -0
  306. data/lib/contrast/agent/patching/policy/policy_unpatcher.rb +28 -0
  307. data/lib/contrast/agent/patching/policy/trigger_node.rb +81 -0
  308. data/lib/contrast/agent/protect/policy/policy.rb +37 -0
  309. data/lib/contrast/agent/protect/policy/trigger_node.rb +23 -0
  310. data/lib/contrast/agent/protect/rule.rb +58 -0
  311. data/lib/contrast/agent/protect/rule/base.rb +300 -0
  312. data/lib/contrast/agent/protect/rule/base_service.rb +88 -0
  313. data/lib/contrast/agent/protect/rule/cmd_injection.rb +156 -0
  314. data/lib/contrast/agent/protect/rule/csrf.rb +118 -0
  315. data/lib/contrast/agent/protect/rule/csrf/csrf_evaluator.rb +103 -0
  316. data/lib/contrast/agent/protect/rule/csrf/csrf_token_injector.rb +85 -0
  317. data/lib/contrast/agent/protect/rule/default_scanner.rb +300 -0
  318. data/lib/contrast/agent/protect/rule/deserialization.rb +193 -0
  319. data/lib/contrast/agent/protect/rule/http_method_tampering.rb +80 -0
  320. data/lib/contrast/agent/protect/rule/no_sqli.rb +101 -0
  321. data/lib/contrast/agent/protect/rule/no_sqli/mongo_no_sql_scanner.rb +40 -0
  322. data/lib/contrast/agent/protect/rule/path_traversal.rb +143 -0
  323. data/lib/contrast/agent/protect/rule/sqli.rb +101 -0
  324. data/lib/contrast/agent/protect/rule/sqli/default_sql_scanner.rb +16 -0
  325. data/lib/contrast/agent/protect/rule/sqli/mysql_sql_scanner.rb +38 -0
  326. data/lib/contrast/agent/protect/rule/sqli/postgres_sql_scanner.rb +22 -0
  327. data/lib/contrast/agent/protect/rule/sqli/sqlite_sql_scanner.rb +19 -0
  328. data/lib/contrast/agent/protect/rule/unsafe_file_upload.rb +20 -0
  329. data/lib/contrast/agent/protect/rule/xss.rb +24 -0
  330. data/lib/contrast/agent/protect/rule/xxe.rb +120 -0
  331. data/lib/contrast/agent/protect/rule/xxe/entity_wrapper.rb +82 -0
  332. data/lib/contrast/agent/railtie.rb +30 -0
  333. data/lib/contrast/agent/reaction_processor.rb +47 -0
  334. data/lib/contrast/agent/request.rb +493 -0
  335. data/lib/contrast/agent/request_context.rb +225 -0
  336. data/lib/contrast/agent/require_state.rb +61 -0
  337. data/lib/contrast/agent/response.rb +215 -0
  338. data/lib/contrast/agent/rewriter.rb +244 -0
  339. data/lib/contrast/agent/scope.rb +28 -0
  340. data/lib/contrast/agent/service_heartbeat.rb +37 -0
  341. data/lib/contrast/agent/settings_state.rb +148 -0
  342. data/lib/contrast/agent/socket_client.rb +125 -0
  343. data/lib/contrast/agent/thread.rb +26 -0
  344. data/lib/contrast/agent/tracepoint_hook.rb +51 -0
  345. data/lib/contrast/agent/version.rb +8 -0
  346. data/lib/contrast/api.rb +17 -0
  347. data/lib/contrast/api/.gitkeep +0 -0
  348. data/lib/contrast/api/connection_status.rb +49 -0
  349. data/lib/contrast/api/socket.rb +43 -0
  350. data/lib/contrast/api/speedracer.rb +206 -0
  351. data/lib/contrast/api/tcp_socket.rb +31 -0
  352. data/lib/contrast/api/unix_socket.rb +25 -0
  353. data/lib/contrast/common_agent_configuration.rb +86 -0
  354. data/lib/contrast/components/agent.rb +85 -0
  355. data/lib/contrast/components/app_context.rb +188 -0
  356. data/lib/contrast/components/assess.rb +67 -0
  357. data/lib/contrast/components/config.rb +135 -0
  358. data/lib/contrast/components/contrast_service.rb +113 -0
  359. data/lib/contrast/components/heap_dump.rb +34 -0
  360. data/lib/contrast/components/interface.rb +178 -0
  361. data/lib/contrast/components/inventory.rb +23 -0
  362. data/lib/contrast/components/logger.rb +92 -0
  363. data/lib/contrast/components/protect.rb +38 -0
  364. data/lib/contrast/components/sampling.rb +41 -0
  365. data/lib/contrast/components/scope.rb +106 -0
  366. data/lib/contrast/components/settings.rb +140 -0
  367. data/lib/contrast/config.rb +33 -0
  368. data/lib/contrast/config/agent_configuration.rb +24 -0
  369. data/lib/contrast/config/application_configuration.rb +27 -0
  370. data/lib/contrast/config/assess_configuration.rb +22 -0
  371. data/lib/contrast/config/assess_rules_configuration.rb +18 -0
  372. data/lib/contrast/config/base_configuration.rb +105 -0
  373. data/lib/contrast/config/default_value.rb +16 -0
  374. data/lib/contrast/config/exception_configuration.rb +21 -0
  375. data/lib/contrast/config/heap_dump_configuration.rb +23 -0
  376. data/lib/contrast/config/inventory_configuration.rb +20 -0
  377. data/lib/contrast/config/logger_configuration.rb +20 -0
  378. data/lib/contrast/config/protect_configuration.rb +20 -0
  379. data/lib/contrast/config/protect_rule_configuration.rb +37 -0
  380. data/lib/contrast/config/protect_rules_configuration.rb +30 -0
  381. data/lib/contrast/config/root_configuration.rb +26 -0
  382. data/lib/contrast/config/ruby_configuration.rb +39 -0
  383. data/lib/contrast/config/sampling_configuration.rb +22 -0
  384. data/lib/contrast/config/server_configuration.rb +23 -0
  385. data/lib/contrast/config/service_configuration.rb +22 -0
  386. data/lib/contrast/configuration.rb +214 -0
  387. data/lib/contrast/core_extensions/assess.rb +51 -0
  388. data/lib/contrast/core_extensions/assess/array.rb +58 -0
  389. data/lib/contrast/core_extensions/assess/assess_extension.rb +145 -0
  390. data/lib/contrast/core_extensions/assess/basic_object.rb +15 -0
  391. data/lib/contrast/core_extensions/assess/erb.rb +42 -0
  392. data/lib/contrast/core_extensions/assess/exec_trigger.rb +48 -0
  393. data/lib/contrast/core_extensions/assess/fiber.rb +125 -0
  394. data/lib/contrast/core_extensions/assess/hash.rb +22 -0
  395. data/lib/contrast/core_extensions/assess/kernel.rb +95 -0
  396. data/lib/contrast/core_extensions/assess/module.rb +14 -0
  397. data/lib/contrast/core_extensions/assess/regexp.rb +206 -0
  398. data/lib/contrast/core_extensions/assess/string.rb +75 -0
  399. data/lib/contrast/core_extensions/assess/tilt_template_trigger.rb +73 -0
  400. data/lib/contrast/core_extensions/delegator.rb +14 -0
  401. data/lib/contrast/core_extensions/eval_trigger.rb +52 -0
  402. data/lib/contrast/core_extensions/inventory.rb +22 -0
  403. data/lib/contrast/core_extensions/inventory/datastores.rb +37 -0
  404. data/lib/contrast/core_extensions/module.rb +42 -0
  405. data/lib/contrast/core_extensions/object.rb +27 -0
  406. data/lib/contrast/core_extensions/protect.rb +20 -0
  407. data/lib/contrast/core_extensions/protect/applies_command_injection_rule.rb +70 -0
  408. data/lib/contrast/core_extensions/protect/applies_deserialization_rule.rb +58 -0
  409. data/lib/contrast/core_extensions/protect/applies_no_sqli_rule.rb +81 -0
  410. data/lib/contrast/core_extensions/protect/applies_path_traversal_rule.rb +119 -0
  411. data/lib/contrast/core_extensions/protect/applies_sqli_rule.rb +63 -0
  412. data/lib/contrast/core_extensions/protect/applies_xxe_rule.rb +141 -0
  413. data/lib/contrast/core_extensions/protect/kernel.rb +30 -0
  414. data/lib/contrast/core_extensions/protect/psych.rb +7 -0
  415. data/lib/contrast/core_extensions/thread.rb +31 -0
  416. data/lib/contrast/internal_exception.rb +8 -0
  417. data/lib/contrast/rails_extensions/assess/action_controller_inheritance.rb +48 -0
  418. data/lib/contrast/rails_extensions/assess/active_record.rb +32 -0
  419. data/lib/contrast/rails_extensions/assess/active_record_named.rb +61 -0
  420. data/lib/contrast/rails_extensions/assess/configuration.rb +26 -0
  421. data/lib/contrast/rails_extensions/buffer.rb +30 -0
  422. data/lib/contrast/rails_extensions/rack.rb +45 -0
  423. data/lib/contrast/security_exception.rb +14 -0
  424. data/lib/contrast/sinatra_extensions/assess/cookie.rb +26 -0
  425. data/lib/contrast/sinatra_extensions/inventory/sinatra_base.rb +59 -0
  426. data/lib/contrast/tasks/service.rb +95 -0
  427. data/lib/contrast/utils/assess/sampling_util.rb +96 -0
  428. data/lib/contrast/utils/assess/tracking_util.rb +39 -0
  429. data/lib/contrast/utils/boolean_util.rb +33 -0
  430. data/lib/contrast/utils/cache.rb +69 -0
  431. data/lib/contrast/utils/class_util.rb +58 -0
  432. data/lib/contrast/utils/comment_range.rb +19 -0
  433. data/lib/contrast/utils/data_store_util.rb +23 -0
  434. data/lib/contrast/utils/duck_utils.rb +58 -0
  435. data/lib/contrast/utils/env_configuration_item.rb +52 -0
  436. data/lib/contrast/utils/environment_util.rb +152 -0
  437. data/lib/contrast/utils/freeze_util.rb +36 -0
  438. data/lib/contrast/utils/gemfile_reader.rb +191 -0
  439. data/lib/contrast/utils/hash_digest.rb +148 -0
  440. data/lib/contrast/utils/heap_dump_util.rb +113 -0
  441. data/lib/contrast/utils/invalid_configuration_util.rb +88 -0
  442. data/lib/contrast/utils/inventory_util.rb +126 -0
  443. data/lib/contrast/utils/io_util.rb +61 -0
  444. data/lib/contrast/utils/object_share.rb +117 -0
  445. data/lib/contrast/utils/operating_environment.rb +38 -0
  446. data/lib/contrast/utils/os.rb +49 -0
  447. data/lib/contrast/utils/path_util.rb +151 -0
  448. data/lib/contrast/utils/performs_logging.rb +152 -0
  449. data/lib/contrast/utils/preflight_util.rb +13 -0
  450. data/lib/contrast/utils/prevent_serialization.rb +52 -0
  451. data/lib/contrast/utils/rack_assess_session_cookie.rb +104 -0
  452. data/lib/contrast/utils/rails_assess_configuration.rb +95 -0
  453. data/lib/contrast/utils/random_util.rb +22 -0
  454. data/lib/contrast/utils/resource_loader.rb +23 -0
  455. data/lib/contrast/utils/ruby_ast_rewriter.rb +74 -0
  456. data/lib/contrast/utils/scope_util.rb +99 -0
  457. data/lib/contrast/utils/service_response_util.rb +116 -0
  458. data/lib/contrast/utils/service_sender_util.rb +98 -0
  459. data/lib/contrast/utils/sha256_builder.rb +69 -0
  460. data/lib/contrast/utils/sinatra_helper.rb +49 -0
  461. data/lib/contrast/utils/stack_trace_utils.rb +209 -0
  462. data/lib/contrast/utils/string_utils.rb +72 -0
  463. data/lib/contrast/utils/tag_util.rb +139 -0
  464. data/lib/contrast/utils/thread_tracker.rb +54 -0
  465. data/lib/contrast/utils/timer.rb +78 -0
  466. data/resources/assess/policy.json +1673 -0
  467. data/resources/csrf/inject.js +44 -0
  468. data/resources/deadzone/policy.json +55 -0
  469. data/resources/factory-bot-spec/spec_helper.rb +30 -0
  470. data/resources/inventory/policy.json +110 -0
  471. data/resources/protect/policy.json +417 -0
  472. data/resources/rubocops/kernel/catch_cop.rb +37 -0
  473. data/resources/rubocops/kernel/require_cop.rb +37 -0
  474. data/resources/rubocops/kernel/require_relative_cop.rb +33 -0
  475. data/resources/rubocops/module/autoload_cop.rb +37 -0
  476. data/resources/rubocops/module/const_defined_cop.rb +37 -0
  477. data/resources/rubocops/module/const_get_cop.rb +37 -0
  478. data/resources/rubocops/module/const_set_cop.rb +37 -0
  479. data/resources/rubocops/module/constants_cop.rb +37 -0
  480. data/resources/rubocops/module/name_cop.rb +37 -0
  481. data/resources/rubocops/object/class_cop.rb +37 -0
  482. data/resources/rubocops/object/freeze_cop.rb +37 -0
  483. data/resources/rubocops/object/frozen_cop.rb +37 -0
  484. data/resources/rubocops/object/is_a_cop.rb +37 -0
  485. data/resources/rubocops/object/method_cop.rb +37 -0
  486. data/resources/rubocops/object/respond_to_cop.rb +37 -0
  487. data/resources/rubocops/object/singleton_class_cop.rb +37 -0
  488. data/resources/rubocops/regexp/spelling_cop.rb +44 -0
  489. data/resources/rubocops/thread/new_cop.rb +39 -0
  490. data/resources/ruby-spec/ancestors_spec.rb +70 -0
  491. data/resources/ruby-spec/modulo_spec.rb +831 -0
  492. data/resources/ruby-spec/parameters_spec.rb +261 -0
  493. data/resources/ruby-spec/ruby_spec_spec_helper.rb +35 -0
  494. data/resources/test_marker.txt +1 -0
  495. data/ruby-agent.gemspec +129 -0
  496. data/service_executables/.gitkeep +0 -0
  497. data/service_executables/VERSION +1 -0
  498. data/service_executables/linux/contrast-service +0 -0
  499. data/service_executables/mac/contrast-service +0 -0
  500. metadata +945 -0
@@ -0,0 +1,1016 @@
1
+ #! /bin/bash
2
+ # Generated by configure.
3
+ # Run this file to recreate the current configuration.
4
+ # Compiler output produced by configure, useful for debugging
5
+ # configure, is in config.log if it exists.
6
+
7
+ debug=false
8
+ ac_cs_recheck=false
9
+ ac_cs_silent=false
10
+
11
+ SHELL=${CONFIG_SHELL-/bin/bash}
12
+ export SHELL
13
+ ## -------------------- ##
14
+ ## M4sh Initialization. ##
15
+ ## -------------------- ##
16
+
17
+ # Be more Bourne compatible
18
+ DUALCASE=1; export DUALCASE # for MKS sh
19
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
20
+ emulate sh
21
+ NULLCMD=:
22
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
23
+ # is contrary to our usage. Disable this feature.
24
+ alias -g '${1+"$@"}'='"$@"'
25
+ setopt NO_GLOB_SUBST
26
+ else
27
+ case `(set -o) 2>/dev/null` in #(
28
+ *posix*) :
29
+ set -o posix ;; #(
30
+ *) :
31
+ ;;
32
+ esac
33
+ fi
34
+
35
+
36
+ as_nl='
37
+ '
38
+ export as_nl
39
+ # Printing a long string crashes Solaris 7 /usr/bin/printf.
40
+ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
41
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
42
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
43
+ # Prefer a ksh shell builtin over an external printf program on Solaris,
44
+ # but without wasting forks for bash or zsh.
45
+ if test -z "$BASH_VERSION$ZSH_VERSION" \
46
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
47
+ as_echo='print -r --'
48
+ as_echo_n='print -rn --'
49
+ elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
50
+ as_echo='printf %s\n'
51
+ as_echo_n='printf %s'
52
+ else
53
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
54
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
55
+ as_echo_n='/usr/ucb/echo -n'
56
+ else
57
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
58
+ as_echo_n_body='eval
59
+ arg=$1;
60
+ case $arg in #(
61
+ *"$as_nl"*)
62
+ expr "X$arg" : "X\\(.*\\)$as_nl";
63
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
64
+ esac;
65
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
66
+ '
67
+ export as_echo_n_body
68
+ as_echo_n='sh -c $as_echo_n_body as_echo'
69
+ fi
70
+ export as_echo_body
71
+ as_echo='sh -c $as_echo_body as_echo'
72
+ fi
73
+
74
+ # The user is always right.
75
+ if test "${PATH_SEPARATOR+set}" != set; then
76
+ PATH_SEPARATOR=:
77
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
78
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
79
+ PATH_SEPARATOR=';'
80
+ }
81
+ fi
82
+
83
+
84
+ # IFS
85
+ # We need space, tab and new line, in precisely that order. Quoting is
86
+ # there to prevent editors from complaining about space-tab.
87
+ # (If _AS_PATH_WALK were called with IFS unset, it would disable word
88
+ # splitting by setting IFS to empty value.)
89
+ IFS=" "" $as_nl"
90
+
91
+ # Find who we are. Look in the path if we contain no directory separator.
92
+ as_myself=
93
+ case $0 in #((
94
+ *[\\/]* ) as_myself=$0 ;;
95
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
96
+ for as_dir in $PATH
97
+ do
98
+ IFS=$as_save_IFS
99
+ test -z "$as_dir" && as_dir=.
100
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
101
+ done
102
+ IFS=$as_save_IFS
103
+
104
+ ;;
105
+ esac
106
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
107
+ # in which case we are not to be found in the path.
108
+ if test "x$as_myself" = x; then
109
+ as_myself=$0
110
+ fi
111
+ if test ! -f "$as_myself"; then
112
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
113
+ exit 1
114
+ fi
115
+
116
+ # Unset variables that we do not need and which cause bugs (e.g. in
117
+ # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
118
+ # suppresses any "Segmentation fault" message there. '((' could
119
+ # trigger a bug in pdksh 5.2.14.
120
+ for as_var in BASH_ENV ENV MAIL MAILPATH
121
+ do eval test x\${$as_var+set} = xset \
122
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
123
+ done
124
+ PS1='$ '
125
+ PS2='> '
126
+ PS4='+ '
127
+
128
+ # NLS nuisances.
129
+ LC_ALL=C
130
+ export LC_ALL
131
+ LANGUAGE=C
132
+ export LANGUAGE
133
+
134
+ # CDPATH.
135
+ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
136
+
137
+
138
+ # as_fn_error STATUS ERROR [LINENO LOG_FD]
139
+ # ----------------------------------------
140
+ # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
141
+ # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
142
+ # script with STATUS, using 1 if that was 0.
143
+ as_fn_error ()
144
+ {
145
+ as_status=$1; test $as_status -eq 0 && as_status=1
146
+ if test "$4"; then
147
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
148
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
149
+ fi
150
+ $as_echo "$as_me: error: $2" >&2
151
+ as_fn_exit $as_status
152
+ } # as_fn_error
153
+
154
+
155
+ # as_fn_set_status STATUS
156
+ # -----------------------
157
+ # Set $? to STATUS, without forking.
158
+ as_fn_set_status ()
159
+ {
160
+ return $1
161
+ } # as_fn_set_status
162
+
163
+ # as_fn_exit STATUS
164
+ # -----------------
165
+ # Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
166
+ as_fn_exit ()
167
+ {
168
+ set +e
169
+ as_fn_set_status $1
170
+ exit $1
171
+ } # as_fn_exit
172
+
173
+ # as_fn_unset VAR
174
+ # ---------------
175
+ # Portably unset VAR.
176
+ as_fn_unset ()
177
+ {
178
+ { eval $1=; unset $1;}
179
+ }
180
+ as_unset=as_fn_unset
181
+ # as_fn_append VAR VALUE
182
+ # ----------------------
183
+ # Append the text in VALUE to the end of the definition contained in VAR. Take
184
+ # advantage of any shell optimizations that allow amortized linear growth over
185
+ # repeated appends, instead of the typical quadratic growth present in naive
186
+ # implementations.
187
+ if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
188
+ eval 'as_fn_append ()
189
+ {
190
+ eval $1+=\$2
191
+ }'
192
+ else
193
+ as_fn_append ()
194
+ {
195
+ eval $1=\$$1\$2
196
+ }
197
+ fi # as_fn_append
198
+
199
+ # as_fn_arith ARG...
200
+ # ------------------
201
+ # Perform arithmetic evaluation on the ARGs, and store the result in the
202
+ # global $as_val. Take advantage of shells that can avoid forks. The arguments
203
+ # must be portable across $(()) and expr.
204
+ if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
205
+ eval 'as_fn_arith ()
206
+ {
207
+ as_val=$(( $* ))
208
+ }'
209
+ else
210
+ as_fn_arith ()
211
+ {
212
+ as_val=`expr "$@" || test $? -eq 1`
213
+ }
214
+ fi # as_fn_arith
215
+
216
+
217
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
218
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
219
+ as_expr=expr
220
+ else
221
+ as_expr=false
222
+ fi
223
+
224
+ if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
225
+ as_basename=basename
226
+ else
227
+ as_basename=false
228
+ fi
229
+
230
+ if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
231
+ as_dirname=dirname
232
+ else
233
+ as_dirname=false
234
+ fi
235
+
236
+ as_me=`$as_basename -- "$0" ||
237
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
238
+ X"$0" : 'X\(//\)$' \| \
239
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
240
+ $as_echo X/"$0" |
241
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
242
+ s//\1/
243
+ q
244
+ }
245
+ /^X\/\(\/\/\)$/{
246
+ s//\1/
247
+ q
248
+ }
249
+ /^X\/\(\/\).*/{
250
+ s//\1/
251
+ q
252
+ }
253
+ s/.*/./; q'`
254
+
255
+ # Avoid depending upon Character Ranges.
256
+ as_cr_letters='abcdefghijklmnopqrstuvwxyz'
257
+ as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
258
+ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
259
+ as_cr_digits='0123456789'
260
+ as_cr_alnum=$as_cr_Letters$as_cr_digits
261
+
262
+ ECHO_C= ECHO_N= ECHO_T=
263
+ case `echo -n x` in #(((((
264
+ -n*)
265
+ case `echo 'xy\c'` in
266
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
267
+ xy) ECHO_C='\c';;
268
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
269
+ ECHO_T=' ';;
270
+ esac;;
271
+ *)
272
+ ECHO_N='-n';;
273
+ esac
274
+
275
+ rm -f conf$$ conf$$.exe conf$$.file
276
+ if test -d conf$$.dir; then
277
+ rm -f conf$$.dir/conf$$.file
278
+ else
279
+ rm -f conf$$.dir
280
+ mkdir conf$$.dir 2>/dev/null
281
+ fi
282
+ if (echo >conf$$.file) 2>/dev/null; then
283
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
284
+ as_ln_s='ln -s'
285
+ # ... but there are two gotchas:
286
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
287
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
288
+ # In both cases, we have to default to `cp -pR'.
289
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
290
+ as_ln_s='cp -pR'
291
+ elif ln conf$$.file conf$$ 2>/dev/null; then
292
+ as_ln_s=ln
293
+ else
294
+ as_ln_s='cp -pR'
295
+ fi
296
+ else
297
+ as_ln_s='cp -pR'
298
+ fi
299
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
300
+ rmdir conf$$.dir 2>/dev/null
301
+
302
+
303
+ # as_fn_mkdir_p
304
+ # -------------
305
+ # Create "$as_dir" as a directory, including parents if necessary.
306
+ as_fn_mkdir_p ()
307
+ {
308
+
309
+ case $as_dir in #(
310
+ -*) as_dir=./$as_dir;;
311
+ esac
312
+ test -d "$as_dir" || eval $as_mkdir_p || {
313
+ as_dirs=
314
+ while :; do
315
+ case $as_dir in #(
316
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
317
+ *) as_qdir=$as_dir;;
318
+ esac
319
+ as_dirs="'$as_qdir' $as_dirs"
320
+ as_dir=`$as_dirname -- "$as_dir" ||
321
+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
322
+ X"$as_dir" : 'X\(//\)[^/]' \| \
323
+ X"$as_dir" : 'X\(//\)$' \| \
324
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
325
+ $as_echo X"$as_dir" |
326
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
327
+ s//\1/
328
+ q
329
+ }
330
+ /^X\(\/\/\)[^/].*/{
331
+ s//\1/
332
+ q
333
+ }
334
+ /^X\(\/\/\)$/{
335
+ s//\1/
336
+ q
337
+ }
338
+ /^X\(\/\).*/{
339
+ s//\1/
340
+ q
341
+ }
342
+ s/.*/./; q'`
343
+ test -d "$as_dir" && break
344
+ done
345
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
346
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
347
+
348
+
349
+ } # as_fn_mkdir_p
350
+ if mkdir -p . 2>/dev/null; then
351
+ as_mkdir_p='mkdir -p "$as_dir"'
352
+ else
353
+ test -d ./-p && rmdir ./-p
354
+ as_mkdir_p=false
355
+ fi
356
+
357
+
358
+ # as_fn_executable_p FILE
359
+ # -----------------------
360
+ # Test if FILE is an executable regular file.
361
+ as_fn_executable_p ()
362
+ {
363
+ test -f "$1" && test -x "$1"
364
+ } # as_fn_executable_p
365
+ as_test_x='test -x'
366
+ as_executable_p=as_fn_executable_p
367
+
368
+ # Sed expression to map a string onto a valid CPP name.
369
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
370
+
371
+ # Sed expression to map a string onto a valid variable name.
372
+ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
373
+
374
+
375
+ exec 6>&1
376
+ ## ----------------------------------- ##
377
+ ## Main body of $CONFIG_STATUS script. ##
378
+ ## ----------------------------------- ##
379
+ # Save the log message, to keep $0 and so on meaningful, and to
380
+ # report actual input values of CONFIG_FILES etc. instead of their
381
+ # values after options handling.
382
+ ac_log="
383
+ This file was extended by funchook $as_me 0.1, which was
384
+ generated by GNU Autoconf 2.69. Invocation command line was
385
+
386
+ CONFIG_FILES = $CONFIG_FILES
387
+ CONFIG_HEADERS = $CONFIG_HEADERS
388
+ CONFIG_LINKS = $CONFIG_LINKS
389
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
390
+ $ $0 $@
391
+
392
+ on `(hostname || uname -n) 2>/dev/null | sed 1q`
393
+ "
394
+
395
+ # Files that config.status was made for.
396
+ config_files=" Makefile src/Makefile test/Makefile"
397
+ config_headers=" src/config.h"
398
+
399
+ ac_cs_usage="\
400
+ \`$as_me' instantiates files and other configuration actions
401
+ from templates according to the current configuration. Unless the files
402
+ and actions are specified as TAGs, all are instantiated by default.
403
+
404
+ Usage: $0 [OPTION]... [TAG]...
405
+
406
+ -h, --help print this help, then exit
407
+ -V, --version print version number and configuration settings, then exit
408
+ --config print configuration, then exit
409
+ -q, --quiet, --silent
410
+ do not print progress messages
411
+ -d, --debug don't remove temporary files
412
+ --recheck update $as_me by reconfiguring in the same conditions
413
+ --file=FILE[:TEMPLATE]
414
+ instantiate the configuration file FILE
415
+ --header=FILE[:TEMPLATE]
416
+ instantiate the configuration header FILE
417
+
418
+ Configuration files:
419
+ $config_files
420
+
421
+ Configuration headers:
422
+ $config_headers
423
+
424
+ Report bugs to the package provider."
425
+
426
+ ac_cs_config=""
427
+ ac_cs_version="\
428
+ funchook config.status 0.1
429
+ configured by ./configure, generated by GNU Autoconf 2.69,
430
+ with options \"$ac_cs_config\"
431
+
432
+ Copyright (C) 2012 Free Software Foundation, Inc.
433
+ This config.status script is free software; the Free Software Foundation
434
+ gives unlimited permission to copy, distribute and modify it."
435
+
436
+ ac_pwd='/opt/atlassian/pipelines/agent/build/funchook'
437
+ srcdir='.'
438
+ test -n "$AWK" || AWK=awk
439
+ # The default lists apply if the user does not specify any file.
440
+ ac_need_defaults=:
441
+ while test $# != 0
442
+ do
443
+ case $1 in
444
+ --*=?*)
445
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
446
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
447
+ ac_shift=:
448
+ ;;
449
+ --*=)
450
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
451
+ ac_optarg=
452
+ ac_shift=:
453
+ ;;
454
+ *)
455
+ ac_option=$1
456
+ ac_optarg=$2
457
+ ac_shift=shift
458
+ ;;
459
+ esac
460
+
461
+ case $ac_option in
462
+ # Handling of the options.
463
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
464
+ ac_cs_recheck=: ;;
465
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
466
+ $as_echo "$ac_cs_version"; exit ;;
467
+ --config | --confi | --conf | --con | --co | --c )
468
+ $as_echo "$ac_cs_config"; exit ;;
469
+ --debug | --debu | --deb | --de | --d | -d )
470
+ debug=: ;;
471
+ --file | --fil | --fi | --f )
472
+ $ac_shift
473
+ case $ac_optarg in
474
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
475
+ '') as_fn_error $? "missing file argument" ;;
476
+ esac
477
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
478
+ ac_need_defaults=false;;
479
+ --header | --heade | --head | --hea )
480
+ $ac_shift
481
+ case $ac_optarg in
482
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
483
+ esac
484
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
485
+ ac_need_defaults=false;;
486
+ --he | --h)
487
+ # Conflict between --help and --header
488
+ as_fn_error $? "ambiguous option: \`$1'
489
+ Try \`$0 --help' for more information.";;
490
+ --help | --hel | -h )
491
+ $as_echo "$ac_cs_usage"; exit ;;
492
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
493
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
494
+ ac_cs_silent=: ;;
495
+
496
+ # This is an error.
497
+ -*) as_fn_error $? "unrecognized option: \`$1'
498
+ Try \`$0 --help' for more information." ;;
499
+
500
+ *) as_fn_append ac_config_targets " $1"
501
+ ac_need_defaults=false ;;
502
+
503
+ esac
504
+ shift
505
+ done
506
+
507
+ ac_configure_extra_args=
508
+
509
+ if $ac_cs_silent; then
510
+ exec 6>/dev/null
511
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
512
+ fi
513
+
514
+ if $ac_cs_recheck; then
515
+ set X /bin/bash './configure' $ac_configure_extra_args --no-create --no-recursion
516
+ shift
517
+ $as_echo "running CONFIG_SHELL=/bin/bash $*" >&6
518
+ CONFIG_SHELL='/bin/bash'
519
+ export CONFIG_SHELL
520
+ exec "$@"
521
+ fi
522
+
523
+ exec 5>>config.log
524
+ {
525
+ echo
526
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
527
+ ## Running $as_me. ##
528
+ _ASBOX
529
+ $as_echo "$ac_log"
530
+ } >&5
531
+
532
+
533
+ # Handling of arguments.
534
+ for ac_config_target in $ac_config_targets
535
+ do
536
+ case $ac_config_target in
537
+ "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;;
538
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
539
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
540
+ "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
541
+
542
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
543
+ esac
544
+ done
545
+
546
+
547
+ # If the user did not use the arguments to specify the items to instantiate,
548
+ # then the envvar interface is used. Set only those that are not.
549
+ # We use the long form for the default assignment because of an extremely
550
+ # bizarre bug on SunOS 4.1.3.
551
+ if $ac_need_defaults; then
552
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
553
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
554
+ fi
555
+
556
+ # Have a temporary directory for convenience. Make it in the build tree
557
+ # simply because there is no reason against having it here, and in addition,
558
+ # creating and moving files from /tmp can sometimes cause problems.
559
+ # Hook for its removal unless debugging.
560
+ # Note that there is a small window in which the directory will not be cleaned:
561
+ # after its creation but before its name has been assigned to `$tmp'.
562
+ $debug ||
563
+ {
564
+ tmp= ac_tmp=
565
+ trap 'exit_status=$?
566
+ : "${ac_tmp:=$tmp}"
567
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
568
+ ' 0
569
+ trap 'as_fn_exit 1' 1 2 13 15
570
+ }
571
+ # Create a (secure) tmp directory for tmp files.
572
+
573
+ {
574
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
575
+ test -d "$tmp"
576
+ } ||
577
+ {
578
+ tmp=./conf$$-$RANDOM
579
+ (umask 077 && mkdir "$tmp")
580
+ } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
581
+ ac_tmp=$tmp
582
+
583
+ # Set up the scripts for CONFIG_FILES section.
584
+ # No need to generate them if there are no CONFIG_FILES.
585
+ # This happens for instance with `./config.status config.h'.
586
+ if test -n "$CONFIG_FILES"; then
587
+
588
+
589
+ ac_cr=`echo X | tr X '\015'`
590
+ # On cygwin, bash can eat \r inside `` if the user requested igncr.
591
+ # But we know of no other shell where ac_cr would be empty at this
592
+ # point, so we can use a bashism as a fallback.
593
+ if test "x$ac_cr" = x; then
594
+ eval ac_cr=\$\'\\r\'
595
+ fi
596
+ ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
597
+ if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
598
+ ac_cs_awk_cr='\\r'
599
+ else
600
+ ac_cs_awk_cr=$ac_cr
601
+ fi
602
+
603
+ echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
604
+ cat >>"$ac_tmp/subs1.awk" <<\_ACAWK &&
605
+ S["LTLIBOBJS"]=""
606
+ S["LIBOBJS"]=""
607
+ S["IF_OSX"]="#"
608
+ S["IF_LINUX"]=""
609
+ S["IF_WIN32"]="#"
610
+ S["PIC_CFLAGS"]="-fPIC"
611
+ S["LINK_SHARED"]="$(CC) -shared"
612
+ S["LIBFUNCHOOK_SO"]="libfunchook.so"
613
+ S["FUNCHOOK_OS"]="unix"
614
+ S["FUNCHOOK_CPU"]="x86_64"
615
+ S["host_os"]="linux-gnu"
616
+ S["host_vendor"]="unknown"
617
+ S["host_cpu"]="x86_64"
618
+ S["host"]="x86_64-unknown-linux-gnu"
619
+ S["build_os"]="linux-gnu"
620
+ S["build_vendor"]="unknown"
621
+ S["build_cpu"]="x86_64"
622
+ S["build"]="x86_64-unknown-linux-gnu"
623
+ S["EGREP"]="/bin/grep -E"
624
+ S["GREP"]="/bin/grep"
625
+ S["CPP"]="gcc -E"
626
+ S["OBJEXT"]="o"
627
+ S["EXEEXT"]=""
628
+ S["ac_ct_CC"]="gcc"
629
+ S["CPPFLAGS"]=""
630
+ S["LDFLAGS"]=""
631
+ S["CFLAGS"]="-g -O2 -Wall -fvisibility=hidden"
632
+ S["CC"]="gcc"
633
+ S["target_alias"]=""
634
+ S["host_alias"]=""
635
+ S["build_alias"]=""
636
+ S["LIBS"]="-ldl"
637
+ S["ECHO_T"]=""
638
+ S["ECHO_N"]="-n"
639
+ S["ECHO_C"]=""
640
+ S["DEFS"]="-DHAVE_CONFIG_H"
641
+ S["mandir"]="${datarootdir}/man"
642
+ S["localedir"]="${datarootdir}/locale"
643
+ S["libdir"]="${exec_prefix}/lib"
644
+ S["psdir"]="${docdir}"
645
+ S["pdfdir"]="${docdir}"
646
+ S["dvidir"]="${docdir}"
647
+ S["htmldir"]="${docdir}"
648
+ S["infodir"]="${datarootdir}/info"
649
+ S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}"
650
+ S["oldincludedir"]="/usr/include"
651
+ S["includedir"]="${prefix}/include"
652
+ S["runstatedir"]="${localstatedir}/run"
653
+ S["localstatedir"]="${prefix}/var"
654
+ S["sharedstatedir"]="${prefix}/com"
655
+ S["sysconfdir"]="${prefix}/etc"
656
+ S["datadir"]="${datarootdir}"
657
+ S["datarootdir"]="${prefix}/share"
658
+ S["libexecdir"]="${exec_prefix}/libexec"
659
+ S["sbindir"]="${exec_prefix}/sbin"
660
+ S["bindir"]="${exec_prefix}/bin"
661
+ S["program_transform_name"]="s,x,x,"
662
+ S["prefix"]="/usr/local"
663
+ S["exec_prefix"]="${prefix}"
664
+ S["PACKAGE_URL"]=""
665
+ S["PACKAGE_BUGREPORT"]=""
666
+ S["PACKAGE_STRING"]="funchook 0.1"
667
+ S["PACKAGE_VERSION"]="0.1"
668
+ S["PACKAGE_TARNAME"]="funchook"
669
+ S["PACKAGE_NAME"]="funchook"
670
+ S["PATH_SEPARATOR"]=":"
671
+ S["SHELL"]="/bin/bash"
672
+ _ACAWK
673
+ cat >>"$ac_tmp/subs1.awk" <<_ACAWK &&
674
+ for (key in S) S_is_set[key] = 1
675
+ FS = ""
676
+
677
+ }
678
+ {
679
+ line = $ 0
680
+ nfields = split(line, field, "@")
681
+ substed = 0
682
+ len = length(field[1])
683
+ for (i = 2; i < nfields; i++) {
684
+ key = field[i]
685
+ keylen = length(key)
686
+ if (S_is_set[key]) {
687
+ value = S[key]
688
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
689
+ len += length(value) + length(field[++i])
690
+ substed = 1
691
+ } else
692
+ len += 1 + keylen
693
+ }
694
+
695
+ print line
696
+ }
697
+
698
+ _ACAWK
699
+ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
700
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
701
+ else
702
+ cat
703
+ fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
704
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
705
+ fi # test -n "$CONFIG_FILES"
706
+
707
+ # Set up the scripts for CONFIG_HEADERS section.
708
+ # No need to generate them if there are no CONFIG_HEADERS.
709
+ # This happens for instance with `./config.status Makefile'.
710
+ if test -n "$CONFIG_HEADERS"; then
711
+ cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
712
+ BEGIN {
713
+ D["PACKAGE_NAME"]=" \"funchook\""
714
+ D["PACKAGE_TARNAME"]=" \"funchook\""
715
+ D["PACKAGE_VERSION"]=" \"0.1\""
716
+ D["PACKAGE_STRING"]=" \"funchook 0.1\""
717
+ D["PACKAGE_BUGREPORT"]=" \"\""
718
+ D["PACKAGE_URL"]=" \"\""
719
+ D["STDC_HEADERS"]=" 1"
720
+ D["HAVE_SYS_TYPES_H"]=" 1"
721
+ D["HAVE_SYS_STAT_H"]=" 1"
722
+ D["HAVE_STDLIB_H"]=" 1"
723
+ D["HAVE_STRING_H"]=" 1"
724
+ D["HAVE_MEMORY_H"]=" 1"
725
+ D["HAVE_STRINGS_H"]=" 1"
726
+ D["HAVE_INTTYPES_H"]=" 1"
727
+ D["HAVE_STDINT_H"]=" 1"
728
+ D["HAVE_UNISTD_H"]=" 1"
729
+ D["__EXTENSIONS__"]=" 1"
730
+ D["_ALL_SOURCE"]=" 1"
731
+ D["_GNU_SOURCE"]=" 1"
732
+ D["_POSIX_PTHREAD_SEMANTICS"]=" 1"
733
+ D["_TANDEM_SOURCE"]=" 1"
734
+ D["SIZEOF_VOIDP"]=" 8"
735
+ D["HAVE_DECL__SYS_NERR"]=" 1"
736
+ D["HAVE_DECL__SYS_ERRLIST"]=" 1"
737
+ D["HAVE_DECL_SYS_NERR"]=" 1"
738
+ D["HAVE_DECL_SYS_ERRLIST"]=" 1"
739
+ for (key in D) D_is_set[key] = 1
740
+ FS = ""
741
+ }
742
+ /^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\t (]|$)/ {
743
+ line = $ 0
744
+ split(line, arg, " ")
745
+ if (arg[1] == "#") {
746
+ defundef = arg[2]
747
+ mac1 = arg[3]
748
+ } else {
749
+ defundef = substr(arg[1], 2)
750
+ mac1 = arg[2]
751
+ }
752
+ split(mac1, mac2, "(") #)
753
+ macro = mac2[1]
754
+ prefix = substr(line, 1, index(line, defundef) - 1)
755
+ if (D_is_set[macro]) {
756
+ # Preserve the white space surrounding the "#".
757
+ print prefix "define", macro P[macro] D[macro]
758
+ next
759
+ } else {
760
+ # Replace #undef with comments. This is necessary, for example,
761
+ # in the case of _POSIX_SOURCE, which is predefined and required
762
+ # on some systems where configure will not decide to define it.
763
+ if (defundef == "undef") {
764
+ print "/*", prefix defundef, macro, "*/"
765
+ next
766
+ }
767
+ }
768
+ }
769
+ { print }
770
+ _ACAWK
771
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
772
+ fi # test -n "$CONFIG_HEADERS"
773
+
774
+
775
+ eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
776
+ shift
777
+ for ac_tag
778
+ do
779
+ case $ac_tag in
780
+ :[FHLC]) ac_mode=$ac_tag; continue;;
781
+ esac
782
+ case $ac_mode$ac_tag in
783
+ :[FHL]*:*);;
784
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
785
+ :[FH]-) ac_tag=-:-;;
786
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
787
+ esac
788
+ ac_save_IFS=$IFS
789
+ IFS=:
790
+ set x $ac_tag
791
+ IFS=$ac_save_IFS
792
+ shift
793
+ ac_file=$1
794
+ shift
795
+
796
+ case $ac_mode in
797
+ :L) ac_source=$1;;
798
+ :[FH])
799
+ ac_file_inputs=
800
+ for ac_f
801
+ do
802
+ case $ac_f in
803
+ -) ac_f="$ac_tmp/stdin";;
804
+ *) # Look for the file first in the build tree, then in the source tree
805
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
806
+ # because $ac_f cannot contain `:'.
807
+ test -f "$ac_f" ||
808
+ case $ac_f in
809
+ [\\/$]*) false;;
810
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
811
+ esac ||
812
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
813
+ esac
814
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
815
+ as_fn_append ac_file_inputs " '$ac_f'"
816
+ done
817
+
818
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
819
+ # use $as_me), people would be surprised to read:
820
+ # /* config.h. Generated by config.status. */
821
+ configure_input='Generated from '`
822
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
823
+ `' by configure.'
824
+ if test x"$ac_file" != x-; then
825
+ configure_input="$ac_file. $configure_input"
826
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
827
+ $as_echo "$as_me: creating $ac_file" >&6;}
828
+ fi
829
+ # Neutralize special characters interpreted by sed in replacement strings.
830
+ case $configure_input in #(
831
+ *\&* | *\|* | *\\* )
832
+ ac_sed_conf_input=`$as_echo "$configure_input" |
833
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
834
+ *) ac_sed_conf_input=$configure_input;;
835
+ esac
836
+
837
+ case $ac_tag in
838
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
839
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
840
+ esac
841
+ ;;
842
+ esac
843
+
844
+ ac_dir=`$as_dirname -- "$ac_file" ||
845
+ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
846
+ X"$ac_file" : 'X\(//\)[^/]' \| \
847
+ X"$ac_file" : 'X\(//\)$' \| \
848
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
849
+ $as_echo X"$ac_file" |
850
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
851
+ s//\1/
852
+ q
853
+ }
854
+ /^X\(\/\/\)[^/].*/{
855
+ s//\1/
856
+ q
857
+ }
858
+ /^X\(\/\/\)$/{
859
+ s//\1/
860
+ q
861
+ }
862
+ /^X\(\/\).*/{
863
+ s//\1/
864
+ q
865
+ }
866
+ s/.*/./; q'`
867
+ as_dir="$ac_dir"; as_fn_mkdir_p
868
+ ac_builddir=.
869
+
870
+ case "$ac_dir" in
871
+ .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
872
+ *)
873
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
874
+ # A ".." for each directory in $ac_dir_suffix.
875
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
876
+ case $ac_top_builddir_sub in
877
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
878
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
879
+ esac ;;
880
+ esac
881
+ ac_abs_top_builddir=$ac_pwd
882
+ ac_abs_builddir=$ac_pwd$ac_dir_suffix
883
+ # for backward compatibility:
884
+ ac_top_builddir=$ac_top_build_prefix
885
+
886
+ case $srcdir in
887
+ .) # We are building in place.
888
+ ac_srcdir=.
889
+ ac_top_srcdir=$ac_top_builddir_sub
890
+ ac_abs_top_srcdir=$ac_pwd ;;
891
+ [\\/]* | ?:[\\/]* ) # Absolute name.
892
+ ac_srcdir=$srcdir$ac_dir_suffix;
893
+ ac_top_srcdir=$srcdir
894
+ ac_abs_top_srcdir=$srcdir ;;
895
+ *) # Relative name.
896
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
897
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
898
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
899
+ esac
900
+ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
901
+
902
+
903
+ case $ac_mode in
904
+ :F)
905
+ #
906
+ # CONFIG_FILE
907
+ #
908
+
909
+ # If the template does not know about datarootdir, expand it.
910
+ # FIXME: This hack should be removed a few years after 2.60.
911
+ ac_datarootdir_hack=; ac_datarootdir_seen=
912
+ ac_sed_dataroot='
913
+ /datarootdir/ {
914
+ p
915
+ q
916
+ }
917
+ /@datadir@/p
918
+ /@docdir@/p
919
+ /@infodir@/p
920
+ /@localedir@/p
921
+ /@mandir@/p'
922
+ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
923
+ *datarootdir*) ac_datarootdir_seen=yes;;
924
+ *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
925
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
926
+ $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
927
+ ac_datarootdir_hack='
928
+ s&@datadir@&${datarootdir}&g
929
+ s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g
930
+ s&@infodir@&${datarootdir}/info&g
931
+ s&@localedir@&${datarootdir}/locale&g
932
+ s&@mandir@&${datarootdir}/man&g
933
+ s&\${datarootdir}&${prefix}/share&g' ;;
934
+ esac
935
+ ac_sed_extra="/^[ ]*VPATH[ ]*=[ ]*/{
936
+ h
937
+ s///
938
+ s/^/:/
939
+ s/[ ]*$/:/
940
+ s/:\$(srcdir):/:/g
941
+ s/:\${srcdir}:/:/g
942
+ s/:@srcdir@:/:/g
943
+ s/^:*//
944
+ s/:*$//
945
+ x
946
+ s/\(=[ ]*\).*/\1/
947
+ G
948
+ s/\n//
949
+ s/^[^=]*=[ ]*$//
950
+ }
951
+
952
+ :t
953
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
954
+ s|@configure_input@|$ac_sed_conf_input|;t t
955
+ s&@top_builddir@&$ac_top_builddir_sub&;t t
956
+ s&@top_build_prefix@&$ac_top_build_prefix&;t t
957
+ s&@srcdir@&$ac_srcdir&;t t
958
+ s&@abs_srcdir@&$ac_abs_srcdir&;t t
959
+ s&@top_srcdir@&$ac_top_srcdir&;t t
960
+ s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
961
+ s&@builddir@&$ac_builddir&;t t
962
+ s&@abs_builddir@&$ac_abs_builddir&;t t
963
+ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
964
+ $ac_datarootdir_hack
965
+ "
966
+ eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
967
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
968
+
969
+ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
970
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
971
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
972
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
973
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
974
+ which seems to be undefined. Please make sure it is defined" >&5
975
+ $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
976
+ which seems to be undefined. Please make sure it is defined" >&2;}
977
+
978
+ rm -f "$ac_tmp/stdin"
979
+ case $ac_file in
980
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
981
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
982
+ esac \
983
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
984
+ ;;
985
+ :H)
986
+ #
987
+ # CONFIG_HEADER
988
+ #
989
+ if test x"$ac_file" != x-; then
990
+ {
991
+ $as_echo "/* $configure_input */" \
992
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
993
+ } >"$ac_tmp/config.h" \
994
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
995
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
996
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
997
+ $as_echo "$as_me: $ac_file is unchanged" >&6;}
998
+ else
999
+ rm -f "$ac_file"
1000
+ mv "$ac_tmp/config.h" "$ac_file" \
1001
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1002
+ fi
1003
+ else
1004
+ $as_echo "/* $configure_input */" \
1005
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
1006
+ || as_fn_error $? "could not create -" "$LINENO" 5
1007
+ fi
1008
+ ;;
1009
+
1010
+
1011
+ esac
1012
+
1013
+ done # for ac_tag
1014
+
1015
+
1016
+ as_fn_exit 0