Daniel Stenberg
1225d36188
Grant Erickson fixed timeouts for TFTP
2009-01-13 23:24:06 +00:00
Daniel Stenberg
07416b61e3
- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl
...
now has an improved ability to do right when the multi interface (both
"regular" and multi_socket) is used for SCP and SFTP transfers. This should
result in (much) less busy-loop situations and thus less CPU usage with no
speed loss.
2008-12-19 21:14:52 +00:00
Dan Fandrich
ea8fbb5233
Added some #ifdefs around header files and change the EAGAIN test to
...
fix compilation on Cell (reported by Jeff Curley).
2008-11-14 23:17:32 +00:00
Dan Fandrich
8f467b4288
Removed unneeded includes of signal.h and setjmp.h
2008-09-29 21:44:50 +00:00
Dan Fandrich
0994d7811f
Removed some redundant type casts
2008-09-02 18:36:39 +00:00
Yang Tse
537490e391
Undo using the sreadfrom() wrapper to replace recvfrom() in our code.
2008-07-30 05:10:42 +00:00
Yang Tse
775d9e0615
fix compiler warning: comparison between signed and unsigned
2008-07-21 03:59:23 +00:00
Yang Tse
1b37baf656
Use the sreadfrom() wrapper to replace recvfrom() in our code.
2008-07-21 03:06:07 +00:00
Daniel Stenberg
fcc320ee40
Yang Tse pointed out a few remaining quirks from my timeout refactoring from
...
Feb 7 that didn't abort properly on timeouts. These are actually old
problems but now they should be fixed.
2008-02-11 22:03:31 +00:00
Dan Fandrich
44fba11b34
Fixed unused variable warning.
2008-02-11 18:27:36 +00:00
Daniel Stenberg
1b701c746f
- Refactored a lot of timeout code into a few functions in an attempt to make
...
them all use the same (hopefully correct) logic to make it less error-prone
and easier to introduce library-wide where it should be used.
2008-02-07 22:25:04 +00:00
Daniel Stenberg
ed6466d176
Calls to Curl_failf() are not supposed to provide a trailing newline as the
...
function itself adds that. Fixed on 50 or something strings!
2008-01-15 23:19:02 +00:00
Yang Tse
15f832d1c2
fix compiler warning
2008-01-09 19:11:56 +00:00
Daniel Stenberg
662bee7193
All static functions that were previously name Curl_* something no longer
...
use that prefix as we use that prefix only for library-wide internal global
symbols.
2007-12-08 22:50:55 +00:00
Daniel Stenberg
162c039e9d
reqdata doesn't exist anymore and the path moved to the UrlState struct
2007-11-24 23:18:21 +00:00
Daniel Stenberg
13648f8ccd
struct HandleData is now called struct SingleRequest, and is only for data that
...
is inited at the start of the DO action. I removed the Curl_transfer_keeper
struct completely, and I had to move out a few struct members (that had to
be set before DO or used after DONE) to the UrlState struct. The SingleRequest
struct is accessed with SessionHandle->req.
One of the biggest reasons for doing this was the bunch of duplicate struct
members in HandleData and Curl_transfer_keeper since it was really messy to
keep track of two variables with the same name and basically the same purpose!
2007-11-24 23:16:55 +00:00
Daniel Stenberg
50feea3eef
Rearranged code and changed Curl_readwrite_init() and Curl_pre_readwrite() into
...
do_init() and do_complete() which now are called first and last in the DO
function. It simplified the flow in multi.c and the functions got more
sensible names!
2007-11-15 21:45:45 +00:00
Daniel Stenberg
5c8b973d4f
use the existing variable instead
2007-11-14 22:44:30 +00:00
Daniel Stenberg
b22e03b2b2
Fix how TFTP connections are treated when re-used, if the SessionHandle has
...
been used for other protocols in between. I found this when test 2004 started
to fail for me!
2007-11-14 22:41:42 +00:00
Daniel Stenberg
cbd1a77ec2
if () => if()
...
while () => while()
and some other minor re-indentings
2007-11-07 09:21:35 +00:00
Daniel Stenberg
9dbc2c827d
fix the check
2007-10-25 09:34:16 +00:00
Daniel Stenberg
91e27ce755
Fixed a TFTP memory leak. Enabled test 2003 to verify this.
2007-10-25 07:47:38 +00:00
Yang Tse
92433e596b
We use this ZERO_NULL to avoid picky compiler warnings,
...
when assigning a NULL pointer to a function pointer var.
2007-10-17 16:58:32 +00:00
Patrick Monnerat
07b6e7363d
Added per-protocol callback static tables, replacing callback ptr storage
...
in the connectdata structure by a single handler table ptr.
2007-10-12 13:36:37 +00:00
Daniel Stenberg
67d94514b0
Kim Rinnewitz reported that --local-port didn't work with TFTP transfers.
...
This happened because the tftp code always uncondionally did a bind()
without caring if one already had been done and then it failed. I wrote a
test case (1009) to verify this, but it is a bit error-prone since it will
have to pick a fixed local port number and since the tests are run on so
many different hosts in different situations I add it in disabled state.
2007-10-04 10:01:41 +00:00
Dan Fandrich
7350f9851a
TFTP now reports the "not defined" TFTP error code 0 as an error,
...
not success.
2007-09-07 20:35:37 +00:00
Dan Fandrich
9f44a95522
Renamed several libcurl error codes and options to make them more general
...
and allow reuse by multiple protocols. Several unused error codes were
removed. In all cases, macros were added to preserve source (and binary)
compatibility with the old names. These macros are subject to removal at
a future date, but probably not before 2009. An application can be
tested to see if it is using any obsolete code by compiling it with the
CURL_NO_OLDIES macro defined.
Documented some newer error codes in libcurl-error(3)
2007-08-30 20:34:57 +00:00
Dan Fandrich
1b66c1da6c
Added lots of consts
2007-08-29 05:36:53 +00:00
Daniel Stenberg
3247ac1918
remove unused field in the state struct
2007-06-12 08:15:02 +00:00
Daniel Stenberg
c25da51913
Song Ma filed bug report #1724016
...
(http://curl.haxx.se/bug/view.cgi?id=1724016 ) noticing that downloading
glob-ranges for TFTP was broken in CVS.
2007-05-24 21:11:18 +00:00
Daniel Stenberg
826bbfc01c
better fix for the dl/ul counters
2007-05-18 10:40:43 +00:00
Daniel Stenberg
250f9670b7
Feng Tu reported that curl -w did wrong on TFTP transfers in
...
bug report #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394 ), and the
transfer-related info "variables" were indeed overwritten with zeroes wrongly
and have now been adjusted. The upload size still isn't accurate.
2007-05-18 10:32:48 +00:00
Daniel Stenberg
ed4936fd30
bail out with error codes on failures
2007-05-18 10:12:57 +00:00
Daniel Stenberg
8479785620
Feng Tu pointed out a division by zero error in the TFTP connect timeout
...
code for timeouts less than fice seconds, and also provided a fix for it.
2007-05-17 21:40:08 +00:00
Dan Fandrich
47f044265e
Fixed some out of memory handling issues.
2007-04-11 00:25:41 +00:00
Yang Tse
fba4cd0e62
Internal function Curl_select() renamed to Curl_socket_ready()
2007-03-26 23:23:46 +00:00
Gisle Vanem
c514a2a89a
Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-files
...
since they're already included through "setup.h".
2007-02-26 04:24:26 +00:00
Yang Tse
a1d5983991
use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling
2007-02-16 18:19:35 +00:00
Yang Tse
77fcad041f
fix for millisecond resolution timeouts
2007-02-06 18:08:11 +00:00
Daniel Stenberg
91386937ff
- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MS
...
and CURLOPT_CONNECTTIMEOUT_MS that, as their names should hint, do the
timeouts with millisecond resolution instead. The only restriction to that
is the alarm() (sometimes) used to abort name resolves as that uses full
seconds. I fixed the FTP response timeout part of the patch.
Internally we now count and keep the timeouts in milliseconds but it also
means we multiply set timeouts with 1000. The effect of this is that no
timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
equals 24.86 days. We probably couldn't before either since the code did
*1000 on the timeout values on several places already.
2007-02-05 22:51:32 +00:00
Yang Tse
bc2183b440
compiler warning fix
2007-02-05 04:10:32 +00:00
Daniel Stenberg
385e612fa5
- Armel Asselin improved libcurl to behave a lot better when an easy handle
...
doing an FTP transfer is removed from a multi handle before completion. The
fix also fixed the "alive counter" to be correct on "premature removal" for
all protocols.
2007-01-16 22:22:10 +00:00
Dan Fandrich
bbdc483671
Fixed a small memory leak in tftp uploads discovered by curl's memory leak
...
detector. Also changed tftp downloads to URL-unescape the downloaded
file name.
2007-01-16 18:33:25 +00:00
Daniel Stenberg
9354822e09
Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the
...
multi interface, but I could also repeat it doing multiple sequential ones
with the easy interface. Using Ciprian's test case, I could fix it.
2006-11-09 21:36:18 +00:00
Daniel Stenberg
b7eeb6e67f
Major overhaul introducing http pipelining support and shared connection
...
cache within the multi handle.
2006-09-07 21:49:20 +00:00
Gisle Vanem
c7aae10300
Removed "#ifndef__WATCOMC__". Use "#ifdef HAVE_SYS_TIME_H" instead.
2006-08-30 16:17:06 +00:00
Gisle Vanem
59cf6fd4f0
Watcom lacks <sys/time.h>.
2006-08-29 18:45:55 +00:00
Daniel Stenberg
cfdcae4bc7
Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
...
command on subsequent requests on a re-used connection unless it has to.
2006-08-19 21:18:36 +00:00
Yang Tse
c033c4c71c
Winsock and Cygwin need address family specification before bind(), this should be harmless for others.
2006-07-29 16:17:36 +00:00
Yang Tse
d157c29269
Fix compiler warnings
2006-07-19 21:14:02 +00:00
Daniel Stenberg
c811e1ce70
oops, could return an uninitialized variable
2006-05-09 13:02:53 +00:00
Daniel Stenberg
094ceeba14
check more return codes and skip the initial slash in given file names
2006-05-08 22:23:33 +00:00
Daniel Stenberg
3b7359a27a
no longer uses errno but Curl_sockerrno() and now acknowledges return codes
...
from Curl_client_write
2006-05-08 21:00:44 +00:00
Dan Fandrich
df9108e19b
Stop sending retransmitted received blocks up to client
...
Fixed handling of retransmitted blocks on transmit
Properly aligned data to transmit within packet
Replaced calls to strerror() with Curl_strerror()
2006-05-08 19:41:26 +00:00
Daniel Stenberg
6307e783d8
Fixed known bug #28 . The TFTP code no longer assumes a packed struct and
...
thus works reliably on more platforms.
2006-05-08 15:09:50 +00:00
Daniel Stenberg
e85e30546c
Roland Blom filed bug report #1481217
...
(http://curl.haxx.se/bug/view.cgi?id=1481217 ), with follow-ups by Michele Bini
and David Byron. libcurl previously wrongly used GetLastError() on windows to
get error details after socket-related function calls, when it really should
use WSAGetLastError() instead.
When changing to this, the former function Curl_ourerrno() is now instead
called Curl_sockerrno() as it is necessary to only use it to get errno from
socket-related functions as otherwise it won't work as intended on Windows.
2006-05-04 22:39:47 +00:00
Daniel Stenberg
5a4b43848a
First commit of David McCreedy's EBCDIC and TPF changes.
2006-04-07 21:50:47 +00:00
Daniel Stenberg
3dad55d7a8
Tor Arntsen figured out that TFTP was broken on a lot of systems since we
...
called bind() with a too big argument in the 3rd parameter and at least
Tru64, AIX and IRIX seem to be very picky about it.
2006-03-26 08:52:43 +00:00
Dan Fandrich
a63f9887b9
Fixed a bug whereby a received file whose length was a multiple of
...
512 bytes could have random garbage appended. Also, stop processing TFTP
packets which are too short to be legal.
2006-03-20 22:15:22 +00:00
Daniel Stenberg
5975229919
fixed tftp packet overflow risk
2006-03-20 07:32:50 +00:00
Yang Tse
6a0ed81e67
Fix compiler warning
2005-12-08 20:38:04 +00:00
Dan Fandrich
8c6f654b26
Added a run-time check to warn if TFTP is going to fail due to portability
...
issues in the code.
2005-12-05 20:07:05 +00:00
Daniel Stenberg
272231fb09
Another Yang Tse warning cleanup raid!
2005-12-05 14:10:48 +00:00
Daniel Stenberg
feacad7f68
Yang Tse fixed the 4th argument in the sendto() calls
2005-12-02 23:22:00 +00:00
Daniel Stenberg
05a6013f42
Yang Tse's patch to silence MSVC warnings
2005-11-23 22:59:24 +00:00
Gisle Vanem
280e4bf4c3
Fix for WIN32. WIN32 does have 'struct sockaddr_storage', but
...
that's in <winsock2.h>. Hence tftp.c wouldn't compile on WinCE.
2005-11-13 13:20:37 +00:00
Daniel Stenberg
a5da1219bb
Reversed the logic for sockaddr_storage and made our own Curl_sockaddr_storage
...
struct instead to use.
2005-11-12 22:10:42 +00:00
Daniel Stenberg
37a6a0bb3e
Moved the sockaddr_storage definition to lib/sockaddr.h and only include that
...
in files that actually need the struct.
2005-11-11 22:04:11 +00:00
Daniel Stenberg
ae9fbe573e
David Lang fixed IPv6 support for TFTP!
2005-11-10 22:25:07 +00:00
Daniel Stenberg
bd5a622400
stricter type usage for time variables to avoid picky compiler warnings
2005-09-21 11:28:40 +00:00
Daniel Stenberg
1cf798ad14
typecasts added in an attempt to please the picky compilers
2005-09-20 06:51:23 +00:00
Daniel Stenberg
97a6d7b1a8
minor changes, the biggest one being using Curl_select()
2005-09-15 20:21:27 +00:00
Gisle Vanem
9e38d882b9
Fix for bind() on Winsock; AF_UNSPEC (0) is illegal.
...
Should we do this for all targets?
2005-09-06 15:43:14 +00:00
Daniel Stenberg
e8b77477c7
sockets are curl_socket_t to build cleaner
2005-09-06 10:39:01 +00:00
Daniel Stenberg
a3d776187a
check that bind() returns success
2005-09-04 18:33:20 +00:00
Daniel Stenberg
56d9624b56
John Kelly added TFTP support to libcurl. A bunch of new error codes was
...
added. TODO: add them to docs. add TFTP server to test suite. add TFTP to
list of protocols whereever those are mentioned.
2005-09-02 15:11:08 +00:00