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.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +99 -51
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +20 -13
- data/vendor/libgit2/include/git2/blame.h +4 -4
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/buffer.h +20 -26
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +53 -21
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +5 -5
- data/vendor/libgit2/include/git2/commit.h +25 -3
- data/vendor/libgit2/include/git2/common.h +35 -10
- data/vendor/libgit2/include/git2/config.h +29 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +177 -135
- data/vendor/libgit2/include/git2/errors.h +53 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/merge.h +25 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +5 -3
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +34 -16
- data/vendor/libgit2/include/git2/remote.h +111 -14
- data/vendor/libgit2/include/git2/repository.h +69 -34
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +5 -5
- data/vendor/libgit2/include/git2/status.h +26 -17
- data/vendor/libgit2/include/git2/submodule.h +23 -6
- data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/merge.h +3 -3
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +14 -5
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +25 -106
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/include/git2.h +4 -0
- data/vendor/libgit2/src/CMakeLists.txt +104 -235
- data/vendor/libgit2/src/alloc.c +14 -18
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
- data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +18 -11
- data/vendor/libgit2/src/apply.c +535 -28
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +77 -71
- data/vendor/libgit2/src/attr_file.c +203 -117
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +49 -51
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +38 -18
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +29 -15
- data/vendor/libgit2/src/blob.c +123 -37
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +47 -23
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +60 -53
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +77 -67
- data/vendor/libgit2/src/cherrypick.c +12 -6
- data/vendor/libgit2/src/clone.c +36 -14
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +103 -48
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +36 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +24 -90
- data/vendor/libgit2/src/config.c +203 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +422 -680
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +96 -68
- data/vendor/libgit2/src/config_parse.h +15 -14
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -196
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +52 -67
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +44 -46
- data/vendor/libgit2/src/diff_file.c +16 -14
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +158 -103
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +34 -22
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +18 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -3
- data/vendor/libgit2/src/fetch.c +8 -3
- data/vendor/libgit2/src/fetchhead.c +12 -12
- data/vendor/libgit2/src/filebuf.c +28 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +47 -33
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +35 -55
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
- data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -21
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +38 -42
- data/vendor/libgit2/src/index.c +264 -199
- data/vendor/libgit2/src/index.h +7 -1
- data/vendor/libgit2/src/indexer.c +338 -167
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +134 -62
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/mailmap.c +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +137 -93
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +14 -9
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +111 -88
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +58 -47
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +17 -13
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +87 -86
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +94 -96
- data/vendor/libgit2/src/pack.h +16 -18
- data/vendor/libgit2/src/parse.c +17 -4
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch_generate.c +18 -18
- data/vendor/libgit2/src/patch_parse.c +147 -79
- data/vendor/libgit2/src/path.c +207 -62
- data/vendor/libgit2/src/path.h +14 -0
- data/vendor/libgit2/src/pathspec.c +18 -18
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +35 -29
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +97 -38
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +318 -222
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +122 -89
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +27 -33
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +229 -178
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +227 -172
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +7 -7
- data/vendor/libgit2/src/revert.c +11 -6
- data/vendor/libgit2/src/revparse.c +46 -46
- data/vendor/libgit2/src/revwalk.c +89 -54
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +22 -9
- data/vendor/libgit2/src/signature.c +15 -13
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +56 -76
- data/vendor/libgit2/src/status.c +27 -21
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +100 -80
- data/vendor/libgit2/src/streams/mbedtls.h +5 -2
- data/vendor/libgit2/src/streams/openssl.c +93 -81
- data/vendor/libgit2/src/streams/openssl.h +5 -2
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +48 -20
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +190 -169
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +25 -15
- data/vendor/libgit2/src/tag.c +39 -26
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +14 -10
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +25 -30
- data/vendor/libgit2/src/transports/http.c +871 -335
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +28 -28
- data/vendor/libgit2/src/transports/smart.c +64 -46
- data/vendor/libgit2/src/transports/smart.h +5 -6
- data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
- data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
- data/vendor/libgit2/src/transports/ssh.c +76 -65
- data/vendor/libgit2/src/transports/winhttp.c +328 -319
- data/vendor/libgit2/src/tree-cache.c +21 -14
- data/vendor/libgit2/src/tree.c +119 -112
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +154 -93
- data/vendor/libgit2/src/util.h +19 -23
- data/vendor/libgit2/src/vector.c +15 -10
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +69 -44
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +44 -30
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +115 -38
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
- data/vendor/libgit2/src/streams/curl.h +0 -17
- /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2008 The Android Open Source Project
|
|
3
|
-
* All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Redistribution and use in source and binary forms, with or without
|
|
6
|
-
* modification, are permitted provided that the following conditions
|
|
7
|
-
* are met:
|
|
8
|
-
* * Redistributions of source code must retain the above copyright
|
|
9
|
-
* notice, this list of conditions and the following disclaimer.
|
|
10
|
-
* * Redistributions in binary form must reproduce the above copyright
|
|
11
|
-
* notice, this list of conditions and the following disclaimer in
|
|
12
|
-
* the documentation and/or other materials provided with the
|
|
13
|
-
* distribution.
|
|
14
|
-
*
|
|
15
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
16
|
-
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
17
|
-
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
18
|
-
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
19
|
-
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
20
|
-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
21
|
-
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
22
|
-
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
23
|
-
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
24
|
-
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
25
|
-
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
26
|
-
* SUCH DAMAGE.
|
|
27
|
-
*/
|
|
28
|
-
#ifndef INCLUDE_fnmatch_h__
|
|
29
|
-
#define INCLUDE_fnmatch_h__
|
|
30
|
-
|
|
31
|
-
#include "common.h"
|
|
32
|
-
|
|
33
|
-
#define FNM_NOMATCH 1 /* Match failed. */
|
|
34
|
-
#define FNM_NOSYS 2 /* Function not supported (unused). */
|
|
35
|
-
#define FNM_NORES 3 /* Out of resources */
|
|
36
|
-
|
|
37
|
-
#define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */
|
|
38
|
-
#define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */
|
|
39
|
-
#define FNM_PERIOD 0x04 /* Period must be matched by period. */
|
|
40
|
-
#define FNM_LEADING_DIR 0x08 /* Ignore /<tail> after Imatch. */
|
|
41
|
-
#define FNM_CASEFOLD 0x10 /* Case insensitive search. */
|
|
42
|
-
|
|
43
|
-
#define FNM_IGNORECASE FNM_CASEFOLD
|
|
44
|
-
#define FNM_FILE_NAME FNM_PATHNAME
|
|
45
|
-
|
|
46
|
-
extern int p_fnmatch(const char *pattern, const char *string, int flags);
|
|
47
|
-
|
|
48
|
-
#endif
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#ifndef INCLUDE_hash_hash_collisiondetect_h__
|
|
9
|
-
#define INCLUDE_hash_hash_collisiondetect_h__
|
|
10
|
-
|
|
11
|
-
#include "hash.h"
|
|
12
|
-
#include "sha1dc/sha1.h"
|
|
13
|
-
|
|
14
|
-
struct git_hash_ctx {
|
|
15
|
-
SHA1_CTX c;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
#define git_hash_global_init() 0
|
|
19
|
-
#define git_hash_ctx_init(ctx) git_hash_init(ctx)
|
|
20
|
-
#define git_hash_ctx_cleanup(ctx)
|
|
21
|
-
|
|
22
|
-
GIT_INLINE(int) git_hash_init(git_hash_ctx *ctx)
|
|
23
|
-
{
|
|
24
|
-
assert(ctx);
|
|
25
|
-
SHA1DCInit(&ctx->c);
|
|
26
|
-
return 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
GIT_INLINE(int) git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
|
|
30
|
-
{
|
|
31
|
-
assert(ctx);
|
|
32
|
-
SHA1DCUpdate(&ctx->c, data, len);
|
|
33
|
-
return 0;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
GIT_INLINE(int) git_hash_final(git_oid *out, git_hash_ctx *ctx)
|
|
37
|
-
{
|
|
38
|
-
assert(ctx);
|
|
39
|
-
if (SHA1DCFinal(out->id, &ctx->c)) {
|
|
40
|
-
giterr_set(GITERR_SHA1, "SHA1 collision attack detected");
|
|
41
|
-
return -1;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
#endif
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#ifndef INCLUDE_hash_hash_openssl_h__
|
|
9
|
-
#define INCLUDE_hash_hash_openssl_h__
|
|
10
|
-
|
|
11
|
-
#include "hash.h"
|
|
12
|
-
|
|
13
|
-
#include <openssl/sha.h>
|
|
14
|
-
|
|
15
|
-
struct git_hash_ctx {
|
|
16
|
-
SHA_CTX c;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
#define git_hash_global_init() 0
|
|
20
|
-
#define git_hash_ctx_init(ctx) git_hash_init(ctx)
|
|
21
|
-
#define git_hash_ctx_cleanup(ctx)
|
|
22
|
-
|
|
23
|
-
GIT_INLINE(int) git_hash_init(git_hash_ctx *ctx)
|
|
24
|
-
{
|
|
25
|
-
assert(ctx);
|
|
26
|
-
|
|
27
|
-
if (SHA1_Init(&ctx->c) != 1) {
|
|
28
|
-
giterr_set(GITERR_SHA1, "hash_openssl: failed to initialize hash context");
|
|
29
|
-
return -1;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return 0;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
GIT_INLINE(int) git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
|
|
36
|
-
{
|
|
37
|
-
assert(ctx);
|
|
38
|
-
|
|
39
|
-
if (SHA1_Update(&ctx->c, data, len) != 1) {
|
|
40
|
-
giterr_set(GITERR_SHA1, "hash_openssl: failed to update hash");
|
|
41
|
-
return -1;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
GIT_INLINE(int) git_hash_final(git_oid *out, git_hash_ctx *ctx)
|
|
48
|
-
{
|
|
49
|
-
assert(ctx);
|
|
50
|
-
|
|
51
|
-
if (SHA1_Final(out->id, &ctx->c) != 1) {
|
|
52
|
-
giterr_set(GITERR_SHA1, "hash_openssl: failed to finalize hash");
|
|
53
|
-
return -1;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return 0;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
#endif
|
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#include "streams/curl.h"
|
|
9
|
-
|
|
10
|
-
#ifdef GIT_CURL
|
|
11
|
-
|
|
12
|
-
#include <curl/curl.h>
|
|
13
|
-
|
|
14
|
-
#include "stream.h"
|
|
15
|
-
#include "git2/transport.h"
|
|
16
|
-
#include "buffer.h"
|
|
17
|
-
#include "global.h"
|
|
18
|
-
#include "vector.h"
|
|
19
|
-
#include "proxy.h"
|
|
20
|
-
|
|
21
|
-
/* This is for backwards compatibility with curl<7.45.0. */
|
|
22
|
-
#ifndef CURLINFO_ACTIVESOCKET
|
|
23
|
-
# define CURLINFO_ACTIVESOCKET CURLINFO_LASTSOCKET
|
|
24
|
-
# define GIT_CURL_BADSOCKET -1
|
|
25
|
-
# define git_activesocket_t long
|
|
26
|
-
#else
|
|
27
|
-
# define GIT_CURL_BADSOCKET CURL_SOCKET_BAD
|
|
28
|
-
# define git_activesocket_t curl_socket_t
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
|
-
typedef struct {
|
|
32
|
-
git_stream parent;
|
|
33
|
-
CURL *handle;
|
|
34
|
-
curl_socket_t socket;
|
|
35
|
-
char curl_error[CURL_ERROR_SIZE + 1];
|
|
36
|
-
git_cert_x509 cert_info;
|
|
37
|
-
git_strarray cert_info_strings;
|
|
38
|
-
git_proxy_options proxy;
|
|
39
|
-
git_cred *proxy_cred;
|
|
40
|
-
} curl_stream;
|
|
41
|
-
|
|
42
|
-
int git_curl_stream_global_init(void)
|
|
43
|
-
{
|
|
44
|
-
if (curl_global_init(CURL_GLOBAL_ALL) != 0) {
|
|
45
|
-
giterr_set(GITERR_NET, "could not initialize curl");
|
|
46
|
-
return -1;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/* `curl_global_cleanup` is provided by libcurl */
|
|
50
|
-
git__on_shutdown(curl_global_cleanup);
|
|
51
|
-
return 0;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
static int seterr_curl(curl_stream *s)
|
|
55
|
-
{
|
|
56
|
-
giterr_set(GITERR_NET, "curl error: %s\n", s->curl_error);
|
|
57
|
-
return -1;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
GIT_INLINE(int) error_no_credentials(void)
|
|
61
|
-
{
|
|
62
|
-
giterr_set(GITERR_NET, "proxy authentication required, but no callback provided");
|
|
63
|
-
return GIT_EAUTH;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
static int apply_proxy_creds(curl_stream *s)
|
|
67
|
-
{
|
|
68
|
-
CURLcode res;
|
|
69
|
-
git_cred_userpass_plaintext *userpass;
|
|
70
|
-
|
|
71
|
-
if (!s->proxy_cred)
|
|
72
|
-
return GIT_ENOTFOUND;
|
|
73
|
-
|
|
74
|
-
userpass = (git_cred_userpass_plaintext *) s->proxy_cred;
|
|
75
|
-
if ((res = curl_easy_setopt(s->handle, CURLOPT_PROXYUSERNAME, userpass->username)) != CURLE_OK)
|
|
76
|
-
return seterr_curl(s);
|
|
77
|
-
if ((res = curl_easy_setopt(s->handle, CURLOPT_PROXYPASSWORD, userpass->password)) != CURLE_OK)
|
|
78
|
-
return seterr_curl(s);
|
|
79
|
-
|
|
80
|
-
return 0;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
static int ask_and_apply_proxy_creds(curl_stream *s)
|
|
84
|
-
{
|
|
85
|
-
int error;
|
|
86
|
-
git_proxy_options *opts = &s->proxy;
|
|
87
|
-
|
|
88
|
-
if (!opts->credentials)
|
|
89
|
-
return error_no_credentials();
|
|
90
|
-
|
|
91
|
-
/* TODO: see if PROXYAUTH_AVAIL helps us here */
|
|
92
|
-
git_cred_free(s->proxy_cred);
|
|
93
|
-
s->proxy_cred = NULL;
|
|
94
|
-
giterr_clear();
|
|
95
|
-
error = opts->credentials(&s->proxy_cred, opts->url, NULL, GIT_CREDTYPE_USERPASS_PLAINTEXT, opts->payload);
|
|
96
|
-
if (error == GIT_PASSTHROUGH)
|
|
97
|
-
return error_no_credentials();
|
|
98
|
-
if (error < 0) {
|
|
99
|
-
if (!giterr_last())
|
|
100
|
-
giterr_set(GITERR_NET, "proxy authentication was aborted by the user");
|
|
101
|
-
return error;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (s->proxy_cred->credtype != GIT_CREDTYPE_USERPASS_PLAINTEXT) {
|
|
105
|
-
giterr_set(GITERR_NET, "credentials callback returned invalid credential type");
|
|
106
|
-
return -1;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return apply_proxy_creds(s);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
static int curls_connect(git_stream *stream)
|
|
113
|
-
{
|
|
114
|
-
curl_stream *s = (curl_stream *) stream;
|
|
115
|
-
git_activesocket_t sockextr;
|
|
116
|
-
long connect_last = 0;
|
|
117
|
-
int failed_cert = 0, error;
|
|
118
|
-
bool retry_connect;
|
|
119
|
-
CURLcode res;
|
|
120
|
-
|
|
121
|
-
/* Apply any credentials we've already established */
|
|
122
|
-
error = apply_proxy_creds(s);
|
|
123
|
-
if (error < 0 && error != GIT_ENOTFOUND)
|
|
124
|
-
return seterr_curl(s);
|
|
125
|
-
|
|
126
|
-
do {
|
|
127
|
-
retry_connect = 0;
|
|
128
|
-
res = curl_easy_perform(s->handle);
|
|
129
|
-
|
|
130
|
-
curl_easy_getinfo(s->handle, CURLINFO_HTTP_CONNECTCODE, &connect_last);
|
|
131
|
-
|
|
132
|
-
/* HTTP 407 Proxy Authentication Required */
|
|
133
|
-
if (connect_last == 407) {
|
|
134
|
-
if ((error = ask_and_apply_proxy_creds(s)) < 0)
|
|
135
|
-
return error;
|
|
136
|
-
|
|
137
|
-
retry_connect = true;
|
|
138
|
-
}
|
|
139
|
-
} while (retry_connect);
|
|
140
|
-
|
|
141
|
-
if (res != CURLE_OK && res != CURLE_PEER_FAILED_VERIFICATION)
|
|
142
|
-
return seterr_curl(s);
|
|
143
|
-
if (res == CURLE_PEER_FAILED_VERIFICATION)
|
|
144
|
-
failed_cert = 1;
|
|
145
|
-
|
|
146
|
-
if ((res = curl_easy_getinfo(s->handle, CURLINFO_ACTIVESOCKET, &sockextr)) != CURLE_OK) {
|
|
147
|
-
return seterr_curl(s);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (sockextr == GIT_CURL_BADSOCKET) {
|
|
151
|
-
giterr_set(GITERR_NET, "curl socket is no longer valid");
|
|
152
|
-
return -1;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
s->socket = sockextr;
|
|
156
|
-
|
|
157
|
-
if (s->parent.encrypted && failed_cert)
|
|
158
|
-
return GIT_ECERTIFICATE;
|
|
159
|
-
|
|
160
|
-
return 0;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
static int curls_certificate(git_cert **out, git_stream *stream)
|
|
164
|
-
{
|
|
165
|
-
int error;
|
|
166
|
-
CURLcode res;
|
|
167
|
-
struct curl_slist *slist;
|
|
168
|
-
struct curl_certinfo *certinfo;
|
|
169
|
-
git_vector strings = GIT_VECTOR_INIT;
|
|
170
|
-
curl_stream *s = (curl_stream *) stream;
|
|
171
|
-
|
|
172
|
-
if ((res = curl_easy_getinfo(s->handle, CURLINFO_CERTINFO, &certinfo)) != CURLE_OK)
|
|
173
|
-
return seterr_curl(s);
|
|
174
|
-
|
|
175
|
-
/* No information is available, can happen with SecureTransport */
|
|
176
|
-
if (certinfo->num_of_certs == 0) {
|
|
177
|
-
s->cert_info.parent.cert_type = GIT_CERT_NONE;
|
|
178
|
-
s->cert_info.data = NULL;
|
|
179
|
-
s->cert_info.len = 0;
|
|
180
|
-
return 0;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
if ((error = git_vector_init(&strings, 8, NULL)) < 0)
|
|
184
|
-
return error;
|
|
185
|
-
|
|
186
|
-
for (slist = certinfo->certinfo[0]; slist; slist = slist->next) {
|
|
187
|
-
char *str = git__strdup(slist->data);
|
|
188
|
-
GITERR_CHECK_ALLOC(str);
|
|
189
|
-
git_vector_insert(&strings, str);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/* Copy the contents of the vector into a strarray so we can expose them */
|
|
193
|
-
s->cert_info_strings.strings = (char **) strings.contents;
|
|
194
|
-
s->cert_info_strings.count = strings.length;
|
|
195
|
-
|
|
196
|
-
s->cert_info.parent.cert_type = GIT_CERT_STRARRAY;
|
|
197
|
-
s->cert_info.data = &s->cert_info_strings;
|
|
198
|
-
s->cert_info.len = strings.length;
|
|
199
|
-
|
|
200
|
-
*out = &s->cert_info.parent;
|
|
201
|
-
|
|
202
|
-
return 0;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
static int curls_set_proxy(git_stream *stream, const git_proxy_options *proxy_opts)
|
|
206
|
-
{
|
|
207
|
-
int error;
|
|
208
|
-
CURLcode res;
|
|
209
|
-
curl_stream *s = (curl_stream *) stream;
|
|
210
|
-
|
|
211
|
-
git_proxy_options_clear(&s->proxy);
|
|
212
|
-
if ((error = git_proxy_options_dup(&s->proxy, proxy_opts)) < 0)
|
|
213
|
-
return error;
|
|
214
|
-
|
|
215
|
-
if ((res = curl_easy_setopt(s->handle, CURLOPT_PROXY, s->proxy.url)) != CURLE_OK)
|
|
216
|
-
return seterr_curl(s);
|
|
217
|
-
|
|
218
|
-
if ((res = curl_easy_setopt(s->handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY)) != CURLE_OK)
|
|
219
|
-
return seterr_curl(s);
|
|
220
|
-
|
|
221
|
-
return 0;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
static int wait_for(curl_socket_t fd, bool reading)
|
|
225
|
-
{
|
|
226
|
-
int ret;
|
|
227
|
-
fd_set infd, outfd, errfd;
|
|
228
|
-
|
|
229
|
-
FD_ZERO(&infd);
|
|
230
|
-
FD_ZERO(&outfd);
|
|
231
|
-
FD_ZERO(&errfd);
|
|
232
|
-
|
|
233
|
-
assert(fd >= 0);
|
|
234
|
-
FD_SET(fd, &errfd);
|
|
235
|
-
if (reading)
|
|
236
|
-
FD_SET(fd, &infd);
|
|
237
|
-
else
|
|
238
|
-
FD_SET(fd, &outfd);
|
|
239
|
-
|
|
240
|
-
if ((ret = select(fd + 1, &infd, &outfd, &errfd, NULL)) < 0) {
|
|
241
|
-
giterr_set(GITERR_OS, "error in select");
|
|
242
|
-
return -1;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return 0;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
static ssize_t curls_write(git_stream *stream, const char *data, size_t len, int flags)
|
|
249
|
-
{
|
|
250
|
-
int error;
|
|
251
|
-
size_t off = 0, sent;
|
|
252
|
-
CURLcode res;
|
|
253
|
-
curl_stream *s = (curl_stream *) stream;
|
|
254
|
-
|
|
255
|
-
GIT_UNUSED(flags);
|
|
256
|
-
|
|
257
|
-
do {
|
|
258
|
-
if ((error = wait_for(s->socket, false)) < 0)
|
|
259
|
-
return error;
|
|
260
|
-
|
|
261
|
-
res = curl_easy_send(s->handle, data + off, len - off, &sent);
|
|
262
|
-
if (res == CURLE_OK)
|
|
263
|
-
off += sent;
|
|
264
|
-
} while ((res == CURLE_OK || res == CURLE_AGAIN) && off < len);
|
|
265
|
-
|
|
266
|
-
if (res != CURLE_OK)
|
|
267
|
-
return seterr_curl(s);
|
|
268
|
-
|
|
269
|
-
return len;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
static ssize_t curls_read(git_stream *stream, void *data, size_t len)
|
|
273
|
-
{
|
|
274
|
-
int error;
|
|
275
|
-
size_t read;
|
|
276
|
-
CURLcode res;
|
|
277
|
-
curl_stream *s = (curl_stream *) stream;
|
|
278
|
-
|
|
279
|
-
do {
|
|
280
|
-
if ((error = wait_for(s->socket, true)) < 0)
|
|
281
|
-
return error;
|
|
282
|
-
|
|
283
|
-
res = curl_easy_recv(s->handle, data, len, &read);
|
|
284
|
-
} while (res == CURLE_AGAIN);
|
|
285
|
-
|
|
286
|
-
if (res != CURLE_OK)
|
|
287
|
-
return seterr_curl(s);
|
|
288
|
-
|
|
289
|
-
return read;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
static int curls_close(git_stream *stream)
|
|
293
|
-
{
|
|
294
|
-
curl_stream *s = (curl_stream *) stream;
|
|
295
|
-
|
|
296
|
-
if (!s->handle)
|
|
297
|
-
return 0;
|
|
298
|
-
|
|
299
|
-
curl_easy_cleanup(s->handle);
|
|
300
|
-
s->handle = NULL;
|
|
301
|
-
s->socket = 0;
|
|
302
|
-
|
|
303
|
-
return 0;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
static void curls_free(git_stream *stream)
|
|
307
|
-
{
|
|
308
|
-
curl_stream *s = (curl_stream *) stream;
|
|
309
|
-
|
|
310
|
-
curls_close(stream);
|
|
311
|
-
git_strarray_free(&s->cert_info_strings);
|
|
312
|
-
git_proxy_options_clear(&s->proxy);
|
|
313
|
-
git_cred_free(s->proxy_cred);
|
|
314
|
-
git__free(s);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
int git_curl_stream_new(git_stream **out, const char *host, const char *port)
|
|
318
|
-
{
|
|
319
|
-
curl_stream *st;
|
|
320
|
-
CURL *handle;
|
|
321
|
-
int iport = 0, error;
|
|
322
|
-
|
|
323
|
-
st = git__calloc(1, sizeof(curl_stream));
|
|
324
|
-
GITERR_CHECK_ALLOC(st);
|
|
325
|
-
|
|
326
|
-
handle = curl_easy_init();
|
|
327
|
-
if (handle == NULL) {
|
|
328
|
-
giterr_set(GITERR_NET, "failed to create curl handle");
|
|
329
|
-
git__free(st);
|
|
330
|
-
return -1;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
if ((error = git__strtol32(&iport, port, NULL, 10)) < 0) {
|
|
334
|
-
git__free(st);
|
|
335
|
-
return error;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
curl_easy_setopt(handle, CURLOPT_URL, host);
|
|
339
|
-
curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, st->curl_error);
|
|
340
|
-
curl_easy_setopt(handle, CURLOPT_PORT, iport);
|
|
341
|
-
curl_easy_setopt(handle, CURLOPT_CONNECT_ONLY, 1);
|
|
342
|
-
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 1);
|
|
343
|
-
curl_easy_setopt(handle, CURLOPT_CERTINFO, 1);
|
|
344
|
-
curl_easy_setopt(handle, CURLOPT_HTTPPROXYTUNNEL, 1);
|
|
345
|
-
curl_easy_setopt(handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
|
|
346
|
-
|
|
347
|
-
/* curl_easy_setopt(handle, CURLOPT_VERBOSE, 1); */
|
|
348
|
-
|
|
349
|
-
st->parent.version = GIT_STREAM_VERSION;
|
|
350
|
-
st->parent.encrypted = 0; /* we don't encrypt ourselves */
|
|
351
|
-
st->parent.proxy_support = 1;
|
|
352
|
-
st->parent.connect = curls_connect;
|
|
353
|
-
st->parent.certificate = curls_certificate;
|
|
354
|
-
st->parent.set_proxy = curls_set_proxy;
|
|
355
|
-
st->parent.read = curls_read;
|
|
356
|
-
st->parent.write = curls_write;
|
|
357
|
-
st->parent.close = curls_close;
|
|
358
|
-
st->parent.free = curls_free;
|
|
359
|
-
st->handle = handle;
|
|
360
|
-
|
|
361
|
-
*out = (git_stream *) st;
|
|
362
|
-
return 0;
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
#else
|
|
366
|
-
|
|
367
|
-
#include "stream.h"
|
|
368
|
-
|
|
369
|
-
int git_curl_stream_global_init(void)
|
|
370
|
-
{
|
|
371
|
-
return 0;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
int git_curl_stream_new(git_stream **out, const char *host, const char *port)
|
|
375
|
-
{
|
|
376
|
-
GIT_UNUSED(out);
|
|
377
|
-
GIT_UNUSED(host);
|
|
378
|
-
GIT_UNUSED(port);
|
|
379
|
-
|
|
380
|
-
giterr_set(GITERR_NET, "curl is not supported in this version");
|
|
381
|
-
return -1;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
#endif
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
-
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
-
*/
|
|
7
|
-
#ifndef INCLUDE_streams_curl_h__
|
|
8
|
-
#define INCLUDE_streams_curl_h__
|
|
9
|
-
|
|
10
|
-
#include "common.h"
|
|
11
|
-
|
|
12
|
-
#include "git2/sys/stream.h"
|
|
13
|
-
|
|
14
|
-
extern int git_curl_stream_global_init(void);
|
|
15
|
-
extern int git_curl_stream_new(git_stream **out, const char *host, const char *port);
|
|
16
|
-
|
|
17
|
-
#endif
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|