Go to file
Johannes Schindelin c0cdc68c7e gtls: fix build when sizeof(long) < sizeof(void *)
- Change gnutls pointer/int macros to pointer/curl_socket_t.
  Prior to this change they used long type as well.

The size of the `long` data type can be shorter than that of pointer
types. This is the case most notably on Windows.

If C99 were acceptable, we could simply use `intptr_t` here. But we
want to retain C89 compatibility.

Simply use the trick of performing pointer arithmetic with the NULL
pointer: to convert an integer `i` to a pointer, simply take the
address of the `i`th element of a hypothetical character array
starting at address NULL. To convert back, simply cast the pointer
difference.

Thanks to Jay Satiro for the initial modification to use curl_socket_t
instead of int/long.

Closes #1617

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-07-03 15:45:25 +02:00
.github .github/stale.yml: enable the stale bot 2017-04-09 00:08:51 +02:00
CMake spelling fixes 2017-03-26 23:56:23 +02:00
docs make: build the docs subdir only from within src 2017-06-30 17:09:01 +02:00
include CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth 2017-06-28 08:02:58 +02:00
lib gtls: fix build when sizeof(long) < sizeof(void *) 2017-07-03 15:45:25 +02:00
m4 curl-compilers.m4: fix unknown-warning-option on Apple clang 2017-06-24 11:10:38 +02:00
packages includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
projects build-wolfssl: Sync config with wolfSSL 3.11 2017-05-31 01:40:39 -04:00
scripts updatemanpages.pl: error out on too old git version 2017-06-03 00:45:31 +02:00
src make: build the docs subdir only from within src 2017-06-30 17:09:01 +02:00
tests unit1399: fix integer overflow 2017-07-03 08:09:02 +02:00
winbuild winbuild: fix boringssl build 2017-06-24 22:13:21 +02:00
.dir-locals.el Add .dir-locals and set c-basic-offset to 2. 2015-12-23 10:16:14 +01:00
.gitattributes .gitattributes: force shell scripts to LF 2017-04-17 08:32:13 +02:00
.gitignore gitignore: ignore all vim swap files 2017-06-09 11:30:05 +02:00
.travis.yml travis: enable typecheck-gcc warnings 2017-06-21 12:28:12 +02:00
CHANGES CHANGES: spell fix, use correct path to script 2017-02-07 08:22:37 +01:00
CMakeLists.txt cmake: Added compatibility options for older Windows versions 2017-07-02 01:02:22 +02:00
COPYING COPYING: update the generic copyright year range 2017-01-07 20:25:43 +01:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
MacOSX-Framework includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
Makefile.am make: build the docs subdir only from within src 2017-06-30 17:09:01 +02:00
Makefile.dist VC: remove the makefile.vc6 build infra 2017-01-23 14:27:32 +01:00
README URLs: follow GitHub project rename (also Travis CI) 2016-02-04 23:01:38 +01:00
README.md README.md: show the coverall coverage on github 2017-06-06 14:40:57 +02:00
RELEASE-NOTES RELEASE-NOTES: synced with ce2c3ebda 2017-06-28 11:29:32 +02:00
acinclude.m4 includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
appveyor.yml ci: whitelist branches to avoid testing feature branches twice 2017-06-21 09:52:44 +01:00
buildconf includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
buildconf.bat includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
configure.ac configure: disable nghttp2 too if HTTP has been disabled 2017-06-16 00:03:03 +02:00
curl-config.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
libcurl.pc.in URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
maketgz maketgz: switch to -6e for xz 2017-06-24 00:04:58 +02:00

README.md

curl logo CII Best Practices Coverity passed Build Status Coverage 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 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 off 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)

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.