rugged 1.7.2 → 1.9.6
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.
- checksums.yaml +4 -4
- data/ext/rugged/extconf.rb +4 -4
- data/ext/rugged/rugged.c +12 -1
- data/ext/rugged/rugged_blame.c +22 -6
- data/ext/rugged/rugged_blob.c +24 -9
- data/ext/rugged/rugged_branch.c +10 -7
- data/ext/rugged/rugged_branch_collection.c +8 -6
- data/ext/rugged/rugged_commit.c +7 -6
- data/ext/rugged/rugged_config.c +20 -11
- data/ext/rugged/rugged_diff.c +26 -12
- data/ext/rugged/rugged_diff_hunk.c +2 -1
- data/ext/rugged/rugged_index.c +39 -29
- data/ext/rugged/rugged_note.c +7 -6
- data/ext/rugged/rugged_object.c +3 -2
- data/ext/rugged/rugged_patch.c +23 -9
- data/ext/rugged/rugged_rebase.c +22 -10
- data/ext/rugged/rugged_reference.c +22 -13
- data/ext/rugged/rugged_reference_collection.c +9 -7
- data/ext/rugged/rugged_remote.c +23 -12
- data/ext/rugged/rugged_remote_collection.c +11 -9
- data/ext/rugged/rugged_repo.c +60 -45
- data/ext/rugged/rugged_revwalk.c +22 -12
- data/ext/rugged/rugged_submodule.c +23 -20
- data/ext/rugged/rugged_submodule_collection.c +20 -9
- data/ext/rugged/rugged_tag.c +6 -4
- data/ext/rugged/rugged_tag_collection.c +7 -5
- data/ext/rugged/rugged_tree.c +27 -15
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +3 -0
- data/vendor/libgit2/CMakeLists.txt +23 -10
- data/vendor/libgit2/COPYING +278 -12
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +8 -3
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +17 -8
- data/vendor/libgit2/cmake/SelectHashes.cmake +28 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +14 -4
- data/vendor/libgit2/cmake/SelectSSH.cmake +30 -19
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre2/CMakeLists.txt +110 -0
- data/vendor/libgit2/deps/pcre2/LICENCE.md +104 -0
- data/vendor/libgit2/deps/pcre2/config.h.in +54 -0
- data/vendor/libgit2/deps/pcre2/pcre2.h +1079 -0
- data/vendor/libgit2/deps/pcre2/pcre2_auto_possess.c +1416 -0
- data/vendor/libgit2/deps/{pcre/pcre_chartables.c → pcre2/pcre2_chartables.c} +41 -47
- data/vendor/libgit2/deps/{pcre/pcre_ord2utf8.c → pcre2/pcre2_chkdint.c} +36 -36
- data/vendor/libgit2/deps/pcre2/pcre2_compile.c +11345 -0
- data/vendor/libgit2/deps/pcre2/pcre2_compile.h +356 -0
- data/vendor/libgit2/deps/pcre2/pcre2_compile_cgroup.c +632 -0
- data/vendor/libgit2/deps/pcre2/pcre2_compile_class.c +2777 -0
- data/vendor/libgit2/deps/pcre2/pcre2_config.c +250 -0
- data/vendor/libgit2/deps/pcre2/pcre2_context.c +557 -0
- data/vendor/libgit2/deps/pcre2/pcre2_convert.c +1263 -0
- data/vendor/libgit2/deps/{pcre/pcre_dfa_exec.c → pcre2/pcre2_dfa_match.c} +1402 -943
- data/vendor/libgit2/deps/pcre2/pcre2_error.c +384 -0
- data/vendor/libgit2/deps/pcre2/pcre2_extuni.c +159 -0
- data/vendor/libgit2/deps/pcre2/pcre2_find_bracket.c +217 -0
- data/vendor/libgit2/deps/pcre2/pcre2_fuzzsupport.c +844 -0
- data/vendor/libgit2/deps/pcre2/pcre2_internal.h +2353 -0
- data/vendor/libgit2/deps/pcre2/pcre2_intmodedep.h +1044 -0
- data/vendor/libgit2/deps/pcre2/pcre2_maketables.c +177 -0
- data/vendor/libgit2/deps/pcre2/pcre2_match.c +8244 -0
- data/vendor/libgit2/deps/pcre2/pcre2_match_data.c +184 -0
- data/vendor/libgit2/deps/pcre2/pcre2_match_next.c +171 -0
- data/vendor/libgit2/deps/{pcre/pcre_newline.c → pcre2/pcre2_newline.c} +92 -63
- data/vendor/libgit2/deps/{pcre/pcre_refcount.c → pcre2/pcre2_ord2utf.c} +64 -38
- data/vendor/libgit2/deps/pcre2/pcre2_pattern_info.c +430 -0
- data/vendor/libgit2/deps/pcre2/pcre2_printint_inc.h +1098 -0
- data/vendor/libgit2/deps/pcre2/pcre2_script_run.c +344 -0
- data/vendor/libgit2/deps/pcre2/pcre2_serialize.c +284 -0
- data/vendor/libgit2/deps/pcre2/pcre2_string_utils.c +199 -0
- data/vendor/libgit2/deps/pcre2/pcre2_study.c +2087 -0
- data/vendor/libgit2/deps/pcre2/pcre2_substitute.c +1761 -0
- data/vendor/libgit2/deps/pcre2/pcre2_substring.c +553 -0
- data/vendor/libgit2/deps/pcre2/pcre2_tables.c +310 -0
- data/vendor/libgit2/deps/pcre2/pcre2_ucd.c +5805 -0
- data/vendor/libgit2/deps/pcre2/pcre2_ucp.h +408 -0
- data/vendor/libgit2/deps/pcre2/pcre2_ucptables_inc.h +1596 -0
- data/vendor/libgit2/deps/pcre2/pcre2_util.h +179 -0
- data/vendor/libgit2/deps/pcre2/pcre2_valid_utf.c +397 -0
- data/vendor/libgit2/deps/pcre2/pcre2_xclass.c +547 -0
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/xdiff/xmerge.c +16 -12
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +132 -63
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +134 -4
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +38 -8
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +46 -73
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -15
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +50 -3
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +23 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +12 -3
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +113 -25
- data/vendor/libgit2/include/git2/repository.h +57 -21
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -0
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +103 -62
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +43 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +11 -2
- data/vendor/libgit2/include/git2/sys/transport.h +25 -4
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +46 -8
- data/vendor/libgit2/include/git2/worktree.h +16 -6
- data/vendor/libgit2/src/CMakeLists.txt +6 -4
- data/vendor/libgit2/src/cli/CMakeLists.txt +3 -4
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +5 -7
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +31 -5
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +51 -2
- data/vendor/libgit2/src/cli/progress.h +12 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +55 -21
- data/vendor/libgit2/src/libgit2/apply.c +10 -13
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +17 -5
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +135 -43
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +1 -2
- data/vendor/libgit2/src/libgit2/clone.c +192 -166
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +93 -1
- data/vendor/libgit2/src/libgit2/commit_graph.c +68 -58
- data/vendor/libgit2/src/libgit2/commit_graph.h +1 -2
- data/vendor/libgit2/src/libgit2/config.c +390 -299
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +101 -89
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +195 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +12 -10
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/delta.c +13 -1
- data/vendor/libgit2/src/libgit2/describe.c +24 -24
- data/vendor/libgit2/src/libgit2/diff.c +1 -1
- data/vendor/libgit2/src/libgit2/diff_driver.c +13 -20
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_generate.c +3 -3
- data/vendor/libgit2/src/libgit2/diff_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/diff_print.c +65 -9
- data/vendor/libgit2/src/libgit2/diff_stats.c +19 -12
- data/vendor/libgit2/src/libgit2/diff_tform.c +36 -8
- data/vendor/libgit2/src/libgit2/email.c +1 -0
- data/vendor/libgit2/src/libgit2/fetch.c +5 -3
- data/vendor/libgit2/src/libgit2/fetchhead.c +1 -1
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +18 -20
- data/vendor/libgit2/src/libgit2/grafts.h +0 -1
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +76 -98
- data/vendor/libgit2/src/libgit2/index.h +5 -2
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +38 -41
- data/vendor/libgit2/src/libgit2/iterator.c +14 -8
- data/vendor/libgit2/src/libgit2/libgit2.c +153 -368
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +43 -38
- data/vendor/libgit2/src/libgit2/merge.h +4 -0
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +43 -30
- data/vendor/libgit2/src/libgit2/message.c +1 -1
- data/vendor/libgit2/src/libgit2/midx.c +30 -18
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/object.c +6 -5
- data/vendor/libgit2/src/libgit2/odb.c +7 -10
- data/vendor/libgit2/src/libgit2/odb_loose.c +24 -14
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +13 -5
- data/vendor/libgit2/src/libgit2/oid.c +36 -10
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/pack-objects.c +59 -34
- data/vendor/libgit2/src/libgit2/pack-objects.h +12 -4
- data/vendor/libgit2/src/libgit2/pack.c +33 -24
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/patch_parse.c +2 -2
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +79 -28
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/refdb_fs.c +128 -61
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +41 -13
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +125 -62
- data/vendor/libgit2/src/libgit2/remote.h +0 -1
- data/vendor/libgit2/src/libgit2/repository.c +235 -54
- data/vendor/libgit2/src/libgit2/repository.h +10 -6
- data/vendor/libgit2/src/libgit2/revert.c +1 -2
- data/vendor/libgit2/src/libgit2/revparse.c +2 -2
- data/vendor/libgit2/src/libgit2/revwalk.c +13 -10
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +477 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -60
- data/vendor/libgit2/src/libgit2/streams/openssl.c +36 -8
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +30 -0
- data/vendor/libgit2/src/libgit2/streams/stransport.c +39 -7
- data/vendor/libgit2/src/libgit2/submodule.c +195 -80
- data/vendor/libgit2/src/libgit2/submodule.h +6 -7
- data/vendor/libgit2/src/libgit2/tag.c +4 -2
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +2 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +2 -2
- data/vendor/libgit2/src/libgit2/transports/git.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/http.c +5 -6
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +124 -81
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +16 -8
- data/vendor/libgit2/src/libgit2/transports/smart.c +25 -13
- data/vendor/libgit2/src/libgit2/transports/smart.h +4 -2
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +7 -6
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +55 -10
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +386 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1132 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +35 -7
- data/vendor/libgit2/src/libgit2/tree.c +34 -26
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +14 -17
- data/vendor/libgit2/src/util/CMakeLists.txt +7 -10
- data/vendor/libgit2/src/util/alloc.c +4 -1
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/stdalloc.c +0 -10
- data/vendor/libgit2/src/util/array.h +18 -17
- data/vendor/libgit2/src/util/cc-compat.h +2 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/fs_path.c +81 -10
- data/vendor/libgit2/src/util/fs_path.h +39 -10
- data/vendor/libgit2/src/util/futils.c +6 -5
- data/vendor/libgit2/src/util/futils.h +24 -7
- data/vendor/libgit2/src/util/git2_features.h.in +12 -1
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/builtin.c +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +148 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +8 -6
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +425 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +17 -11
- data/vendor/libgit2/src/util/net.h +2 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +223 -0
- data/vendor/libgit2/src/util/rand.c +1 -7
- data/vendor/libgit2/src/util/regexp.c +28 -13
- data/vendor/libgit2/src/util/regexp.h +7 -2
- data/vendor/libgit2/src/util/runtime.c +2 -2
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/str.c +20 -8
- data/vendor/libgit2/src/util/str.h +5 -3
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +706 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +18 -5
- data/vendor/libgit2/src/util/util.h +5 -38
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/path_w32.c +81 -5
- data/vendor/libgit2/src/util/win32/posix_w32.c +29 -6
- data/vendor/libgit2/src/util/win32/process.c +522 -0
- metadata +102 -67
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
- data/vendor/libgit2/deps/pcre/COPYING +0 -5
- data/vendor/libgit2/deps/pcre/LICENCE +0 -93
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
- data/vendor/libgit2/deps/pcre/config.h.in +0 -57
- data/vendor/libgit2/deps/pcre/pcre.h +0 -641
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
- data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9815
- data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
- data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
- data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
- data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
- data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
- data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
- data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
- data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
- data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
- data/vendor/libgit2/deps/pcre/pcreposix.c +0 -420
- data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
- data/vendor/libgit2/deps/pcre/ucp.h +0 -224
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -293
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -97
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -22
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
|
@@ -24,7 +24,7 @@ static const char *const git_generated_prefixes[] = {
|
|
|
24
24
|
static int is_blank_line(const char *str)
|
|
25
25
|
{
|
|
26
26
|
const char *s = str;
|
|
27
|
-
while (*s && *s != '\n' &&
|
|
27
|
+
while (*s && *s != '\n' && git__isspace(*s))
|
|
28
28
|
s++;
|
|
29
29
|
return !*s || *s == '\n';
|
|
30
30
|
}
|
|
@@ -93,7 +93,7 @@ static bool find_separator(size_t *out, const char *line, const char *separators
|
|
|
93
93
|
return true;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
if (!whitespace_found && (
|
|
96
|
+
if (!whitespace_found && (git__isalnum(*c) || *c == '-'))
|
|
97
97
|
continue;
|
|
98
98
|
if (c != line && (*c == ' ' || *c == '\t')) {
|
|
99
99
|
whitespace_found = 1;
|
|
@@ -158,7 +158,7 @@ static size_t find_patch_start(const char *str)
|
|
|
158
158
|
const char *s;
|
|
159
159
|
|
|
160
160
|
for (s = str; *s; s = next_line(s)) {
|
|
161
|
-
if (git__prefixcmp(s, "---") == 0)
|
|
161
|
+
if (git__prefixcmp(s, "---") == 0 && git__isspace(s[3]))
|
|
162
162
|
return s - str;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -233,12 +233,12 @@ static size_t find_trailer_start(const char *buf, size_t len)
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
find_separator(&separator_pos, bol, TRAILER_SEPARATORS);
|
|
236
|
-
if (separator_pos >= 1 && !
|
|
236
|
+
if (separator_pos >= 1 && !git__isspace(bol[0])) {
|
|
237
237
|
trailer_lines++;
|
|
238
238
|
possible_continuation_lines = 0;
|
|
239
239
|
if (recognized_prefix)
|
|
240
240
|
continue;
|
|
241
|
-
} else if (
|
|
241
|
+
} else if (git__isspace(bol[0]))
|
|
242
242
|
possible_continuation_lines++;
|
|
243
243
|
else {
|
|
244
244
|
non_trailer_lines++;
|
|
@@ -323,7 +323,7 @@ int git_message_trailers(git_message_trailer_array *trailer_arr, const char *mes
|
|
|
323
323
|
goto ret;
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
-
if (
|
|
326
|
+
if (git__isalnum(*ptr) || *ptr == '-') {
|
|
327
327
|
/* legal key character */
|
|
328
328
|
NEXT(S_KEY);
|
|
329
329
|
}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
#include "transaction.h"
|
|
9
9
|
|
|
10
10
|
#include "repository.h"
|
|
11
|
-
#include "strmap.h"
|
|
12
11
|
#include "refdb.h"
|
|
13
12
|
#include "pool.h"
|
|
14
13
|
#include "reflog.h"
|
|
@@ -44,17 +43,23 @@ typedef struct {
|
|
|
44
43
|
remove :1;
|
|
45
44
|
} transaction_node;
|
|
46
45
|
|
|
46
|
+
GIT_HASHMAP_STR_SETUP(git_transaction_nodemap, transaction_node *);
|
|
47
|
+
|
|
47
48
|
struct git_transaction {
|
|
48
49
|
transaction_t type;
|
|
49
50
|
git_repository *repo;
|
|
50
51
|
git_refdb *db;
|
|
51
52
|
git_config *cfg;
|
|
53
|
+
void *cfg_data;
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
git_transaction_nodemap locks;
|
|
54
56
|
git_pool pool;
|
|
55
57
|
};
|
|
56
58
|
|
|
57
|
-
int git_transaction_config_new(
|
|
59
|
+
int git_transaction_config_new(
|
|
60
|
+
git_transaction **out,
|
|
61
|
+
git_config *cfg,
|
|
62
|
+
void *data)
|
|
58
63
|
{
|
|
59
64
|
git_transaction *tx;
|
|
60
65
|
|
|
@@ -66,6 +71,8 @@ int git_transaction_config_new(git_transaction **out, git_config *cfg)
|
|
|
66
71
|
|
|
67
72
|
tx->type = TRANSACTION_CONFIG;
|
|
68
73
|
tx->cfg = cfg;
|
|
74
|
+
tx->cfg_data = data;
|
|
75
|
+
|
|
69
76
|
*out = tx;
|
|
70
77
|
return 0;
|
|
71
78
|
}
|
|
@@ -88,11 +95,6 @@ int git_transaction_new(git_transaction **out, git_repository *repo)
|
|
|
88
95
|
goto on_error;
|
|
89
96
|
}
|
|
90
97
|
|
|
91
|
-
if ((error = git_strmap_new(&tx->locks)) < 0) {
|
|
92
|
-
error = -1;
|
|
93
|
-
goto on_error;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
98
|
if ((error = git_repository_refdb(&tx->db, repo)) < 0)
|
|
97
99
|
goto on_error;
|
|
98
100
|
|
|
@@ -124,7 +126,7 @@ int git_transaction_lock_ref(git_transaction *tx, const char *refname)
|
|
|
124
126
|
if ((error = git_refdb_lock(&node->payload, tx->db, refname)) < 0)
|
|
125
127
|
return error;
|
|
126
128
|
|
|
127
|
-
if ((error =
|
|
129
|
+
if ((error = git_transaction_nodemap_put(&tx->locks, node->name, node)) < 0)
|
|
128
130
|
goto cleanup;
|
|
129
131
|
|
|
130
132
|
return 0;
|
|
@@ -138,8 +140,11 @@ cleanup:
|
|
|
138
140
|
static int find_locked(transaction_node **out, git_transaction *tx, const char *refname)
|
|
139
141
|
{
|
|
140
142
|
transaction_node *node;
|
|
143
|
+
int error;
|
|
144
|
+
|
|
145
|
+
error = git_transaction_nodemap_get(&node, &tx->locks, refname);
|
|
141
146
|
|
|
142
|
-
if (
|
|
147
|
+
if (error != 0) {
|
|
143
148
|
git_error_set(GIT_ERROR_REFERENCE, "the specified reference is not locked");
|
|
144
149
|
return GIT_ENOTFOUND;
|
|
145
150
|
}
|
|
@@ -328,18 +333,20 @@ static int update_target(git_refdb *db, transaction_node *node)
|
|
|
328
333
|
int git_transaction_commit(git_transaction *tx)
|
|
329
334
|
{
|
|
330
335
|
transaction_node *node;
|
|
336
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
|
331
337
|
int error = 0;
|
|
332
338
|
|
|
333
339
|
GIT_ASSERT_ARG(tx);
|
|
334
340
|
|
|
335
341
|
if (tx->type == TRANSACTION_CONFIG) {
|
|
336
|
-
error = git_config_unlock(tx->cfg, true);
|
|
342
|
+
error = git_config_unlock(tx->cfg, tx->cfg_data, true);
|
|
337
343
|
tx->cfg = NULL;
|
|
344
|
+
tx->cfg_data = NULL;
|
|
338
345
|
|
|
339
346
|
return error;
|
|
340
347
|
}
|
|
341
348
|
|
|
342
|
-
|
|
349
|
+
while (git_transaction_nodemap_iterate(&iter, NULL, &node, &tx->locks) == 0) {
|
|
343
350
|
if (node->reflog) {
|
|
344
351
|
if ((error = tx->db->backend->reflog_write(tx->db->backend, node->reflog)) < 0)
|
|
345
352
|
return error;
|
|
@@ -355,7 +362,7 @@ int git_transaction_commit(git_transaction *tx)
|
|
|
355
362
|
if ((error = update_target(tx->db, node)) < 0)
|
|
356
363
|
return error;
|
|
357
364
|
}
|
|
358
|
-
}
|
|
365
|
+
}
|
|
359
366
|
|
|
360
367
|
return 0;
|
|
361
368
|
}
|
|
@@ -364,30 +371,29 @@ void git_transaction_free(git_transaction *tx)
|
|
|
364
371
|
{
|
|
365
372
|
transaction_node *node;
|
|
366
373
|
git_pool pool;
|
|
374
|
+
git_hashmap_iter_t iter = GIT_HASHMAP_ITER_INIT;
|
|
367
375
|
|
|
368
376
|
if (!tx)
|
|
369
377
|
return;
|
|
370
378
|
|
|
371
379
|
if (tx->type == TRANSACTION_CONFIG) {
|
|
372
|
-
if (tx->cfg)
|
|
373
|
-
git_config_unlock(tx->cfg, false);
|
|
374
|
-
git_config_free(tx->cfg);
|
|
375
|
-
}
|
|
380
|
+
if (tx->cfg)
|
|
381
|
+
git_config_unlock(tx->cfg, tx->cfg_data, false);
|
|
376
382
|
|
|
377
383
|
git__free(tx);
|
|
378
384
|
return;
|
|
379
385
|
}
|
|
380
386
|
|
|
381
387
|
/* start by unlocking the ones we've left hanging, if any */
|
|
382
|
-
|
|
388
|
+
while (git_transaction_nodemap_iterate(&iter, NULL, &node, &tx->locks) == 0) {
|
|
383
389
|
if (node->committed)
|
|
384
390
|
continue;
|
|
385
391
|
|
|
386
392
|
git_refdb_unlock(tx->db, node->payload, false, false, NULL, NULL, NULL);
|
|
387
|
-
}
|
|
393
|
+
}
|
|
388
394
|
|
|
389
395
|
git_refdb_free(tx->db);
|
|
390
|
-
|
|
396
|
+
git_transaction_nodemap_dispose(&tx->locks);
|
|
391
397
|
|
|
392
398
|
/* tx is inside the pool, so we need to extract the data */
|
|
393
399
|
memcpy(&pool, &tx->pool, sizeof(git_pool));
|
|
@@ -22,6 +22,7 @@ typedef struct transport_definition {
|
|
|
22
22
|
|
|
23
23
|
static git_smart_subtransport_definition http_subtransport_definition = { git_smart_subtransport_http, 1, NULL };
|
|
24
24
|
static git_smart_subtransport_definition git_subtransport_definition = { git_smart_subtransport_git, 0, NULL };
|
|
25
|
+
|
|
25
26
|
#ifdef GIT_SSH
|
|
26
27
|
static git_smart_subtransport_definition ssh_subtransport_definition = { git_smart_subtransport_ssh, 0, NULL };
|
|
27
28
|
#endif
|
|
@@ -33,11 +34,13 @@ static transport_definition transports[] = {
|
|
|
33
34
|
{ "http://", git_transport_smart, &http_subtransport_definition },
|
|
34
35
|
{ "https://", git_transport_smart, &http_subtransport_definition },
|
|
35
36
|
{ "file://", git_transport_local, NULL },
|
|
37
|
+
|
|
36
38
|
#ifdef GIT_SSH
|
|
37
39
|
{ "ssh://", git_transport_smart, &ssh_subtransport_definition },
|
|
38
40
|
{ "ssh+git://", git_transport_smart, &ssh_subtransport_definition },
|
|
39
41
|
{ "git+ssh://", git_transport_smart, &ssh_subtransport_definition },
|
|
40
42
|
#endif
|
|
43
|
+
|
|
41
44
|
{ NULL, 0, 0 }
|
|
42
45
|
};
|
|
43
46
|
|
|
@@ -200,7 +203,7 @@ int git_transport_unregister(const char *scheme)
|
|
|
200
203
|
git__free(d);
|
|
201
204
|
|
|
202
205
|
if (!custom_transports.length)
|
|
203
|
-
|
|
206
|
+
git_vector_dispose(&custom_transports);
|
|
204
207
|
|
|
205
208
|
error = 0;
|
|
206
209
|
goto done;
|
|
@@ -324,12 +324,14 @@ static int sspi_init_context(
|
|
|
324
324
|
return 0;
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
+
#if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32)
|
|
327
328
|
int git_http_auth_negotiate(
|
|
328
329
|
git_http_auth_context **out,
|
|
329
330
|
const git_net_url *url)
|
|
330
331
|
{
|
|
331
332
|
return sspi_init_context(out, GIT_HTTP_AUTH_NEGOTIATE, url);
|
|
332
333
|
}
|
|
334
|
+
#endif
|
|
333
335
|
|
|
334
336
|
int git_http_auth_ntlm(
|
|
335
337
|
git_http_auth_context **out,
|
|
@@ -161,7 +161,7 @@ static void ssh_custom_free(struct git_credential *cred)
|
|
|
161
161
|
|
|
162
162
|
if (c->publickey) {
|
|
163
163
|
/* Zero the memory which previously held the publickey */
|
|
164
|
-
size_t key_len =
|
|
164
|
+
size_t key_len = c->publickey_len;
|
|
165
165
|
git__memzero(c->publickey, key_len);
|
|
166
166
|
git__free(c->publickey);
|
|
167
167
|
}
|
|
@@ -204,7 +204,7 @@ int git_credential_ssh_key_memory_new(
|
|
|
204
204
|
const char *privatekey,
|
|
205
205
|
const char *passphrase)
|
|
206
206
|
{
|
|
207
|
-
#ifdef
|
|
207
|
+
#ifdef GIT_SSH_LIBSSH2_MEMORY_CREDENTIALS
|
|
208
208
|
return git_credential_ssh_key_type_new(
|
|
209
209
|
cred,
|
|
210
210
|
username,
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
#ifndef GIT_WINHTTP
|
|
11
11
|
|
|
12
|
-
#include "http_parser.h"
|
|
13
12
|
#include "net.h"
|
|
14
13
|
#include "remote.h"
|
|
15
14
|
#include "smart.h"
|
|
@@ -131,12 +130,12 @@ GIT_INLINE(void) free_cred(git_credential **cred)
|
|
|
131
130
|
static int handle_auth(
|
|
132
131
|
http_server *server,
|
|
133
132
|
const char *server_type,
|
|
134
|
-
const char *url,
|
|
135
133
|
unsigned int allowed_schemetypes,
|
|
136
134
|
unsigned int allowed_credtypes,
|
|
137
135
|
git_credential_acquire_cb callback,
|
|
138
136
|
void *callback_payload)
|
|
139
137
|
{
|
|
138
|
+
git_str server_url = GIT_STR_INIT;
|
|
140
139
|
int error = 1;
|
|
141
140
|
|
|
142
141
|
if (server->cred)
|
|
@@ -155,7 +154,8 @@ static int handle_auth(
|
|
|
155
154
|
}
|
|
156
155
|
|
|
157
156
|
if (error > 0 && callback) {
|
|
158
|
-
error =
|
|
157
|
+
if ((error = git_net_url_fmt(&server_url, &server->url)) == 0)
|
|
158
|
+
error = callback(&server->cred, server_url.ptr, server->url.username, allowed_credtypes, callback_payload);
|
|
159
159
|
|
|
160
160
|
/* treat GIT_PASSTHROUGH as if callback isn't set */
|
|
161
161
|
if (error == GIT_PASSTHROUGH)
|
|
@@ -170,6 +170,7 @@ static int handle_auth(
|
|
|
170
170
|
if (!error)
|
|
171
171
|
server->auth_schemetypes = allowed_schemetypes;
|
|
172
172
|
|
|
173
|
+
git_str_dispose(&server_url);
|
|
173
174
|
return error;
|
|
174
175
|
}
|
|
175
176
|
|
|
@@ -189,7 +190,6 @@ GIT_INLINE(int) handle_remote_auth(
|
|
|
189
190
|
return handle_auth(
|
|
190
191
|
&transport->server,
|
|
191
192
|
SERVER_TYPE_REMOTE,
|
|
192
|
-
transport->owner->url,
|
|
193
193
|
response->server_auth_schemetypes,
|
|
194
194
|
response->server_auth_credtypes,
|
|
195
195
|
connect_opts->callbacks.credentials,
|
|
@@ -212,7 +212,6 @@ GIT_INLINE(int) handle_proxy_auth(
|
|
|
212
212
|
return handle_auth(
|
|
213
213
|
&transport->proxy,
|
|
214
214
|
SERVER_TYPE_PROXY,
|
|
215
|
-
connect_opts->proxy_opts.url,
|
|
216
215
|
response->server_auth_schemetypes,
|
|
217
216
|
response->proxy_auth_credtypes,
|
|
218
217
|
connect_opts->proxy_opts.credentials,
|
|
@@ -334,7 +333,7 @@ static int lookup_proxy(
|
|
|
334
333
|
return 0;
|
|
335
334
|
}
|
|
336
335
|
|
|
337
|
-
if (!proxy ||
|
|
336
|
+
if (!proxy || !*proxy ||
|
|
338
337
|
(error = git_net_url_parse_http(&transport->proxy.url, proxy)) < 0)
|
|
339
338
|
goto done;
|
|
340
339
|
|
|
@@ -15,14 +15,4 @@
|
|
|
15
15
|
|
|
16
16
|
extern bool git_http__expect_continue;
|
|
17
17
|
|
|
18
|
-
GIT_INLINE(int) git_http__user_agent(git_str *buf)
|
|
19
|
-
{
|
|
20
|
-
const char *ua = git_libgit2__user_agent();
|
|
21
|
-
|
|
22
|
-
if (!ua)
|
|
23
|
-
ua = "libgit2 " LIBGIT2_VERSION;
|
|
24
|
-
|
|
25
|
-
return git_str_printf(buf, "git/2.0 (%s)", ua);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
18
|
#endif
|