Tatsuhiro Tsujikawa c175d184a2 http2: Faster http2 upload
Previously, when we send all given buffer in data_source_callback, we
return NGHTTP2_ERR_DEFERRED, and nghttp2 library removes this stream
temporarily for writing.  This itself is good.  If this is the sole
stream in the session, nghttp2_session_want_write() returns zero,
which means that libcurl does not check writeability of the underlying
socket.  This leads to very slow upload, because it seems curl only
upload 16k something per 1 second.  To fix this, if we still have data
to send, call nghttp2_session_resume_data after nghttp2_session_send.
This makes nghttp2_session_want_write() returns nonzero (if connection
window still opens), and as a result, socket writeability is checked,
and upload speed becomes normal.
2015-05-20 22:43:37 +02:00
..
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2013-02-14 10:41:45 +01:00
2015-03-03 23:17:43 +01:00
2015-03-17 13:57:37 +01:00
2014-10-08 12:25:07 +02:00
2015-03-03 23:17:43 +01:00
2015-03-03 12:36:18 +01:00
2015-03-16 15:01:15 +01:00
2015-03-03 12:36:18 +01:00
2015-03-03 12:36:18 +01:00
2015-03-03 12:36:18 +01:00
2015-03-03 12:36:18 +01:00
2015-03-03 12:36:18 +01:00
2015-05-20 22:43:37 +02:00
2015-03-03 12:36:18 +01:00
2014-12-16 13:52:06 +01:00
2015-03-16 15:01:15 +01:00
2015-03-03 12:36:18 +01:00
2015-03-17 13:57:37 +01:00
2010-03-24 11:02:54 +01:00
2015-05-15 22:34:12 +02:00
2011-04-16 00:11:43 +02:00
2015-05-12 23:21:33 +02:00
2015-03-17 13:57:37 +01:00
2015-05-06 02:34:31 -04:00
2014-12-20 14:43:02 +00:00
2015-03-03 12:36:18 +01:00
2015-03-03 12:36:18 +01:00
2010-03-24 11:02:54 +01:00
2015-03-17 13:57:37 +01:00
2014-10-13 16:33:47 +02:00
2015-03-17 13:57:37 +01:00
2014-12-30 13:10:30 +00:00
2015-03-16 15:01:15 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2015-03-17 13:57:37 +01:00
2013-02-14 10:41:45 +01:00
2013-02-14 10:41:45 +01:00
2015-03-17 13:57:37 +01:00
2013-02-01 08:14:46 +01:00
2015-05-18 14:09:32 +02:00
2015-05-18 09:33:47 +02:00
2015-03-03 12:36:18 +01:00
2013-02-01 08:14:46 +01: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.