1. 26 Jan, 2020 1 commit
    • credential: change git_cred to git_credential · 3f54ba8b
      We avoid abbreviations where possible; rename git_cred to
      git_credential.
      
      In addition, we have standardized on a trailing `_t` for enum types,
      instead of using "type" in the name.  So `git_credtype_t` has become
      `git_credential_t` and its members have become `GIT_CREDENTIAL` instead
      of `GIT_CREDTYPE`.
      
      Finally, the source and header files have been renamed to `credential`
      instead of `cred`.
      
      Keep previous name and values as deprecated, and include the new header
      files from the previous ones.
      Edward Thomson committed
  2. 24 Jan, 2020 4 commits
  3. 13 Dec, 2019 1 commit
  4. 26 Oct, 2019 1 commit
  5. 13 Sep, 2019 1 commit
  6. 23 Aug, 2019 1 commit
  7. 24 Jun, 2019 3 commits
  8. 10 Jun, 2019 2 commits
    • winhttp: support default credentials for proxies · 3d11b6c5
      We did not properly support default credentials for proxies, only for
      destination servers.  Refactor the credential handling to support sending
      either username/password _or_ default credentials to either the proxy or
      the destination server.
      
      This actually shares the authentication logic between proxy servers and
      destination servers.  Due to copy/pasta drift over time, they had
      diverged.  Now they share a common logic which is: first, use
      credentials specified in the URL (if there were any), treating empty
      username and password (ie, "http://:@foo.com/") as default credentials,
      for compatibility with git.  Next, call the credential callbacks.
      Finally, fallback to WinHTTP compatibility layers using built-in
      authentication like we always have.
      
      Allowing default credentials for proxies requires moving the security
      level downgrade into the credential setting routines themselves.
      We will update our security level to "high" by default which means that
      we will never send default credentials without prompting.  (A lower
      setting, like the WinHTTP default of "medium" would allow WinHTTP to
      handle credentials for us, despite what a user may have requested with
      their structures.)  Now we start with "high" and downgrade to "low" only
      after a user has explicitly requested default credentials.
      Edward Thomson committed
    • net: rename gitno_connection_data to git_net_url · c6ab183e
      "Connection data" is an imprecise and largely incorrect name; these
      structures are actually parsed URLs.  Provide a parser that takes a URL
      string and produces a URL structure (if it is valid).
      
      Separate the HTTP redirect handling logic from URL parsing, keeping a
      `gitno_connection_data_handle_redirect` whose only job is redirect
      handling logic and does not parse URLs itself.
      Edward Thomson committed
  9. 24 Jan, 2019 1 commit
  10. 22 Jan, 2019 1 commit
  11. 06 Jan, 2019 2 commits
    • Windows is hard. · 321d19c1
      lhchavez committed
    • Fix a bunch of warnings · 7b453e7e
      This change fixes a bunch of warnings that were discovered by compiling
      with `clang -target=i386-pc-linux-gnu`. It turned out that the
      intrinsics were not necessarily being used in all platforms! Especially
      in GCC, since it does not support __has_builtin.
      
      Some more warnings were gleaned from the Windows build, but I stopped
      when I saw that some third-party dependencies (e.g. zlib) have warnings
      of their own, so we might never be able to enable -Werror there.
      lhchavez committed
  12. 28 Nov, 2018 1 commit
  13. 21 Nov, 2018 1 commit
    • transport: allow cred/cert callbacks to return GIT_PASSTHROUGH · a2e6e0ea
      Allow credential and certificate checking callbacks to return
      GIT_PASSTHROUGH, indicating that they do not want to act.
      Introduce this to support in both the http and ssh callbacks.
      Additionally, enable the same mechanism for certificate validation.
      
      This is most useful to disambiguate any meaning in the publicly exposed
      credential and certificate functions (`git_transport_smart_credentials`
      and `git_transport_smart_certificate_check`) but it may be more
      generally useful for callers to be able to defer back to libgit2.
      Edward Thomson committed
  14. 18 Oct, 2018 1 commit
  15. 30 Jul, 2018 1 commit
  16. 26 Jul, 2018 2 commits
  17. 20 Jul, 2018 1 commit
    • winhttp: retry erroneously failing requests · dc371e3c
      Early Windows TLS 1.2 implementations have an issue during key exchange
      with OpenSSL implementations that cause negotiation to fail with the
      error "the buffer supplied to a function was too small."
      
      This is a transient error on the connection, so when that error is
      received, retry up to 5 times to create a connection to the remote
      server before actually giving up.
      Edward Thomson committed
  18. 10 Jun, 2018 1 commit
  19. 27 Feb, 2018 3 commits
    • winhttp: enable TLS 1.2 on Windows 7 and earlier · 5ecb6220
      Versions of Windows prior to Windows 8 do not enable TLS 1.2 by default,
      though support may exist.  Try to enable TLS 1.2 support explicitly on
      connections.
      
      This request may fail if the operating system does not have TLS 1.2
      support - the initial release of Vista lacks TLS 1.2 support (though
      it is available as a software update) and XP completely lacks TLS 1.2
      support.  If this request does fail, the HTTP context is still valid,
      and still maintains the original protocol support.  So we ignore the
      failure from this operation.
      Edward Thomson committed
    • winhttp: include constants for TLS 1.1/1.2 support · 934e6a3b
      For platforms that do not define `WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1`
      and/or `WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2`.
      Edward Thomson committed
    • mingw: update TLS option flags · 8c8db980
      Include the constants for `WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1` and
      `WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2` so that they can be used by mingw.
      
      This updates both the `deps/winhttp` framework (for classic mingw) and
      adds the defines for mingw64, which does not use that framework.
      Edward Thomson committed
  20. 10 Feb, 2018 1 commit
    • http: standardize user-agent addition · ee6be190
      The winhttp and posix http each need to add the user-agent to their
      requests.  Standardize on a single function to include this so that we
      do not get the version numbers we're sending out of sync.
      
      Assemble the complete user agent in `git_http__user_agent`, returning
      assembled strings.
      
      Co-authored-by: Patrick Steinhardt <ps@pks.im>
      Edward Thomson committed
  21. 29 Dec, 2017 1 commit
  22. 26 Nov, 2017 1 commit
  23. 03 Jul, 2017 1 commit
    • Make sure to always include "common.h" first · 0c7f49dd
      Next to including several files, our "common.h" header also declares
      various macros which are then used throughout the project. As such, we
      have to make sure to always include this file first in all
      implementation files. Otherwise, we might encounter problems or even
      silent behavioural differences due to macros or defines not being
      defined as they should be. So in fact, our header and implementation
      files should make sure to always include "common.h" first.
      
      This commit does so by establishing a common include pattern. Header
      files inside of "src" will now always include "common.h" as its first
      other file, separated by a newline from all the other includes to make
      it stand out as special. There are two cases for the implementation
      files. If they do have a matching header file, they will always include
      this one first, leading to "common.h" being transitively included as
      first file. If they do not have a matching header file, they instead
      include "common.h" as first file themselves.
      
      This fixes the outlined problems and will become our standard practice
      for header and source files inside of the "src/" from now on.
      Patrick Steinhardt committed
  24. 08 Jun, 2017 1 commit
    • buffer: rely on `GITERR_OOM` set by `git_buf_try_grow` · 97eb5ef0
      The function `git_buf_try_grow` consistently calls `giterr_set_oom`
      whenever growing the buffer fails due to insufficient memory being
      available. So in fact, we do not have to do this ourselves when a call
      to any buffer-growing function has failed due to an OOM situation. But
      we still do so in two functions, which this patch cleans up.
      Patrick Steinhardt committed
  25. 01 Mar, 2017 1 commit
  26. 06 Feb, 2017 2 commits
  27. 21 Jan, 2017 1 commit
  28. 16 Jan, 2017 1 commit
  29. 29 Dec, 2016 1 commit