aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2014-02-04http2: Check stream ID we are interested inTatsuhiro Tsujikawa
2014-02-04http2: store response header in temporary bufferTatsuhiro Tsujikawa
2014-02-04HTTP2: add layer between existing http and socket(TLS) layerTatsuhiro Tsujikawa
This patch chooses different approach to integrate HTTP2 into HTTP curl stack. The idea is that we insert HTTP2 layer between HTTP code and socket(TLS) layer. When HTTP2 is initialized (either in NPN or Upgrade), we replace the Curl_recv/Curl_send callbacks with HTTP2's, but keep the original callbacks in http_conn struct. When sending serialized data by nghttp2, we use original Curl_send callback. Likewise, when reading data from network, we use original Curl_recv callback. In this way we can treat both TLS and non-TLS connections. With this patch, one can transfer contents from https://twitter.com and from nghttp2 test server in plain HTTP as well. The code still has rough edges. The notable one is I could not figure out how to call nghttp2_session_send() when underlying socket is writable.
2014-02-04gtls: add ALPN supportFabian Frank
Add ALPN support when using GnuTLS >= 3.2.0. This allows libcurl to negotiate HTTP/2.0 for https connections when built with GnuTLS. See: http://www.gnutls.org/manual/gnutls.html#Application-Layer-Protocol-Negotiation-_0028ALPN_0029 http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04
2014-02-03openssl: add ALPN supportFabian Frank
Add ALPN support when using OpenSSL. This will offer ALPN and NPN to the server, who can respond with either one or none of the two. OpenSSL >= 1.0.2 is required, which means as of today obtaining a snapshot from ftp://ftp.openssl.org/snapshot/. See: http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04 https://github.com/openssl/openssl/blob/ba168244a14bbd056e502d7daa04cae4aabe9d0d/ssl/ssl_lib.c#L1787
2014-01-31winssl: improved default SSL/TLS protocol selectionMarc Hoersken
For some reason Windows 7 SP1 chooses TLS 1.0 instead of TLS 1.2 if it is not explicitly enabled within grbitEnabledProtocols. More information can be found on MSDN: http://msdn.microsoft.com/library/windows/desktop/aa379810.aspx
2014-01-31pipeline: Fixed a NULL pointer dereference on OOMDan Fandrich
2014-01-30ftp: fixed a memory leak on wildcard error pathDan Fandrich
2014-01-30netrc: Fixed a memory leak in an OOM conditionDan Fandrich
2014-01-30ntlm: Fixed a memory leak when using NTLM with a proxy serverSteve Holme
2014-01-30http2: fix size check in on_data_chunk_recvDaniel Stenberg
2014-01-30http2: add CRLF when first data arrivesDaniel Stenberg
2014-01-30http2_recv: Return written length on CURLE_AGAINTatsuhiro Tsujikawa
2014-01-30http2: Use nghttp2_session_mem_recv and nghttp2_session_upgradeTatsuhiro Tsujikawa
2014-01-30http2: basic version of receiving DATADaniel Stenberg
2014-01-30http2: convert HEADER frames to HTTP1-like headersDaniel Stenberg
... and then go through the "normal" HTTP engine.
2014-01-30http2: fix EWOULDBLOCK in recv_callback()Daniel Stenberg
2014-01-30http2: do the POST Upgrade dance properlyDaniel Stenberg
2014-01-30ntlm: Use static client nonce for the test suiteSteve Holme
2014-01-30http2.h: provide empty macros for non-http2 buildsDaniel Stenberg
2014-01-30http2: switch into http2 mode if NPN indicatesFabian Frank
Check the NPN result before preparing an HTTP request and switch into HTTP/2.0 mode if necessary. This is a work in progress, the actual code to prepare and send the request using nghttp2 is still missing from Curl_http2_send_request().
2014-01-30http2: s/Curl_http2_request/Curl_http2_request_upgradeDaniel Stenberg
To better reflect its purpose
2014-01-30http2-openssl: verify that NPN functionality is presentDaniel Stenberg
2014-01-30openssl: set up hooks with to perform NPNFabian Frank
NPN is what is available in the wild today to negotiate SPDY or HTTP/2.0 connections. It is expected to be replaced by ALPN in the future. If HTTP/2.0 is negotiated, this is indicated for the entire connection and http.c is expected to initialize itself for HTTP/2.0 instead of HTTP/1.1. see: http://technotes.googlecode.com/git/nextprotoneg.html http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04
2014-01-30http2: added stubs for all nghttp2 callbacksDaniel Stenberg
This makes it easier to trace what's happening.
2014-01-29http2: use FIRSTSOCKET instead of 0 to index the sockets arrayDaniel Stenberg
2014-01-29http2: receive and log the received header framesDaniel Stenberg
2014-01-29http2_recv: log nghttp2 return codes for debugging purposesDaniel Stenberg
2014-01-29HTTP2: reject nghttp2 versions before 0.3.0Daniel Stenberg
2014-01-29http2: adjusted to newer nghttp2_session_callbacks structGisle Vanem
the number of elements in the 'nghttp2_session_callbacks' structure is now reduced by 2 in version 0.3.0 (I'm not sure when the change happened, but checking for ver 0.3.0 work for me).
2014-01-29HTTP2: Wrong NgHTTP2 user-dataGisle Vanem
Something is wrong in 'userp' for the HTTP2 recv_callback(). The session is created using bogus user-data; '&conn' and not 'conn'. I noticed this since the socket-value in Curl_read_plain() was set to a impossible high value.
2014-01-29NTLM: error: conversion to 'int' from 'long int' may alter its valueDaniel Stenberg
Fixed two compiler nits
2014-01-29ntlm: Coding style policing dating back to 2011Steve Holme
2014-01-29ntlm: Use a timestamp of 01/01/1970 for the test suiteSteve Holme
2014-01-29ntlm: Updated Curl_ntlm_core_mk_ntlmv2_resp() to use local variablesSteve Holme
...until the function is successful when it returns them in the out parameters.
2014-01-29ntlm: Added cross platform support for writing NTLMv2 timestamp in bufferSteve Holme
Added conversion functions write32_le() and write64_le() to ensure the NTLMv2 timestamp is always written in little-endian.
2014-01-29ntlm: Added support for NTLMv2Prash Dush
2014-01-29nss: do not use the NSS_ENABLE_ECC defineKamil Dudka
It is not provided by NSS public headers. Bug: https://bugzilla.redhat.com/1058776
2014-01-29nss: do not fail if NSS does not implement a cipherKamil Dudka
... that the user does not ask for
2014-01-29http2: switch recv/send functions to http2 ones after 101Daniel Stenberg
2014-01-29http2: handle 101 responses and switch to HTTP2Daniel Stenberg
2014-01-28oauth2: Fixed a memory leak in an OOM conditionDan Fandrich
2014-01-28hostip: don't remove DNS entries that are in useRomulo A. Ceccon
hostcache_timestamp_remove() should remove old *unused* entries from the host cache, but it never checked whether the entry was actually in use. This complements commit 030a2b8cb. Bug: http://curl.haxx.se/bug/view.cgi?id=1327
2014-01-28TFTP: fix crash on time-outDaniel Stenberg
tftp_done() can get called with its TFTP state pointer still being NULL on an early time-out, which caused a segfault when dereferenced. Reported-by: Glenn Sheridan Bug: http://curl.haxx.se/mail/lib-2014-01/0246.html
2014-01-24netrc: Fixed a memory and file descriptor leak on OOMDan Fandrich
2014-01-24multi: Fixed a memory leak on OOM conditionDan Fandrich
2014-01-21axtls: fix compiler warning on conversion ssize_t => intFabian Frank
2014-01-20SFTP: stat remote file also when CURLOPT_NOBODY is 1Fabian Frank
Make it possible to call curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &filesize) and related functions on remote sftp:// files, without downloading them. Reported-by: Yingwei Liu Bug: http://curl.haxx.se/mail/lib-2014-01/0139.html
2014-01-20HTTP POST: omit Content-Length if data size is unknownCédric Deltheil
This prevents sending a `Content-Length: -1` header, e.g this ocurred with the following combination: * standard HTTP POST (no chunked encoding), * user-defined read function set, * `CURLOPT_POSTFIELDSIZE(_LARGE)` NOT set. With this fix it now behaves like HTTP PUT.
2014-01-20disable GnuTLS insecure ciphersFabian Frank
Make GnuTLS old and new consistent, specify the desired protocol, cipher and certificate type in always in both modes. Disable insecure ciphers as reported by howsmyssl.com. Honor not only --sslv3, but also the --tlsv1[.N] switches. Related Bug: http://curl.haxx.se/bug/view.cgi?id=1323