Mercurial > gftp.yaz
comparison lib/protocols.c @ 248:16a967a4d003
2003-8-7 Brian Masney <masneyb@gftp.org>
* lib/protocols.c (gftp_fd_write) - use a signed variable to store the
result from write(). Write errors were not being caught properly.
author | masneyb |
---|---|
date | Fri, 08 Aug 2003 01:38:12 +0000 |
parents | 41af60bc1f88 |
children | 094e83b55cb1 |
comparison
equal
deleted
inserted
replaced
247:f41650dc896c | 248:16a967a4d003 |
---|---|
2162 ssize_t | 2162 ssize_t |
2163 gftp_fd_write (gftp_request * request, const char *ptr, size_t size, int fd) | 2163 gftp_fd_write (gftp_request * request, const char *ptr, size_t size, int fd) |
2164 { | 2164 { |
2165 long network_timeout; | 2165 long network_timeout; |
2166 struct timeval tv; | 2166 struct timeval tv; |
2167 size_t ret, w_ret; | 2167 ssize_t w_ret; |
2168 fd_set fset; | 2168 fd_set fset; |
2169 size_t ret; | |
2169 | 2170 |
2170 gftp_lookup_request_option (request, "network_timeout", &network_timeout); | 2171 gftp_lookup_request_option (request, "network_timeout", &network_timeout); |
2171 | 2172 |
2172 errno = 0; | 2173 errno = 0; |
2173 ret = 0; | 2174 ret = 0; |
2195 gftp_disconnect (request); | 2196 gftp_disconnect (request); |
2196 } | 2197 } |
2197 return (GFTP_ERETRYABLE); | 2198 return (GFTP_ERETRYABLE); |
2198 } | 2199 } |
2199 | 2200 |
2200 if ((w_ret = write (fd, ptr, size)) < 0) | 2201 w_ret = write (fd, ptr, size); |
2202 if (w_ret < 0) | |
2201 { | 2203 { |
2202 if (errno == EINTR) | 2204 if (errno == EINTR) |
2203 { | 2205 { |
2204 if (request != NULL && request->cancel) | 2206 if (request != NULL && request->cancel) |
2205 break; | 2207 break; |