rugged 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -0
  3. data/README.md +3 -3
  4. data/ext/rugged/rugged.c +7 -4
  5. data/ext/rugged/rugged_commit.c +1 -1
  6. data/ext/rugged/rugged_config.c +1 -1
  7. data/ext/rugged/rugged_object.c +1 -1
  8. data/ext/rugged/rugged_remote.c +32 -2
  9. data/ext/rugged/rugged_repo.c +13 -3
  10. data/lib/rugged/commit.rb +17 -4
  11. data/lib/rugged/repository.rb +7 -8
  12. data/lib/rugged/submodule_collection.rb +4 -4
  13. data/lib/rugged/version.rb +1 -1
  14. data/vendor/libgit2/CMakeLists.txt +41 -74
  15. data/vendor/libgit2/COPYING +109 -1
  16. data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
  17. data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
  18. data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
  19. data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
  20. data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
  21. data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
  22. data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
  23. data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
  24. data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
  25. data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
  26. data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
  27. data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
  28. data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
  29. data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
  30. data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
  31. data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
  32. data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
  33. data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
  34. data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
  35. data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
  36. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
  37. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
  38. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
  39. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
  40. data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
  41. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
  42. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
  43. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
  44. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
  45. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
  46. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
  47. data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
  48. data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
  49. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
  50. data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
  51. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
  52. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
  53. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
  54. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
  55. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  56. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  57. data/vendor/libgit2/deps/pcre/LICENCE +93 -0
  58. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  59. data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
  60. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
  61. data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
  62. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
  63. data/vendor/libgit2/deps/zlib/deflate.c +1 -0
  64. data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
  65. data/vendor/libgit2/include/git2/apply.h +2 -0
  66. data/vendor/libgit2/include/git2/attr.h +89 -0
  67. data/vendor/libgit2/include/git2/blame.h +95 -42
  68. data/vendor/libgit2/include/git2/blob.h +31 -3
  69. data/vendor/libgit2/include/git2/branch.h +25 -0
  70. data/vendor/libgit2/include/git2/cert.h +42 -5
  71. data/vendor/libgit2/include/git2/checkout.h +28 -12
  72. data/vendor/libgit2/include/git2/commit.h +35 -19
  73. data/vendor/libgit2/include/git2/common.h +33 -6
  74. data/vendor/libgit2/include/git2/config.h +1 -1
  75. data/vendor/libgit2/include/git2/deprecated.h +248 -8
  76. data/vendor/libgit2/include/git2/diff.h +35 -20
  77. data/vendor/libgit2/include/git2/errors.h +8 -7
  78. data/vendor/libgit2/include/git2/filter.h +57 -17
  79. data/vendor/libgit2/include/git2/graph.h +20 -2
  80. data/vendor/libgit2/include/git2/index.h +4 -5
  81. data/vendor/libgit2/include/git2/indexer.h +2 -1
  82. data/vendor/libgit2/include/git2/odb.h +44 -20
  83. data/vendor/libgit2/include/git2/pack.h +1 -1
  84. data/vendor/libgit2/include/git2/patch.h +8 -0
  85. data/vendor/libgit2/include/git2/rebase.h +25 -1
  86. data/vendor/libgit2/include/git2/refs.h +9 -5
  87. data/vendor/libgit2/include/git2/remote.h +59 -6
  88. data/vendor/libgit2/include/git2/repository.h +95 -52
  89. data/vendor/libgit2/include/git2/revparse.h +5 -5
  90. data/vendor/libgit2/include/git2/status.h +115 -59
  91. data/vendor/libgit2/include/git2/strarray.h +6 -10
  92. data/vendor/libgit2/include/git2/submodule.h +9 -0
  93. data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
  94. data/vendor/libgit2/include/git2/sys/filter.h +49 -28
  95. data/vendor/libgit2/include/git2/sys/midx.h +74 -0
  96. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
  97. data/vendor/libgit2/include/git2/sys/transport.h +1 -0
  98. data/vendor/libgit2/include/git2/tag.h +12 -0
  99. data/vendor/libgit2/include/git2/transport.h +1 -1
  100. data/vendor/libgit2/include/git2/tree.h +2 -14
  101. data/vendor/libgit2/include/git2/types.h +9 -0
  102. data/vendor/libgit2/include/git2/version.h +3 -3
  103. data/vendor/libgit2/include/git2/worktree.h +1 -0
  104. data/vendor/libgit2/src/CMakeLists.txt +77 -44
  105. data/vendor/libgit2/src/alloc.c +21 -8
  106. data/vendor/libgit2/src/allocators/failalloc.c +92 -0
  107. data/vendor/libgit2/src/allocators/failalloc.h +23 -0
  108. data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
  109. data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
  110. data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
  111. data/vendor/libgit2/src/annotated_commit.c +21 -9
  112. data/vendor/libgit2/src/apply.c +21 -8
  113. data/vendor/libgit2/src/array.h +11 -11
  114. data/vendor/libgit2/src/assert_safe.h +58 -0
  115. data/vendor/libgit2/src/attr.c +181 -74
  116. data/vendor/libgit2/src/attr_file.c +92 -42
  117. data/vendor/libgit2/src/attr_file.h +32 -11
  118. data/vendor/libgit2/src/attrcache.c +44 -40
  119. data/vendor/libgit2/src/attrcache.h +4 -5
  120. data/vendor/libgit2/src/blame.c +28 -15
  121. data/vendor/libgit2/src/blame_git.c +6 -3
  122. data/vendor/libgit2/src/blob.c +46 -24
  123. data/vendor/libgit2/src/branch.c +87 -37
  124. data/vendor/libgit2/src/buffer.c +339 -27
  125. data/vendor/libgit2/src/buffer.h +153 -2
  126. data/vendor/libgit2/src/cache.c +3 -24
  127. data/vendor/libgit2/src/cache.h +7 -7
  128. data/vendor/libgit2/src/cc-compat.h +10 -2
  129. data/vendor/libgit2/src/checkout.c +97 -98
  130. data/vendor/libgit2/src/cherrypick.c +8 -2
  131. data/vendor/libgit2/src/clone.c +104 -29
  132. data/vendor/libgit2/src/commit.c +41 -28
  133. data/vendor/libgit2/src/commit_graph.c +1209 -0
  134. data/vendor/libgit2/src/commit_graph.h +162 -0
  135. data/vendor/libgit2/src/commit_list.c +46 -0
  136. data/vendor/libgit2/src/commit_list.h +2 -0
  137. data/vendor/libgit2/src/common.h +26 -2
  138. data/vendor/libgit2/src/config.c +40 -22
  139. data/vendor/libgit2/src/config_cache.c +9 -4
  140. data/vendor/libgit2/src/config_entries.c +35 -27
  141. data/vendor/libgit2/src/config_file.c +25 -8
  142. data/vendor/libgit2/src/config_parse.c +5 -7
  143. data/vendor/libgit2/src/config_snapshot.c +2 -1
  144. data/vendor/libgit2/src/crlf.c +16 -6
  145. data/vendor/libgit2/src/date.c +4 -3
  146. data/vendor/libgit2/src/delta.c +1 -1
  147. data/vendor/libgit2/src/describe.c +11 -4
  148. data/vendor/libgit2/src/diff.c +23 -19
  149. data/vendor/libgit2/src/diff_driver.c +21 -17
  150. data/vendor/libgit2/src/diff_file.c +5 -7
  151. data/vendor/libgit2/src/diff_generate.c +56 -28
  152. data/vendor/libgit2/src/diff_parse.c +2 -3
  153. data/vendor/libgit2/src/diff_print.c +81 -65
  154. data/vendor/libgit2/src/diff_stats.c +19 -16
  155. data/vendor/libgit2/src/diff_tform.c +13 -13
  156. data/vendor/libgit2/src/diff_xdiff.c +4 -2
  157. data/vendor/libgit2/src/diff_xdiff.h +1 -1
  158. data/vendor/libgit2/src/errors.c +26 -19
  159. data/vendor/libgit2/src/features.h.in +5 -1
  160. data/vendor/libgit2/src/fetch.c +7 -2
  161. data/vendor/libgit2/src/fetchhead.c +8 -4
  162. data/vendor/libgit2/src/filebuf.c +9 -7
  163. data/vendor/libgit2/src/filter.c +209 -113
  164. data/vendor/libgit2/src/filter.h +24 -5
  165. data/vendor/libgit2/src/futils.c +8 -8
  166. data/vendor/libgit2/src/futils.h +4 -4
  167. data/vendor/libgit2/src/graph.c +64 -9
  168. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
  169. data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
  170. data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
  171. data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
  172. data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
  173. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
  174. data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
  175. data/vendor/libgit2/src/hash.c +16 -13
  176. data/vendor/libgit2/src/hash.h +1 -1
  177. data/vendor/libgit2/src/hashsig.c +23 -10
  178. data/vendor/libgit2/src/ident.c +13 -3
  179. data/vendor/libgit2/src/idxmap.c +0 -22
  180. data/vendor/libgit2/src/ignore.c +35 -19
  181. data/vendor/libgit2/src/index.c +126 -84
  182. data/vendor/libgit2/src/index.h +1 -1
  183. data/vendor/libgit2/src/indexer.c +60 -36
  184. data/vendor/libgit2/src/integer.h +79 -2
  185. data/vendor/libgit2/src/iterator.c +40 -28
  186. data/vendor/libgit2/src/iterator.h +1 -1
  187. data/vendor/libgit2/src/khash.h +2 -11
  188. data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
  189. data/vendor/libgit2/src/libgit2.h +15 -0
  190. data/vendor/libgit2/src/mailmap.c +23 -10
  191. data/vendor/libgit2/src/map.h +3 -3
  192. data/vendor/libgit2/src/merge.c +108 -46
  193. data/vendor/libgit2/src/merge.h +2 -1
  194. data/vendor/libgit2/src/merge_driver.c +19 -13
  195. data/vendor/libgit2/src/merge_file.c +15 -9
  196. data/vendor/libgit2/src/message.c +3 -1
  197. data/vendor/libgit2/src/midx.c +879 -0
  198. data/vendor/libgit2/src/midx.h +110 -0
  199. data/vendor/libgit2/src/mwindow.c +214 -95
  200. data/vendor/libgit2/src/mwindow.h +3 -3
  201. data/vendor/libgit2/src/net.c +133 -4
  202. data/vendor/libgit2/src/net.h +16 -2
  203. data/vendor/libgit2/src/netops.c +6 -4
  204. data/vendor/libgit2/src/netops.h +2 -2
  205. data/vendor/libgit2/src/notes.c +10 -10
  206. data/vendor/libgit2/src/object.c +24 -15
  207. data/vendor/libgit2/src/odb.c +298 -57
  208. data/vendor/libgit2/src/odb.h +16 -2
  209. data/vendor/libgit2/src/odb_loose.c +31 -21
  210. data/vendor/libgit2/src/odb_mempack.c +3 -1
  211. data/vendor/libgit2/src/odb_pack.c +391 -114
  212. data/vendor/libgit2/src/oid.c +7 -4
  213. data/vendor/libgit2/src/pack-objects.c +83 -69
  214. data/vendor/libgit2/src/pack.c +383 -150
  215. data/vendor/libgit2/src/pack.h +44 -9
  216. data/vendor/libgit2/src/patch.c +14 -7
  217. data/vendor/libgit2/src/patch_generate.c +3 -5
  218. data/vendor/libgit2/src/patch_parse.c +6 -3
  219. data/vendor/libgit2/src/path.c +102 -57
  220. data/vendor/libgit2/src/path.h +79 -6
  221. data/vendor/libgit2/src/pathspec.c +12 -11
  222. data/vendor/libgit2/src/pool.c +34 -22
  223. data/vendor/libgit2/src/pool.h +9 -1
  224. data/vendor/libgit2/src/posix.c +43 -12
  225. data/vendor/libgit2/src/posix.h +9 -0
  226. data/vendor/libgit2/src/proxy.c +2 -0
  227. data/vendor/libgit2/src/push.c +2 -0
  228. data/vendor/libgit2/src/reader.c +10 -6
  229. data/vendor/libgit2/src/rebase.c +95 -49
  230. data/vendor/libgit2/src/refdb.c +165 -13
  231. data/vendor/libgit2/src/refdb.h +69 -0
  232. data/vendor/libgit2/src/refdb_fs.c +144 -152
  233. data/vendor/libgit2/src/reflog.c +21 -20
  234. data/vendor/libgit2/src/refs.c +151 -231
  235. data/vendor/libgit2/src/refs.h +2 -20
  236. data/vendor/libgit2/src/refspec.c +80 -44
  237. data/vendor/libgit2/src/regexp.c +2 -2
  238. data/vendor/libgit2/src/remote.c +312 -121
  239. data/vendor/libgit2/src/remote.h +2 -1
  240. data/vendor/libgit2/src/repository.c +351 -189
  241. data/vendor/libgit2/src/repository.h +23 -29
  242. data/vendor/libgit2/src/reset.c +7 -6
  243. data/vendor/libgit2/src/revert.c +8 -2
  244. data/vendor/libgit2/src/revparse.c +19 -13
  245. data/vendor/libgit2/src/revwalk.c +35 -20
  246. data/vendor/libgit2/src/runtime.c +162 -0
  247. data/vendor/libgit2/src/runtime.h +62 -0
  248. data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
  249. data/vendor/libgit2/src/signature.c +6 -5
  250. data/vendor/libgit2/src/sortedcache.c +2 -3
  251. data/vendor/libgit2/src/sortedcache.h +10 -8
  252. data/vendor/libgit2/src/stash.c +7 -3
  253. data/vendor/libgit2/src/status.c +9 -4
  254. data/vendor/libgit2/src/strarray.c +64 -0
  255. data/vendor/libgit2/src/streams/mbedtls.c +14 -17
  256. data/vendor/libgit2/src/streams/mbedtls.h +1 -1
  257. data/vendor/libgit2/src/streams/openssl.c +113 -207
  258. data/vendor/libgit2/src/streams/openssl.h +9 -1
  259. data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
  260. data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
  261. data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
  262. data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
  263. data/vendor/libgit2/src/streams/registry.c +10 -9
  264. data/vendor/libgit2/src/streams/socket.c +6 -2
  265. data/vendor/libgit2/src/streams/stransport.c +6 -3
  266. data/vendor/libgit2/src/streams/tls.c +5 -3
  267. data/vendor/libgit2/src/submodule.c +134 -66
  268. data/vendor/libgit2/src/submodule.h +9 -9
  269. data/vendor/libgit2/src/sysdir.c +8 -26
  270. data/vendor/libgit2/src/sysdir.h +0 -11
  271. data/vendor/libgit2/src/tag.c +49 -11
  272. data/vendor/libgit2/src/thread.c +140 -0
  273. data/vendor/libgit2/src/thread.h +479 -0
  274. data/vendor/libgit2/src/threadstate.c +83 -0
  275. data/vendor/libgit2/src/threadstate.h +24 -0
  276. data/vendor/libgit2/src/trace.c +2 -2
  277. data/vendor/libgit2/src/trace.h +17 -13
  278. data/vendor/libgit2/src/transaction.c +21 -9
  279. data/vendor/libgit2/src/transport.c +3 -3
  280. data/vendor/libgit2/src/transports/auth.c +1 -1
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
  283. data/vendor/libgit2/src/transports/credential.c +17 -7
  284. data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
  285. data/vendor/libgit2/src/transports/git.c +1 -3
  286. data/vendor/libgit2/src/transports/http.c +19 -17
  287. data/vendor/libgit2/src/transports/http.h +1 -0
  288. data/vendor/libgit2/src/transports/httpclient.c +84 -42
  289. data/vendor/libgit2/src/transports/httpclient.h +1 -1
  290. data/vendor/libgit2/src/transports/local.c +5 -5
  291. data/vendor/libgit2/src/transports/smart.c +14 -9
  292. data/vendor/libgit2/src/transports/smart.h +1 -1
  293. data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
  294. data/vendor/libgit2/src/transports/ssh.c +51 -17
  295. data/vendor/libgit2/src/transports/winhttp.c +156 -88
  296. data/vendor/libgit2/src/tree.c +100 -77
  297. data/vendor/libgit2/src/tree.h +1 -0
  298. data/vendor/libgit2/src/tsort.c +0 -2
  299. data/vendor/libgit2/src/unix/map.c +3 -1
  300. data/vendor/libgit2/src/unix/posix.h +16 -1
  301. data/vendor/libgit2/src/unix/pthread.h +2 -1
  302. data/vendor/libgit2/src/utf8.c +150 -0
  303. data/vendor/libgit2/src/utf8.h +52 -0
  304. data/vendor/libgit2/src/util.c +74 -183
  305. data/vendor/libgit2/src/util.h +33 -39
  306. data/vendor/libgit2/src/vector.c +23 -19
  307. data/vendor/libgit2/src/vector.h +4 -2
  308. data/vendor/libgit2/src/win32/findfile.c +4 -2
  309. data/vendor/libgit2/src/win32/git2.rc +18 -3
  310. data/vendor/libgit2/src/win32/map.c +1 -1
  311. data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
  312. data/vendor/libgit2/src/win32/path_w32.c +23 -25
  313. data/vendor/libgit2/src/win32/path_w32.h +0 -1
  314. data/vendor/libgit2/src/win32/posix_w32.c +77 -1
  315. data/vendor/libgit2/src/win32/precompiled.h +0 -1
  316. data/vendor/libgit2/src/win32/reparse.h +4 -4
  317. data/vendor/libgit2/src/win32/thread.c +24 -15
  318. data/vendor/libgit2/src/win32/thread.h +1 -1
  319. data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
  320. data/vendor/libgit2/src/win32/w32_common.h +18 -9
  321. data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
  322. data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
  323. data/vendor/libgit2/src/win32/w32_util.h +6 -6
  324. data/vendor/libgit2/src/worktree.c +37 -15
  325. data/vendor/libgit2/src/zstream.c +1 -1
  326. metadata +56 -38
  327. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
  328. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
  329. data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
  330. data/vendor/libgit2/src/buf_text.c +0 -316
  331. data/vendor/libgit2/src/buf_text.h +0 -122
  332. data/vendor/libgit2/src/global.c +0 -361
  333. data/vendor/libgit2/src/global.h +0 -41
  334. data/vendor/libgit2/src/thread-utils.c +0 -58
  335. data/vendor/libgit2/src/thread-utils.h +0 -246
  336. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
  337. data/vendor/libgit2/src/win32/w32_stack.c +0 -188
  338. data/vendor/libgit2/src/win32/w32_stack.h +0 -140
@@ -14,6 +14,8 @@
14
14
  #include "crypt.h"
15
15
  #include "compat.h"
16
16
 
17
+ #define NTLM_UNUSED(x) ((void)(x))
18
+
17
19
  #define NTLM_LM_RESPONSE_LEN 24
18
20
  #define NTLM_NTLM_RESPONSE_LEN 24
19
21
  #define NTLM_NTLM_HASH_LEN 16
@@ -66,9 +68,11 @@ struct ntlm_client {
66
68
 
67
69
  ntlm_state state;
68
70
 
69
- /* crypto contexts */
70
- ntlm_hmac_ctx *hmac_ctx;
71
- ntlm_unicode_ctx *unicode_ctx;
71
+ /* subsystem contexts */
72
+ ntlm_crypt_ctx crypt_ctx;
73
+ ntlm_unicode_ctx unicode_ctx;
74
+ int crypt_initialized : 1,
75
+ unicode_initialized : 1;
72
76
 
73
77
  /* error message as set by the library */
74
78
  const char *errmsg;
@@ -85,24 +89,24 @@ struct ntlm_client {
85
89
  char *password;
86
90
 
87
91
  /* strings as converted to utf16 */
92
+ char *hostname_utf16;
88
93
  char *target_utf16;
89
94
  char *username_utf16;
90
95
  char *username_upper_utf16;
91
96
  char *userdomain_utf16;
92
- char *hostname_utf16;
93
97
  char *password_utf16;
94
98
 
95
- /* timestamp and nonce; only for debugging */
96
- uint64_t nonce;
97
- uint64_t timestamp;
98
-
99
+ size_t hostname_utf16_len;
99
100
  size_t username_utf16_len;
100
101
  size_t username_upper_utf16_len;
101
102
  size_t userdomain_utf16_len;
102
- size_t hostname_utf16_len;
103
103
  size_t password_utf16_len;
104
104
  size_t target_utf16_len;
105
105
 
106
+ /* timestamp and nonce; only for debugging */
107
+ uint64_t nonce;
108
+ uint64_t timestamp;
109
+
106
110
  unsigned char lm_response[NTLM_LM_RESPONSE_LEN];
107
111
  size_t lm_response_len;
108
112
 
@@ -15,13 +15,26 @@
15
15
  extern "C" {
16
16
  #endif
17
17
 
18
- #define NTLM_CLIENT_VERSION "0.0.1"
18
+ #define NTLM_CLIENT_VERSION "0.9.0"
19
19
  #define NTLM_CLIENT_VERSION_MAJOR 0
20
- #define NTLM_CLIENT_VERSION_MINOR 0
21
- #define NTLM_CLIENT_VERSION_TEENY 1
20
+ #define NTLM_CLIENT_VERSION_MINOR 9
21
+ #define NTLM_CLIENT_VERSION_TEENY 0
22
22
 
23
23
  typedef struct ntlm_client ntlm_client;
24
24
 
25
+ typedef enum {
26
+ /**
27
+ * An error occurred; more details are available by querying
28
+ * `ntlm_client_errmsg`.
29
+ */
30
+ NTLM_CLIENT_ERROR = -1,
31
+
32
+ /**
33
+ * The input provided to the function is missing or invalid.
34
+ */
35
+ NTLM_CLIENT_ERROR_INVALID_INPUT = -2,
36
+ } ntlm_error_code;
37
+
25
38
  /*
26
39
  * Flags for initializing the `ntlm_client` context. A combination of
27
40
  * these flags can be provided to `ntlm_client_init`.
@@ -11,26 +11,32 @@
11
11
 
12
12
  #include "compat.h"
13
13
 
14
+ #ifdef UNICODE_ICONV
15
+ # include "unicode_iconv.h"
16
+ #elif UNICODE_BUILTIN
17
+ # include "unicode_builtin.h"
18
+ #endif
19
+
14
20
  #define NTLM_UNICODE_MAX_LEN 2048
15
21
 
16
22
  typedef struct ntlm_unicode_ctx ntlm_unicode_ctx;
17
23
 
18
- extern ntlm_unicode_ctx *ntlm_unicode_ctx_init(ntlm_client *ntlm);
24
+ extern bool ntlm_unicode_init(ntlm_client *ntlm);
19
25
 
20
26
  bool ntlm_unicode_utf8_to_16(
21
27
  char **converted,
22
28
  size_t *converted_len,
23
- ntlm_unicode_ctx *ctx,
29
+ ntlm_client *ntlm,
24
30
  const char *string,
25
31
  size_t string_len);
26
32
 
27
33
  bool ntlm_unicode_utf16_to_8(
28
34
  char **converted,
29
35
  size_t *converted_len,
30
- ntlm_unicode_ctx *ctx,
36
+ ntlm_client *ntlm,
31
37
  const char *string,
32
38
  size_t string_len);
33
39
 
34
- extern void ntlm_unicode_ctx_free(ntlm_unicode_ctx *ctx);
40
+ extern void ntlm_unicode_shutdown(ntlm_client *ntlm);
35
41
 
36
42
  #endif /* PRIVATE_UNICODE_H__ */
@@ -13,10 +13,6 @@
13
13
  #include "unicode.h"
14
14
  #include "compat.h"
15
15
 
16
- struct ntlm_unicode_ctx {
17
- ntlm_client *ntlm;
18
- };
19
-
20
16
  typedef unsigned int UTF32; /* at least 32 bits */
21
17
  typedef unsigned short UTF16; /* at least 16 bits */
22
18
  typedef unsigned char UTF8; /* typically 8 bits */
@@ -281,15 +277,10 @@ static ConversionResult ConvertUTF8toUTF16 (
281
277
  }
282
278
 
283
279
 
284
- ntlm_unicode_ctx *ntlm_unicode_ctx_init(ntlm_client *ntlm)
280
+ bool ntlm_unicode_init(ntlm_client *ntlm)
285
281
  {
286
- ntlm_unicode_ctx *ctx;
287
-
288
- if ((ctx = malloc(sizeof(ntlm_unicode_ctx))) == NULL)
289
- return NULL;
290
-
291
- ctx->ntlm = ntlm;
292
- return ctx;
282
+ NTLM_UNUSED(ntlm);
283
+ return true;
293
284
  }
294
285
 
295
286
  typedef enum {
@@ -300,7 +291,7 @@ typedef enum {
300
291
  static inline bool unicode_builtin_encoding_convert(
301
292
  char **converted,
302
293
  size_t *converted_len,
303
- ntlm_unicode_ctx *ctx,
294
+ ntlm_client *ntlm,
304
295
  const char *string,
305
296
  size_t string_len,
306
297
  unicode_builtin_encoding_direction direction)
@@ -332,7 +323,7 @@ static inline bool unicode_builtin_encoding_convert(
332
323
  out_size = (out_size + 7) & ~7;
333
324
 
334
325
  if ((out = malloc(out_size)) == NULL) {
335
- ntlm_client_set_errmsg(ctx->ntlm, "out of memory");
326
+ ntlm_client_set_errmsg(ntlm, "out of memory");
336
327
  return false;
337
328
  }
338
329
 
@@ -358,17 +349,17 @@ static inline bool unicode_builtin_encoding_convert(
358
349
  success = true;
359
350
  goto done;
360
351
  case sourceExhausted:
361
- ntlm_client_set_errmsg(ctx->ntlm,
352
+ ntlm_client_set_errmsg(ntlm,
362
353
  "invalid unicode string; trailing data remains");
363
354
  goto done;
364
355
  case targetExhausted:
365
356
  break;
366
357
  case sourceIllegal:
367
- ntlm_client_set_errmsg(ctx->ntlm,
358
+ ntlm_client_set_errmsg(ntlm,
368
359
  "invalid unicode string; trailing data remains");
369
360
  goto done;
370
361
  default:
371
- ntlm_client_set_errmsg(ctx->ntlm,
362
+ ntlm_client_set_errmsg(ntlm,
372
363
  "unknown unicode conversion failure");
373
364
  goto done;
374
365
  }
@@ -377,13 +368,12 @@ static inline bool unicode_builtin_encoding_convert(
377
368
  out_size = ((((out_size << 1) - (out_size >> 1)) + 7) & ~7);
378
369
 
379
370
  if (out_size > NTLM_UNICODE_MAX_LEN) {
380
- ntlm_client_set_errmsg(ctx->ntlm,
381
- "unicode conversion too large");
371
+ ntlm_client_set_errmsg(ntlm, "unicode conversion too large");
382
372
  goto done;
383
373
  }
384
374
 
385
375
  if ((new_out = realloc(out, out_size)) == NULL) {
386
- ntlm_client_set_errmsg(ctx->ntlm, "out of memory");
376
+ ntlm_client_set_errmsg(ntlm, "out of memory");
387
377
  goto done;
388
378
  }
389
379
 
@@ -419,27 +409,26 @@ done:
419
409
  bool ntlm_unicode_utf8_to_16(
420
410
  char **converted,
421
411
  size_t *converted_len,
422
- ntlm_unicode_ctx *ctx,
412
+ ntlm_client *client,
423
413
  const char *string,
424
414
  size_t string_len)
425
415
  {
426
416
  return unicode_builtin_encoding_convert(converted, converted_len,
427
- ctx, string, string_len, unicode_builtin_utf8_to_16);
417
+ client, string, string_len, unicode_builtin_utf8_to_16);
428
418
  }
429
419
 
430
420
  bool ntlm_unicode_utf16_to_8(
431
421
  char **converted,
432
422
  size_t *converted_len,
433
- ntlm_unicode_ctx *ctx,
423
+ ntlm_client *client,
434
424
  const char *string,
435
425
  size_t string_len)
436
426
  {
437
427
  return unicode_builtin_encoding_convert(converted, converted_len,
438
- ctx, string, string_len, unicode_builtin_utf16_to_8);
428
+ client, string, string_len, unicode_builtin_utf16_to_8);
439
429
  }
440
430
 
441
- void ntlm_unicode_ctx_free(ntlm_unicode_ctx *ctx)
431
+ void ntlm_unicode_shutdown(ntlm_client *ntlm)
442
432
  {
443
- if (ctx)
444
- free(ctx);
433
+ NTLM_UNUSED(ntlm);
445
434
  }
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (c) Edward Thomson. All rights reserved.
3
+ *
4
+ * This file is part of ntlmclient, distributed under the MIT license.
5
+ * For full terms and copyright information, and for third-party
6
+ * copyright information, see the included LICENSE.txt file.
7
+ */
8
+
9
+ #ifndef PRIVATE_UNICODE_BUILTIN_H__
10
+ #define PRIVATE_UNICODE_BUILTIN_H__
11
+
12
+ #include <locale.h>
13
+ #include <iconv.h>
14
+
15
+ #include "ntlmclient.h"
16
+
17
+ struct ntlm_unicode_ctx {
18
+ };
19
+
20
+ #endif /* PRIVATE_UNICODE_BUILTIN_H__ */
@@ -16,43 +16,23 @@
16
16
  #include "ntlm.h"
17
17
  #include "compat.h"
18
18
 
19
- struct ntlm_unicode_ctx {
20
- ntlm_client *ntlm;
21
- iconv_t utf8_to_16;
22
- iconv_t utf16_to_8;
23
- };
24
-
25
- ntlm_unicode_ctx *ntlm_unicode_ctx_init(ntlm_client *ntlm)
26
- {
27
- ntlm_unicode_ctx *ctx;
28
-
29
- if ((ctx = calloc(1, sizeof(ntlm_unicode_ctx))) == NULL)
30
- return NULL;
31
-
32
- ctx->ntlm = ntlm;
33
- ctx->utf8_to_16 = (iconv_t)-1;
34
- ctx->utf16_to_8 = (iconv_t)-1;
35
-
36
- return ctx;
37
- }
38
-
39
19
  typedef enum {
40
20
  unicode_iconv_utf8_to_16,
41
21
  unicode_iconv_utf16_to_8
42
22
  } unicode_iconv_encoding_direction;
43
23
 
44
- static inline bool unicode_iconv_init(ntlm_unicode_ctx *ctx)
24
+ bool ntlm_unicode_init(ntlm_client *ntlm)
45
25
  {
46
- if (ctx->utf8_to_16 != (iconv_t)-1 || ctx->utf16_to_8 != (iconv_t)-1)
47
- return true;
26
+ ntlm->unicode_ctx.utf8_to_16 = iconv_open("UTF-16LE", "UTF-8");
27
+ ntlm->unicode_ctx.utf16_to_8 = iconv_open("UTF-8", "UTF-16LE");
48
28
 
49
- if ((ctx->utf8_to_16 = iconv_open("UTF-16LE", "UTF-8")) == (iconv_t)-1 ||
50
- (ctx->utf16_to_8 = iconv_open("UTF-8", "UTF-16LE")) == (iconv_t)-1) {
29
+ if (ntlm->unicode_ctx.utf8_to_16 == (iconv_t)-1 ||
30
+ ntlm->unicode_ctx.utf16_to_8 == (iconv_t)-1) {
51
31
  if (errno == EINVAL)
52
- ntlm_client_set_errmsg(ctx->ntlm,
32
+ ntlm_client_set_errmsg(ntlm,
53
33
  "iconv does not support UTF8 <-> UTF16 conversion");
54
34
  else
55
- ntlm_client_set_errmsg(ctx->ntlm, strerror(errno));
35
+ ntlm_client_set_errmsg(ntlm, strerror(errno));
56
36
 
57
37
  return false;
58
38
  }
@@ -63,7 +43,7 @@ static inline bool unicode_iconv_init(ntlm_unicode_ctx *ctx)
63
43
  static inline bool unicode_iconv_encoding_convert(
64
44
  char **converted,
65
45
  size_t *converted_len,
66
- ntlm_unicode_ctx *ctx,
46
+ ntlm_client *ntlm,
67
47
  const char *string,
68
48
  size_t string_len,
69
49
  unicode_iconv_encoding_direction direction)
@@ -75,9 +55,6 @@ static inline bool unicode_iconv_encoding_convert(
75
55
  *converted = NULL;
76
56
  *converted_len = 0;
77
57
 
78
- if (!unicode_iconv_init(ctx))
79
- return false;
80
-
81
58
  /*
82
59
  * When translating UTF8 to UTF16, these strings are only used
83
60
  * internally, and we obey the given length, so we can simply
@@ -86,11 +63,11 @@ static inline bool unicode_iconv_encoding_convert(
86
63
  * terminate and expect an extra byte for UTF8, two for UTF16.
87
64
  */
88
65
  if (direction == unicode_iconv_utf8_to_16) {
89
- converter = ctx->utf8_to_16;
66
+ converter = ntlm->unicode_ctx.utf8_to_16;
90
67
  out_size = (string_len * 2) + 2;
91
68
  nul_size = 2;
92
69
  } else {
93
- converter = ctx->utf16_to_8;
70
+ converter = ntlm->unicode_ctx.utf16_to_8;
94
71
  out_size = (string_len / 2) + 1;
95
72
  nul_size = 1;
96
73
  }
@@ -99,7 +76,7 @@ static inline bool unicode_iconv_encoding_convert(
99
76
  out_size = (out_size + 7) & ~7;
100
77
 
101
78
  if ((out = malloc(out_size)) == NULL) {
102
- ntlm_client_set_errmsg(ctx->ntlm, "out of memory");
79
+ ntlm_client_set_errmsg(ntlm, "out of memory");
103
80
  return false;
104
81
  }
105
82
 
@@ -117,7 +94,7 @@ static inline bool unicode_iconv_encoding_convert(
117
94
  break;
118
95
 
119
96
  if (ret == (size_t)-1 && errno != E2BIG) {
120
- ntlm_client_set_errmsg(ctx->ntlm, strerror(errno));
97
+ ntlm_client_set_errmsg(ntlm, strerror(errno));
121
98
  goto on_error;
122
99
  }
123
100
 
@@ -125,13 +102,12 @@ static inline bool unicode_iconv_encoding_convert(
125
102
  out_size = ((((out_size << 1) - (out_size >> 1)) + 7) & ~7);
126
103
 
127
104
  if (out_size > NTLM_UNICODE_MAX_LEN) {
128
- ntlm_client_set_errmsg(ctx->ntlm,
129
- "unicode conversion too large");
105
+ ntlm_client_set_errmsg(ntlm, "unicode conversion too large");
130
106
  goto on_error;
131
107
  }
132
108
 
133
109
  if ((new_out = realloc(out, out_size)) == NULL) {
134
- ntlm_client_set_errmsg(ctx->ntlm, "out of memory");
110
+ ntlm_client_set_errmsg(ntlm, "out of memory");
135
111
  goto on_error;
136
112
  }
137
113
 
@@ -139,7 +115,7 @@ static inline bool unicode_iconv_encoding_convert(
139
115
  }
140
116
 
141
117
  if (in_start_len != 0) {
142
- ntlm_client_set_errmsg(ctx->ntlm,
118
+ ntlm_client_set_errmsg(ntlm,
143
119
  "invalid unicode string; trailing data remains");
144
120
  goto on_error;
145
121
  }
@@ -165,37 +141,37 @@ on_error:
165
141
  bool ntlm_unicode_utf8_to_16(
166
142
  char **converted,
167
143
  size_t *converted_len,
168
- ntlm_unicode_ctx *ctx,
144
+ ntlm_client *ntlm,
169
145
  const char *string,
170
146
  size_t string_len)
171
147
  {
172
148
  return unicode_iconv_encoding_convert(
173
- converted, converted_len, ctx, string, string_len,
149
+ converted, converted_len, ntlm, string, string_len,
174
150
  unicode_iconv_utf8_to_16);
175
151
  }
176
152
 
177
153
  bool ntlm_unicode_utf16_to_8(
178
154
  char **converted,
179
155
  size_t *converted_len,
180
- ntlm_unicode_ctx *ctx,
156
+ ntlm_client *ntlm,
181
157
  const char *string,
182
158
  size_t string_len)
183
159
  {
184
160
  return unicode_iconv_encoding_convert(
185
- converted, converted_len, ctx, string, string_len,
161
+ converted, converted_len, ntlm, string, string_len,
186
162
  unicode_iconv_utf16_to_8);
187
163
  }
188
164
 
189
- void ntlm_unicode_ctx_free(ntlm_unicode_ctx *ctx)
165
+ void ntlm_unicode_shutdown(ntlm_client *ntlm)
190
166
  {
191
- if (!ctx)
192
- return;
193
-
194
- if (ctx->utf16_to_8 != (iconv_t)-1)
195
- iconv_close(ctx->utf16_to_8);
167
+ if (ntlm->unicode_ctx.utf16_to_8 != (iconv_t)0 &&
168
+ ntlm->unicode_ctx.utf16_to_8 != (iconv_t)-1)
169
+ iconv_close(ntlm->unicode_ctx.utf16_to_8);
196
170
 
197
- if (ctx->utf8_to_16 != (iconv_t)-1)
198
- iconv_close(ctx->utf8_to_16);
171
+ if (ntlm->unicode_ctx.utf8_to_16 != (iconv_t)0 &&
172
+ ntlm->unicode_ctx.utf8_to_16 != (iconv_t)-1)
173
+ iconv_close(ntlm->unicode_ctx.utf8_to_16);
199
174
 
200
- free(ctx);
175
+ ntlm->unicode_ctx.utf8_to_16 = (iconv_t)-1;
176
+ ntlm->unicode_ctx.utf16_to_8 = (iconv_t)-1;
201
177
  }
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright (c) Edward Thomson. All rights reserved.
3
+ *
4
+ * This file is part of ntlmclient, distributed under the MIT license.
5
+ * For full terms and copyright information, and for third-party
6
+ * copyright information, see the included LICENSE.txt file.
7
+ */
8
+
9
+ #ifndef PRIVATE_UNICODE_ICONV_H__
10
+ #define PRIVATE_UNICODE_ICONV_H__
11
+
12
+ #include <locale.h>
13
+ #include <iconv.h>
14
+
15
+ #include "ntlmclient.h"
16
+
17
+ struct ntlm_unicode_ctx {
18
+ iconv_t utf8_to_16;
19
+ iconv_t utf16_to_8;
20
+ };
21
+
22
+ #endif /* PRIVATE_UNICODE_ICONV_H__ */