curl/lib
Daniel Stenberg bb55293313 FTP: remove krb4 support
We've announced this pending removal for a long time and we've
repeatedly asked if anyone would care or if anyone objects. Nobody has
objected. It has probably not even been working for a good while since
nobody has tested/used this code recently.

The stuff in krb4.h that was generic enough to be used by other sources
is now present in security.h
2013-08-25 19:16:36 +02:00
..
.gitignore
amigaos.c
amigaos.h
arpa_telnet.h
asyn-ares.c
asyn-thread.c
asyn.h
axtls.c
axtls.h
base64.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
bundles.c
bundles.h
checksrc.pl
CMakeLists.txt
config-amigaos.h
config-dos.h
config-mac.h
config-os400.h
config-riscos.h
config-symbian.h
config-tpf.h
config-vxworks.h
config-win32.h
config-win32ce.h
conncache.c
conncache.h
connect.c string formatting: fix 25+ printf-style format strings 2013-07-24 01:21:26 +02:00
connect.h
content_encoding.c
content_encoding.h build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
cookie.c
cookie.h
curl_addrinfo.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
curl_addrinfo.h build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
curl_base64.h
curl_config.h.cmake
curl_darwinssl.c darwinssl: added LFs to some strings passed into infof() 2013-07-30 20:32:18 -06:00
curl_darwinssl.h
curl_fnmatch.c
curl_fnmatch.h
curl_gethostname.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
curl_gethostname.h
curl_gssapi.c
curl_gssapi.h
curl_hmac.h
curl_ldap.h
curl_md4.h
curl_md5.h
curl_memory.h
curl_memrchr.c
curl_memrchr.h
curl_multibyte.c
curl_multibyte.h
curl_ntlm_core.c
curl_ntlm_core.h
curl_ntlm_msgs.c
curl_ntlm_msgs.h
curl_ntlm_wb.c
curl_ntlm_wb.h
curl_ntlm.c
curl_ntlm.h
curl_rtmp.c
curl_rtmp.h
curl_sasl.c
curl_sasl.h
curl_schannel.c
curl_schannel.h
curl_setup_once.h
curl_setup.h
curl_sspi.c
curl_sspi.h
curl_threads.c
curl_threads.h
curlx.h Revert changes relative to lib/*.[ch] recent renaming 2013-01-06 18:20:27 +01:00
cyassl.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
cyassl.h
dict.c
dict.h
dotdot.c dotdot.c: Fix a RFC section number in a comment for Curl_dedotdotify() 2013-07-23 20:50:59 +02:00
dotdot.h
easy.c
easyif.h
escape.c Curl_urldecode: no peeking beyond end of input buffer 2013-06-22 11:21:35 +02:00
escape.h
file.c
file.h
fileinfo.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
fileinfo.h
firefox-db2pem.sh
formdata.c
formdata.h Revert changes relative to lib/*.[ch] recent renaming 2013-01-06 18:20:27 +01:00
ftp.c
ftp.h
ftplistparser.c
ftplistparser.h
getenv.c
getinfo.c
getinfo.h
gopher.c
gopher.h
gskit.c
gskit.h
gtls.c
gtls.h
hash.c
hash.h
hmac.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
hostasyn.c
hostcheck.c OS400: new SSL backend GSKit 2013-07-15 19:00:36 +02:00
hostcheck.h
hostip4.c
hostip6.c
hostip.c global dns cache: fix memory leak 2013-08-08 16:28:46 +02:00
hostip.h
hostsyn.c
http_chunks.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
http_chunks.h Revert changes relative to lib/*.[ch] recent renaming 2013-01-06 18:20:27 +01:00
http_digest.c http_digest.c: SIGSEGV and OOM handling fixes 2013-07-12 19:32:13 +02:00
http_digest.h
http_negotiate_sspi.c
http_negotiate.c http_negotiate.c: Fixed passing argument from incompatible pointer type 2013-04-07 00:06:19 +02:00
http_negotiate.h Revert changes relative to lib/*.[ch] recent renaming 2013-01-06 18:20:27 +01:00
http_proxy.c
http_proxy.h
http.c SessionHandle: the protocol specific pointer is now a void * 2013-08-12 13:17:57 +02:00
http.h
idn_win32.c
if2ip.c
if2ip.h
imap.c
imap.h imap: Added support for ;auth=<mech> in the URL 2013-04-13 16:11:27 +01:00
inet_ntop.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
inet_ntop.h
inet_pton.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
inet_pton.h build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
krb5.c
ldap.c string formatting: fix 15+ printf-style format strings 2013-07-24 16:46:24 +02:00
libcurl.def Yang Tse: msvc7+ has deprecated the 'DESCRIPTION' section in 2005-11-14 07:48:05 +00:00
libcurl.plist
libcurl.rc
libcurl.vers.in
llist.c
llist.h
Makefile.am
makefile.amiga
Makefile.b32
makefile.dj
Makefile.inc
Makefile.m32
Makefile.netware
Makefile.vc6
Makefile.vxworks
Makefile.Watcom Updated zlib version in build files. 2013-05-11 17:08:00 +02:00
md4.c
md5.c
memdebug.c
memdebug.h WIN32 MemoryTracking: require UNICODE for wide strdup code support 2013-07-19 12:33:10 +02:00
mk-ca-bundle.pl
mk-ca-bundle.vbs
mprintf.c
multi.c
multihandle.h
multiif.h multi_socket: react on socket close immediately 2013-06-20 22:36:52 +02:00
netrc.c
netrc.h
non-ascii.c
non-ascii.h
nonblock.c
nonblock.h
nss.c nss: make sure that NSS is initialized 2013-08-12 15:17:39 +02:00
nssg.h
nwlib.c
nwos.c
objnames-test08.sh
objnames-test10.sh
objnames.inc
openldap.c
parsedate.c
parsedate.h
pingpong.c
pingpong.h
pipeline.c string formatting: fix 15+ printf-style format strings 2013-07-24 16:46:24 +02:00
pipeline.h
polarssl_threadlock.c polarssl threadlock cleanup 2013-02-19 13:11:55 +01:00
polarssl_threadlock.h
polarssl.c polarssl.c: fix header filename typo 2013-03-08 14:02:01 +01:00
polarssl.h
pop3.c
pop3.h
progress.c CURLOPT_XFERINFOFUNCTION: introducing a new progress callback 2013-07-18 23:44:06 +02:00
progress.h
qssl.c
qssl.h
rawstr.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
rawstr.h Revert changes relative to lib/*.[ch] recent renaming 2013-01-06 18:20:27 +01:00
README.ares
README.curl_off_t
README.curlx
README.encoding
README.hostip
README.httpauth HTTP "auth done right". See lib/README.httpauth 2004-11-24 16:11:35 +00:00
README.memoryleak remove the CVSish $Id$ lines 2010-03-24 11:02:54 +01:00
README.multi_socket
README.pingpong
README.pipelining
rtsp.c
rtsp.h
security.c
security.h
select.c curl_global_init: accept the CURL_GLOBAL_ACK_EINTR flag 2013-03-12 10:58:20 +01:00
select.h curl_global_init: accept the CURL_GLOBAL_ACK_EINTR flag 2013-03-12 10:58:20 +01:00
sendf.c
sendf.h
setup-os400.h
setup-vms.h
share.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
share.h build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
slist.c
slist.h slist.c, slist.h, cookie.c: new internal procedure Curl_slist_append_nodup() 2013-07-15 16:53:43 +02:00
smtp.c
smtp.h
sockaddr.h
socks_gssapi.c build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
socks_sspi.c
socks.c
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
ssh.c
ssh.h build: fix circular header inclusion with other packages 2013-01-09 00:49:50 +01:00
sslgen.c
sslgen.h
ssluse.c
ssluse.h
strdup.c
strdup.h
strequal.c strlcat: remove function 2013-02-14 10:41:45 +01:00
strequal.h
strerror.c
strerror.h
strtok.c
strtok.h
strtoofft.c
strtoofft.h
telnet.c SessionHandle: the protocol specific pointer is now a void * 2013-08-12 13:17:57 +02:00
telnet.h
tftp.c
tftp.h
timeval.c
timeval.h
transfer.c
transfer.h Curl_perfom: removed 2013-02-01 08:14:46 +01:00
url.c
url.h
urldata.h
version.c
warnless.c sockfilt.c: fix some W64 compiler warnings 2013-01-09 22:23:49 +01:00
warnless.h sockfilt.c: fix some W64 compiler warnings 2013-01-09 22:23:49 +01:00
wildcard.c
wildcard.h
x509asn1.c
x509asn1.h

HTTP Pipelining with libcurl
============================

Background

Since pipelining implies that one or more requests are sent to a server before
the previous response(s) have been received, we only support it for multi
interface use.

Considerations

When using the multi interface, you create one easy handle for each transfer.
Bascially any number of handles can be created, added and used with the multi
interface - simultaneously. It is an interface designed to allow many
simultaneous transfers while still using a single thread. Pipelining does not
change any of these details.

API

We've added a new option to curl_multi_setopt() called CURLMOPT_PIPELINING
that enables "attempted pipelining" and then all easy handles used on that
handle will attempt to use an existing pipeline.

Details

- A pipeline is only created if a previous connection exists to the same IP
  address that the new request is being made to use.

- Pipelines are only supported for HTTP(S) as no other currently supported
  protocol has features resemembling this, but we still name this feature
  plain 'pipelining' to possibly one day support it for other protocols as
  well.

- HTTP Pipelining is for GET and HEAD requests only.

- When a pipeline is in use, we must take precautions so that when used easy
  handles (i.e those who still wait for a response) are removed from the multi
  handle, we must deal with the outstanding response nicely.

- Explicitly asking for pipelining handle X and handle Y won't be supported.
  It isn't easy for an app to do this association. The lib should probably
  still resolve the second one properly to make sure that they actually _can_
  be considered for pipelining. Also, asking for explicit pipelining on handle
  X may be tricky when handle X get a closed connection.