curl/lib
Daniel Stenberg b0143a2a33 read_callback: move to SessionHandle from connectdata
With many easy handles using the same connection for multiplexing, it is
important we store and keep the transfer-oriented stuff in the
SessionHandle so that callbacks and callback data work fine even when
many easy handles share the same physical connection.
2015-05-20 23:06:45 +02:00
..
vtls gtls: don't fail on non-fatal alerts during handshake 2015-05-20 22:41:30 +02:00
.gitignore
amigaos.c
amigaos.h
arpa_telnet.h
asyn-ares.c
asyn-thread.c
asyn.h
base64.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
checksrc.pl checksrc: Windows-specific input fixes 2015-03-30 22:39:13 +02:00
checksrc.whitelist
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 checksrc: Windows-specific input fixes 2015-03-30 22:39:13 +02:00
conncache.c hostip: fix unintended destruction of hash table 2015-05-18 11:15:43 +02:00
conncache.h bundles: store no/default/pipeline/multiplex 2015-05-18 09:33:36 +02:00
connect.c connection cache: avoid Curl_hash_alloc() 2015-05-12 09:15:02 +02:00
connect.h
content_encoding.c
content_encoding.h
cookie.c cookie: cookie parser out of boundary memory access 2015-04-21 23:20:36 +02:00
cookie.h
curl_addrinfo.c
curl_addrinfo.h
curl_base64.h
curl_config.h.cmake
curl_des.c
curl_des.h
curl_endian.c
curl_endian.h
curl_fnmatch.c
curl_fnmatch.h
curl_gethostname.c
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_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_memrchr.c
curl_memrchr.h
curl_multibyte.c
curl_multibyte.h
curl_ntlm_core.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_ntlm_core.h
curl_ntlm_msgs.c Curl_ssl_md5sum: return CURLcode 2015-03-25 08:32:12 +01:00
curl_ntlm_msgs.h
curl_ntlm_wb.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_ntlm_wb.h
curl_ntlm.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_ntlm.h
curl_printf.h
curl_rtmp.c
curl_rtmp.h
curl_sasl_gssapi.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_sasl_sspi.c sasl_sspi: Populate domain from the realm in the challenge 2015-04-26 16:12:23 +02:00
curl_sasl.c sasl_sspi: Populate domain from the realm in the challenge 2015-04-26 16:12:23 +02:00
curl_sasl.h sasl_sspi: Populate domain from the realm in the challenge 2015-04-26 16:12:23 +02:00
curl_sec.h
curl_setup_once.h
curl_setup.h
curl_sspi.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
curl_sspi.h sasl_sspi: Populate domain from the realm in the challenge 2015-04-26 16:12:23 +02:00
curl_threads.c
curl_threads.h
curlx.h
dict.c dict: rename byte to avoid compiler shadowed declaration warning 2015-03-23 10:16:10 +01:00
dict.h
dotdot.c
dotdot.h
easy.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
easyif.h
escape.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
escape.h
file.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
file.h
fileinfo.c
fileinfo.h
firefox-db2pem.sh firefox-db2pem: fix wildcard to find Firefox default profile 2015-04-13 15:31:26 +02:00
formdata.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
formdata.h
ftp.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
ftp.h
ftplistparser.c
ftplistparser.h
getenv.c
getinfo.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
getinfo.h
gopher.c
gopher.h
hash.c hostip: fix unintended destruction of hash table 2015-05-18 11:15:43 +02:00
hash.h hostip: fix unintended destruction of hash table 2015-05-18 11:15:43 +02:00
hmac.c
hostasyn.c
hostcheck.c
hostcheck.h
hostip4.c
hostip6.c
hostip.c hostip: fix unintended destruction of hash table 2015-05-18 11:15:43 +02:00
hostip.h hostcache: made all host caches use structs, not pointers 2015-05-12 09:46:53 +02:00
hostsyn.c
http2.c http2: show stream IDs in decimal 2015-05-20 23:06:29 +02:00
http2.h http2: set default concurrency, fix ConnectionExists for multiplex 2015-05-18 09:33:47 +02:00
http_chunks.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
http_chunks.h
http_digest.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
http_digest.h
http_negotiate_sspi.c http_negotiate_sspi: added missing data variable 2015-04-30 12:13:49 +02:00
http_negotiate.c Negotiate: custom service names for SPNEGO. 2015-04-28 08:29:56 +02:00
http_negotiate.h
http_proxy.c http2: separate multiplex/pipelining + cleanup memory leaks 2015-05-18 08:57:18 +02:00
http_proxy.h
http.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
http.h http: Add some include guards for the new HTTP/2 stuff 2015-05-18 20:53:58 -04:00
idn_win32.c
if2ip.c
if2ip.h
imap.c
imap.h
inet_ntop.c
inet_ntop.h
inet_pton.c
inet_pton.h
krb5.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
ldap.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
libcurl.def
libcurl.plist
libcurl.rc
libcurl.vers.in
llist.c
llist.h
Makefile.am README.pipelining: removed 2015-05-15 22:34:12 +02:00
makefile.amiga
Makefile.b32 build: update depedency versions, urls, example makefiles 2015-04-30 08:29:00 +02:00
makefile.dj
Makefile.inc bundles: merged into conncache.c 2015-05-12 23:21:33 +02:00
Makefile.m32 build: bump version in default nghttp2 paths 2015-05-19 07:42:16 +02:00
Makefile.netware build: update depedency versions, urls, example makefiles 2015-04-30 08:29:00 +02:00
Makefile.vc6 build: removed bundles.c from make files 2015-05-14 14:55:48 +02:00
Makefile.vxworks
Makefile.Watcom build: update depedency versions, urls, example makefiles 2015-04-30 08:29:00 +02:00
md4.c
md5.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
memdebug.c
memdebug.h
mk-ca-bundle.pl
mk-ca-bundle.vbs
mprintf.c
multi.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
multihandle.h http2: set default concurrency, fix ConnectionExists for multiplex 2015-05-18 09:33:47 +02:00
multiif.h http2: set default concurrency, fix ConnectionExists for multiplex 2015-05-18 09:33:47 +02:00
netrc.c netrc: Read in text mode when cygwin 2015-05-06 02:34:31 -04:00
netrc.h
non-ascii.c
non-ascii.h
nonblock.c
nonblock.h
nwlib.c
nwos.c
objnames-test08.sh
objnames-test10.sh
objnames.inc
openldap.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
parsedate.c
parsedate.h
pingpong.c
pingpong.h
pipeline.c pipeline: switch some code over to functions 2015-05-18 09:33:47 +02:00
pipeline.h pipeline: switch some code over to functions 2015-05-18 09:33:47 +02:00
pop3.c
pop3.h
progress.c
progress.h
rawstr.c
rawstr.h
README.ares
README.curl_off_t
README.curlx
README.encoding
README.hostip
README.http2 README.http2: refreshed and added TODO items 2015-03-25 12:13:16 +01:00
README.httpauth
README.memoryleak
README.multi_socket
README.pingpong
rtsp.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
rtsp.h
security.c
select.c
select.h
sendf.c CURLMOPT_PIPELINE: bit 1 is for multiplexing 2015-05-18 08:57:18 +02:00
sendf.h
setup-os400.h
setup-vms.h
share.c hostip: fix unintended destruction of hash table 2015-05-18 11:15:43 +02:00
share.h hostcache: made all host caches use structs, not pointers 2015-05-12 09:46:53 +02:00
sigpipe.h
slist.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
slist.h
smb.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
smb.h
smtp.c
smtp.h
sockaddr.h
socks_gssapi.c
socks_sspi.c
socks.c
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
ssh.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
ssh.h
strdup.c
strdup.h
strequal.c
strequal.h
strerror.c
strerror.h
strtok.c
strtok.h
strtoofft.c
strtoofft.h
telnet.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
telnet.h
tftp.c curl_memory: make curl_memory.h the second-last header file loaded 2015-03-24 23:47:01 +01:00
tftp.h
timeval.c
timeval.h
transfer.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
transfer.h read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
url.c read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
url.h Negotiate: custom service names for SPNEGO. 2015-04-28 08:29:56 +02:00
urldata.h read_callback: move to SessionHandle from connectdata 2015-05-20 23:06:45 +02:00
version.c
warnless.c
warnless.h
wildcard.c
wildcard.h
x509asn1.c cyassl: Implement public key pinning 2015-04-22 17:07:19 -04:00
x509asn1.h cyassl: Implement public key pinning 2015-04-22 17:07:19 -04:00

Date: December 5, 2009

Pingpong
========

 Pingpong is just my (Daniel's) jestful collective name on the protocols that
 share a very similar kind of back-and-forth procedure with command and
 responses to and from the server. FTP was previously the only protocol in
 that family that libcurl supported, but when POP3, IMAP and SMTP joined the
 team I moved some of the internals into a separate pingpong module to be
 easier to get used by all these protocols to reduce code duplication and ease
 code re-use between these protocols.

FTP

 In 7.20.0 we converted code to use the new pingpong code from previously
 having been all "native" FTP code.

POP3

 There's no support in the documented URL format to specify the exact mail to
 get, but we support that as the path specified in the URL.

IMAP

SMTP

 There's no official URL syntax defined for SMTP, but we use only the generic
 one and we provide two additional libcurl options to specify receivers and
 sender of the actual mail.