1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-05 00:55:04 -05:00
Go to file
Jay Satiro 1fc0617dcc tool_util: Improve Windows version of tvnow()
- Change tool_util.c tvnow() for Windows to match more closely to
  timeval.c Curl_now().

- Create a win32 init function for the tool, since some initialization
  is required for the tvnow() changes.

Prior to this change the monotonic time function used by curl in Windows
was determined at build-time and not runtime. That was a problem because
when curl was built targeted for compatibility with old versions of
Windows (eg _WIN32_WINNT < 0x0600) it would use GetTickCount which wraps
every 49.7 days that Windows has been running.

This change makes curl behave similar to libcurl's tvnow function, which
determines at runtime whether the OS is Vista+ and if so calls
QueryPerformanceCounter instead. (Note QueryPerformanceCounter is used
because it has higher resolution than the more obvious candidate
GetTickCount64). The changes to tvnow are basically a copy and paste but
the types in some cases are different.

Ref: https://github.com/curl/curl/issues/3309

Closes https://github.com/curl/curl/pull/4847
2020-02-18 15:52:13 -05:00
.github github: Instructions to post "uname -a" on Unix systems in issues 2020-02-08 18:13:46 +01:00
CMake cmake: Improve libssh2 check on Windows 2020-01-11 18:53:32 -05:00
docs CURLOPT_REDIR_PROTOCOLS.3: update the DEFAULT section 2020-02-18 09:19:39 +01:00
include curl.h: define CURL_WIN32 on windows 2020-01-27 13:02:28 +01:00
lib tool_util: Improve Windows version of tvnow() 2020-02-18 15:52:13 -05:00
m4 cleanup: fix typos and wording in docs and comments 2020-02-02 18:43:01 +01:00
packages cleanup: fix typos and wording in docs and comments 2020-02-02 18:43:01 +01:00
plan9 plan9: fix installation instructions 2019-08-29 19:24:59 +02:00
projects checksrc.bat: Fix not being able to run script from the main curl directory 2020-02-07 21:51:36 +00:00
scripts contributors: Also include people who contributed to curl-www 2020-02-05 13:54:16 +01:00
src tool_util: Improve Windows version of tvnow() 2020-02-18 15:52:13 -05:00
tests altsvc: make saving the cache an atomic operation 2020-02-18 07:49:21 +01:00
winbuild winbuild: Document CURL_STATICLIB requirement for static libcurl 2019-12-15 17:31:23 -05:00
.azure-pipelines.yml azure: disable brotli on the macos debug-builds 2020-02-14 16:16:09 +01:00
.cirrus.yml cirrus: Add some missing semicolons 2020-02-03 12:27:30 +01:00
.dir-locals.el Add .dir-locals and set c-basic-offset to 2. 2015-12-23 10:16:14 +01:00
.gitattributes .gitattributes: make tabs in indentation a visible error 2018-12-06 20:21:17 +01:00
.gitignore scripts/completion.pl: also generate fish completion file 2019-03-02 11:31:18 +01:00
.lgtm.yml CI: remove duplicate configure flag for LGTM.com 2019-08-31 11:40:09 +02:00
.mailmap RELEASE-NOTES: synced 2020-01-27 09:44:33 +01:00
.travis.yml travis: update non-OpenSSL Linux jobs to Bionic 2020-02-03 14:20:47 +01:00
acinclude.m4 configure: add --with-amissl 2019-03-15 10:22:42 +01:00
appveyor.yml appveyor: publish artifacts on appveyor 2019-10-30 09:41:38 +01:00
buildconf includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
buildconf.bat copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
CHANGES CHANGES: spell fix, use correct path to script 2017-02-07 08:22:37 +01:00
CMakeLists.txt CMake: support specifying the target Windows version 2020-01-20 09:44:19 +01:00
configure.ac configure.ac: fix comments about --with-quiche 2020-02-08 18:12:28 +01:00
COPYING COPYING: it's 2020! 2020-01-03 15:12:46 +01:00
curl-config.in curl-config.in: remove dependency on bc 2018-10-26 00:06:19 +02:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
libcurl.pc.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
MacOSX-Framework includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
Makefile.am TLS: add BearSSL vtls implementation 2019-11-26 08:32:23 +01:00
Makefile.dist build: remove the Borland specific makefiles 2018-06-02 11:23:40 +02:00
maketgz maketgz: delete .bak files, fix indentation 2018-06-15 23:28:34 +00:00
README README: mention that the docs is in docs/ 2020-01-27 13:06:45 +01:00
README.md travis: remove "coverage", make it "torture" 2019-12-10 13:39:29 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2020-02-17 10:58:48 +01:00
SECURITY.md SECURITY.md: created 2019-06-10 10:16:02 +02:00

curl logo

CII Best Practices Coverity passed Travis-CI Build Status AppVeyor Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ Codacy Badge Fuzzing Status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how!

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Website

Visit the curl web site for the latest news and downloads.

Git

To download the very latest source from the Git server do this:

git clone https://github.com/curl/curl.git

(you'll get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public!

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]