Coder Social home page Coder Social logo

curl / curl Goto Github PK

View Code? Open in Web Editor NEW
34.2K 34.2K 6.2K 84.64 MB

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

Home Page: https://curl.se/

License: Other

C 75.34% CMake 1.85% Shell 1.32% Perl 8.33% Makefile 1.29% Python 3.28% Batchfile 0.64% DIGITAL Command Language 2.25% Emacs Lisp 0.01% M4 5.51% Roff 0.16% Dockerfile 0.02%
c client curl ftp gopher hacktoberfest http https imaps ldap libcurl library mqtt pop3 scp sftp transfer-data transferring-data user-agent websocket

curl's Introduction

curl logo

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.

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.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

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

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

(you will 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.

curl's People

Contributors

bagder avatar captain-caveman2k avatar danielgustafsson avatar dfandrich avatar dscho avatar emilengler avatar fabiankeil avatar ghedo avatar gknauf avatar gvanem avatar icing avatar jay avatar jchaffraix avatar jzakrzewski avatar karlson2k avatar kdudka avatar lekensteyn avatar marcelraad avatar maxdymond avatar mback2k avatar mkauf avatar monnerat avatar nickzman avatar rikardfalkeborn avatar sesse avatar snikulov avatar tatsuhiro-t avatar vszakats avatar yangtse avatar yirkha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curl's Issues

Compilation fails on 7.42.0 when USE_NTLM is not defined

On the 7.42.0 release out of the box, if USE_NTLM is not defined (typically we don't have any SSL library available), compilation fails on line 3212 of url.c because trying to access member 'ntlm' which is only defined when USE_NTLM is on.

Unable to build curl when using a temporary build dir for the dependencies

I'm currently reworking how we build out our various packages for Zimbra, and am finding it impossible to get curl to correctly build when the dependencies (Heimdal, in particular) are in a temporary directory for linking. The end problem seems to be the version of libtool used by curl, although I'm not certain it's a libtool specific bug. For whatever reason, while building in the lib/ dir, curl attempts to modify the .la files for its dependent libraries. That seems to be fundamentally wrong, as it should never be attempting to modify anything about another package.

In this case, there is no /opt/zimbra/common directory structure, as all the dependencies are currently in buildtmppkg/opt/zimbra/common, and curl is being told to link against them there.

Output is:

MP -MF vtls/.deps/libcurl_la-gskit.Tpo -c vtls/gskit.c -fPIC -DPIC -o vtls/.libs/libcurl_la-gskit.o
mv -f vtls/.deps/libcurl_la-gskit.Tpo vtls/.deps/libcurl_la-gskit.Plo
mv -f vtls/.deps/libcurl_la-darwinssl.Tpo vtls/.deps/libcurl_la-darwinssl.Plo
mv -f vtls/.deps/libcurl_la-openssl.Tpo vtls/.deps/libcurl_la-openssl.Plo
/bin/bash ../libtool --tag=CC --mode=link gcc -fvisibility=hidden -O2 -Wno-system-headers -version-info 7:0:3 -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -lssl -lcrypto -lgssapi -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -o libcurl.la -rpath /opt/zimbra/common/lib libcurl_la-file.lo libcurl_la-timeval.lo libcurl_la-base64.lo libcurl_la-hostip.lo libcurl_la-progress.lo libcurl_la-formdata.lo libcurl_la-cookie.lo libcurl_la-http.lo libcurl_la-sendf.lo libcurl_la-ftp.lo libcurl_la-url.lo libcurl_la-dict.lo libcurl_la-if2ip.lo libcurl_la-speedcheck.lo libcurl_la-ldap.lo libcurl_la-version.lo libcurl_la-getenv.lo libcurl_la-escape.lo libcurl_la-mprintf.lo libcurl_la-telnet.lo libcurl_la-netrc.lo libcurl_la-getinfo.lo libcurl_la-transfer.lo libcurl_la-strequal.lo libcurl_la-easy.lo libcurl_la-security.lo libcurl_la-curl_fnmatch.lo libcurl_la-fileinfo.lo libcurl_la-ftplistparser.lo libcurl_la-wildcard.lo libcurl_la-krb5.lo libcurl_la-memdebug.lo libcurl_la-http_chunks.lo libcurl_la-strtok.lo libcurl_la-connect.lo libcurl_la-llist.lo libcurl_la-hash.lo libcurl_la-multi.lo libcurl_la-content_encoding.lo libcurl_la-share.lo libcurl_la-http_digest.lo libcurl_la-md4.lo libcurl_la-md5.lo libcurl_la-http_negotiate.lo libcurl_la-inet_pton.lo libcurl_la-strtoofft.lo libcurl_la-strerror.lo libcurl_la-amigaos.lo libcurl_la-hostasyn.lo libcurl_la-hostip4.lo libcurl_la-hostip6.lo libcurl_la-hostsyn.lo libcurl_la-inet_ntop.lo libcurl_la-parsedate.lo libcurl_la-select.lo libcurl_la-tftp.lo libcurl_la-splay.lo libcurl_la-strdup.lo libcurl_la-socks.lo libcurl_la-ssh.lo libcurl_la-rawstr.lo libcurl_la-curl_addrinfo.lo libcurl_la-socks_gssapi.lo libcurl_la-socks_sspi.lo libcurl_la-curl_sspi.lo libcurl_la-slist.lo libcurl_la-nonblock.lo libcurl_la-curl_memrchr.lo libcurl_la-imap.lo libcurl_la-pop3.lo libcurl_la-smtp.lo libcurl_la-pingpong.lo libcurl_la-rtsp.lo libcurl_la-curl_threads.lo libcurl_la-warnless.lo libcurl_la-hmac.lo libcurl_la-curl_rtmp.lo libcurl_la-openldap.lo libcurl_la-curl_gethostname.lo libcurl_la-gopher.lo libcurl_la-idn_win32.lo libcurl_la-http_negotiate_sspi.lo libcurl_la-http_proxy.lo libcurl_la-non-ascii.lo libcurl_la-asyn-ares.lo libcurl_la-asyn-thread.lo libcurl_la-curl_gssapi.lo libcurl_la-curl_ntlm.lo libcurl_la-curl_ntlm_wb.lo libcurl_la-curl_ntlm_core.lo libcurl_la-curl_ntlm_msgs.lo libcurl_la-curl_sasl.lo libcurl_la-curl_multibyte.lo libcurl_la-hostcheck.lo libcurl_la-bundles.lo libcurl_la-conncache.lo libcurl_la-pipeline.lo libcurl_la-dotdot.lo libcurl_la-x509asn1.lo libcurl_la-http2.lo libcurl_la-curl_sasl_sspi.lo libcurl_la-smb.lo libcurl_la-curl_sasl_gssapi.lo libcurl_la-curl_endian.lo libcurl_la-curl_des.lo vtls/libcurl_la-openssl.lo vtls/libcurl_la-gtls.lo vtls/libcurl_la-vtls.lo vtls/libcurl_la-nss.lo vtls/libcurl_la-polarssl.lo vtls/libcurl_la-polarssl_threadlock.lo vtls/libcurl_la-axtls.lo vtls/libcurl_la-cyassl.lo vtls/libcurl_la-schannel.lo vtls/libcurl_la-darwinssl.lo vtls/libcurl_la-gskit.lo
libtool: link: warning: library /home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib/libgssapi.la' was moved. libtool: link: gcc -shared -fPIC -DPIC .libs/libcurl_la-file.o .libs/libcurl_la-timeval.o .libs/libcurl_la-base64.o .libs/libcurl_la-hostip.o .libs/libcurl_la-progress.o .libs/libcurl_la-formdata.o .libs/libcurl_la-cookie.o .libs/libcurl_la-http.o .libs/libcurl_la-sendf.o .libs/libcurl_la-ftp.o .libs/libcurl_la-url.o .libs/libcurl_la-dict.o .libs/libcurl_la-if2ip.o .libs/libcurl_la-speedcheck.o .libs/libcurl_la-ldap.o .libs/libcurl_la-version.o .libs/libcurl_la-getenv.o .libs/libcurl_la-escape.o .libs/libcurl_la-mprintf.o .libs/libcurl_la-telnet.o .libs/libcurl_la-netrc.o .libs/libcurl_la-getinfo.o .libs/libcurl_la-transfer.o .libs/libcurl_la-strequal.o .libs/libcurl_la-easy.o .libs/libcurl_la-security.o .libs/libcurl_la-curl_fnmatch.o .libs/libcurl_la-fileinfo.o .libs/libcurl_la-ftplistparser.o .libs/libcurl_la-wildcard.o .libs/libcurl_la-krb5.o .libs/libcurl_la-memdebug.o .libs/libcurl_la-http_chunks.o .libs/libcurl_la-strtok.o .libs/libcurl_la-connect.o .libs/libcurl_la-llist.o .libs/libcurl_la-hash.o .libs/libcurl_la-multi.o .libs/libcurl_la-content_encoding.o .libs/libcurl_la-share.o .libs/libcurl_la-http_digest.o .libs/libcurl_la-md4.o .libs/libcurl_la-md5.o .libs/libcurl_la-http_negotiate.o .libs/libcurl_la-inet_pton.o .libs/libcurl_la-strtoofft.o .libs/libcurl_la-strerror.o .libs/libcurl_la-amigaos.o .libs/libcurl_la-hostasyn.o .libs/libcurl_la-hostip4.o .libs/libcurl_la-hostip6.o .libs/libcurl_la-hostsyn.o .libs/libcurl_la-inet_ntop.o .libs/libcurl_la-parsedate.o .libs/libcurl_la-select.o .libs/libcurl_la-tftp.o .libs/libcurl_la-splay.o .libs/libcurl_la-strdup.o .libs/libcurl_la-socks.o .libs/libcurl_la-ssh.o .libs/libcurl_la-rawstr.o .libs/libcurl_la-curl_addrinfo.o .libs/libcurl_la-socks_gssapi.o .libs/libcurl_la-socks_sspi.o .libs/libcurl_la-curl_sspi.o .libs/libcurl_la-slist.o .libs/libcurl_la-nonblock.o .libs/libcurl_la-curl_memrchr.o .libs/libcurl_la-imap.o .libs/libcurl_la-pop3.o .libs/libcurl_la-smtp.o .libs/libcurl_la-pingpong.o .libs/libcurl_la-rtsp.o .libs/libcurl_la-curl_threads.o .libs/libcurl_la-warnless.o .libs/libcurl_la-hmac.o .libs/libcurl_la-curl_rtmp.o .libs/libcurl_la-openldap.o .libs/libcurl_la-curl_gethostname.o .libs/libcurl_la-gopher.o .libs/libcurl_la-idn_win32.o .libs/libcurl_la-http_negotiate_sspi.o .libs/libcurl_la-http_proxy.o .libs/libcurl_la-non-ascii.o .libs/libcurl_la-asyn-ares.o .libs/libcurl_la-asyn-thread.o .libs/libcurl_la-curl_gssapi.o .libs/libcurl_la-curl_ntlm.o .libs/libcurl_la-curl_ntlm_wb.o .libs/libcurl_la-curl_ntlm_core.o .libs/libcurl_la-curl_ntlm_msgs.o .libs/libcurl_la-curl_sasl.o .libs/libcurl_la-curl_multibyte.o .libs/libcurl_la-hostcheck.o .libs/libcurl_la-bundles.o .libs/libcurl_la-conncache.o .libs/libcurl_la-pipeline.o .libs/libcurl_la-dotdot.o .libs/libcurl_la-x509asn1.o .libs/libcurl_la-http2.o .libs/libcurl_la-curl_sasl_sspi.o .libs/libcurl_la-smb.o .libs/libcurl_la-curl_sasl_gssapi.o .libs/libcurl_la-curl_endian.o .libs/libcurl_la-curl_des.o vtls/.libs/libcurl_la-openssl.o vtls/.libs/libcurl_la-gtls.o vtls/.libs/libcurl_la-vtls.o vtls/.libs/libcurl_la-nss.o vtls/.libs/libcurl_la-polarssl.o vtls/.libs/libcurl_la-polarssl_threadlock.o vtls/.libs/libcurl_la-axtls.o vtls/.libs/libcurl_la-cyassl.o vtls/.libs/libcurl_la-schannel.o vtls/.libs/libcurl_la-darwinssl.o vtls/.libs/libcurl_la-gskit.o -Wl,-rpath -Wl,/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -Wl,-rpath -Wl,/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -L/home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib -lssl -lcrypto /home/build/p4/zimbra/main/ThirdParty/curl/buildtmppkg/opt/zimbra/common/lib/libgssapi.so -O2 -pthread -Wl,-soname -Wl,libcurl.so.4 -o .libs/libcurl.so.4.3.0 libtool: link: (cd ".libs" && rm -f "libcurl.so.4" && ln -s "libcurl.so.4.3.0" "libcurl.so.4") libtool: link: (cd ".libs" && rm -f "libcurl.so" && ln -s "libcurl.so.4.3.0" "libcurl.so") /bin/sed: can't read /opt/zimbra/common/lib/libheimntlm.la: No such file or directory libtool: link:/opt/zimbra/common/lib/libheimntlm.la' is not a valid libtool archive
make[3]: *** [libcurl.la] Error 1
make[3]: Leaving directory /home/build/p4/zimbra/main/ThirdParty/curl/curl-7.41.0-srcpkg/lib' make[2]: *** [all] Error 2 make[2]: Leaving directory/home/build/p4/zimbra/main/ThirdParty/curl/curl-7.41.0-srcpkg/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/build/p4/zimbra/main/ThirdParty/curl/curl-7.41.0-srcpkg'
make: *** [build-pkg] Error 2

Curl_hash_clean destroys hash table

Curl_hash_clean frees ->table, which is only allocated in Curl_hash_init (and indirectly in Curl_hash_alloc).

Afaics this means that a call to Curl_hash_add will crash with a nullptr dereference after a call to Curl_hash_clean.

Basically Curl_hash_clean can be used to free memory allocated with Curl_hash_init, but is used in hostip.c with the intention of only freeing all entries (used Curl_hash_clean_with_criterium until recently).

Curl_hash_clean should probably get renamed to Curl_hash_reset, the functions should get documented, and maybe we want a separate "remove all entries" function (which should then be used in hostip.c)

Extra zero-length file created after 7.42.0 appears to have broken -z option

This code example (Windows platform):

echo TESTTEST> index.html
curl -fR -z .\index.html https://example.org/index.html -o .\index.html.newer
echo %ERRORLEVEL%

will create a zero-length file and return result code 0 when using curl 7.42.0.

In previous versions it was returning result 0 but the zero-length file was not created, which seems to be the correct behavior, given that -z means to download only if there is a newer than the reference-file found on the server. New behavior also makes it not possible to use -z either by checking the result code (always 0) or the existence of the output (always created).

This seems to be related to update #183. Here, the description "curl: create output file on successful download of an empty file" (and Daniel's video) suggests that a zero-length file is only expected if the server actually serves a zero-length file, which is not the case in above scenario; the file on the server has a length of 1270 bytes.

Therefore I believe this to be a bug.

libcurl + winssl = https not working on Windows 2000

>curl --version
curl 7.40.0 (i386-pc-win32) libcurl/7.40.0 WinSSL zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz

>curl -v https://google.com
* Rebuilt URL to: https://google.com/
*   Trying 178.168.3.79...
* Connected to google.com (178.168.3.79) port 443 (#0)
* schannel: SSL/TLS connection with google.com port 443 (step 1/3)
* schannel: checking server certificate revocation
* schannel: sending initial handshake data: sending 70 bytes...
* schannel: sent initial handshake data: sent 70 bytes
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: failed to receive handshake, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 3736 length 4096
* schannel: encrypted data length: 3657
* schannel: encrypted data buffer: offset 3657 length 4096
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 4681 length 4681
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 4889 length 5705
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 5913 length 5913
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 6937 length 6937
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 7961 length 7961
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 8625 length 8985
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 9649 length 9649
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 10063 length 10673
* schannel: sending next handshake data: sending 314 bytes...
* schannel: SSL/TLS connection with google.com port 443 (step 2/3)
* schannel: encrypted data buffer: offset 47 length 10673
* schannel: SSL/TLS handshake complete
* schannel: SSL/TLS connection with google.com port 443 (step 3/3)
* schannel: failed to setup sequence detection
* schannel: failed to setup replay detection
* schannel: failed to setup confidentiality
* schannel: failed to setup stream orientation
* Closing connection 0
* schannel: shutting down SSL/TLS connection with google.com port 443
* schannel: clear security context handle
* schannel: clear credential handle
curl: (35) schannel: failed to setup sequence detection

http2 POST delay

When using curl --form file=@xxx .... against my server, there is a 1-2 second delay before curl actually sends the request body. Using the nghttp2 client does not show this behavior.

Might it be that this is some effect of Expect header handling, that just will not trigger in HTTP/2?

Long certificate serial number with OpenSSL backend is null

In lib/vtls/openssl/c in version 7.41.0 at line 2466 we have:

  ptr = bufp;
  *ptr++ = 0;
  if(num->type == V_ASN1_NEG_INTEGER)
    *ptr++='-';

  for(j=0; (j<num->length) && (left>=4); j++) {
    /* TODO: length restrictions */
    snprintf(ptr, 3, "%02x%c",num->data[j],
             ((j+1 == num->length)?'\n':':'));
    ptr += 3;
    left-=4;

Since bufp gets pushed to return a certificate serial number setting the first character to null will always cause null to be returned, therefore, line 2477 should be removed. The snprintf call attempts to create a colon separated string but just the hexadecimal value is being inserted. Also, I could not locate documentation that says the serial number should be colon separated. To get long serial numbers returned from the library I changed the above block to:

  ptr = bufp;
  if(num->type == V_ASN1_NEG_INTEGER)
    *ptr++='-';

  for(j=0; (j<num->length) && (left>=3); j++) {
    /* TODO: length restrictions */
    snprintf(ptr, 3, "%02x",num->data[j]);
    ptr += 2;
    left-=2;

Hope this helps!

does not create empty files with -o

I'd expect curl -o to always create the specified file, if the url download succeeded. This consistency means it's easy to use it in a script; run curl, check its exit status and if it succeeded, the url content is there in the file to be used. And it just seems to make sense. But, reality is different when downloading an url that happens to be empty:

joey@darkstar:>curl -o hello http://tmp.kitenet.net/empty
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
joey@darkstar:
>cat hello
cat: hello: No such file or directory

This behavior is not documented on the man page either. So you have either a behavior bug (IMHO) or at least a documentation bug.

I'm using curl 7.38.0.

Choose the name of file in braces for complex URLs

When using some trick to download various URLs with braces {}, there is a bug in cURL because or you can save using the URL part in braces as names or choose only one name. The problem is if if the names in braces are complex.

I would like to suggest the ability to configure the name inside the braces. Today we have this grammar:

  • {partURL1,partURL2,partURL3}

and I suggest use this (can the cURL use the : as separator?)

  • {partURL1**:name1**,partURL2**:name2**,partURL3**:name3**}
  • {partURL1**:name1**,partURL2,partURL3}
    • partURL1 will use the name1 and the others will use partURL2 and partURL3 as name

So the command

curl --url 'http://www.google.com/{various:first,complex,names:third}' --output 'name_#1.html'

will produce:

http://www.google.com/various and save in name_first.html
http://www.google.com/complex and save in name_complex.html (I don't send the name, use the part URL as default)
http://www.google.com/names and save in name_third.html

Erroneous debug text when paired with OpenSSL 1.0.2

When running curl-7.41.0 on FreeBSD 10.1-RELEASE compiled with openssl-1.0.2, I get following erroneous debug messages:

λ curl -svv -o /dev/null 'https://www.freebsd.org/'
*   Trying 8.8.178.110...
*   Trying 2001:1900:2254:206a::50:0...
* Connected to www.freebsd.org (8.8.178.110) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: /usr/local/share/certs/ca-root-nss.crt
  CApath: none
* TLSv1.2, TLS Unknown, Unknown (22):
} [5 bytes data]
* TLSv1.2, TLS handshake, Client hello (1):
} [512 bytes data]
* SSLv2, Unknown (22):
{ [5 bytes data]
* TLSv1.2, TLS handshake, Server hello (2):
{ [98 bytes data]
* SSLv2, Unknown (22):
{ [5 bytes data]
* TLSv1.2, TLS handshake, CERT (11):
{ [4469 bytes data]
* SSLv2, Unknown (22):
{ [5 bytes data]
* TLSv1.2, TLS handshake, Server key exchange (12):
{ [589 bytes data]
* SSLv2, Unknown (22):
{ [5 bytes data]
* TLSv1.2, TLS handshake, Server finished (14):
{ [4 bytes data]
* SSLv2, Unknown (22):
} [5 bytes data]
* TLSv1.2, TLS handshake, Client key exchange (16):
} [70 bytes data]
* SSLv2, Unknown (20):
} [5 bytes data]
* TLSv1.2, TLS change cipher, Client hello (1):
} [1 bytes data]
* SSLv2, Unknown (22):
} [5 bytes data]
* TLSv1.2, TLS handshake, Finished (20):
} [16 bytes data]
* SSLv2, Unknown (20):
{ [5 bytes data]
* TLSv1.2, TLS change cipher, Client hello (1):
{ [1 bytes data]
* SSLv2, Unknown (22):
{ [5 bytes data]
* TLSv1.2, TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* Server certificate:
*        subject: OU=Domain Control Validated; OU=Gandi Standard Wildcard SSL; CN=*.freebsd.org
*        start date: 2014-11-18 00:00:00 GMT
*        expire date: 2015-11-18 23:59:59 GMT
*        subjectAltName: www.freebsd.org matched
*        issuer: C=FR; ST=Paris; L=Paris; O=Gandi; CN=Gandi Standard SSL CA 2
*        SSL certificate verify ok.
* SSLv2, Unknown (23):
} [5 bytes data]
> GET / HTTP/1.1
> User-Agent: curl/7.41.0
> Host: www.freebsd.org
> Accept: */*
> 
* SSLv2, Unknown (23):
{ [5 bytes data]
< HTTP/1.1 200 OK
< Date: Sun, 05 Apr 2015 03:22:12 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Last-Modified: Sun, 05 Apr 2015 03:10:15 GMT
< ETag: "5520a797-6f25"
< Server: ToTheCloud/v0.01
< X-Varnish: 1938974843 1938974183
< Age: 25
< Via: 1.1 wfe0.ysv.FreeBSD.org
< X-Cache: HIT
< Strict-Transport-Security: max-age=31536000; includeSubdomains
< 
{ [3820 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* SSLv2, Unknown (23):
{ [5 bytes data]
* Connection #0 to host www.freebsd.org left intact

As reported in the original bug report, it seems to happen on Windows as well.

Let us know if you need any other information.

Thanks!

HTTP connection closed on: Excess found in a non pipelined read

From issue #223:

*   Trying <server_ip>...
* Connected to <hostname> (<server_ip>) port 8081 (#0)
> PUT /webapp/rest/files/2316975_A5E55802418A_2.pdf HTTP/1.1
> User-Agent: curl/7.40.0-DEV
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
> 
< HTTP/1.1 401 Unauthorized
< Server: Apache-Coyote/1.1
< WWW-Authenticate: Negotiate
< Content-Type: text/html;charset=utf-8
< Content-Length: 974
< Date: Fri, 17 Apr 2015 16:52:45 GMT
< 
* Excess found in a non pipelined read: excess = 974 url = /webapp/rest/files/2316975_A5E55802418A_2.pdf (zero-length body)
* Closing connection 0
* Issue another request to this URL: 'http://<hostname>:8081/webapp/rest/files/2316975_A5E55802418A_2.pdf'
* Hostname <hostname> was found in DNS cache
*   Trying <server_ip>...
* Connected to <hostname> (<server_ip>) port 8081 (#1)
* Server auth using Negotiate with user ''
> PUT /webapp/rest/files/2316975_A5E55802418A_2.pdf HTTP/1.1
> Authorization: Negotiate YIIP7w...YOIrHaV3ZFuk8hD
> User-Agent: curl/7.40.0-DEV
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
> 
< HTTP/1.1 100 Continue
[7 bytes data]
* We are completely uploaded and fine
< HTTP/1.1 201 Created
< Server: Apache-Coyote/1.1
< WWW-Authenticate: Negotiate oYHtMIHqo...9iFqt
< Connection: close
< Content-Type: application/json
< Content-Length: 24
< Date: Fri, 17 Apr 2015 16:52:46 GMT
< 
{ [24 bytes data]
* Closing connection 1
{"uid":"x0VVIyjbBv4vwA"}

For some reason the excess is causing the connection to be closed. At least the connection close is not necessary or even the excess is wrong.

Both need to be investigated.

Curl cookie handling bug with spaces

Hello,
I just ran into a wonky behavior in curl 's cookie handling when spaces exist in the cookie:
here is a gist with the trace:https://gist.github.com/cromestant/9452ad9912c27882867c

to reproduce I created two PHP files

//cookie.php

<?php
header("Set-Cookie: CHARZID=this is ma cookie; path=/");
header("Location: http://www.google.com");

and
//cookies2.php

<?php
header("Set-Cookie: CHARZID = this is ma cookie; path=/");
header("Location: http://www.google.com");

the only difference is the space in the cookie name=value .
I looked at the RFC and it seems like a valid cookie header.

If you curl it and use a cookie jar you will see that cookie 2 does not set the value
you can test here:
http://test dot tigocloud dot net slash cookie.php
and cookie2.php

speed-limit not working with hanging ftp connection

This is related to http://sourceforge.net/p/curl/bugs/856/ resp. the known bug 73.

When an ftp connection is not fully set up and is hanging (no high port number negotiated,
communication is still going on (or not) on port 21), curl nevertheless decides that
connection phase is finished and therefore not connect-timeout, but max-time applies.
So far so good. But speed-limit is not working, too.

As I have to transfer huge files, I have to set large values for max-time, so it would be great
to be able to catch hanging connections be setting --speed-limit, but this does not work.

no default directory, certutil not found

I tried running firefox-db2pem.sh on an Ubuntu machine and got this error:

$ ./firefox-db2pem.sh
ls: cannot access /home/sneakyimp/.mozilla/firefox/*default: No such file or directory
./firefox-db2pem.sh: 46: ./firefox-db2pem.sh: certutil: not found

Certificate info is printed only if peer verification succeeded

CURLINFO_CERTINFO force printing certificate chain information to output/debug function.
But it only works if peer verification succeeds, because it is implemented in servercert function, which is called from ossl_connect_step3.
This limitaion makes CURLINFO_CERTINFO much less useful, because certificate info is often used for certificate issues debugging

SSL through proxy header leak

sending a request to an https:// host via a proxy leaks headers, including sensitive infromation like cookies:

curl -v "https://www.google.com/" --proxy 127.0.0.1:8484 -H 'Cookie: a=b'

  • About to connect() to proxy 127.0.0.1 port 8484
  • Trying 127.0.0.1... connected
  • Connected to 127.0.0.1 (127.0.0.1) port 8484
  • Establish HTTP proxy tunnel to www.google.com:443

    CONNECT www.google.com:443 HTTP/1.0
    Host: www.google.com:443
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:28.0) Gecko/20100101 Firefox/28.0
    Proxy-Connection: Keep-Alive
    Cookie: a=b

nc -l 8484 -k

CONNECT www.google.com:443 HTTP/1.0
Host: www.google.com:443
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:28.0) Gecko/20100101 Firefox/28.0
Proxy-Connection: Keep-Alive
Cookie: a=b

this seems like a security concern, curl should only send the HTTPHEADERS through the tunnel after it's established - not to the proxy itself

[linux] curl 7.42 causes vmware to crash

Description:

Checking for updates in Vmware causes the program to crash with the
new version of curl. Downgrading to curl 7.41 is temporary solution.

Steps to reproduce

  1. Install Vmware Workstation 11.1
  2. Install curl 7.42
  3. Start vmware, go to help > software updates

Vmware almost immediately crashes when checking for updates.

Relevant link to someone reporting similar crash: http://osdir.com/ml/blfs-support/2015-04/msg00079.html

I am using Arch Linux 64-bit with Linux 4.0.1

Curl 7.42.1 reproduces the same results as 7.42

Downstream: https://bugs.archlinux.org/task/44783

EDIT: can't figure out how to attach files on this. But i attached a log of the vmware crashes in the Arch Linux bug-tracker.

Closed connection not reported as error in cleartext HTTP2 upgrade

I'm using the multi interface to fetch an HTTP url with CURLOPT_HTTP_VERSION set to CURL_HTTP_VERSION_2 (so HTTP2 is not actually in use; it's an HTTP1 request with an upgrade header). If the server closes the socket without sending a response, this is not reported as an error (curl_multi_info_read returns a result of CURLE_OK). Without setting CURLOPT_HTTP_VERSION it correctly reports CURLE_PARTIAL_FILE.

Versions: libcurl 7.41.0 and nghttp2 0.7.5 on OSX

curl_version_info.3 documentation missing "const" for protocols field

Rather minor, but… the curl_version_info.3 man page documents the curl_version_info_data struct's fields, including

const char **protocols;   /* list of protocols */

However protocols is in fact a const char * const * — which makes a difference when user code is declaring a variable to traverse the list.

Windows build for nghttp2 supported?

I've tried to build curl with nghttp2 on windows x64:

nghttp2/nghttp2#195

Currently, it's not really possible to build CURL with nghttp2 support without build modifications?

And I don't know what are the "official" way to build CURL for windows:

  • nmake /f Makefile.vc mode=dll ...
  • SLN files in projects folder
  • cmake

?

Thanks

getinfo with OpenSSL backend - No connection information available

My understanding of OpenSSL (granted is limited) is that with a connection structure you can obtain the context that created the connection. I am not aware of a way to obtain an existing connection from a context structure. In version libcurl 7.41.0 I changed line 310 of lib/getino.c from:

internals = conn->ssl[sockindex].ctx;

To:

internals = conn->ssl[sockindex].handle;

Android lollipop

After the lollipop release, current binaries are no longer valid. Can you provide new ones please?

https requests leaking memory

it looks like even the simplest https requests are leaking memory.

valgrind reports the following example leaves "43,397 bytes in 947 blocks" available:

#include <stdio.h>
#include <curl/curl.h>

size_t
callback(void *x, size_t size, size_t nmemb, void *y) {
  return size * nmemb;
}

int
main(){
  CURL *curl;
  long status;

  curl = curl_easy_init();
  if (!curl) return 1;

  curl_easy_setopt(curl, CURLOPT_URL, "https://google.com/");
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
  curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);

  curl_easy_perform(curl);
  curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status);

  printf("%ld\n", status);

  curl_easy_cleanup(curl);
  return 0;
}

for more see: https://gist.github.com/stephenmathieson/12647b3caad72be5c911

Feature request: Do not allow "downgrading" protocol on redirect

Currently these useful curl/libcurl options exist to control which protocol a redirection may be allowed to follow:
http://curl.haxx.se/docs/manpage.html#--proto-redir
http://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS.html

But, in case the URL is not known in advance (f.e. it is coming from user input), there is no simple way to disable unwanted downgrades of the protocol in a generic way, f.e. (and typically) from HTTPS to HTTP.

For HTTPS URLs, the allowed redirects should be HTTPS (only), while for HTTP URLs, both HTTP and HTTPS would be acceptable.

One way to implement this, would be to allow specifying a special protocol safer (--proto-redir =safer and CURLPROTO_SAFER), which would only allow protocols regarded as equally safe or safer than the one used in the original URL. [I'm not insisting on this particular terminology]

Regarding all supported protocols, this may be a possible categorization of all of them based on a generally accepted amount of safety they provide, ordered by decreasing safety category:

"Safest" (SSL/TLS or SSH):
CURLPROTO_HTTPS
CURLPROTO_SCP
CURLPROTO_SFTP
CURLPROTO_SMTPS
CURLPROTO_IMAPS
CURLPROTO_POP3S
CURLPROTO_RTMPS
CURLPROTO_RTMPTS

"Safe" (plaintext implicitly or explicitly upgraded to SSL/TLS):
CURLPROTO_LDAPS
CURLPROTO_FTPS

"Unsafe" (plaintext):
CURLPROTO_HTTP
CURLPROTO_FTP
CURLPROTO_FILE
CURLPROTO_DICT
CURLPROTO_GOPHER
CURLPROTO_IMAP
CURLPROTO_LDAP
CURLPROTO_POP3
CURLPROTO_RTMP
CURLPROTO_RTMPE
CURLPROTO_RTMPT
CURLPROTO_RTMPTE
CURLPROTO_RTSP
CURLPROTO_SMB
CURLPROTO_SMTP
CURLPROTO_TELNET
CURLPROTO_TFTP

PUT with Expect header sends request body prematurely (upload is broken)

I have recently upgraded from curl 7.38.0 to 7.41.0 to for testing purposes. After that PUTting files was no longer possible to a server requiring auth.

Though, we are using libcurl in a C app on HP-UX, I was able to reproduce the problem on Windows and FreeBSD with curl too.

I have tested every single version between 38 and 41 and identified that the issue appeared first in 7.40.0. 7.39.0 works flawlessly.

Call with curl 7.39.0:

C:\Users\osipovmi>d:\curl-7.39.0\curl  --verbose --negotiate -u : -H "Accept: application/json" --upload-file 2316975_A5E55802418A_2.docx http://<hostname>:8081/webapp/rest/files/2316975_A5E55802418A_2.docx

Output:

* Hostname was NOT found in DNS cache
*   Trying <server_ip>...
* Connected to <hostname> (<server_ip>) port 8081 (#0)
> PUT /webapp/rest/files/2316975_A5E55802418A_2.docx HTTP/1.1
> User-Agent: curl/7.39.0
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
> 
< HTTP/1.1 401 Unauthorized
< Server: Apache-Coyote/1.1
< WWW-Authenticate: Negotiate
< Content-Type: text/html;charset=utf-8
< Content-Length: 974
< Date: Thu, 16 Apr 2015 12:51:42 GMT
< 
* Excess found in a non pipelined read: excess = 974 url = /webapp/rest/files/2316975_A5E55802418A_2.docx (zero-length body)
* Closing connection 0
* Issue another request to this URL: 'http://<hostname>:8081/webapp/rest/files/2316975_A5E55802418A_2.docx'
* Hostname was found in DNS cache
*   Trying <server_ip>...
* Connected to <hostname> (<server_ip>) port 8081 (#1)
* Server auth using Negotiate with user ''
> PUT /webapp/rest/files/2316975_A5E55802418A_2.docx HTTP/1.1
> Authorization: Negotiate YIIQ1wYGKwYBB...juOWtcZ0e3wlRFWBg==
> User-Agent: curl/7.39.0
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
} [data not shown]
* We are completely uploaded and fine
< HTTP/1.1 201 Created
< Server: Apache-Coyote/1.1
< WWW-Authenticate: Negotiate oYHrMIH...SVm8YA==
< Connection: close
< Content-Type: application/json
< Content-Length: 24
< Date: Thu, 16 Apr 2015 12:51:42 GMT
< 
{"uid":"RxfVyT$nBv4vwA"}
* Closing connection 1

As you can see, PUT with Expect header is perfectly fine.

Now the curl 7.40.0 call:

C:\Users\osipovmi>d:\curl-7.40.0\curl --verbose --negotiate -u : -H "Accept: application/json" --upload-file 2316975_A5E55802418A_2.docx http://<hostname>:8081/webapp/rest/files/2316975_A5E55802418A_2.docx

Output:

*   Trying <server_ip>...
* Connected to <hostname> (<server_ip>) port 8081 (#0)
> PUT /webapp/rest/files/2316975_A5E55802418A_2.docx HTTP/1.1
> User-Agent: curl/7.40.0
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
> 
< HTTP/1.1 401 Unauthorized
< Server: Apache-Coyote/1.1
< WWW-Authenticate: Negotiate
< Content-Type: text/html;charset=utf-8
< Content-Length: 974
< Date: Thu, 16 Apr 2015 12:53:39 GMT
* Rewind stream after send
* Keep sending data to get tossed away!
<
* Ignoring the response-body
{ [974 bytes data]
* We are completely uploaded and fine
* Connection #0 to host <hostname> left intact
* Issue another request to this URL: 'http://<hostname>:8081/webapp/rest/files/2316975_A5E55802418A_2.docx'
* Found bundle for host <hostname>: 0x568820
* Re-using existing connection! (#0) with host <hostname>
* Connected to <hostname> (<server_ip>) port 8081 (#0)
* Server auth using Negotiate with user ''
> PUT /webapp/rest/files/2316975_A5E55802418A_2.docx HTTP/1.1
> Authorization: Negotiate YIIQ1wYG...MOnCd3OA==
> User-Agent: curl/7.40.0
> Host: <hostname>:8081
> Accept: application/json
> Content-Length: 7
> Expect: 100-continue
> 
< HTTP/1.1 400 Bad Request
< Server: Apache-Coyote/1.1
< Transfer-Encoding: chunked
< Date: Thu, 16 Apr 2015 12:53:39 GMT
< Connection: close
* Keep sending data to get tossed away!
< 
{ [5 bytes data]
* Closing connection 0

Server is sending Bad Request due to the broken upload.

I ran both commands with --trace and identified that > 7.39.0 sends the request body even though there is no positive feedback from the server. Using -H 'Expect:' has no avail.

I assume that stuff have got broken somewhere here: git log curl-7_39_0...curl-7_40_0. I am willing to try a patch or bisect if we can narrow down the (broken) commits.

schannel_recv treats no bytes available as end-of-stream

A recent change caused a regression in the behavior of schannel_recv.

Previously, when no more data was available to read, schannel_recv would return -1. After this change, schannel_recv returns 0:
https://sourceforge.net/p/curl/bugs/1462/

This in turn changes the behavior of curl_easy_recv. It used to return CURLE_AGAIN in this scenario, but now returns CURLE_OK and 0 bytes received, as if we've reached the end of the stream.

This in turn causes HTTPS requests to fail intermittently on Windows with errors like CURLE_GOT_NOTHING.

The behavior is reproducible with libcurl 7.42.1.

memory leak when timeout expired during POST request

Using a simple example based on postit2.c :

#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(int argc, char *argv[])
{
  CURL *curl;
  CURLcode res;
  struct curl_httppost *formpost=NULL;
  struct curl_httppost *lastptr=NULL;
  struct curl_slist *headerlist=NULL;
  static const char buf[] = "Expect:";

  curl_global_init(CURL_GLOBAL_ALL);
  curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "send", CURLFORM_END);
  curl = curl_easy_init();
  headerlist = curl_slist_append(headerlist, buf); 
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:12345");
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
    curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);

    res = curl_easy_perform(curl);
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));

    curl_easy_cleanup(curl);
    curl_formfree(formpost);
    curl_slist_free_all (headerlist);
  }
  return 0;
}

Starting a netcat command nc -l -p 12345 in order to read HTTP request without answering, running the previous sample under valgrind report the following memory leak :

==7666== 495 (32 direct, 463 indirect) bytes in 1 blocks are definitely lost in loss record 602 of 641
==7666==    at 0x4C29F90: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==7666==    by 0x4073BC: AddFormData (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x4075BF: AddFormDataf (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x40860D: Curl_getformdata (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x419F99: Curl_http (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x4253FA: Curl_do (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x4102CE: multi_runsingle (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x4109BC: curl_multi_perform (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x40BB0A: curl_easy_perform (in /mnt/DOWNLOAD/curl/docs/examples/postit2)
==7666==    by 0x40714E: main (in /mnt/DOWNLOAD/curl/docs/examples/postit2)

Investigating show that this was introduced by the commit 1342a96. There is no leak with curl-7_39_0, and there is a leak with curl-7_40_0.

A possible fix seems to add in lib/multi.c line 1019 (in order to free what allocate Curl_getformdata) :

  1018    result = CURLE_OPERATION_TIMEDOUT;
  1019    (void)Curl_done(&data->easy_conn, data->result, TRUE); 
  1020    /* Skip the statemachine and go directly to error handling section. */
  1021    goto statemachine_end;

Curl 7.42.0 build regression when ssl is disabled

./configure --enable-shared=no --disable-threaded-resolver --enable-debug --disable-curldebug --enable-optimize --disable-ipv6 --disable-ftp --disable-file --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp --disable-gopher --disable-manual --disable-sspi --disable-cookies --disable-ntlm-wb --without-ca-bundle --without-ca-path --without-ssl --without-gnutls --without-nss --without-zlib --without-libidn

libtool: compile: gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DBUILDING_LIBCURL -DCURL_STATICLIB -DCURL_HIDDEN_SYMBOLS -DDEBUGBUILD -fvisibility=hidden -g -O2 -pedantic -Wall -W -Wpointer-arith -Wwrite-strings -Wunused -Wshadow -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wundef -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wstrict-aliasing=3 -Wno-system-headers -MT libcurl_la-url.lo -MD -MP -MF .deps/libcurl_la-url.Tpo -c url.c -fPIC -DPIC -o libcurl_la-url.o
url.c: In function 'ConnectionExists':
url.c:3212: error: 'struct connectdata' has no member named 'ntlm'
make[2]: *** [libcurl_la-url.lo] Error 1

curl version: 7.42.0
Host setup: x86_64-unknown-linux-gnu
Install prefix: /usr/local
Compiler: gcc
SSL support: no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )
SSH support: no (--with-libssh2)
zlib support: no (--with-zlib)
GSS-API support: no (--with-gssapi)
TLS-SRP support: no (--enable-tls-srp)
resolver: default (--enable-ares / --enable-threaded-resolver)
IPv6 support: no (--enable-ipv6)
Unix sockets support: enabled
IDN support: no (--with-{libidn,winidn})
Build libcurl: Shared=no, Static=yes
Built-in manual: no (--enable-manual)
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: no
ca cert path: no
LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS support: no (--enable-ldaps)
RTSP support: no (--enable-rtsp)
RTMP support: no (--with-librtmp)
metalink support: no (--with-libmetalink)
HTTP2 support: disabled (--with-nghttp2)
Protocols: HTTP

Seems to have been triggered by the security fixes in this release not being under proper inclusion guards. Compiles properly just removing without-ssl.

RST_STREAM after Upgrade reported as success with response code 101.

Another issue similar to #166: I'm using the multi interface to fetch an HTTP url with CURLOPT_HTTP_VERSION set to CURL_HTTP_VERSION_2 (i.e. the cleartext Upgrade). The server responds to the Upgrade header by sending 101 Switching Protocols and its initial SETTINGS frame, then sends a RST_STREAM instead of an HTTP/2 response HEADERS frame. Libcurl reports this as a successful request with response code 101 instead of an error.

Versions: libcurl 7.41.0 and nghttp2 0.7.9 on OSX

Some logs:

.[D 150329 23:38:01 curl_httpclient:413] GET http://localhost:59922/high
[D 150329 23:38:01 curl_httpclient:457] Trying 127.0.0.1...
[D 150329 23:38:01 curl_httpclient:457] Connected to localhost (127.0.0.1) port 59922 (#0)
[D 150329 23:38:01 curl_httpclient:457] Using HTTP2
[D 150329 23:38:01 curl_httpclient:460] > GET /high HTTP/1.1
[D 150329 23:38:01 curl_httpclient:460] > User-Agent: Mozilla/5.0 (compatible; pycurl)
[D 150329 23:38:01 curl_httpclient:460] > Host: localhost:59922
[D 150329 23:38:01 curl_httpclient:460] > Accept: */*
[D 150329 23:38:01 curl_httpclient:460] > Accept-Encoding: gzip,deflate
[D 150329 23:38:01 curl_httpclient:460] > Connection: Upgrade, HTTP2-Settings
[D 150329 23:38:01 curl_httpclient:460] > Upgrade: h2c-14
[D 150329 23:38:01 curl_httpclient:460] > HTTP2-Settings: AAMAAABkAAQAAP__
[D 150329 23:38:01 curl_httpclient:460] > 
[D 150329 23:38:01 curl_httpclient:460] < HTTP/1.1 101 Switching Protocols
[D 150329 23:38:01 curl_httpclient:460] < Connection: Upgrade
[D 150329 23:38:01 curl_httpclient:460] < Upgrade: h2c-14
[D 150329 23:38:01 curl_httpclient:457] Received 101
[D 150329 23:38:01 connection:107] sending frame Frame(type=<FrameType.SETTINGS: 4>, flags=0, stream_id=0, data=b'')
[D 150329 23:38:01 curl_httpclient:457] http2_recv: 16384 bytes buffer
[D 150329 23:38:01 curl_httpclient:457] nread=9
[D 150329 23:38:01 curl_httpclient:457] on_frame_recv() was called with header 4
[D 150329 23:38:01 curl_httpclient:457] nghttp2_session_mem_recv() returns 9
[D 150329 23:38:01 curl_httpclient:457] before_frame_send() was called
[D 150329 23:38:01 curl_httpclient:457] on_frame_send() was called
[D 150329 23:38:01 curl_httpclient:457] before_frame_send() was called
[D 150329 23:38:01 curl_httpclient:457] on_frame_send() was called
[D 150329 23:38:01 connection:107] sending frame Frame(type=<FrameType.RST_STREAM: 3>, flags=0, stream_id=1, data=b'\x00\x00\x00\x00')
[D 150329 23:38:01 curl_httpclient:457] http2_recv: 16384 bytes buffer
[D 150329 23:38:01 curl_httpclient:457] nread=13
[D 150329 23:38:01 curl_httpclient:457] on_frame_recv() was called with header 3
[D 150329 23:38:01 curl_httpclient:457] on_stream_close() was called, error_code = 0
[D 150329 23:38:01 curl_httpclient:457] nghttp2_session_mem_recv() returns 13
[D 150329 23:38:01 curl_httpclient:457] Connection #0 to host localhost left intact
curl finished <pycurl.Curl object at 0x1091be448> None None

CONNECT over proxy to non-existing host fails

There a regression after Bug fix: http://curl.haxx.se/mail/lib-2015-01/0170.html
The issue reproduce steps is below:
1.enable local proxy
2 input an unresolvable server address in Client to connect
Result:
The process will be hanging until an error message is prompted

The code used some happy eyeballs logic even after CONNECT has been
sent to a proxy, while the happy eyeball phase is already (should be)
over by then.

This is solved by splitting the multi state into two separate states
introducing the new SENDPROTOCONNECT state.

We reported that timeout issue to you, and the issue disappeared after our own fix was used instead of yours. Looks it was hung in the select poll of curl, see the below stack with your patch:

WARNING: Stack unwind information not available. Following frames may be wrong.
001bdc4c 756d6a28 000006d5 001bdf48 00000000 ntdll32!NtDeviceIoControlFile+0x15
001bdccc 522b218e 000006d5 001bdf48 00000000 WS2_32!select+0x9f
001be064 522986a2 000006d4 ffffffff ffffffff libcurl!Curl_socket_check+0x47e [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\select.c @ 327]
001be134 5229816f 06bec540 00000000 06becc50 libcurl!Curl_proxyCONNECT+0x492 [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\http_proxy.c @ 233]
001be1c4 522929c1 06bec540 cccccccc 001be2e0 libcurl!Curl_proxy_connect+0x8f [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\http_proxy.c @ 74]
001be1d4 522a2d5c 06bec540 001be2bc 001be324 libcurl!Curl_http_connect+0x21 [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\http.c @ 1391]
001be2e0 522a4bd8 06bef708 000ae2a9 000182b8 libcurl!multi_runsingle+0x5ec [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\multi.c @ 1181]
001be324 522a4d62 06bef708 00000000 000006d4 libcurl!multi_socket+0x198 [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\multi.c @ 2270]
001be344 004d2518 06bef708 000006d4 00000000 libcurl!curl_multi_socket_action+0x22 [d:\build\win32\curl-7.41.0\curl-7.41.0\lib\multi.c @ 2416]

curl -z -o appears to be broken

I updated curl on ArchLinux this morning, and my script which uses curl -z and -o appears to be broken. It now replaces the file passed to -o with an empty file if the file I ask for is older than the file I pass to -z, as opposed to the old behavior, which left the file passed to -o in place.

TheArtOfHttpScripting: explain --next

The document completely misses out a discussion on how it merges repeated -d data uses and how you can use --next to separate multiple URLs and methods etc.

CyaSSL has changed their code-base to reflect company name wolfSSL

this is a .patch file (not supported by github for upload) so I have copied the source and posted here for issue submission.

diff -ru curl-7.40.0/CHANGES curl_with_wolfssl/CHANGES
--- curl-7.40.0/CHANGES 2015-01-08 01:18:18.000000000 -0700
+++ curl_with_wolfssl/CHANGES 2015-01-26 08:12:06.000000000 -0700
@@ -419,7 +419,7 @@

  • schannel: Prefer 'CURLcode result' for curl result codes

-- cyassl: Prefer 'CURLcode result' for curl result codes
+- wolfssl: Prefer 'CURLcode result' for curl result codes

  • tool_xattr: Use 'CURLcode result' for curl result codes

@@ -2880,7 +2880,7 @@

SSL: Remove SSLv3 from SSL default due to POODLE attack

    • Remove SSLv3 from SSL default in darwinssl, schannel, cyassl, nss,
    • Remove SSLv3 from SSL default in darwinssl, schannel, wolfssl, nss,
      openssl effectively making the default TLS 1.x. axTLS is not affected
      since it supports only TLS, and gnutls is not affected since it already
      defaults to TLS 1.x.
      @@ -4586,13 +4586,13 @@
      Dan Fandrich (31 Jul 2014)
  • axtls: define curlssl_random using axTLS's PRNG

-- cyassl: fix the test for ASN_NO_SIGNER_E
+- wolfssl: fix the test for ASN_NO_SIGNER_E

  • It's an enum so a macro test won't work. The CyaSSL changelog doesn't
  • It's an enum so a macro test won't work. The wolfSSL changelog doesn't
    say exactly when this error code was introduced, but it's likely
    to be 2.7.0.

-- cyassl: use RNG_GenerateBlock to generate a good random number
+- wolfssl: use wc_RNG_GenerateBlock to generate a good random number

  • opts: fixed some typos

@@ -4617,12 +4617,12 @@

curl_tlsinfo -> curl_tlssessioninfo

-- cyassl: use the default (weeker) random
+- wolfssl: use the default (weeker) random

I couldn't find any dedicated function in its API to get a "good" random
with.

-- cyassl: made it compile with version 2.0.6 again
+- wolfssl: made it compile with version 2.0.6 again

ASN_NO_SIGNER_E didn't exist back then!

@@ -4748,9 +4748,9 @@
basically when they are about http2 specific things.

Dan Fandrich (23 Jul 2014)
-- cyassl.c: return the correct error code on no CA cert
+- wolfssl.c: return the correct error code on no CA cert

  • CyaSSL 3.0.0 returns a unique error code if no CA cert is available,
  • wolfSSL 3.0.0 returns a unique error code if no CA cert is available,
    so translate that into CURLE_SSL_CACERT_BADFILE when peer verification
    is requested.

diff -ru curl-7.40.0/CMakeLists.txt curl_with_wolfssl/CMakeLists.txt
--- curl-7.40.0/CMakeLists.txt 2014-12-28 06:36:05.000000000 -0700
+++ curl_with_wolfssl/CMakeLists.txt 2015-01-21 10:16:56.000000000 -0700
@@ -1008,7 +1008,7 @@
add_subdirectory(tests)
endif()

-# TODO support GNUTLS, NSS, POLARSSL, AXTLS, CYASSL, WINSSL, DARWINSSL
+# TODO support GNUTLS, NSS, POLARSSL, AXTLS, WOLFSSL, WINSSL, DARWINSSL
if(USE_OPENSSL)
set(SSL_ENABLED 1)
endif()
diff -ru curl-7.40.0/Makefile.in curl_with_wolfssl/Makefile.in
--- curl-7.40.0/Makefile.in 2015-01-08 01:17:41.000000000 -0700
+++ curl_with_wolfssl/Makefile.in 2015-01-21 10:19:25.000000000 -0700
@@ -408,7 +408,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
@@ -582,11 +582,11 @@
pkgconfig_DATA = libcurl.pc
LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c
vtls/polarssl.c vtls/polarssl_threadlock.c vtls/axtls.c \

  • vtls/cyassl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c
  • vtls/wolfssl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c

LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h
vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h vtls/axtls.h \

  • vtls/cyassl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h
  • vtls/wolfssl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h

LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c
diff -ru curl-7.40.0/configure curl_with_wolfssl/configure
--- curl-7.40.0/configure 2014-12-28 06:36:13.000000000 -0700
+++ curl_with_wolfssl/configure 2015-01-26 08:54:12.000000000 -0700
@@ -918,7 +918,7 @@
USE_AXTLS
NSS_LIBS
USE_NSS
-USE_CYASSL
+USE_WOLFSSL
USE_POLARSSL
HAVE_GNUTLS_SRP
USE_GNUTLS_NETTLE
@@ -1147,7 +1147,7 @@
with_random
with_gnutls
with_polarssl
-with_cyassl
+with_wolfssl
with_nss
with_axtls
with_ca_bundle
@@ -1927,9 +1927,9 @@
--with-polarssl=PATH where to look for PolarSSL, PATH points to the
installation root
--without-polarssl disable PolarSSL detection

  • --with-cyassl=PATH where to look for CyaSSL, PATH points to the
  • --with-wolfssl=PATH where to look for wolfSSL, PATH points to the
    installation root (default: system lib default)
  • --without-cyassl disable CyaSSL detection
  • --without-wolfssl disable wolfSSL detection
    --with-nss=PATH where to look for NSS, PATH points to the
    installation root
    --without-nss disable NSS detection
    @@ -5551,7 +5551,7 @@
  • curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )"
  • curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,wolfssl,axtls,winssl,darwinssl} )"
    curl_ssh_msg="no (--with-libssh2)"
    curl_zlib_msg="no (--with-zlib)"
    curl_gss_msg="no (--with-gssapi)"
    @@ -21946,8 +21946,8 @@
  • { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yaSSL using OpenSSL compatibility mode" >&5
    -$as_echo_n "checking for yaSSL using OpenSSL compatibility mode... " >&6; }
  • { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSL using OpenSSL compatibility mode" >&5
    +$as_echo_n "checking for wolfSSL using OpenSSL compatibility mode... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    /* end confdefs.h. */

@@ -21957,10 +21957,10 @@
int main (void)
{

-#if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
+#if defined(WOLFSSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
int dummy = SSL_ERROR_NONE;
#else

  •    Not the yaSSL OpenSSL compatibility header.
    
  •    Not the wolfSSL OpenSSL compatibility header.
    

    endif

    ;
    @@ -21974,10 +21974,10 @@
    $as_echo "yes" >&6; }

    cat >>confdefs.h <<_ACEOF
    -#define USE_YASSLEMUL 1
    +#define USE_WOLFSSLEMUL 1
    _ACEOF

  •  curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
    
  •  curl_ssl_msg="enabled (OpenSSL emulation by wolfSSL)"
    

    else

@@ -23333,34 +23333,34 @@
fi

-OPT_CYASSL=no
+OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS

-# Check whether --with-cyassl was given.
-if test "${with_cyassl+set}" = set; then :

  • withval=$with_cyassl; OPT_CYASSL=$withval
    +# Check whether --with-wolfssl was given.
    +if test "${with_wolfssl+set}" = set; then :
  • withval=$with_wolfssl; OPT_WOLFSSL=$withval
    fi

if test "$curl_ssl_msg" = "$init_ssl_msg"; then

  • if test X"$OPT_CYASSL" != Xno; then

  • if test X"$OPT_WOLFSSL" != Xno; then

  • if test "$OPT_CYASSL" = "yes"; then

  •  OPT_CYASSL=""
    
  • if test "$OPT_WOLFSSL" = "yes"; then

  •  OPT_WOLFSSL=""
    

    fi

  • if test -z "$OPT_CYASSL" ; then

  • if test -z "$OPT_WOLFSSL" ; then

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5
    

    -$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; }
    -if ${ac_cv_lib_cyassl_CyaSSL_Init+:} false; then :

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_Init in -lwolfssl" >&5
    

    +$as_echo_n "checking for wolfSSL_Init in -lwolfssl... " >&6; }
    +if ${ac_cv_lib_wolfssl_wolfSSL_Init+:} false; then :
    $as_echo_n "(cached) " >&6
    else
    ac_check_lib_save_LIBS=$LIBS
    -LIBS="-lcyassl $LIBS"
    +LIBS="-lwolfssl $LIBS"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    /* end confdefs.h. */

@@ -23368,35 +23368,35 @@
#ifdef __cplusplus
extern "C"
#endif
-char CyaSSL_Init ();
+char wolfSSL_Init ();
int main (void)
{
-return CyaSSL_Init ();
+return wolfSSL_Init ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

  • ac_cv_lib_cyassl_CyaSSL_Init=yes
  • ac_cv_lib_wolfssl_wolfSSL_Init=yes
    else
  • ac_cv_lib_cyassl_CyaSSL_Init=no
  • ac_cv_lib_wolfssl_wolfSSL_Init=no
    fi
    rm -f core conftest.err conftest.$ac_objext
    conftest$ac_exeext conftest.$ac_ext
    LIBS=$ac_check_lib_save_LIBS
    fi
    -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cyassl_CyaSSL_Init" >&5
    -$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; }
    -if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = xyes; then :
    +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wolfssl_wolfSSL_Init" >&5
    +$as_echo "$ac_cv_lib_wolfssl_wolfSSL_Init" >&6; }
    +if test "x$ac_cv_lib_wolfssl_wolfSSL_Init" = xyes; then :

-$as_echo "#define USE_CYASSL 1" >>confdefs.h
+$as_echo "#define USE_WOLFSSL 1" >>confdefs.h

  •     USE_CYASSL=1
    
  •     USE_WOLFSSL=1
    
  •     CYASSL_ENABLED=1
    
  •     USE_CYASSL="yes"
    
  •     curl_ssl_msg="enabled (CyaSSL)"
    
  •     WOLFSSL_ENABLED=1
    
  •     USE_WOLFSSL="yes"
    
  •     curl_ssl_msg="enabled (wolfSSL)"
    

    fi

@@ -23405,25 +23405,25 @@
addld=""
addlib=""
addcflags=""

  • cyassllib=""

  • wolfssllib=""

  • if test "x$USE_CYASSL" != "xyes"; then

  •        addld=-L$OPT_CYASSL/lib$libsuff
    
  •  addcflags=-I$OPT_CYASSL/include
    
  •  cyassllib=$OPT_CYASSL/lib$libsuff
    
  • if test "x$USE_WOLFSSL" != "xyes"; then

  •        addld=-L$OPT_WOLFSSL/lib$libsuff
    
  •  addcflags=-I$OPT_WOLFSSL/include
    
  •  wolfssllib=$OPT_WOLFSSL/lib$libsuff
    

    LDFLAGS="$LDFLAGS $addld"
    if test "$addcflags" != "-I/usr/include"; then
    CPPFLAGS="$CPPFLAGS $addcflags"
    fi

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5
    

    -$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; }
    -if ${ac_cv_lib_cyassl_CyaSSL_Init+:} false; then :

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_Init in -lwolfssl" >&5
    

    +$as_echo_n "checking for wolfSSL_Init in -lwolfssl... " >&6; }
    +if ${ac_cv_lib_wolfssl_wolfSSL_Init+:} false; then :
    $as_echo_n "(cached) " >&6
    else
    ac_check_lib_save_LIBS=$LIBS
    -LIBS="-lcyassl $LIBS"
    +LIBS="-lwolfssl $LIBS"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
    /* end confdefs.h. */

@@ -23431,35 +23431,35 @@
#ifdef __cplusplus
extern "C"
#endif
-char CyaSSL_Init ();
+char wolfSSL_Init ();
int main (void)
{
-return CyaSSL_Init ();
+return wolfSSL_Init ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

  • ac_cv_lib_cyassl_CyaSSL_Init=yes
  • ac_cv_lib_wolfssl_wolfSSL_Init=yes
    else
  • ac_cv_lib_cyassl_CyaSSL_Init=no
  • ac_cv_lib_wolfssl_wolfSSL_Init=no
    fi
    rm -f core conftest.err conftest.$ac_objext
    conftest$ac_exeext conftest.$ac_ext
    LIBS=$ac_check_lib_save_LIBS
    fi
    -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cyassl_CyaSSL_Init" >&5
    -$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; }
    -if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = xyes; then :
    +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_wolfssl_wolfSSL_Init" >&5
    +$as_echo "$ac_cv_lib_wolfssl_wolfSSL_Init" >&6; }
    +if test "x$ac_cv_lib_wolfssl_wolfSSL_Init" = xyes; then :

-$as_echo "#define USE_CYASSL 1" >>confdefs.h
+$as_echo "#define USE_WOLFSSL 1" >>confdefs.h

  •   USE_CYASSL=1
    
  •   USE_WOLFSSL=1
    
  •   CYASSL_ENABLED=1
    
  •   USE_CYASSL="yes"
    
  •   curl_ssl_msg="enabled (CyaSSL)"
    
  •   WOLFSSL_ENABLED=1
    
  •   USE_WOLFSSL="yes"
    
  •   curl_ssl_msg="enabled (wolfSSL)"
    

    else

@@ -23470,9 +23470,9 @@

 fi
  • if test "x$USE_CYASSL" = "xyes"; then

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: detected CyaSSL" >&5
    

    -$as_echo "$as_me: detected CyaSSL" >&6;}

  • if test "x$USE_WOLFSSL" = "xyes"; then

  •  { $as_echo "$as_me:${as_lineno-$LINENO}: detected wolfSSL" >&5
    

    +$as_echo "$as_me: detected wolfSSL" >&6;}

         # The cast to long int works around a bug in the HP C Compiler
    

    version HP92453-01 B.11.11.23709.GP, which incorrectly rejects

    @@ -23508,12 +23508,12 @@

  •        for ac_header in cyassl/error-ssl.h
    
  •        for ac_header in wolfssl/error-ssl.h
    

    do :

  • ac_fn_c_check_header_mongrel "$LINENO" "cyassl/error-ssl.h" "ac_cv_header_cyassl_error_ssl_h" "$ac_includes_default"
    -if test "x$ac_cv_header_cyassl_error_ssl_h" = xyes; then :

  • ac_fn_c_check_header_mongrel "$LINENO" "wolfssl/error-ssl.h" "ac_cv_header_wolfssl_error_ssl_h" "$ac_includes_default"
    +if test "x$ac_cv_header_wolfssl_error_ssl_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
    -#define HAVE_CYASSL_ERROR_SSL_H 1
    +#define HAVE_WOLFSSL_ERROR_SSL_H 1
    _ACEOF

fi
@@ -23521,14 +23521,14 @@
done

  •  LIBS="-lcyassl -lm $LIBS"
    
  •  LIBS="-lwolfssl -lm $LIBS"
    
  •  if test -n "$cyassllib"; then
    
  •  if test -n "$wolfssllib"; then
                                     if test "x$cross_compiling" != "xyes"; then
    
  •      LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
    
  •      LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$wolfssllib"
       export LD_LIBRARY_PATH
    
  •      { $as_echo "$as_me:${as_lineno-$LINENO}: Added $cyassllib to LD_LIBRARY_PATH" >&5
    
    -$as_echo "$as_me: Added $cyassllib to LD_LIBRARY_PATH" >&6;}
  •      { $as_echo "$as_me:${as_lineno-$LINENO}: Added $wolfssllib to LD_LIBRARY_PATH" >&5
    
    +$as_echo "$as_me: Added $wolfssllib to LD_LIBRARY_PATH" >&6;}
    fi
    fi

@@ -23889,11 +23889,11 @@
fi
fi

-if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
+if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$WOLFSSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5
$as_echo "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;}

  • { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&5
    -$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&2;}
  • { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-wolfssl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&5
    +$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-wolfssl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&2;}
    else

    SSL is enabled, genericly

@@ -24902,8 +24902,8 @@
versioned_symbols_flavour="NSS_"
elif test "x$POLARSSL_ENABLED" = "x1"; then
versioned_symbols_flavour="POLARSSL_"

  •    elif test "x$CYASSL_ENABLED" = "x1"; then
    
  •      versioned_symbols_flavour="CYASSL_"
    
  •    elif test "x$WOLFSSL_ENABLED" = "x1"; then
    
  •      versioned_symbols_flavour="WOLFSSL_"
     elif test "x$AXTLS_ENABLED" = "x1"; then
       versioned_symbols_flavour="AXTLS_"
     elif test "x$WINSSL_ENABLED" = "x1"; then
    

    diff -ru curl-7.40.0/configure.ac curl_with_wolfssl/configure.ac
    --- curl-7.40.0/configure.ac 2014-12-28 06:36:05.000000000 -0700
    +++ curl_with_wolfssl/configure.ac 2015-01-26 08:53:07.000000000 -0700
    @@ -147,7 +147,7 @@

    dnl
    dnl initialize all the info variables

  • curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )"

  • curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,wolfssl,axtls,winssl,darwinssl} )"
    curl_ssh_msg="no (--with-libssh2)"
    curl_zlib_msg="no (--with-zlib)"
    curl_gss_msg="no (--with-gssapi)"
    @@ -1593,22 +1593,22 @@
    dnl OpenSSL emulation layer. We still leave everything else believing
    dnl and acting like OpenSSL.

  • AC_MSG_CHECKING([for yaSSL using OpenSSL compatibility mode])

  • AC_MSG_CHECKING([for wolfSSL using OpenSSL compatibility mode])
    AC_COMPILE_IFELSE([
    AC_LANG_PROGRAM([[
    #include <openssl/ssl.h>
    ]],[[
    -#if defined(YASSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
    +#if defined(WOLFSSL_VERSION) && defined(OPENSSL_VERSION_NUMBER)
    int dummy = SSL_ERROR_NONE;
    #else

  •    Not the yaSSL OpenSSL compatibility header.
    
  •    Not the wolfSSL OpenSSL compatibility header.
    

    #endif
    ]])
    ],[
    AC_MSG_RESULT([yes])

  •  AC_DEFINE_UNQUOTED(USE_YASSLEMUL, 1,
    
  •    [Define to 1 if using yaSSL in OpenSSL compatibility mode.])
    
  •  curl_ssl_msg="enabled (OpenSSL emulation by yaSSL)"
    
  •  AC_DEFINE_UNQUOTED(USE_WOLFSSLEMUL, 1,
    
  •    [Define to 1 if using wolfSSL in OpenSSL compatibility mode.])
    
  •  curl_ssl_msg="enabled (OpenSSL emulation by wolfSSL)"
    

    ],[
    AC_MSG_RESULT([no])
    ])
    @@ -1922,64 +1922,64 @@
    fi

    dnl ----------------------------------------------------
    -dnl check for CyaSSL
    +dnl check for wolfSSL
    dnl ----------------------------------------------------

-dnl Default to compiler & linker defaults for CyaSSL files & libraries.
-OPT_CYASSL=no
+dnl Default to compiler & linker defaults for wolfSSL files & libraries.
+OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS
-AC_ARG_WITH(cyassl,dnl
-AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
-AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),

  • OPT_CYASSL=$withval)
    +AC_ARG_WITH(wolfssl,dnl
    +AC_HELP_STRING([--with-wolfssl=PATH],[where to look for wolfSSL, PATH points to the installation root (default: system lib default)])
    +AC_HELP_STRING([--without-wolfssl], [disable wolfSSL detection]),
  • OPT_WOLFSSL=$withval)

if test "$curl_ssl_msg" = "$init_ssl_msg"; then

  • if test X"$OPT_CYASSL" != Xno; then

  • if test X"$OPT_WOLFSSL" != Xno; then

  • if test "$OPT_CYASSL" = "yes"; then

  •  OPT_CYASSL=""
    
  • if test "$OPT_WOLFSSL" = "yes"; then

  •  OPT_WOLFSSL=""
    

    fi

  • if test -z "$OPT_CYASSL" ; then

  • if test -z "$OPT_WOLFSSL" ; then
    dnl check for lib in system default first

  •  AC_CHECK_LIB(cyassl, CyaSSL_Init,
    
  •  dnl libcyassl found, set the variable
    
  •  AC_CHECK_LIB(wolfssl, wolfSSL_Init,
    
  •  dnl libwolfssl found, set the variable
    [
    
  •     AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
    
  •     AC_SUBST(USE_CYASSL, [1])
    
  •     CYASSL_ENABLED=1
    
  •     USE_CYASSL="yes"
    
  •     curl_ssl_msg="enabled (CyaSSL)"
    
  •     AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
    
  •     AC_SUBST(USE_WOLFSSL, [1])
    
  •     WOLFSSL_ENABLED=1
    
  •     USE_WOLFSSL="yes"
    
  •     curl_ssl_msg="enabled (wolfSSL)"
     ])
    

    fi

    addld=""
    addlib=""
    addcflags=""

  • cyassllib=""

  • wolfssllib=""

  • if test "x$USE_CYASSL" != "xyes"; then

  • if test "x$USE_WOLFSSL" != "xyes"; then
    dnl add the path and test again

  •  addld=-L$OPT_CYASSL/lib$libsuff
    
  •  addcflags=-I$OPT_CYASSL/include
    
  •  cyassllib=$OPT_CYASSL/lib$libsuff
    
  •  addld=-L$OPT_WOLFSSL/lib$libsuff
    
  •  addcflags=-I$OPT_WOLFSSL/include
    
  •  wolfssllib=$OPT_WOLFSSL/lib$libsuff
    

    LDFLAGS="$LDFLAGS $addld"
    if test "$addcflags" != "-I/usr/include"; then
    CPPFLAGS="$CPPFLAGS $addcflags"
    fi

  •  AC_CHECK_LIB(cyassl, CyaSSL_Init,
    
  •  AC_CHECK_LIB(wolfssl, wolfSSL_Init,
    [
    
  •   AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
    
  •   AC_SUBST(USE_CYASSL, [1])
    
  •   CYASSL_ENABLED=1
    
  •   USE_CYASSL="yes"
    
  •   curl_ssl_msg="enabled (CyaSSL)"
    
  •   AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
    
  •   AC_SUBST(USE_WOLFSSL, [1])
    
  •   WOLFSSL_ENABLED=1
    
  •   USE_WOLFSSL="yes"
    
  •   curl_ssl_msg="enabled (wolfSSL)"
    ],
    [
      CPPFLAGS=$_cppflags
    

    @@ -1987,32 +1987,32 @@
    ])
    fi

  • if test "x$USE_CYASSL" = "xyes"; then

  •  AC_MSG_NOTICE([detected CyaSSL])
    
  • if test "x$USE_WOLFSSL" = "xyes"; then

  •  AC_MSG_NOTICE([detected wolfSSL])
    
  •  dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
    
  •  dnl wolfssl/wolfcrypt/types.h needs SIZEOF_LONG_LONG defined!
    

    AC_CHECK_SIZEOF(long long)

    dnl Versions since at least 2.9.4 renamed error.h to error-ssl.h

  •  AC_CHECK_HEADERS(cyassl/error-ssl.h)
    
  •  AC_CHECK_HEADERS(wolfssl/error-ssl.h)
    
  •  LIBS="-lcyassl -lm $LIBS"
    
  •  LIBS="-lwolfssl -lm $LIBS"
    
  •  if test -n "$cyassllib"; then
    
  •  if test -n "$wolfssllib"; then
     dnl when shared libs were found in a path that the run-time
     dnl linker doesn't search through, we need to add it to
     dnl LD_LIBRARY_PATH to prevent further configure tests to fail
     dnl due to this
     if test "x$cross_compiling" != "xyes"; then
    
  •      LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$cyassllib"
    
  •      LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$wolfssllib"
       export LD_LIBRARY_PATH
    
  •      AC_MSG_NOTICE([Added $cyassllib to LD_LIBRARY_PATH])
    
  •      AC_MSG_NOTICE([Added $wolfssllib to LD_LIBRARY_PATH])
     fi
    

    fi

    fi

  • fi dnl CyaSSL not disabled

  • fi dnl wolfSSL not disabled

fi

@@ -2174,9 +2174,9 @@
fi
fi

-if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
+if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$WOLFSSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])

  • AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
  • AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-wolfssl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
    else

    SSL is enabled, genericly

AC_SUBST(SSL_ENABLED)
@@ -2467,8 +2467,8 @@
versioned_symbols_flavour="NSS_"
elif test "x$POLARSSL_ENABLED" = "x1"; then
versioned_symbols_flavour="POLARSSL_"

  •    elif test "x$CYASSL_ENABLED" = "x1"; then
    
  •      versioned_symbols_flavour="CYASSL_"
    
  •    elif test "x$WOLFSSL_ENABLED" = "x1"; then
    
  •      versioned_symbols_flavour="WOLFSSL_"
     elif test "x$AXTLS_ENABLED" = "x1"; then
       versioned_symbols_flavour="AXTLS_"
     elif test "x$WINSSL_ENABLED" = "x1"; then
    

    diff -ru curl-7.40.0/docs/INSTALL curl_with_wolfssl/docs/INSTALL
    --- curl-7.40.0/docs/INSTALL 2014-12-28 06:36:05.000000000 -0700
    +++ curl_with_wolfssl/docs/INSTALL 2015-01-21 10:25:40.000000000 -0700
    @@ -127,8 +127,8 @@
    To build with GnuTLS for SSL/TLS, use both --without-ssl and
    --with-gnutls.

  • To build with Cyassl for SSL/TLS, use both --without-ssl and
    
  • --with-cyassl.
    
  • To build with wolfSSL for SSL/TLS, use both --without-ssl and
    
  • --with-wolfssl.
    

    To build with NSS for SSL/TLS, use both --without-ssl and --with-nss.

diff -ru curl-7.40.0/docs/INTERNALS curl_with_wolfssl/docs/INTERNALS
--- curl-7.40.0/docs/INTERNALS 2014-12-02 18:16:27.000000000 -0700
+++ curl_with_wolfssl/docs/INTERNALS 2015-01-21 10:01:23.000000000 -0700
@@ -40,7 +40,7 @@
libssh2 0.16
c-ares 1.6.0
libidn 0.4.1

  • cyassl 2.0.0
  • wolfssl 2.0.0
    openldap 2.0
    MIT Kerberos 1.2.4
    GSKit V5R3M0
    diff -ru curl-7.40.0/docs/Makefile.in curl_with_wolfssl/docs/Makefile.in
    --- curl-7.40.0/docs/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/docs/Makefile.in 2015-01-21 10:17:59.000000000 -0700
    @@ -355,7 +355,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/docs/examples/Makefile.in curl_with_wolfssl/docs/examples/Makefile.in
    --- curl-7.40.0/docs/examples/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/docs/examples/Makefile.in 2015-01-21 10:17:11.000000000 -0700
    @@ -873,7 +873,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/docs/libcurl/Makefile.in curl_with_wolfssl/docs/libcurl/Makefile.in
    --- curl-7.40.0/docs/libcurl/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/docs/libcurl/Makefile.in 2015-01-21 10:17:24.000000000 -0700
    @@ -357,7 +357,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/docs/libcurl/opts/Makefile.in curl_with_wolfssl/docs/libcurl/opts/Makefile.in
    --- curl-7.40.0/docs/libcurl/opts/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/docs/libcurl/opts/Makefile.in 2015-01-21 10:24:35.000000000 -0700
    @@ -295,7 +295,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/docs/libcurl/symbols-in-versions curl_with_wolfssl/docs/libcurl/symbols-in-versions
    --- curl-7.40.0/docs/libcurl/symbols-in-versions 2014-12-03 18:52:19.000000000 -0700
    +++ curl_with_wolfssl/docs/libcurl/symbols-in-versions 2015-01-21 10:17:47.000000000 -0700
    @@ -610,7 +610,7 @@
    CURLSSH_AUTH_PASSWORD 7.16.1
    CURLSSH_AUTH_PUBLICKEY 7.16.1
    CURLSSLBACKEND_AXTLS 7.38.0
    -CURLSSLBACKEND_CYASSL 7.34.0
    +CURLSSLBACKEND_WOLFSSL 7.34.0
    CURLSSLBACKEND_DARWINSSL 7.34.0
    CURLSSLBACKEND_GNUTLS 7.34.0
    CURLSSLBACKEND_GSKIT 7.34.0
    diff -ru curl-7.40.0/include/Makefile.in curl_with_wolfssl/include/Makefile.in
    --- curl-7.40.0/include/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/include/Makefile.in 2015-01-21 10:18:44.000000000 -0700
    @@ -303,7 +303,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/include/curl/Makefile.in curl_with_wolfssl/include/curl/Makefile.in
    --- curl-7.40.0/include/curl/Makefile.in 2014-12-28 06:36:13.000000000 -0700
    +++ curl_with_wolfssl/include/curl/Makefile.in 2015-01-21 10:18:30.000000000 -0700
    @@ -290,7 +290,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/include/curl/curl.h curl_with_wolfssl/include/curl/curl.h
    --- curl-7.40.0/include/curl/curl.h 2014-12-28 06:36:05.000000000 -0700
    +++ curl_with_wolfssl/include/curl/curl.h 2015-01-21 10:18:15.000000000 -0700
    @@ -2042,7 +2042,7 @@
    CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */
    CURLSSLBACKEND_GSKIT = 5,
    CURLSSLBACKEND_POLARSSL = 6,
  • CURLSSLBACKEND_CYASSL = 7,
  • CURLSSLBACKEND_WOLFSSL = 7,
    CURLSSLBACKEND_SCHANNEL = 8,
    CURLSSLBACKEND_DARWINSSL = 9,
    CURLSSLBACKEND_AXTLS = 10
    diff -ru curl-7.40.0/lib/Makefile.in curl_with_wolfssl/lib/Makefile.in
    --- curl-7.40.0/lib/Makefile.in 2015-01-07 14:55:28.000000000 -0700
    +++ curl_with_wolfssl/lib/Makefile.in 2015-01-21 10:13:17.000000000 -0700
    @@ -222,7 +222,7 @@
    vtls/libcurl_la-vtls.lo vtls/libcurl_la-nss.lo
    vtls/libcurl_la-polarssl.lo
    vtls/libcurl_la-polarssl_threadlock.lo \
  • vtls/libcurl_la-axtls.lo vtls/libcurl_la-cyassl.lo \
  • vtls/libcurl_la-axtls.lo vtls/libcurl_la-wolfssl.lo
    vtls/libcurl_la-curl_schannel.lo
    vtls/libcurl_la-curl_darwinssl.lo vtls/libcurl_la-gskit.lo
    am__objects_3 = $(am__objects_1) $(am__objects_2)
    @@ -292,7 +292,7 @@
    vtls/libcurlu_la-vtls.lo vtls/libcurlu_la-nss.lo
    vtls/libcurlu_la-polarssl.lo
    vtls/libcurlu_la-polarssl_threadlock.lo \
  • vtls/libcurlu_la-axtls.lo vtls/libcurlu_la-cyassl.lo \
  • vtls/libcurlu_la-axtls.lo vtls/libcurlu_la-wolfssl.lo
    vtls/libcurlu_la-curl_schannel.lo
    vtls/libcurlu_la-curl_darwinssl.lo vtls/libcurlu_la-gskit.lo
    am__objects_8 = $(am__objects_6) $(am__objects_7)
    @@ -483,7 +483,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    @@ -649,11 +649,11 @@
    libcurlu_la_CFLAGS = $(AM_CFLAGS)
    LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c
    vtls/polarssl.c vtls/polarssl_threadlock.c vtls/axtls.c \
  • vtls/cyassl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c
  • vtls/wolfssl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c

LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h
vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h vtls/axtls.h \

  • vtls/cyassl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h
  • vtls/wolfssl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h

LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c
@@ -818,7 +818,7 @@
vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurl_la-axtls.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
-vtls/libcurl_la-cyassl.lo: vtls/$(am__dirstamp)
+vtls/libcurl_la-wolfssl.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurl_la-curl_schannel.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
@@ -843,7 +843,7 @@
vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurlu_la-axtls.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
-vtls/libcurlu_la-cyassl.lo: vtls/$(am__dirstamp)
+vtls/libcurlu_la-wolfssl.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
vtls/libcurlu_la-curl_schannel.lo: vtls/$(am__dirstamp)
vtls/$(DEPDIR)/$(am__dirstamp)
@@ -1074,7 +1074,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-axtls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-curl_darwinssl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-curl_schannel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-cyassl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gskit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-gtls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurl_la-nss.Plo@am__quote@
@@ -1085,7 +1085,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-axtls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-curl_darwinssl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-curl_schannel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-cyassl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-gskit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-gtls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@vtls/$(DEPDIR)/libcurlu_la-nss.Plo@am__quote@
@@ -1895,12 +1895,12 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-axtls.lo test -f 'vtls/axtls.c' || echo '$(srcdir)/'vtls/axtls.c

-vtls/libcurl_la-cyassl.lo: vtls/cyassl.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-cyassl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-cyassl.Tpo -c -o vtls/libcurl_la-cyassl.lo test -f 'vtls/cyassl.c' || echo '$(srcdir)/'vtls/cyassl.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-cyassl.Tpo vtls/$(DEPDIR)/libcurl_la-cyassl.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/cyassl.c' object='vtls/libcurl_la-cyassl.lo' libtool=yes @AMDEPBACKSLASH@
+vtls/libcurl_la-wolfssl.lo: vtls/wolfssl.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo -c -o vtls/libcurl_la-wolfssl.lo test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'vtls/wolfssl.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurl_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/wolfssl.c' object='vtls/libcurl_la-wolfssl.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-cyassl.lo test -f 'vtls/cyassl.c' || echo '$(srcdir)/'vtls/cyassl.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurl_la-wolfssl.lo test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'vtls/wolfssl.c

vtls/libcurl_la-curl_schannel.lo: vtls/curl_schannel.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurl_la_CPPFLAGS) $(CPPFLAGS) $(libcurl_la_CFLAGS) $(CFLAGS) -MT vtls/libcurl_la-curl_schannel.lo -MD -MP -MF vtls/$(DEPDIR)/libcurl_la-curl_schannel.Tpo -c -o vtls/libcurl_la-curl_schannel.lo test -f 'vtls/curl_schannel.c' || echo '$(srcdir)/'vtls/curl_schannel.c
@@ -2700,12 +2700,12 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-axtls.lo test -f 'vtls/axtls.c' || echo '$(srcdir)/'vtls/axtls.c

-vtls/libcurlu_la-cyassl.lo: vtls/cyassl.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-cyassl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-cyassl.Tpo -c -o vtls/libcurlu_la-cyassl.lo test -f 'vtls/cyassl.c' || echo '$(srcdir)/'vtls/cyassl.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-cyassl.Tpo vtls/$(DEPDIR)/libcurlu_la-cyassl.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/cyassl.c' object='vtls/libcurlu_la-cyassl.lo' libtool=yes @AMDEPBACKSLASH@
+vtls/libcurlu_la-wolfssl.lo: vtls/wolfssl.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-wolfssl.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo -c -o vtls/libcurlu_la-wolfssl.lo test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'vtls/wolfssl.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vtls/$(DEPDIR)/libcurlu_la-wolfssl.Tpo vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vtls/wolfssl.c' object='vtls/libcurlu_la-wolfssl.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-cyassl.lo test -f 'vtls/cyassl.c' || echo '$(srcdir)/'vtls/cyassl.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -c -o vtls/libcurlu_la-wolfssl.lo test -f 'vtls/wolfssl.c' || echo '$(srcdir)/'vtls/wolfssl.c

vtls/libcurlu_la-curl_schannel.lo: vtls/curl_schannel.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurlu_la_CPPFLAGS) $(CPPFLAGS) $(libcurlu_la_CFLAGS) $(CFLAGS) -MT vtls/libcurlu_la-curl_schannel.lo -MD -MP -MF vtls/$(DEPDIR)/libcurlu_la-curl_schannel.Tpo -c -o vtls/libcurlu_la-curl_schannel.lo test -f 'vtls/curl_schannel.c' || echo '$(srcdir)/'vtls/curl_schannel.c
diff -ru curl-7.40.0/lib/Makefile.inc curl_with_wolfssl/lib/Makefile.inc
--- curl-7.40.0/lib/Makefile.inc 2015-01-07 14:53:57.000000000 -0700
+++ curl_with_wolfssl/lib/Makefile.inc 2015-01-21 10:13:58.000000000 -0700
@@ -22,11 +22,11 @@

LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c
vtls/polarssl.c vtls/polarssl_threadlock.c vtls/axtls.c \

  • vtls/cyassl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c
  • vtls/wolfssl.c vtls/curl_schannel.c vtls/curl_darwinssl.c vtls/gskit.c

LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h
vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h vtls/axtls.h \

  • vtls/cyassl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h
  • vtls/wolfssl.h vtls/curl_schannel.h vtls/curl_darwinssl.h vtls/gskit.h

LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c
diff -ru curl-7.40.0/lib/Makefile.vc10 curl_with_wolfssl/lib/Makefile.vc10
--- curl-7.40.0/lib/Makefile.vc10 2015-01-08 01:18:18.000000000 -0700
+++ curl_with_wolfssl/lib/Makefile.vc10 2015-01-21 10:14:26.000000000 -0700
@@ -552,7 +552,7 @@
$(DIROBJ)\curl_schannel.obj
$(DIROBJ)\curl_sspi.obj
$(DIROBJ)\curl_threads.obj \

  • $(DIROBJ)\cyassl.obj \
  • $(DIROBJ)\wolfssl.obj
    $(DIROBJ)\dict.obj
    $(DIROBJ)\dotdot.obj
    $(DIROBJ)\easy.obj
    diff -ru curl-7.40.0/lib/Makefile.vc6 curl_with_wolfssl/lib/Makefile.vc6
    --- curl-7.40.0/lib/Makefile.vc6 2015-01-07 14:53:57.000000000 -0700
    +++ curl_with_wolfssl/lib/Makefile.vc6 2015-01-21 10:15:08.000000000 -0700
    @@ -552,7 +552,7 @@
    $(DIROBJ)\curl_schannel.obj
    $(DIROBJ)\curl_sspi.obj
    $(DIROBJ)\curl_threads.obj \
  • $(DIROBJ)\cyassl.obj \
  • $(DIROBJ)\wolfssl.obj
    $(DIROBJ)\dict.obj
    $(DIROBJ)\dotdot.obj
    $(DIROBJ)\easy.obj
    diff -ru curl-7.40.0/lib/Makefile.vc8 curl_with_wolfssl/lib/Makefile.vc8
    --- curl-7.40.0/lib/Makefile.vc8 2015-01-08 01:18:18.000000000 -0700
    +++ curl_with_wolfssl/lib/Makefile.vc8 2015-01-21 10:15:44.000000000 -0700
    @@ -552,7 +552,7 @@
    $(DIROBJ)\curl_schannel.obj
    $(DIROBJ)\curl_sspi.obj
    $(DIROBJ)\curl_threads.obj \
  • $(DIROBJ)\cyassl.obj \
  • $(DIROBJ)\wolfssl.obj
    $(DIROBJ)\dict.obj
    $(DIROBJ)\dotdot.obj
    $(DIROBJ)\easy.obj
    diff -ru curl-7.40.0/lib/Makefile.vc9 curl_with_wolfssl/lib/Makefile.vc9
    --- curl-7.40.0/lib/Makefile.vc9 2015-01-08 01:18:18.000000000 -0700
    +++ curl_with_wolfssl/lib/Makefile.vc9 2015-01-21 10:16:13.000000000 -0700
    @@ -552,7 +552,7 @@
    $(DIROBJ)\curl_schannel.obj
    $(DIROBJ)\curl_sspi.obj
    $(DIROBJ)\curl_threads.obj \
  • $(DIROBJ)\cyassl.obj \
  • $(DIROBJ)\wolfssl.obj
    $(DIROBJ)\dict.obj
    $(DIROBJ)\dotdot.obj
    $(DIROBJ)\easy.obj
    diff -ru curl-7.40.0/lib/config-symbian.h curl_with_wolfssl/lib/config-symbian.h
    --- curl-7.40.0/lib/config-symbian.h 2014-11-04 05:51:16.000000000 -0700
    +++ curl_with_wolfssl/lib/config-symbian.h 2015-01-26 08:51:03.000000000 -0700
    @@ -752,8 +752,8 @@
    /* to enable SSPI support /
    /
    #undef USE_WINDOWS_SSPI */

-/* Define to 1 if using yaSSL in OpenSSL compatibility mode. /
-/
#undef USE_YASSLEMUL /
+/
Define to 1 if using wolfSSL in OpenSSL compatibility mode. /
+/
#undef USE_WOLFSSLEMUL */

/* Version number of package /
/
#define VERSION "7.18.2-CVS"/
diff -ru curl-7.40.0/lib/config-vxworks.h curl_with_wolfssl/lib/config-vxworks.h
--- curl-7.40.0/lib/config-vxworks.h 2014-11-04 05:51:16.000000000 -0700
+++ curl_with_wolfssl/lib/config-vxworks.h 2015-01-26 08:51:27.000000000 -0700
@@ -893,8 +893,8 @@
/
to enable SSPI support /
/
#undef USE_WINDOWS_SSPI */

-/* Define to 1 if using yaSSL in OpenSSL compatibility mode. /
-/
#undef USE_YASSLEMUL /
+/
Define to 1 if using wolfSSL in OpenSSL compatibility mode. /
+/
#undef USE_WOLFSSLEMUL */

/* Define to avoid automatic inclusion of winsock.h /
/
#undef WIN32_LEAN_AND_MEAN /
diff -ru curl-7.40.0/lib/curl_config.h.cmake curl_with_wolfssl/lib/curl_config.h.cmake
--- curl-7.40.0/lib/curl_config.h.cmake 2014-12-28 06:36:05.000000000 -0700
+++ curl_with_wolfssl/lib/curl_config.h.cmake 2015-01-26 08:51:54.000000000 -0700
@@ -922,8 +922,8 @@
/
to enable SSPI support */
#cmakedefine USE_WINDOWS_SSPI 1

-/* Define to 1 if using yaSSL in OpenSSL compatibility mode. /
-#cmakedefine USE_YASSLEMUL 1
+/
Define to 1 if using wolfSSL in OpenSSL compatibility mode. */
+#cmakedefine USE_WOLFSSLEMUL 1

/* Version number of package /
#cmakedefine VERSION ${VERSION}
diff -ru curl-7.40.0/lib/curl_config.h.in curl_with_wolfssl/lib/curl_config.h.in
--- curl-7.40.0/lib/curl_config.h.in 2014-12-28 06:36:32.000000000 -0700
+++ curl_with_wolfssl/lib/curl_config.h.in 2015-01-26 08:52:24.000000000 -0700
@@ -141,8 +141,8 @@
/
Define to 1 if you have the <crypto.h> header file. */
#undef HAVE_CRYPTO_H

-/* Define to 1 if you have the <cyassl/error-ssl.h> header file. /
-#undef HAVE_CYASSL_ERROR_SSL_H
+/
Define to 1 if you have the <wolfssl/error-ssl.h> header file. */
+#undef HAVE_WOLFSSL_ERROR_SSL_H

/* Define to 1 if you have the <dlfcn.h> header file. /
#undef HAVE_DLFCN_H
@@ -903,8 +903,8 @@
/
if axTLS is enabled */
#undef USE_AXTLS

-/* if CyaSSL is enabled /
-#undef USE_CYASSL
+/
if wolfSSL is enabled */
+#undef USE_WOLFSSL

/* to enable iOS/Mac OS X native SSL/TLS support /
#undef USE_DARWINSSL
@@ -971,8 +971,8 @@
/
to enable SSPI support */
#undef USE_WINDOWS_SSPI

-/* Define to 1 if using yaSSL in OpenSSL compatibility mode. /
-#undef USE_YASSLEMUL
+/
Define to 1 if using wolfSSL in OpenSSL compatibility mode. */
+#undef USE_WOLFSSLEMUL

/* Version number of package */
#undef VERSION
diff -ru curl-7.40.0/lib/curl_setup.h curl_with_wolfssl/lib/curl_setup.h
--- curl-7.40.0/lib/curl_setup.h 2014-12-08 07:45:53.000000000 -0700
+++ curl_with_wolfssl/lib/curl_setup.h 2015-01-21 10:19:13.000000000 -0700
@@ -603,7 +603,7 @@

#if defined(USE_GNUTLS) || defined(USE_SSLEAY) || defined(USE_NSS) ||
defined(USE_POLARSSL) || defined(USE_AXTLS) || \

  • defined(USE_CYASSL) || defined(USE_SCHANNEL) || \
  • defined(USE_WOLFSSL) || defined(USE_SCHANNEL) ||
    defined(USE_DARWINSSL) || defined(USE_GSKIT)
    #define USE_SSL /* SSL support has been enabled /
    #endif
    diff -ru curl-7.40.0/lib/urldata.h curl_with_wolfssl/lib/urldata.h
    --- curl-7.40.0/lib/urldata.h 2014-12-28 06:36:05.000000000 -0700
    +++ curl_with_wolfssl/lib/urldata.h 2015-01-21 10:03:43.000000000 -0700
    @@ -130,10 +130,10 @@
    #endif /
    POLARSSL_VERSION_NUMBER<0x01010000 /
    #endif /
    USE_POLARSSL */

-#ifdef USE_CYASSL
-#undef OCSP_REQUEST /* avoid cyassl/openssl/ssl.h clash with wincrypt.h /
-#undef OCSP_RESPONSE /
avoid cyassl/openssl/ssl.h clash with wincrypt.h /
-#include <cyassl/openssl/ssl.h>
+#ifdef USE_WOLFSSL
+#undef OCSP_REQUEST /
avoid wolfssl/openssl/ssl.h clash with wincrypt.h /
+#undef OCSP_RESPONSE /
avoid wolfssl/openssl/ssl.h clash with wincrypt.h */
+#include <wolfssl/openssl/ssl.h>
#endif

#ifdef USE_NSS
@@ -318,11 +318,11 @@
rsa_context rsa;
ssl_connect_state connecting_state;
#endif /* USE_POLARSSL /
-#ifdef USE_CYASSL
+#ifdef USE_WOLFSSL
SSL_CTX
ctx;
SSL* handle;
ssl_connect_state connecting_state;
-#endif /* USE_CYASSL /
+#endif /
USE_WOLFSSL */
#ifdef USE_NSS
PRFileDesc *handle;
char *client_nickname;
diff -ru curl-7.40.0/lib/vtls/curl_schannel.c curl_with_wolfssl/lib/vtls/curl_schannel.c
--- curl-7.40.0/lib/vtls/curl_schannel.c 2014-12-28 06:36:05.000000000 -0700
+++ curl_with_wolfssl/lib/vtls/curl_schannel.c 2015-01-21 10:04:32.000000000 -0700
@@ -32,7 +32,7 @@

  • Based upon the PolarSSL implementation in polarssl.c and polarssl.h:
  • Copyright (C) 2010, 2011, Hoi-Ho Chan, [email protected]
  • * Based upon the CyaSSL implementation in cyassl.c and cyassl.h:
  • * Based upon the wolfSSL implementation in wolfssl.c and wolfssl.h:
  • Copyright (C) 1998 - 2012, Daniel Stenberg, [email protected], et al.
  • Thanks for code and inspiration!
    Only in curl-7.40.0/lib/vtls: cyassl.c
    Only in curl-7.40.0/lib/vtls: cyassl.h
    diff -ru curl-7.40.0/lib/vtls/openssl.c curl_with_wolfssl/lib/vtls/openssl.c
    --- curl-7.40.0/lib/vtls/openssl.c 2015-01-07 14:53:57.000000000 -0700
    +++ curl_with_wolfssl/lib/vtls/openssl.c 2015-01-26 08:54:55.000000000 -0700
    @@ -2930,11 +2930,11 @@

    size_t Curl_ossl_version(char buffer, size_t size)
    {
    -#ifdef YASSL_VERSION
    +#ifdef WOLFSSL_VERSION
    /
    yassl provides an OpenSSL API compatibility layer so it looks identical
    to OpenSSL in all other aspects */

    • return snprintf(buffer, size, "yassl/%s", YASSL_VERSION);
      -#else /* YASSL_VERSION */
    • return snprintf(buffer, size, "yassl/%s", WOLFSSL_VERSION);
      +#else /* WOLFSSL_VERSION */

    if(SSLEAY_VERSION_NUMBER >= 0x905000)

    {
    @@ -3005,7 +3005,7 @@

    endif /* (SSLEAY_VERSION_NUMBER >= 0x900000) */

    endif /* SSLEAY_VERSION_NUMBER is less than 0.9.5 */

-#endif /* YASSL_VERSION /
+#endif /
WOLFSSL_VERSION */
}

/* can be called with data == NULL */
diff -ru curl-7.40.0/lib/vtls/vtls.c curl_with_wolfssl/lib/vtls/vtls.c
--- curl-7.40.0/lib/vtls/vtls.c 2014-12-28 06:36:05.000000000 -0700
+++ curl_with_wolfssl/lib/vtls/vtls.c 2015-01-21 10:09:27.000000000 -0700
@@ -33,7 +33,7 @@
Curl_nss_ - prefix for NSS ones
Curl_gskit_ - prefix for GSKit ones
Curl_polarssl_ - prefix for PolarSSL ones

  • Curl_cyassl_ - prefix for CyaSSL ones
  • Curl_wolfssl_ - prefix for wolfSSL ones
    Curl_schannel_ - prefix for Schannel SSPI ones
    Curl_darwinssl_ - prefix for SecureTransport (Darwin) ones

diff -ru curl-7.40.0/lib/vtls/vtls.h curl_with_wolfssl/lib/vtls/vtls.h
--- curl-7.40.0/lib/vtls/vtls.h 2014-12-28 06:36:05.000000000 -0700
+++ curl_with_wolfssl/lib/vtls/vtls.h 2015-01-21 10:10:12.000000000 -0700
@@ -29,7 +29,7 @@
#include "gskit.h" /* Global Secure ToolKit versions /
#include "polarssl.h" /
PolarSSL versions /
#include "axtls.h" /
axTLS versions /
-#include "cyassl.h" /
CyaSSL versions /
+#include "wolfssl.h" /
wolfSSL versions /
#include "curl_schannel.h" /
Schannel SSPI version /
#include "curl_darwinssl.h" /
SecureTransport (Darwin) version */

Only in curl_with_wolfssl/lib/vtls: wolfssl.c
Only in curl_with_wolfssl/lib/vtls: wolfssl.h
diff -ru curl-7.40.0/packages/AIX/Makefile.in curl_with_wolfssl/packages/AIX/Makefile.in
--- curl-7.40.0/packages/AIX/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/AIX/Makefile.in 2015-01-21 10:19:43.000000000 -0700
@@ -301,7 +301,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/AIX/RPM/Makefile.in curl_with_wolfssl/packages/AIX/RPM/Makefile.in
--- curl-7.40.0/packages/AIX/RPM/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/AIX/RPM/Makefile.in 2015-01-21 10:20:01.000000000 -0700
@@ -241,7 +241,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/EPM/Makefile.in curl_with_wolfssl/packages/EPM/Makefile.in
--- curl-7.40.0/packages/EPM/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/EPM/Makefile.in 2015-01-21 10:20:18.000000000 -0700
@@ -241,7 +241,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/Linux/Makefile.in curl_with_wolfssl/packages/Linux/Makefile.in
--- curl-7.40.0/packages/Linux/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/Linux/Makefile.in 2015-01-21 10:20:35.000000000 -0700
@@ -301,7 +301,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/Linux/RPM/Makefile.in curl_with_wolfssl/packages/Linux/RPM/Makefile.in
--- curl-7.40.0/packages/Linux/RPM/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/Linux/RPM/Makefile.in 2015-01-21 10:20:50.000000000 -0700
@@ -242,7 +242,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/Makefile.in curl_with_wolfssl/packages/Makefile.in
--- curl-7.40.0/packages/Makefile.in 2014-12-28 06:36:14.000000000 -0700
+++ curl_with_wolfssl/packages/Makefile.in 2015-01-21 10:21:02.000000000 -0700
@@ -301,7 +301,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/packages/OS400/curl.inc.in curl_with_wolfssl/packages/OS400/curl.inc.in
--- curl-7.40.0/packages/OS400/curl.inc.in 2014-12-03 18:52:19.000000000 -0700
+++ curl_with_wolfssl/packages/OS400/curl.inc.in 2015-01-21 10:21:20.000000000 -0700
@@ -1401,7 +1401,7 @@
d c 5
d CURLSSLBACKEND_POLARSSL...
d c 6

  • d  CURLSSLBACKEND_CYASSL...
    
  • d  CURLSSLBACKEND_WOLFSSL...
    
    d c 7
    d CURLSSLBACKEND_SCHANNEL...
    d c 8
    diff -ru curl-7.40.0/packages/Solaris/Makefile.in curl_with_wolfssl/packages/Solaris/Makefile.in
    --- curl-7.40.0/packages/Solaris/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/packages/Solaris/Makefile.in 2015-01-21 10:21:33.000000000 -0700
    @@ -244,7 +244,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/packages/Symbian/group/libcurl.mmp curl_with_wolfssl/packages/Symbian/group/libcurl.mmp
    --- curl-7.40.0/packages/Symbian/group/libcurl.mmp 2015-01-07 14:53:57.000000000 -0700
    +++ curl_with_wolfssl/packages/Symbian/group/libcurl.mmp 2015-01-21 10:11:43.000000000 -0700
    @@ -35,7 +35,7 @@
    socks_sspi.c curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c
    pop3.c smtp.c pingpong.c rtsp.c curl_threads.c warnless.c hmac.c
    vtls/polarssl.c curl_rtmp.c openldap.c curl_gethostname.c gopher.c \
  • vtls/axtls.c idn_win32.c http_negotiate_sspi.c vtls/cyassl.c \
  • vtls/axtls.c idn_win32.c http_negotiate_sspi.c vtls/wolfssl.c
    http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c
    curl_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_ntlm_msgs.c
    curl_sasl.c vtls/curl_schannel.c curl_multibyte.c
    diff -ru curl-7.40.0/packages/Win32/Makefile.in curl_with_wolfssl/packages/Win32/Makefile.in
    --- curl-7.40.0/packages/Win32/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/packages/Win32/Makefile.in 2015-01-21 10:22:44.000000000 -0700
    @@ -301,7 +301,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/packages/Win32/cygwin/Makefile.in curl_with_wolfssl/packages/Win32/cygwin/Makefile.in
    --- curl-7.40.0/packages/Win32/cygwin/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/packages/Win32/cygwin/Makefile.in 2015-01-21 10:22:31.000000000 -0700
    @@ -241,7 +241,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/packages/vms/Makefile.in curl_with_wolfssl/packages/vms/Makefile.in
    --- curl-7.40.0/packages/vms/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/packages/vms/Makefile.in 2015-01-21 10:22:17.000000000 -0700
    @@ -241,7 +241,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/packages/vms/generate_config_vms_h_curl.com curl_with_wolfssl/packages/vms/generate_config_vms_h_curl.com
    --- curl-7.40.0/packages/vms/generate_config_vms_h_curl.com 2014-12-28 06:36:05.000000000 -0700
    +++ curl_with_wolfssl/packages/vms/generate_config_vms_h_curl.com 2015-01-21 10:22:03.000000000 -0700
    @@ -328,8 +328,8 @@
    $write cvh "#ifdef USE_AXTLS"
    $write cvh "#undef USE_AXTLS"
    $write cvh "#endif"
    -$write cvh "#ifdef USE_CYASSL"
    -$write cvh "#undef USE_CYASSL"
    +$write cvh "#ifdef USE_WOLFSSL"
    +$write cvh "#undef USE_WOLFSSL"
    $write cvh "#endif"
    $write cvh "#ifdef USE_DARWINSSL"
    $write cvh "#undef USE_DARWINSSL"
    diff -ru curl-7.40.0/src/Makefile.in curl_with_wolfssl/src/Makefile.in
    --- curl-7.40.0/src/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/src/Makefile.in 2015-01-21 10:22:55.000000000 -0700
    @@ -395,7 +395,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/tests/Makefile.in curl_with_wolfssl/tests/Makefile.in
    --- curl-7.40.0/tests/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/tests/Makefile.in 2015-01-21 10:24:45.000000000 -0700
    @@ -322,7 +322,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    Only in curl_with_wolfssl/tests: build-3310
    diff -ru curl-7.40.0/tests/certs/Makefile.in curl_with_wolfssl/tests/certs/Makefile.in
    --- curl-7.40.0/tests/certs/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/tests/certs/Makefile.in 2015-01-21 10:23:07.000000000 -0700
    @@ -301,7 +301,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/tests/certs/scripts/Makefile.in curl_with_wolfssl/tests/certs/scripts/Makefile.in
    --- curl-7.40.0/tests/certs/scripts/Makefile.in 2014-12-28 06:36:14.000000000 -0700
    +++ curl_with_wolfssl/tests/certs/scripts/Makefile.in 2015-01-21 10:23:24.000000000 -0700
    @@ -241,7 +241,7 @@
    SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
    USE_ARES = @USE_ARES@
    USE_AXTLS = @USE_AXTLS@
    -USE_CYASSL = @USE_CYASSL@
    +USE_WOLFSSL = @USE_WOLFSSL@
    USE_DARWINSSL = @USE_DARWINSSL@
    USE_GNUTLS = @USE_GNUTLS@
    USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
    diff -ru curl-7.40.0/tests/curl_client_key curl_with_wolfssl/tests/curl_client_key
    --- curl-7.40.0/tests/curl_client_key 2015-01-21 09:57:07.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_client_key 2015-01-21 11:02:04.000000000 -0700
    @@ -1,12 +1,12 @@
    -----BEGIN DSA PRIVATE KEY-----
    -MIIBuwIBAAKBgQCbpOhqNoM/FrfMb+D5xFy0VwCMLEHbxLMjhkQbKGuMAkBczfrU
    -U43LyjDqciiKbh66o0u6ggm5b4luQ1URBNGVKv2l/PMSHY7UxO6obqemFkKZreBe
    -+UaEltP5+1nlVdO4IPrO4pvwEsZ0SYoggxnwikxnQsMmYGtime5NkyjqnwIVAJgJ
    -4wxNsXeRfy8QDH4XNaxUO5MFAoGAXGjKcESJs/Ec1ilWCuN+XOWmbdPVBlnXxeNr
    -lIeCbw3JS+mBVQOJBvttbhiXmEvsN+jcD2JrZmXeimMY4wLMyr3gyrSkBwxHCgzV
    -W5Tpfk9Vyrhj1HAVsw+sIYoWZ6eSbcR+2KEZUJK/SxBkUmtHUhYos6J9fNr1qbKE
    -W/drUrUCgYBi5K4Wp+oE7HArg8uAjqGAgazqwkFlvoQyiwr2VubrXATl0VF6UInZ
    -zklLQeqg+0EIOBDzZpUxeZ8wKkeMsWpmjhrnaytzbbirER0JZq4tRtdcmRLz9VJx
    -4vIUa6bDQ8xuw7WEAp3YAWrsrR7WHenBX8d7pUFz3dj/c5SUkNrbMgIVAJOJLvzF
    -VBYSMihlrl1TVyBD+oct
    +MIIBugIBAAKBgQCRb/0lfyrwmSSn4x5LQfQXIJ2PsdwxzbTWPCUmXUBj/KIHEm8E
    +4ieBqGKxMDYartXdsiPNLytHoshOKcujCuuqoEucGpTLaYf+M5098pk333JXugjT
    +4rdK/LhLIhCCwcjyvN/Jbrm5i1vUMREQf/nWcNXHCKDwpp7UsfrjN0TSuQIVAOmO
    +mW89dqs0/Ef/1wxqdGlHVmiHAoGAUwPafx9SNXtQG60UDpl5d94jCpyOK5kAg7CW
    +vj29jeGJ589pM/X4+u4ihX2NxgROs1rigzkuaT+C2BGAfgS84Wrwayj//rKePxmv
    +2LN/40PNB1XNTBVGQwlrb4o5+S4xBRlzpL0qhe68uh+9f2MvyvNwTVhzQpYJuIhv
    +MhUIelYCgYBlTS50Zu7I4jBgbBRxxX6f6TQgPPoszWGjJI7jXpHqwUxyEEGktvGm
    +CvD5TtX+unVU5pREm2IatQDOG6uDks4vaS9/LFZXnT0PispLOVHbzWY2kaePP0ei
    +h08KTroDZoqkqEMgJmIOsz7U4csdPDvsKeBM/gfZKKNexg5lwqSGygIUX3oMZ0Q8
    +tr8UEvXSrrRYJFBI7Uo=
    -----END DSA PRIVATE KEY-----
    diff -ru curl-7.40.0/tests/curl_client_key.pub curl_with_wolfssl/tests/curl_client_key.pub
    --- curl-7.40.0/tests/curl_client_key.pub 2015-01-21 09:57:07.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_client_key.pub 2015-01-21 11:02:04.000000000 -0700
    @@ -1 +1 @@
    -ssh-dss AAAAB3NzaC1kc3MAAACBAJuk6Go2gz8Wt8xv4PnEXLRXAIwsQdvEsyOGRBsoa4wCQFzN+tRTjcvKMOpyKIpuHrqjS7qCCblviW5DVREE0ZUq/aX88xIdjtTE7qhup6YWQpmt4F75RoSW0/n7WeVV07gg+s7im/ASxnRJiiCDGfCKTGdCwyZga2KZ7k2TKOqfAAAAFQCYCeMMTbF3kX8vEAx+FzWsVDuTBQAAAIBcaMpwRImz8RzWKVYK435c5aZt09UGWdfF42uUh4JvDclL6YFVA4kG+21uGJeYS+w36NwPYmtmZd6KYxjjAszKveDKtKQHDEcKDNVblOl+T1XKuGPUcBWzD6whihZnp5JtxH7YoRlQkr9LEGRSa0dSFiizon182vWpsoRb92tStQAAAIBi5K4Wp+oE7HArg8uAjqGAgazqwkFlvoQyiwr2VubrXATl0VF6UInZzklLQeqg+0EIOBDzZpUxeZ8wKkeMsWpmjhrnaytzbbirER0JZq4tRtdcmRLz9VJx4vIUa6bDQ8xuw7WEAp3YAWrsrR7WHenBX8d7pUFz3dj/c5SUkNrbMg== curl test client
    +ssh-dss AAAAB3NzaC1kc3MAAACBAJFv/SV/KvCZJKfjHktB9BcgnY+x3DHNtNY8JSZdQGP8ogcSbwTiJ4GoYrEwNhqu1d2yI80vK0eiyE4py6MK66qgS5walMtph/4znT3ymTffcle6CNPit0r8uEsiEILByPK838luubmLW9QxERB/+dZw1ccIoPCmntSx+uM3RNK5AAAAFQDpjplvPXarNPxH/9cManRpR1ZohwAAAIBTA9p/H1I1e1AbrRQOmXl33iMKnI4rmQCDsJa+Pb2N4Ynnz2kz9fj67iKFfY3GBE6zWuKDOS5pP4LYEYB+BLzhavBrKP/+sp4/Ga/Ys3/jQ80HVc1MFUZDCWtvijn5LjEFGXOkvSqF7ry6H71/Yy/K83BNWHNClgm4iG8yFQh6VgAAAIBlTS50Zu7I4jBgbBRxxX6f6TQgPPoszWGjJI7jXpHqwUxyEEGktvGmCvD5TtX+unVU5pREm2IatQDOG6uDks4vaS9/LFZXnT0PispLOVHbzWY2kaePP0eih08KTroDZoqkqEMgJmIOsz7U4csdPDvsKeBM/gfZKKNexg5lwqSGyg== curl test client
    diff -ru curl-7.40.0/tests/curl_client_knownhosts curl_with_wolfssl/tests/curl_client_knownhosts
    --- curl-7.40.0/tests/curl_client_knownhosts 2015-01-21 09:57:07.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_client_knownhosts 2015-01-21 11:02:04.000000000 -0700
    @@ -1 +1 @@
    -127.0.0.1 ssh-dss AAAAB3NzaC1kc3MAAACBAN9I90jF4gz3IVF6OgFEkbSTbytPWXgxwnAJZUAkvglUALw3KAKYvxeGJ0ejUvI4ZLaRUN3s1IpwL46QI2CoHWjgmiy0RygFtT4tO1FY1tCwmSulYQgQKzdQDtG9RBvif2dm5QP2Uk4EY4vvWC1WX57mPvhZ2gfAXVJL2X1bSG35AAAAFQDyO6BwKTo9ZijRNBp4njdH8jpTmwAAAIA6I02BNjq7nO3BvgaXhIgxGQzti8IeBTm3sWiUJLQaaJqHiYaqTO4YA63hqXYC4DmTlQljEeHhwliZAA2wSmgY5VtJj+g+knMyLDf/QtXTJj9NyzY+1JpNS6WZh/roYimny2+FEFs5nmEcWfxGbUQ+NEsCSbzCo+rioN5IeIenCQAAAIAf2eyvQ9D8JHH/pG2XVUybe8MpPOerQ/XDhaScJVptlR8zvxyY/rEBwQvc3xZweTBR6r0Qaw3mlNxweUySE0PK0FVHZ42MvlIISI61sksDIdeNf17rpohJrzhaVPDKuaD85qamtTLhAucQZsidQBgnzyHPXEuLUobwaxiGqTJbOg==
    +127.0.0.1 ssh-dss AAAAB3NzaC1kc3MAAACBAJbTqF9T6XczEJP9LUBxLknmvvbHEnwrVdWgsz4zOA02nbWtc3SgAP0iSfBxJlmcxjGWqsf97jNrhBEcDai1clJiuja7DgQY/IRZYsNteEC3WodIoymHzixzYhpk53Z8yQOjzAOh90RYScgQ1ZEgWDqThMAkhjeEKaKBFHSurkMxAAAAFQCmPMG+uHe23OSNXedNCVEJhTV7LQAAAIEAgn2gNxL6W/CaRJoQ4/7BHKC5Y0J6mmRmiQ3jlL0gbUTMfUwmhTV8Ukzrf2lpdGMf7bufDM7vLrfjtJsU5O6GYv8V/cnPo7QLovX+p4ockeRUUw0q96STL5tSsc4K/Rxsb7wmjiMORkcQhLpcWpG9kLiGzvLuxe1tGwd0fZQ/ShoAAACAcSQ5zgwvDktKuNj6rSMuIfp6bXqMSNkqvCHXanNP5pTPyZ4TnMW43ciR0acIpBw9ft/6gD95Ro/ran8iXCbp1sh+zafjilAhnWcqjSMgCs3XIoCIq51oTP1SiLuIxrn9RtWvxjWYHfJMGACogpNPrJPxd+cIZ/rUcuRoFi1tD9M=
    diff -ru curl-7.40.0/tests/curl_host_dsa_key curl_with_wolfssl/tests/curl_host_dsa_key
    --- curl-7.40.0/tests/curl_host_dsa_key 2015-01-21 09:57:06.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_host_dsa_key 2015-01-21 11:02:03.000000000 -0700
    @@ -1,12 +1,12 @@
    -----BEGIN DSA PRIVATE KEY-----
    -MIIBugIBAAKBgQDfSPdIxeIM9yFRejoBRJG0k28rT1l4McJwCWVAJL4JVAC8NygC
    -mL8XhidHo1LyOGS2kVDd7NSKcC+OkCNgqB1o4JostEcoBbU+LTtRWNbQsJkrpWEI
    -ECs3UA7RvUQb4n9nZuUD9lJOBGOL71gtVl+e5j74WdoHwF1SS9l9W0ht+QIVAPI7
    -oHApOj1mKNE0GnieN0fyOlObAoGAOiNNgTY6u5ztwb4Gl4SIMRkM7YvCHgU5t7Fo
    -lCS0Gmiah4mGqkzuGAOt4al2AuA5k5UJYxHh4cJYmQANsEpoGOVbSY/oPpJzMiw3
    -/0LV0yY/Tcs2PtSaTUulmYf66GIpp8tvhRBbOZ5hHFn8Rm1EPjRLAkm8wqPq4qDe
    -SHiHpwkCgYAf2eyvQ9D8JHH/pG2XVUybe8MpPOerQ/XDhaScJVptlR8zvxyY/rEB
    -wQvc3xZweTBR6r0Qaw3mlNxweUySE0PK0FVHZ42MvlIISI61sksDIdeNf17rpohJ
    -rzhaVPDKuaD85qamtTLhAucQZsidQBgnzyHPXEuLUobwaxiGqTJbOgIUFDvtHGef
    -PJc/3lxxYqFh87IPbLY=
    +MIIBvAIBAAKBgQCW06hfU+l3MxCT/S1AcS5J5r72xxJ8K1XVoLM+MzgNNp21rXN0
    +oAD9IknwcSZZnMYxlqrH/e4za4QRHA2otXJSYro2uw4EGPyEWWLDbXhAt1qHSKMp
    +h84sc2IaZOd2fMkDo8wDofdEWEnIENWRIFg6k4TAJIY3hCmigRR0rq5DMQIVAKY8
    +wb64d7bc5I1d500JUQmFNXstAoGBAIJ9oDcS+lvwmkSaEOP+wRyguWNCeppkZokN
    +45S9IG1EzH1MJoU1fFJM639paXRjH+27nwzO7y6347SbFOTuhmL/Ff3Jz6O0C6L1
    +/qeKHJHkVFMNKvekky+bUrHOCv0cbG+8Jo4jDkZHEIS6XFqRvZC4hs7y7sXtbRsH
    +dH2UP0oaAoGAcSQ5zgwvDktKuNj6rSMuIfp6bXqMSNkqvCHXanNP5pTPyZ4TnMW4
    +3ciR0acIpBw9ft/6gD95Ro/ran8iXCbp1sh+zafjilAhnWcqjSMgCs3XIoCIq51o
    +TP1SiLuIxrn9RtWvxjWYHfJMGACogpNPrJPxd+cIZ/rUcuRoFi1tD9MCFQCDDZfs
    +8r3HWZOoWHln9VTMnxQnvQ==
    -----END DSA PRIVATE KEY-----
    diff -ru curl-7.40.0/tests/curl_host_dsa_key.pub curl_with_wolfssl/tests/curl_host_dsa_key.pub
    --- curl-7.40.0/tests/curl_host_dsa_key.pub 2015-01-21 09:57:06.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_host_dsa_key.pub 2015-01-21 11:02:03.000000000 -0700
    @@ -1 +1 @@
    -ssh-dss AAAAB3NzaC1kc3MAAACBAN9I90jF4gz3IVF6OgFEkbSTbytPWXgxwnAJZUAkvglUALw3KAKYvxeGJ0ejUvI4ZLaRUN3s1IpwL46QI2CoHWjgmiy0RygFtT4tO1FY1tCwmSulYQgQKzdQDtG9RBvif2dm5QP2Uk4EY4vvWC1WX57mPvhZ2gfAXVJL2X1bSG35AAAAFQDyO6BwKTo9ZijRNBp4njdH8jpTmwAAAIA6I02BNjq7nO3BvgaXhIgxGQzti8IeBTm3sWiUJLQaaJqHiYaqTO4YA63hqXYC4DmTlQljEeHhwliZAA2wSmgY5VtJj+g+knMyLDf/QtXTJj9NyzY+1JpNS6WZh/roYimny2+FEFs5nmEcWfxGbUQ+NEsCSbzCo+rioN5IeIenCQAAAIAf2eyvQ9D8JHH/pG2XVUybe8MpPOerQ/XDhaScJVptlR8zvxyY/rEBwQvc3xZweTBR6r0Qaw3mlNxweUySE0PK0FVHZ42MvlIISI61sksDIdeNf17rpohJrzhaVPDKuaD85qamtTLhAucQZsidQBgnzyHPXEuLUobwaxiGqTJbOg== curl test server
    +ssh-dss AAAAB3NzaC1kc3MAAACBAJbTqF9T6XczEJP9LUBxLknmvvbHEnwrVdWgsz4zOA02nbWtc3SgAP0iSfBxJlmcxjGWqsf97jNrhBEcDai1clJiuja7DgQY/IRZYsNteEC3WodIoymHzixzYhpk53Z8yQOjzAOh90RYScgQ1ZEgWDqThMAkhjeEKaKBFHSurkMxAAAAFQCmPMG+uHe23OSNXedNCVEJhTV7LQAAAIEAgn2gNxL6W/CaRJoQ4/7BHKC5Y0J6mmRmiQ3jlL0gbUTMfUwmhTV8Ukzrf2lpdGMf7bufDM7vLrfjtJsU5O6GYv8V/cnPo7QLovX+p4ockeRUUw0q96STL5tSsc4K/Rxsb7wmjiMORkcQhLpcWpG9kLiGzvLuxe1tGwd0fZQ/ShoAAACAcSQ5zgwvDktKuNj6rSMuIfp6bXqMSNkqvCHXanNP5pTPyZ4TnMW43ciR0acIpBw9ft/6gD95Ro/ran8iXCbp1sh+zafjilAhnWcqjSMgCs3XIoCIq51oTP1SiLuIxrn9RtWvxjWYHfJMGACogpNPrJPxd+cIZ/rUcuRoFi1tD9M= curl test server
    diff -ru curl-7.40.0/tests/curl_sftp_config curl_with_wolfssl/tests/curl_sftp_config
    --- curl-7.40.0/tests/curl_sftp_config 2015-01-21 09:57:07.000000000 -0700
    +++ curl_with_wolfssl/tests/curl_sftp_config 2015-01-26 09:11:36.000000000 -0700
    @@ -10,8 +10,8 @@

BindAddress 127.0.0.1

-IdentityFile /Users/khimes/work/curl-7.40.0/tests/curl_client_key
-UserKnownHostsFile /Users/khimes/work/curl-7.40.0/tests/curl_client_knownhosts
+IdentityFile /Users/khimes/work/curl_with_wolfssl/tests/curl_client_key
+UserKnownHostsFile /Users/khimes/work/curl_with_wolfssl/tests/curl_client_knownhosts

BatchMode yes
ChallengeResponseAuthentication no
diff -ru curl-7.40.0/tests/curl_ssh_config curl_with_wolfssl/tests/curl_ssh_config
--- curl-7.40.0/tests/curl_ssh_config 2015-01-21 09:57:07.000000000 -0700
+++ curl_with_wolfssl/tests/curl_ssh_config 2015-01-26 09:11:36.000000000 -0700
@@ -11,8 +11,8 @@
BindAddress 127.0.0.1
DynamicForward 9000

-IdentityFile /Users/khimes/work/curl-7.40.0/tests/curl_client_key
-UserKnownHostsFile /Users/khimes/work/curl-7.40.0/tests/curl_client_knownhosts
+IdentityFile /Users/khimes/work/curl_with_wolfssl/tests/curl_client_key
+UserKnownHostsFile /Users/khimes/work/curl_with_wolfssl/tests/curl_client_knownhosts

BatchMode yes
ChallengeResponseAuthentication no
diff -ru curl-7.40.0/tests/curl_sshd_config curl_with_wolfssl/tests/curl_sshd_config
--- curl-7.40.0/tests/curl_sshd_config 2015-01-21 09:57:07.000000000 -0700
+++ curl_with_wolfssl/tests/curl_sshd_config 2015-01-26 09:11:36.000000000 -0700
@@ -6,10 +6,10 @@
DenyGroups
AllowGroups

-AuthorizedKeysFile /Users/khimes/work/curl-7.40.0/tests/curl_client_key.pub
-AuthorizedKeysFile2 /Users/khimes/work/curl-7.40.0/tests/curl_client_key.pub
-HostKey /Users/khimes/work/curl-7.40.0/tests/curl_host_dsa_key
-PidFile /Users/khimes/work/curl-7.40.0/tests/.ssh_server.pid
+AuthorizedKeysFile /Users/khimes/work/curl_with_wolfssl/tests/curl_client_key.pub
+AuthorizedKeysFile2 /Users/khimes/work/curl_with_wolfssl/tests/curl_client_key.pub
+HostKey /Users/khimes/work/curl_with_wolfssl/tests/curl_host_dsa_key
+PidFile /Users/khimes/work/curl_with_wolfssl/tests/.ssh_server.pid

Port 8999
AddressFamily any
diff -ru curl-7.40.0/tests/data/Makefile.in curl_with_wolfssl/tests/data/Makefile.in
--- curl-7.40.0/tests/data/Makefile.in 2015-01-08 01:05:26.000000000 -0700
+++ curl_with_wolfssl/tests/data/Makefile.in 2015-01-21 10:23:39.000000000 -0700
@@ -263,7 +263,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/tests/libtest/Makefile.in curl_with_wolfssl/tests/libtest/Makefile.in
--- curl-7.40.0/tests/libtest/Makefile.in 2015-01-08 01:05:28.000000000 -0700
+++ curl_with_wolfssl/tests/libtest/Makefile.in 2015-01-21 10:23:50.000000000 -0700
@@ -1037,7 +1037,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
diff -ru curl-7.40.0/tests/log/ftp_ipv6_server.log curl_with_wolfssl/tests/log/ftp_ipv6_server.log
--- curl-7.40.0/tests/log/ftp_ipv6_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/ftp_ipv6_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.511632 Failed to read input
-10:10:48.511779 Error: FTP-IPv6 server, read zero
-10:10:48.511877 Exited from sysread_or_die() at ./ftpserver.pl line 3000. FTP-IPv6 server, read zero
+09:25:15.629321 Failed to read input
+09:25:15.629452 Error: FTP-IPv6 server, read zero
+09:25:15.629537 Exited from sysread_or_die() at ./ftpserver.pl line 3000. FTP-IPv6 server, read zero
diff -ru curl-7.40.0/tests/log/ftp_server.log curl_with_wolfssl/tests/log/ftp_server.log
--- curl-7.40.0/tests/log/ftp_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/ftp_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.511475 Failed to read input
-10:10:48.511684 Error: FTP server, read zero
-10:10:48.511785 Exited from sysread_or_die() at ./ftpserver.pl line 3000. FTP server, read zero
+09:25:15.629219 Failed to read input
+09:25:15.629393 Error: FTP server, read zero
+09:25:15.629542 Exited from sysread_or_die() at ./ftpserver.pl line 3000. FTP server, read zero
diff -ru curl-7.40.0/tests/log/gopher_ipv6_server.log curl_with_wolfssl/tests/log/gopher_ipv6_server.log
--- curl-7.40.0/tests/log/gopher_ipv6_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/gopher_ipv6_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.512489 select() failed with error: (4) Interrupted system call
-10:10:48.512768 signalled to die
-10:10:48.513001 ========> IPv6 sws (port 9010 pid: 18538) exits with signal (15)
+09:25:15.631464 select() failed with error: (4) Interrupted system call
+09:25:15.631610 signalled to die
+09:25:15.631786 ========> IPv6 sws (port 9010 pid: 27781) exits with signal (15)
diff -ru curl-7.40.0/tests/log/gopher_server.log curl_with_wolfssl/tests/log/gopher_server.log
--- curl-7.40.0/tests/log/gopher_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/gopher_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.512490 select() failed with error: (4) Interrupted system call
-10:10:48.513654 signalled to die
-10:10:48.514055 ========> IPv4 sws (port 9009 pid: 18450) exits with signal (15)
+09:25:15.631409 select() failed with error: (4) Interrupted system call
+09:25:15.631573 signalled to die
+09:25:15.631826 ========> IPv4 sws (port 9009 pid: 27693) exits with signal (15)
diff -ru curl-7.40.0/tests/log/http2_server.log curl_with_wolfssl/tests/log/http2_server.log
--- curl-7.40.0/tests/log/http2_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/http2_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.513569 select() failed with error: (4) Interrupted system call
-10:10:48.513712 signalled to die
-10:10:48.514652 ========> IPv4 sws (port 9013 pid: 80211) exits with signal (15)
+09:25:15.630079 select() failed with error: (4) Interrupted system call
+09:25:15.630260 signalled to die
+09:25:15.630586 ========> IPv4 sws (port 9013 pid: 15133) exits with signal (15)
diff -ru curl-7.40.0/tests/log/http_ipv6_server.log curl_with_wolfssl/tests/log/http_ipv6_server.log
--- curl-7.40.0/tests/log/http_ipv6_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/http_ipv6_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.513639 select() failed with error: (4) Interrupted system call
-10:10:48.513864 signalled to die
-10:10:48.514042 ========> IPv6 sws (port 8994 pid: 83706) exits with signal (15)
+09:25:15.630249 select() failed with error: (4) Interrupted system call
+09:25:15.631170 signalled to die
+09:25:15.631274 ========> IPv6 sws (port 8994 pid: 18617) exits with signal (15)
diff -ru curl-7.40.0/tests/log/http_server.log curl_with_wolfssl/tests/log/http_server.log
--- curl-7.40.0/tests/log/http_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/http_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.512708 select() failed with error: (4) Interrupted system call
-10:10:48.513197 signalled to die
-10:10:48.513581 ========> IPv4 sws (port 8990 pid: 78370) exits with signal (15)
+09:25:15.630068 select() failed with error: (4) Interrupted system call
+09:25:15.630221 signalled to die
+09:25:15.630600 ========> IPv4 sws (port 8990 pid: 13292) exits with signal (15)
diff -ru curl-7.40.0/tests/log/http_unix_server.log curl_with_wolfssl/tests/log/http_unix_server.log
--- curl-7.40.0/tests/log/http_unix_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/http_unix_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,4 +1,4 @@
-10:10:48.512571 select() failed with error: (4) Interrupted system call
-10:10:48.512954 unlink(http.sock) = 0 (Undefined error: 0)
-10:10:48.512994 signalled to die
-10:10:48.513228 ========> unix sws (http.sock pid: 22180) exits with signal (15)
+09:25:15.631472 select() failed with error: (4) Interrupted system call
+09:25:15.631840 unlink(http.sock) = 0 (Undefined error: 0)
+09:25:15.631885 signalled to die
+09:25:15.632068 ========> unix sws (http.sock pid: 31423) exits with signal (15)
diff -ru curl-7.40.0/tests/log/imap_server.log curl_with_wolfssl/tests/log/imap_server.log
--- curl-7.40.0/tests/log/imap_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/imap_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.511787 Failed to read input
-10:10:48.511920 Error: IMAP server, read zero
-10:10:48.512043 Exited from sysread_or_die() at ./ftpserver.pl line 3000. IMAP server, read zero
+09:25:15.629476 Failed to read input
+09:25:15.629639 Error: IMAP server, read zero
+09:25:15.629736 Exited from sysread_or_die() at ./ftpserver.pl line 3000. IMAP server, read zero
diff -ru curl-7.40.0/tests/log/pop3_server.log curl_with_wolfssl/tests/log/pop3_server.log
--- curl-7.40.0/tests/log/pop3_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/pop3_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,3 +1,3 @@
-10:10:48.512060 Failed to read input
-10:10:48.512226 Error: POP3 server, read zero
-10:10:48.512307 Exited from sysread_or_die() at ./ftpserver.pl line 3000. POP3 server, read zero
+09:25:15.629752 Failed to read input
+09:25:15.629896 Error: POP3 server, read zero
+09:25:15.629983 Exited from sysread_or_die() at ./ftpserver.pl line 3000. POP3 server, read zero
diff -ru curl-7.40.0/tests/log/rtsp_server.log curl_with_wolfssl/tests/log/rtsp_server.log
--- curl-7.40.0/tests/log/rtsp_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/rtsp_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,2 +1,2 @@
-10:10:48.514492 signalled to die
-10:10:48.514774 ========> IPv4 rtspd (port: 9007 pid: 90680) exits with signal (15)
+09:25:15.631326 signalled to die
+09:25:15.631609 ========> IPv4 rtspd (port: 9007 pid: 21568) exits with signal (15)
diff -ru curl-7.40.0/tests/log/smtp_server.log curl_with_wolfssl/tests/log/smtp_server.log
--- curl-7.40.0/tests/log/smtp_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/smtp_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -0,0 +1,2 @@
+09:25:15.629920 Failed to read input
+09:25:15.630042 Error: SMTP server, read zero
diff -ru curl-7.40.0/tests/log/tftp_server.log curl_with_wolfssl/tests/log/tftp_server.log
--- curl-7.40.0/tests/log/tftp_server.log 2015-01-21 10:10:48.000000000 -0700
+++ curl_with_wolfssl/tests/log/tftp_server.log 2015-01-26 09:25:15.000000000 -0700
@@ -1,2 +1,2 @@
-10:10:48.513688 signalled to die
-10:10:48.514216 ========> IPv4 tftpd (port: 8997 pid: 84325) exits with signal (15)
+09:25:15.630259 signalled to die
+09:25:15.630756 ========> IPv4 tftpd (port: 8997 pid: 19238) exits with signal (15)
diff -ru curl-7.40.0/tests/server/Makefile.in curl_with_wolfssl/tests/server/Makefile.in
--- curl-7.40.0/tests/server/Makefile.in 2014-12-28 06:36:15.000000000 -0700
+++ curl_with_wolfssl/tests/server/Makefile.in 2015-01-21 10:24:03.000000000 -0700
@@ -421,7 +421,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
Only in curl_with_wolfssl/tests: setup
diff -ru curl-7.40.0/tests/unit/Makefile.in curl_with_wolfssl/tests/unit/Makefile.in
--- curl-7.40.0/tests/unit/Makefile.in 2014-12-28 06:36:15.000000000 -0700
+++ curl_with_wolfssl/tests/unit/Makefile.in 2015-01-21 10:24:17.000000000 -0700
@@ -399,7 +399,7 @@
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
USE_ARES = @USE_ARES@
USE_AXTLS = @USE_AXTLS@
-USE_CYASSL = @USE_CYASSL@
+USE_WOLFSSL = @USE_WOLFSSL@
USE_DARWINSSL = @USE_DARWINSSL@
USE_GNUTLS = @USE_GNUTLS@
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@

building 7.42

Building on:
#3.16.0-34-generic #47-Ubuntu SMP Fri Apr 10 18:02:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

url.c: In function 'ConnectionExists':
url.c:3212:32: error: 'struct connectdata' has no member named 'ntlm'
(wantNTLMhttp || check->ntlm.state != NTLMSTATE_NONE)) {
^
Makefile:1197: recipe for target 'libcurl_la-url.lo' failed

curl hangs on h2c GET

Testing mod_h2 with curl reduced my overall hair count over the last two days. Fortunately, it also made me learn things about tcpdump and wireshark,

The culprits:
curl 7.42.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.42.0-DEV OpenSSL/1.0.1f zlib/1.2.8 nghttp2/0.7.9 and
curl 7.41.0 (x86_64-apple-darwin14.1.0) libcurl/7.41.0 OpenSSL/1.0.2a zlib/1.2.8 nghttp2/0.7.9
with command line:
curl -v --http2 http://10.211.55.19:12345/index.html from osx to ubuntu and
curl -v --http2 http://10.211.55.2:12345/index.html from ubuntu to osx.

The client on OSX works fine as show in this wireshark shot:
osx2ubuntu

The client on Ubuntu however does not send anything after the HTTP2 preface. Just silent, no ACK for the SETTINGS from the server:
ubuntu2osx

At this point the connection just hangs as the server is unwilling to send the response before an ACK to the SETTINGS. Is there a flush missing somewhere maybe?

multi_addtimeout is too slow!

hi!

I found multi_addtimeout was too slow when calling the following function:

curl_multi_perform

  • multi_runsingle
    • Curl_resolver_is_resolved
      • Curl_expire
        • multi_addtimeout
          • curlx_tvdiff

Why do not use the min-heap or red-black tree to manage the timeout tasks?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.