Fix webclient_write result issue.

master
bernard 8 years ago
parent 5174ed4851
commit f2b0ff7a5b

@ -25,7 +25,7 @@
#include <rtdbg.h> #include <rtdbg.h>
#define WEBCLIENT_SOCKET_TIMEO 6000 /* 6 second */ #define WEBCLIENT_SOCKET_TIMEO 6000 /* 6 second */
extern long int strtol(const char *nptr, char **endptr, int base); extern long int strtol(const char *nptr, char **endptr, int base);
@ -182,7 +182,7 @@ static int webclient_resolve_address(struct webclient_session* session, struct s
if((host_addr_len < 1) || (host_addr_len > url_len) ) if((host_addr_len < 1) || (host_addr_len > url_len) )
{ {
//rt_kprintf("webclient_resolve_address host_addr_len: %d error!\n", host_addr_len); //rt_kprintf("webclient_resolve_address host_addr_len: %d error!\n", host_addr_len);
rc = -1; rc = -1;
goto _exit; goto _exit;
} }
@ -345,7 +345,7 @@ __exit:
int webclient_handle_response(struct webclient_session* session) int webclient_handle_response(struct webclient_session* session)
{ {
int rc; int rc;
int content_length = -1; int content_length = -1;
char *mimeBuffer, *mime_ptr; char *mimeBuffer, *mime_ptr;
if (!session) return -1; if (!session) return -1;
@ -435,8 +435,8 @@ int webclient_handle_response(struct webclient_session* session)
} }
/* use the content length in content range */ /* use the content length in content range */
if (content_length != -1) if (content_length != -1)
session->content_length = content_length; session->content_length = content_length;
session->content_length_remainder = session->content_length_remainder =
(session->content_length) ? session->content_length : 0xFFFFFFFF; (session->content_length) ? session->content_length : 0xFFFFFFFF;
@ -771,16 +771,16 @@ int webclient_read(struct webclient_session* session, unsigned char *buffer,
bytesRead = recv(session->socket, buffer + totalRead, left, 0); bytesRead = recv(session->socket, buffer + totalRead, left, 0);
if (bytesRead <= 0) if (bytesRead <= 0)
{ {
rt_kprintf("errno=%d\n", bytesRead); rt_kprintf("errno=%d\n", bytesRead);
if (totalRead) if (totalRead)
{ {
rt_kprintf("totalRead=%d\n", totalRead); rt_kprintf("totalRead=%d\n", totalRead);
break; break;
} }
else else
{ {
rt_kprintf("EWOULDBLOCK=%d, EAGAIN=%d\n", EWOULDBLOCK, EAGAIN); rt_kprintf("EWOULDBLOCK=%d, EAGAIN=%d\n", EWOULDBLOCK, EAGAIN);
if (errno == EWOULDBLOCK || errno == EAGAIN) if (errno == EWOULDBLOCK || errno == EAGAIN)
{ {
@ -978,7 +978,7 @@ struct webclient_session* webclient_open_custom(const char* URI, int method,
if (data) if (data)
{ {
length = webclient_write(session, (unsigned char*) data, data_sz); length = webclient_write(session, (unsigned char*) data, data_sz);
if (length != length) if (length != data_sz)
{ {
rt_kprintf("POST data %d:%d\n", length, data_sz); rt_kprintf("POST data %d:%d\n", length, data_sz);
goto _err_exit; goto _err_exit;
@ -1029,7 +1029,7 @@ int webclient_transfer(const char* URI, const char* header, size_t header_sz,
/* POST data */ /* POST data */
length = webclient_write(session, (unsigned char*) data, data_sz); length = webclient_write(session, (unsigned char*) data, data_sz);
if (length != length) if (length != data_sz)
{ {
rt_kprintf("POST data %d:%d\n", length, data_sz); rt_kprintf("POST data %d:%d\n", length, data_sz);
goto __exit; goto __exit;

Loading…
Cancel
Save