rugged 0.27.7 → 0.27.10

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -30,7 +30,7 @@ typedef struct {
30
30
  const char *name;
31
31
  void *payload;
32
32
 
33
- git_ref_t ref_type;
33
+ git_reference_t ref_type;
34
34
  union {
35
35
  git_oid id;
36
36
  char *symbolic;
@@ -60,7 +60,7 @@ int git_transaction_config_new(git_transaction **out, git_config *cfg)
60
60
  assert(out && cfg);
61
61
 
62
62
  tx = git__calloc(1, sizeof(git_transaction));
63
- GITERR_CHECK_ALLOC(tx);
63
+ GIT_ERROR_CHECK_ALLOC(tx);
64
64
 
65
65
  tx->type = TRANSACTION_CONFIG;
66
66
  tx->cfg = cfg;
@@ -84,7 +84,7 @@ int git_transaction_new(git_transaction **out, git_repository *repo)
84
84
  goto on_error;
85
85
  }
86
86
 
87
- if ((error = git_strmap_alloc(&tx->locks)) < 0) {
87
+ if ((error = git_strmap_new(&tx->locks)) < 0) {
88
88
  error = -1;
89
89
  goto on_error;
90
90
  }
@@ -111,16 +111,15 @@ int git_transaction_lock_ref(git_transaction *tx, const char *refname)
111
111
  assert(tx && refname);
112
112
 
113
113
  node = git_pool_mallocz(&tx->pool, sizeof(transaction_node));
114
- GITERR_CHECK_ALLOC(node);
114
+ GIT_ERROR_CHECK_ALLOC(node);
115
115
 
116
116
  node->name = git_pool_strdup(&tx->pool, refname);
117
- GITERR_CHECK_ALLOC(node->name);
117
+ GIT_ERROR_CHECK_ALLOC(node->name);
118
118
 
119
119
  if ((error = git_refdb_lock(&node->payload, tx->db, refname)) < 0)
120
120
  return error;
121
121
 
122
- git_strmap_insert(tx->locks, node->name, node, &error);
123
- if (error < 0)
122
+ if ((error = git_strmap_set(tx->locks, node->name, node)) < 0)
124
123
  goto cleanup;
125
124
 
126
125
  return 0;
@@ -133,17 +132,13 @@ cleanup:
133
132
 
134
133
  static int find_locked(transaction_node **out, git_transaction *tx, const char *refname)
135
134
  {
136
- git_strmap_iter pos;
137
135
  transaction_node *node;
138
136
 
139
- pos = git_strmap_lookup_index(tx->locks, refname);
140
- if (!git_strmap_valid_index(tx->locks, pos)) {
141
- giterr_set(GITERR_REFERENCE, "the specified reference is not locked");
137
+ if ((node = git_strmap_get(tx->locks, refname)) == NULL) {
138
+ git_error_set(GIT_ERROR_REFERENCE, "the specified reference is not locked");
142
139
  return GIT_ENOTFOUND;
143
140
  }
144
141
 
145
- node = git_strmap_value_at(tx->locks, pos);
146
-
147
142
  *out = node;
148
143
  return 0;
149
144
  }
@@ -169,7 +164,7 @@ static int copy_common(transaction_node *node, git_transaction *tx, const git_si
169
164
 
170
165
  if (msg) {
171
166
  node->message = git_pool_strdup(&tx->pool, msg);
172
- GITERR_CHECK_ALLOC(node->message);
167
+ GIT_ERROR_CHECK_ALLOC(node->message);
173
168
  }
174
169
 
175
170
  return 0;
@@ -189,7 +184,7 @@ int git_transaction_set_target(git_transaction *tx, const char *refname, const g
189
184
  return error;
190
185
 
191
186
  git_oid_cpy(&node->target.id, target);
192
- node->ref_type = GIT_REF_OID;
187
+ node->ref_type = GIT_REFERENCE_DIRECT;
193
188
 
194
189
  return 0;
195
190
  }
@@ -208,8 +203,8 @@ int git_transaction_set_symbolic_target(git_transaction *tx, const char *refname
208
203
  return error;
209
204
 
210
205
  node->target.symbolic = git_pool_strdup(&tx->pool, target);
211
- GITERR_CHECK_ALLOC(node->target.symbolic);
212
- node->ref_type = GIT_REF_SYMBOLIC;
206
+ GIT_ERROR_CHECK_ALLOC(node->target.symbolic);
207
+ node->ref_type = GIT_REFERENCE_SYMBOLIC;
213
208
 
214
209
  return 0;
215
210
  }
@@ -223,7 +218,7 @@ int git_transaction_remove(git_transaction *tx, const char *refname)
223
218
  return error;
224
219
 
225
220
  node->remove = true;
226
- node->ref_type = GIT_REF_OID; /* the id will be ignored */
221
+ node->ref_type = GIT_REFERENCE_DIRECT; /* the id will be ignored */
227
222
 
228
223
  return 0;
229
224
  }
@@ -235,18 +230,18 @@ static int dup_reflog(git_reflog **out, const git_reflog *in, git_pool *pool)
235
230
  size_t len, i;
236
231
 
237
232
  reflog = git_pool_mallocz(pool, sizeof(git_reflog));
238
- GITERR_CHECK_ALLOC(reflog);
233
+ GIT_ERROR_CHECK_ALLOC(reflog);
239
234
 
240
235
  reflog->ref_name = git_pool_strdup(pool, in->ref_name);
241
- GITERR_CHECK_ALLOC(reflog->ref_name);
236
+ GIT_ERROR_CHECK_ALLOC(reflog->ref_name);
242
237
 
243
238
  len = in->entries.length;
244
239
  reflog->entries.length = len;
245
240
  reflog->entries.contents = git_pool_mallocz(pool, len * sizeof(void *));
246
- GITERR_CHECK_ALLOC(reflog->entries.contents);
241
+ GIT_ERROR_CHECK_ALLOC(reflog->entries.contents);
247
242
 
248
243
  entries = git_pool_mallocz(pool, len * sizeof(git_reflog_entry));
249
- GITERR_CHECK_ALLOC(entries);
244
+ GIT_ERROR_CHECK_ALLOC(entries);
250
245
 
251
246
  for (i = 0; i < len; i++) {
252
247
  const git_reflog_entry *src;
@@ -260,7 +255,7 @@ static int dup_reflog(git_reflog **out, const git_reflog *in, git_pool *pool)
260
255
  git_oid_cpy(&tgt->oid_cur, &src->oid_cur);
261
256
 
262
257
  tgt->msg = git_pool_strdup(pool, src->msg);
263
- GITERR_CHECK_ALLOC(tgt->msg);
258
+ GIT_ERROR_CHECK_ALLOC(tgt->msg);
264
259
 
265
260
  if (git_signature__pdup(&tgt->committer, src->committer, pool) < 0)
266
261
  return -1;
@@ -292,22 +287,22 @@ static int update_target(git_refdb *db, transaction_node *node)
292
287
  git_reference *ref;
293
288
  int error, update_reflog;
294
289
 
295
- if (node->ref_type == GIT_REF_OID) {
290
+ if (node->ref_type == GIT_REFERENCE_DIRECT) {
296
291
  ref = git_reference__alloc(node->name, &node->target.id, NULL);
297
- } else if (node->ref_type == GIT_REF_SYMBOLIC) {
292
+ } else if (node->ref_type == GIT_REFERENCE_SYMBOLIC) {
298
293
  ref = git_reference__alloc_symbolic(node->name, node->target.symbolic);
299
294
  } else {
300
295
  abort();
301
296
  }
302
297
 
303
- GITERR_CHECK_ALLOC(ref);
298
+ GIT_ERROR_CHECK_ALLOC(ref);
304
299
  update_reflog = node->reflog == NULL;
305
300
 
306
301
  if (node->remove) {
307
302
  error = git_refdb_unlock(db, node->payload, 2, false, ref, NULL, NULL);
308
- } else if (node->ref_type == GIT_REF_OID) {
303
+ } else if (node->ref_type == GIT_REFERENCE_DIRECT) {
309
304
  error = git_refdb_unlock(db, node->payload, true, update_reflog, ref, node->sig, node->message);
310
- } else if (node->ref_type == GIT_REF_SYMBOLIC) {
305
+ } else if (node->ref_type == GIT_REFERENCE_SYMBOLIC) {
311
306
  error = git_refdb_unlock(db, node->payload, true, update_reflog, ref, node->sig, node->message);
312
307
  } else {
313
308
  abort();
@@ -339,7 +334,13 @@ int git_transaction_commit(git_transaction *tx)
339
334
  return error;
340
335
  }
341
336
 
342
- if (node->ref_type != GIT_REF_INVALID) {
337
+ if (node->ref_type == GIT_REFERENCE_INVALID) {
338
+ /* ref was locked but not modified */
339
+ if ((error = git_refdb_unlock(tx->db, node->payload, false, false, NULL, NULL, NULL)) < 0) {
340
+ return error;
341
+ }
342
+ node->committed = true;
343
+ } else {
343
344
  if ((error = update_target(tx->db, node)) < 0)
344
345
  return error;
345
346
  }
@@ -123,7 +123,7 @@ int git_transport_new(git_transport **out, git_remote *owner, const char *url)
123
123
  int error;
124
124
 
125
125
  if ((error = transport_find_fn(&fn, url, &param)) == GIT_ENOTFOUND) {
126
- giterr_set(GITERR_NET, "unsupported URL protocol");
126
+ git_error_set(GIT_ERROR_NET, "unsupported URL protocol");
127
127
  return -1;
128
128
  } else if (error < 0)
129
129
  return error;
@@ -131,7 +131,7 @@ int git_transport_new(git_transport **out, git_remote *owner, const char *url)
131
131
  if ((error = fn(&transport, owner, param)) < 0)
132
132
  return error;
133
133
 
134
- GITERR_CHECK_VERSION(transport, GIT_TRANSPORT_VERSION, "git_transport");
134
+ GIT_ERROR_CHECK_VERSION(transport, GIT_TRANSPORT_VERSION, "git_transport");
135
135
 
136
136
  *out = transport;
137
137
 
@@ -162,7 +162,7 @@ int git_transport_register(
162
162
  }
163
163
 
164
164
  definition = git__calloc(1, sizeof(transport_definition));
165
- GITERR_CHECK_ALLOC(definition);
165
+ GIT_ERROR_CHECK_ALLOC(definition);
166
166
 
167
167
  definition->prefix = git_buf_detach(&prefix);
168
168
  definition->fn = cb;
@@ -9,9 +9,12 @@
9
9
 
10
10
  #include "git2.h"
11
11
  #include "buffer.h"
12
+ #include "git2/sys/cred.h"
12
13
 
13
14
  static int basic_next_token(
14
- git_buf *out, git_http_auth_context *ctx, git_cred *c)
15
+ git_buf *out,
16
+ git_http_auth_context *ctx,
17
+ git_cred *c)
15
18
  {
16
19
  git_cred_userpass_plaintext *cred;
17
20
  git_buf raw = GIT_BUF_INIT;
@@ -20,7 +23,7 @@ static int basic_next_token(
20
23
  GIT_UNUSED(ctx);
21
24
 
22
25
  if (c->credtype != GIT_CREDTYPE_USERPASS_PLAINTEXT) {
23
- giterr_set(GITERR_INVALID, "invalid credential type for basic auth");
26
+ git_error_set(GIT_ERROR_INVALID, "invalid credential type for basic auth");
24
27
  goto on_error;
25
28
  }
26
29
 
@@ -29,9 +32,8 @@ static int basic_next_token(
29
32
  git_buf_printf(&raw, "%s:%s", cred->username, cred->password);
30
33
 
31
34
  if (git_buf_oom(&raw) ||
32
- git_buf_puts(out, "Authorization: Basic ") < 0 ||
33
- git_buf_encode_base64(out, git_buf_cstr(&raw), raw.size) < 0 ||
34
- git_buf_puts(out, "\r\n") < 0)
35
+ git_buf_puts(out, "Basic ") < 0 ||
36
+ git_buf_encode_base64(out, git_buf_cstr(&raw), raw.size) < 0)
35
37
  goto on_error;
36
38
 
37
39
  error = 0;
@@ -47,26 +49,28 @@ on_error:
47
49
  static git_http_auth_context basic_context = {
48
50
  GIT_AUTHTYPE_BASIC,
49
51
  GIT_CREDTYPE_USERPASS_PLAINTEXT,
52
+ 0,
50
53
  NULL,
51
54
  basic_next_token,
55
+ NULL,
52
56
  NULL
53
57
  };
54
58
 
55
59
  int git_http_auth_basic(
56
- git_http_auth_context **out, const gitno_connection_data *connection_data)
60
+ git_http_auth_context **out, const git_net_url *url)
57
61
  {
58
- GIT_UNUSED(connection_data);
62
+ GIT_UNUSED(url);
59
63
 
60
64
  *out = &basic_context;
61
65
  return 0;
62
66
  }
63
67
 
64
68
  int git_http_auth_dummy(
65
- git_http_auth_context **out, const gitno_connection_data *connection_data)
69
+ git_http_auth_context **out, const git_net_url *url)
66
70
  {
67
- GIT_UNUSED(connection_data);
71
+ GIT_UNUSED(url);
68
72
 
69
73
  *out = NULL;
70
- return 0;
74
+ return GIT_PASSTHROUGH;
71
75
  }
72
76
 
@@ -16,6 +16,7 @@
16
16
  typedef enum {
17
17
  GIT_AUTHTYPE_BASIC = 1,
18
18
  GIT_AUTHTYPE_NEGOTIATE = 2,
19
+ GIT_AUTHTYPE_NTLM = 4,
19
20
  } git_http_authtype_t;
20
21
 
21
22
  typedef struct git_http_auth_context git_http_auth_context;
@@ -27,12 +28,18 @@ struct git_http_auth_context {
27
28
  /** Supported credentials */
28
29
  git_credtype_t credtypes;
29
30
 
31
+ /** Connection affinity or request affinity */
32
+ unsigned connection_affinity : 1;
33
+
30
34
  /** Sets the challenge on the authentication context */
31
35
  int (*set_challenge)(git_http_auth_context *ctx, const char *challenge);
32
36
 
33
37
  /** Gets the next authentication token from the context */
34
38
  int (*next_token)(git_buf *out, git_http_auth_context *ctx, git_cred *cred);
35
39
 
40
+ /** Examines if all tokens have been presented. */
41
+ int (*is_complete)(git_http_auth_context *ctx);
42
+
36
43
  /** Frees the authentication context */
37
44
  void (*free)(git_http_auth_context *ctx);
38
45
  };
@@ -50,15 +57,15 @@ typedef struct {
50
57
  /** Function to initialize an authentication context */
51
58
  int (*init_context)(
52
59
  git_http_auth_context **out,
53
- const gitno_connection_data *connection_data);
60
+ const git_net_url *url);
54
61
  } git_http_auth_scheme;
55
62
 
56
63
  int git_http_auth_dummy(
57
64
  git_http_auth_context **out,
58
- const gitno_connection_data *connection_data);
65
+ const git_net_url *url);
59
66
 
60
67
  int git_http_auth_basic(
61
68
  git_http_auth_context **out,
62
- const gitno_connection_data *connection_data);
69
+ const git_net_url *url);
63
70
 
64
71
  #endif
@@ -7,14 +7,19 @@
7
7
 
8
8
  #include "auth_negotiate.h"
9
9
 
10
- #ifdef GIT_GSSAPI
10
+ #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK)
11
11
 
12
12
  #include "git2.h"
13
13
  #include "buffer.h"
14
14
  #include "auth.h"
15
+ #include "git2/sys/cred.h"
15
16
 
17
+ #ifdef GIT_GSSFRAMEWORK
18
+ #import <GSS/GSS.h>
19
+ #elif defined(GIT_GSSAPI)
16
20
  #include <gssapi.h>
17
21
  #include <krb5.h>
22
+ #endif
18
23
 
19
24
  static gss_OID_desc negotiate_oid_spnego =
20
25
  { 6, (void *) "\x2b\x06\x01\x05\x05\x02" };
@@ -44,12 +49,12 @@ static void negotiate_err_set(
44
49
 
45
50
  if (gss_display_status(&status_display, status_major, GSS_C_GSS_CODE,
46
51
  GSS_C_NO_OID, &context, &buffer) == GSS_S_COMPLETE) {
47
- giterr_set(GITERR_NET, "%s: %.*s (%d.%d)",
52
+ git_error_set(GIT_ERROR_NET, "%s: %.*s (%d.%d)",
48
53
  message, (int)buffer.length, (const char *)buffer.value,
49
54
  status_major, status_minor);
50
55
  gss_release_buffer(&status_minor, &buffer);
51
56
  } else {
52
- giterr_set(GITERR_NET, "%s: unknown negotiate error (%d.%d)",
57
+ git_error_set(GIT_ERROR_NET, "%s: unknown negotiate error (%d.%d)",
53
58
  message, status_major, status_minor);
54
59
  }
55
60
  }
@@ -65,7 +70,7 @@ static int negotiate_set_challenge(
65
70
  git__free(ctx->challenge);
66
71
 
67
72
  ctx->challenge = git__strdup(challenge);
68
- GITERR_CHECK_ALLOC(ctx->challenge);
73
+ GIT_ERROR_CHECK_ALLOC(ctx->challenge);
69
74
 
70
75
  return 0;
71
76
  }
@@ -108,13 +113,13 @@ static int negotiate_next_token(
108
113
  challenge_len = ctx->challenge ? strlen(ctx->challenge) : 0;
109
114
 
110
115
  if (challenge_len < 9) {
111
- giterr_set(GITERR_NET, "no negotiate challenge sent from server");
116
+ git_error_set(GIT_ERROR_NET, "no negotiate challenge sent from server");
112
117
  error = -1;
113
118
  goto done;
114
119
  } else if (challenge_len > 9) {
115
120
  if (git_buf_decode_base64(&input_buf,
116
121
  ctx->challenge + 10, challenge_len - 10) < 0) {
117
- giterr_set(GITERR_NET, "invalid negotiate challenge from server");
122
+ git_error_set(GIT_ERROR_NET, "invalid negotiate challenge from server");
118
123
  error = -1;
119
124
  goto done;
120
125
  }
@@ -123,7 +128,7 @@ static int negotiate_next_token(
123
128
  input_token.length = input_buf.size;
124
129
  input_token_ptr = &input_token;
125
130
  } else if (ctx->gss_context != GSS_C_NO_CONTEXT) {
126
- giterr_set(GITERR_NET, "could not restart authentication");
131
+ git_error_set(GIT_ERROR_NET, "could not restart authentication");
127
132
  error = -1;
128
133
  goto done;
129
134
  }
@@ -144,7 +149,7 @@ static int negotiate_next_token(
144
149
  &output_token,
145
150
  NULL,
146
151
  NULL))) {
147
- negotiate_err_set(status_major, status_minor, "Negotiate failure");
152
+ negotiate_err_set(status_major, status_minor, "negotiate failure");
148
153
  error = -1;
149
154
  goto done;
150
155
  }
@@ -155,9 +160,8 @@ static int negotiate_next_token(
155
160
  goto done;
156
161
  }
157
162
 
158
- git_buf_puts(buf, "Authorization: Negotiate ");
163
+ git_buf_puts(buf, "Negotiate ");
159
164
  git_buf_encode_base64(buf, output_token.value, output_token.length);
160
- git_buf_puts(buf, "\r\n");
161
165
 
162
166
  if (git_buf_oom(buf))
163
167
  error = -1;
@@ -169,6 +173,15 @@ done:
169
173
  return error;
170
174
  }
171
175
 
176
+ static int negotiate_is_complete(git_http_auth_context *c)
177
+ {
178
+ http_auth_negotiate_context *ctx = (http_auth_negotiate_context *)c;
179
+
180
+ assert(ctx);
181
+
182
+ return (ctx->complete == 1);
183
+ }
184
+
172
185
  static void negotiate_context_free(git_http_auth_context *c)
173
186
  {
174
187
  http_auth_negotiate_context *ctx = (http_auth_negotiate_context *)c;
@@ -193,7 +206,7 @@ static void negotiate_context_free(git_http_auth_context *c)
193
206
 
194
207
  static int negotiate_init_context(
195
208
  http_auth_negotiate_context *ctx,
196
- const gitno_connection_data *connection_data)
209
+ const git_net_url *url)
197
210
  {
198
211
  OM_uint32 status_major, status_minor;
199
212
  gss_OID item, *oid;
@@ -229,12 +242,12 @@ static int negotiate_init_context(
229
242
  gss_release_oid_set(&status_minor, &mechanism_list);
230
243
 
231
244
  if (!ctx->oid) {
232
- giterr_set(GITERR_NET, "negotiate authentication is not supported");
245
+ git_error_set(GIT_ERROR_NET, "negotiate authentication is not supported");
233
246
  return -1;
234
247
  }
235
248
 
236
249
  git_buf_puts(&ctx->target, "HTTP@");
237
- git_buf_puts(&ctx->target, connection_data->host);
250
+ git_buf_puts(&ctx->target, url->host);
238
251
 
239
252
  if (git_buf_oom(&ctx->target))
240
253
  return -1;
@@ -247,24 +260,26 @@ static int negotiate_init_context(
247
260
 
248
261
  int git_http_auth_negotiate(
249
262
  git_http_auth_context **out,
250
- const gitno_connection_data *connection_data)
263
+ const git_net_url *url)
251
264
  {
252
265
  http_auth_negotiate_context *ctx;
253
266
 
254
267
  *out = NULL;
255
268
 
256
269
  ctx = git__calloc(1, sizeof(http_auth_negotiate_context));
257
- GITERR_CHECK_ALLOC(ctx);
270
+ GIT_ERROR_CHECK_ALLOC(ctx);
258
271
 
259
- if (negotiate_init_context(ctx, connection_data) < 0) {
272
+ if (negotiate_init_context(ctx, url) < 0) {
260
273
  git__free(ctx);
261
274
  return -1;
262
275
  }
263
276
 
264
277
  ctx->parent.type = GIT_AUTHTYPE_NEGOTIATE;
265
278
  ctx->parent.credtypes = GIT_CREDTYPE_DEFAULT;
279
+ ctx->parent.connection_affinity = 1;
266
280
  ctx->parent.set_challenge = negotiate_set_challenge;
267
281
  ctx->parent.next_token = negotiate_next_token;
282
+ ctx->parent.is_complete = negotiate_is_complete;
268
283
  ctx->parent.free = negotiate_context_free;
269
284
 
270
285
  *out = (git_http_auth_context *)ctx;
@@ -12,11 +12,11 @@
12
12
  #include "git2.h"
13
13
  #include "auth.h"
14
14
 
15
- #ifdef GIT_GSSAPI
15
+ #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK)
16
16
 
17
17
  extern int git_http_auth_negotiate(
18
18
  git_http_auth_context **out,
19
- const gitno_connection_data *connection_data);
19
+ const git_net_url *url);
20
20
 
21
21
  #else
22
22