summaryrefslogtreecommitdiff
path: root/lib/timeval.c
Commit message (Collapse)AuthorAgeFilesLines
* nit: Copyright year out of dateDaniel Stenberg2020-02-191-1/+1
| | | | Follow-up to 1fc0617dcc
* tool_util: Improve Windows version of tvnow()Jay Satiro2020-02-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | - 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
* timediff: make it 64 bit (if possible) even with 32 bit time_tDaniel Stenberg2019-08-011-16/+8
| | | | | | | ... to make it hold microseconds too. Fixes #4165 Closes #4168
* build: fix Codacy/CppCheck warningsMarcel Raad2019-04-111-0/+2
| | | | | | | | | | - remove unused variables - declare conditionally used variables conditionally - suppress unused variable warnings in the CMake tests - remove dead variable stores - consistently use WIN32 macro to detect Windows Closes https://github.com/curl/curl/pull/3739
* Curl_now: figure out windows version in win32_initDaniel Stenberg2019-02-151-16/+8
| | | | | | | | | | ... and avoid use of static variables that aren't thread safe. Fixes regression from e9ababd4f5a (present in the 7.64.0 release) Reported-by: Paul Groke Fixes #3572 Closes #3573
* timeval: Disable MSVC Analyzer GetTickCount warningMichael Kujawa2019-01-281-0/+9
| | | | | | | | | | | Compiling with msvc /analyze and a recent Windows SDK warns against using GetTickCount (Suggests to use GetTickCount64 instead.) Since GetTickCount is only being used when GetTickCount64 isn't available, I am disabling that warning. Fixes https://github.com/curl/curl/issues/3437 Closes https://github.com/curl/curl/pull/3440
* timediff: fix math for unsigned time_tDaniel Stenberg2019-01-091-3/+3
| | | | | | Bug: https://curl.haxx.se/mail/lib-2018-12/0088.html Closes #3449
* timeval: Use high resolution timestamps on WindowsPavel P2018-12-231-17/+24
| | | | | | | | | | | | | | | - Use QueryPerformanceCounter on Windows Vista+ There is confusing info floating around that QueryPerformanceCounter can leap etc, which might have been true long time ago, but no longer the case nowadays (perhaps starting from WinXP?). Also, boost and std::chrono::steady_clock use QueryPerformanceCounter in a similar way. Prior to this change GetTickCount or GetTickCount64 was used, which has lower resolution. That is still the case for <= XP. Fixes https://github.com/curl/curl/issues/3309 Closes https://github.com/curl/curl/pull/3318
* Windows: fixes for MinGW targeting Windows VistaMarcel Raad2018-10-091-1/+2
| | | | | | | Classic MinGW has neither InitializeCriticalSectionEx nor GetTickCount64, independent of the target Windows version. Closes https://github.com/curl/curl/pull/3113
* timeval: fix use of weak symbol clock_gettime() on Apple platformsdmitrykos2018-10-051-2/+18
| | | | Closes #3048
* build: add picky compiler warning flags for gcc 6 and 7Eric Gallager2018-04-071-1/+1
|
* timeval: remove compilation warning by casting (#2417)Sergei Nikulov2018-03-221-1/+1
| | | This is fixes #2358
* timeval: use mach time on MacOSDmitri Tikhonov2017-10-301-0/+31
| | | | | | If clock_gettime() is not supported, use mach_absolute_time() on MacOS. closes #2033
* time: rename Curl_tvnow to Curl_nowDaniel Stenberg2017-10-251-18/+10
| | | | | | | | | | ... since the 'tv' stood for timeval and this function does not return a timeval struct anymore. Also, cleaned up the Curl_timediff*() functions to avoid typecasts and clean up the descriptive comments. Closes #2011
* timediff: return timediff_t from the time diff functionsDaniel Stenberg2017-10-251-27/+28
| | | | | | | | | | | | | | | ... to cater for systems with unsigned time_t variables. - Renamed the functions to curlx_timediff and Curl_timediff_us. - Added overflow protection for both of them in either direction for both 32 bit and 64 bit time_ts - Reprefixed the curlx_time functions to use Curl_* Reported-by: Peter Piekarski Fixes #2004 Closes #2005
* bagder/Curl_tvdiff_us: fix the mathDaniel Stenberg2017-08-121-1/+1
| | | | | | | | Regression since adef394ac5 (released in 7.55.0) Reported-by: Han Qiao Fixes #1769 Closes #1771
* timeval: struct curltime is a struct timeval replacementDaniel Stenberg2017-07-281-19/+28
| | | | | | | | | ... to make all libcurl internals able to use the same data types for the struct members. The timeval struct differs subtly on several platforms so it makes it cumbersome to use everywhere. Ref: #1652 Closes #1693
* timeval.c: Use long long constant type for timeval assignmentMartin Kepplinger2017-07-041-2/+2
| | | | | | | | | | | | | | | | On a 64 bit host, sparse says: timeval.c:148:15: warning: constant 0x7fffffffffffffff is so big it is long timeval.c:149:12: warning: constant 0x7fffffffffffffff is so big it is long so let's use long long constant types in order to prevent undesired overflow failures. Bug: https://curl.haxx.se/mail/lib-2017-07/0003.html Closes #1636 Signed-off-by: Martin Kepplinger <martink@posteo.de>
* timers: store internal time stamps as time_t instead of doublesDaniel Stenberg2017-06-141-8/+18
| | | | | | | | | | | | This gives us accurate precision and it allows us to avoid storing "no time" for systems with too low timer resolution as we then bump the time up to 1 microsecond. Should fix test 573 on windows. Remove the now unused curlx_tvdiff_secs() function. Maintains the external getinfo() API with using doubles. Fixes #1531
* time: fix type conversions and compiler warningsMichael Kaufmann2017-05-241-6/+0
| | | | | | | | | Fix bugs and compiler warnings on systems with 32-bit long and 64-bit time_t. Reviewed-by: Daniel Stenberg Closes #1499
* Improve code readbilitySylvestre Ledru2017-03-131-2/+1
| | | | | | ... by removing the else branch after a return, break or continue. Closes #1310
* timeval: prefer time_t to hold seconds instead of longDaniel Stenberg2016-11-121-3/+3
| | | | | ... as long is still 32bit on modern 64bit windows machines, while time_t is generally 64bit.
* curlx_tvdiff: handle 32bit time_t overflowsDaniel Stenberg2016-02-121-2/+10
| | | | | | | | | On 32bit systems, make sure we don't overflow and return funky values for very large time differences. Reported-by: Anders Bakken Closes #646
* URLs: change all http:// URLs to https://Daniel Stenberg2016-02-031-1/+1
|
* timeval: typecast for better type (on Amiga)Chris Young2015-01-201-2/+2
| | | | | | | | | | | There is an issue with conflicting "struct timeval" definitions with certain AmigaOS releases and C libraries, depending on what gets included when. It's a minor difference - the OS one is unsigned, whereas the common structure has signed elements. If the OS one ends up getting defined, this causes a timing calculation error in curl. It's easy enough to resolve this at the curl end, by casting the potentially errorneous calculation to a signed long.
* win32: Updated some legacy APIs to use the newer extended versionsSteve Holme2014-11-161-1/+9
| | | | | | | | Updated the usage of some legacy APIs, that are preventing curl from compiling for Windows Store and Windows Phone build targets. Suggested-by: Stefan Neis Feature: http://sourceforge.net/p/curl/feature-requests/82/
* Revert changes relative to lib/*.[ch] recent renamingYang Tse2013-01-061-0/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use of 76 lib/*.h renamed files ffd8e12... build: rename 76 lib/*.h files This also reverts removal of redundant include guard (redundant thanks to changes in above commits) done 2-12-2013, reverting 1 commit: c087374... curl_setup.h: remove redundant include guard This also reverts renaming and usage of lib/*.c source files done 3-12-2013, reverting 3 commits: 13606bb... build: make use of 93 lib/*.c renamed files 5b6e792... build: rename 93 lib/*.c files 7d83dff... build: commit 13606bbfde follow-up 1 Start of related discussion thread: http://curl.haxx.se/mail/lib-2013-01/0012.html Asking for confirmation on pushing this revertion commit: http://curl.haxx.se/mail/lib-2013-01/0048.html Confirmation summary: http://curl.haxx.se/mail/lib-2013-01/0079.html NOTICE: The list of 2 files that have been modified by other intermixed commits, while renamed, and also by at least one of the 6 commits this one reverts follows below. These 2 files will exhibit a hole in history unless git's '--follow' option is used when viewing logs. lib/curl_imap.h lib/curl_smtp.h
* build: rename 93 lib/*.c filesYang Tse2013-01-031-134/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 93 lib/*.c source files renamed to use our standard naming scheme. This commit only does the file renaming. ---------------------------------------- renamed: lib/amigaos.c -> lib/curl_amigaos.c renamed: lib/asyn-ares.c -> lib/curl_asyn_ares.c renamed: lib/asyn-thread.c -> lib/curl_asyn_thread.c renamed: lib/axtls.c -> lib/curl_axtls.c renamed: lib/base64.c -> lib/curl_base64.c renamed: lib/bundles.c -> lib/curl_bundles.c renamed: lib/conncache.c -> lib/curl_conncache.c renamed: lib/connect.c -> lib/curl_connect.c renamed: lib/content_encoding.c -> lib/curl_content_encoding.c renamed: lib/cookie.c -> lib/curl_cookie.c renamed: lib/cyassl.c -> lib/curl_cyassl.c renamed: lib/dict.c -> lib/curl_dict.c renamed: lib/easy.c -> lib/curl_easy.c renamed: lib/escape.c -> lib/curl_escape.c renamed: lib/file.c -> lib/curl_file.c renamed: lib/fileinfo.c -> lib/curl_fileinfo.c renamed: lib/formdata.c -> lib/curl_formdata.c renamed: lib/ftp.c -> lib/curl_ftp.c renamed: lib/ftplistparser.c -> lib/curl_ftplistparser.c renamed: lib/getenv.c -> lib/curl_getenv.c renamed: lib/getinfo.c -> lib/curl_getinfo.c renamed: lib/gopher.c -> lib/curl_gopher.c renamed: lib/gtls.c -> lib/curl_gtls.c renamed: lib/hash.c -> lib/curl_hash.c renamed: lib/hmac.c -> lib/curl_hmac.c renamed: lib/hostasyn.c -> lib/curl_hostasyn.c renamed: lib/hostcheck.c -> lib/curl_hostcheck.c renamed: lib/hostip.c -> lib/curl_hostip.c renamed: lib/hostip4.c -> lib/curl_hostip4.c renamed: lib/hostip6.c -> lib/curl_hostip6.c renamed: lib/hostsyn.c -> lib/curl_hostsyn.c renamed: lib/http.c -> lib/curl_http.c renamed: lib/http_chunks.c -> lib/curl_http_chunks.c renamed: lib/http_digest.c -> lib/curl_http_digest.c renamed: lib/http_negotiate.c -> lib/curl_http_negotiate.c renamed: lib/http_negotiate_sspi.c -> lib/curl_http_negotiate_sspi.c renamed: lib/http_proxy.c -> lib/curl_http_proxy.c renamed: lib/idn_win32.c -> lib/curl_idn_win32.c renamed: lib/if2ip.c -> lib/curl_if2ip.c renamed: lib/imap.c -> lib/curl_imap.c renamed: lib/inet_ntop.c -> lib/curl_inet_ntop.c renamed: lib/inet_pton.c -> lib/curl_inet_pton.c renamed: lib/krb4.c -> lib/curl_krb4.c renamed: lib/krb5.c -> lib/curl_krb5.c renamed: lib/ldap.c -> lib/curl_ldap.c renamed: lib/llist.c -> lib/curl_llist.c renamed: lib/md4.c -> lib/curl_md4.c renamed: lib/md5.c -> lib/curl_md5.c renamed: lib/memdebug.c -> lib/curl_memdebug.c renamed: lib/mprintf.c -> lib/curl_mprintf.c renamed: lib/multi.c -> lib/curl_multi.c renamed: lib/netrc.c -> lib/curl_netrc.c renamed: lib/non-ascii.c -> lib/curl_non_ascii.c renamed: lib/curl_non-ascii.h -> lib/curl_non_ascii.h renamed: lib/nonblock.c -> lib/curl_nonblock.c renamed: lib/nss.c -> lib/curl_nss.c renamed: lib/nwlib.c -> lib/curl_nwlib.c renamed: lib/nwos.c -> lib/curl_nwos.c renamed: lib/openldap.c -> lib/curl_openldap.c renamed: lib/parsedate.c -> lib/curl_parsedate.c renamed: lib/pingpong.c -> lib/curl_pingpong.c renamed: lib/polarssl.c -> lib/curl_polarssl.c renamed: lib/pop3.c -> lib/curl_pop3.c renamed: lib/progress.c -> lib/curl_progress.c renamed: lib/qssl.c -> lib/curl_qssl.c renamed: lib/rawstr.c -> lib/curl_rawstr.c renamed: lib/rtsp.c -> lib/curl_rtsp.c renamed: lib/security.c -> lib/curl_security.c renamed: lib/select.c -> lib/curl_select.c renamed: lib/sendf.c -> lib/curl_sendf.c renamed: lib/share.c -> lib/curl_share.c renamed: lib/slist.c -> lib/curl_slist.c renamed: lib/smtp.c -> lib/curl_smtp.c renamed: lib/socks.c -> lib/curl_socks.c renamed: lib/socks_gssapi.c -> lib/curl_socks_gssapi.c renamed: lib/socks_sspi.c -> lib/curl_socks_sspi.c renamed: lib/speedcheck.c -> lib/curl_speedcheck.c renamed: lib/splay.c -> lib/curl_splay.c renamed: lib/ssh.c -> lib/curl_ssh.c renamed: lib/sslgen.c -> lib/curl_sslgen.c renamed: lib/ssluse.c -> lib/curl_ssluse.c renamed: lib/strdup.c -> lib/curl_strdup.c renamed: lib/strequal.c -> lib/curl_strequal.c renamed: lib/strerror.c -> lib/curl_strerror.c renamed: lib/strtok.c -> lib/curl_strtok.c renamed: lib/strtoofft.c -> lib/curl_strtoofft.c renamed: lib/telnet.c -> lib/curl_telnet.c renamed: lib/tftp.c -> lib/curl_tftp.c renamed: lib/timeval.c -> lib/curl_timeval.c renamed: lib/transfer.c -> lib/curl_transfer.c renamed: lib/url.c -> lib/curl_url.c renamed: lib/version.c -> lib/curl_version.c renamed: lib/warnless.c -> lib/curl_warnless.c renamed: lib/wildcard.c -> lib/curl_wildcard.c ----------------------------------------
* build: make use of 76 lib/*.h renamed filesYang Tse2012-12-281-1/+1
| | | | | | 76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
* tvdiff_secs(): sub-zero time difference adjustmentYang Tse2011-11-251-2/+5
| | | | | | Skip a floating point addition operation when integral part of time difference is zero. This avoids potential floating point addition rounding problems while preserving decimal part value.
* remove the CVSish $Id$ linesDaniel Stenberg2010-03-241-1/+0
|
* fallback to gettimeofday when monotonic clock is unavailable at run-timeYang Tse2008-07-021-3/+18
|
* configure script will now define HAVE_CLOCK_GETTIME_MONOTONIC symbol onlyYang Tse2008-05-121-1/+1
| | | | | | | when function clock_gettime() is available and the monotonic timer is also available. Otherwise, in some cases, librt or libposix4 could be used for linking even when finally not using the clock_gettime() function due to lack of the monotonic clock.
* fix syntax error: missing semicolonYang Tse2008-05-101-1/+1
|
* Internal time differences now use monotonic time source if available.Yang Tse2008-05-091-51/+52
| | | | This also implies the removal of the winmm.lib dependency for WIN32.
* moved includes to setup.h so that the project headers also pick them up ↵Gunter Knauf2007-06-301-3/+0
| | | | (eleminate gcc warning).
* minor patches to enable building for NetWare CLIB.Gunter Knauf2007-06-301-0/+3
| | | | sent by Dmitry Mityugov.
* Made the copyright year match the latest modification's year.Daniel Stenberg2006-01-091-1/+1
|
* Cleanup windows header includes. Where aplicable, inclusion ofYang Tse2005-12-181-1/+0
| | | | windows.h winsock.h winsock2.h ws2tcpip.h is done in setup.h
* <windows.h> required for Watcom.Gisle Vanem2004-12-171-0/+1
|
* Dirk Manske increased the resolution for what the CURLINFO_*_TIME return.Daniel Stenberg2004-04-091-0/+11
|
* provide these functions as curlx_* ones as this enables the curl app toDaniel Stenberg2004-04-061-3/+3
| | | | re-use these sources and functions for subsecond resolution timing
* added more comments for what the functions returnDaniel Stenberg2004-03-301-3/+7
|
* Gisle Vanem's fixes to use CURL_SOCKET_BAD more instead of -1 for sockets.Daniel Stenberg2004-03-111-0/+1
|
* make our private version of gettimeofday() staticDaniel Stenberg2004-01-041-22/+24
|
* Gisle Vanem's IPv6-on-Windows patch applied!Daniel Stenberg2003-10-141-3/+2
|
* removed the local variables for emacs and vim, use the new sample.emacsDaniel Stenberg2003-01-291-8/+0
| | | | way for emacs, and vim users should provide a similar non-polluting style
* copyright year update in the source headerDaniel Stenberg2003-01-161-1/+1
|
* updated source code boilerplate/headerDaniel Stenberg2002-09-031-7/+7
|
* T. Bharath fixed his mm lib timer resolution fixDaniel Stenberg2002-06-261-3/+7
|