【修改】统一使用系统内部字符串处理函数

Signed-off-by: chenyong <1521761801@qq.com>
master
chenyong 7 years ago
parent 53350e305e
commit 46a1a5e472

@ -121,7 +121,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
RT_ASSERT(res); RT_ASSERT(res);
RT_ASSERT(request); RT_ASSERT(request);
url_len = strlen(url); url_len = rt_strlen(url);
/* strip protocol(http or https) */ /* strip protocol(http or https) */
if (strncmp(url, "http://", 7) == 0) if (strncmp(url, "http://", 7) == 0)
@ -130,7 +130,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
} }
else if (strncmp(url, "https://", 8) == 0) else if (strncmp(url, "https://", 8) == 0)
{ {
strncpy(port_str, "443", 4); rt_strncpy(port_str, "443", 4);
host_addr = url + 8; host_addr = url + 8;
} }
else else
@ -143,7 +143,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
if (host_addr[0] == '[') if (host_addr[0] == '[')
{ {
host_addr += 1; host_addr += 1;
ptr = strstr(host_addr, "]"); ptr = rt_strstr(host_addr, "]");
if (!ptr) if (!ptr)
{ {
rc = -WEBCLIENT_ERROR; rc = -WEBCLIENT_ERROR;
@ -151,7 +151,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
} }
host_addr_len = ptr - host_addr; host_addr_len = ptr - host_addr;
ptr = strstr(host_addr + host_addr_len, "/"); ptr = rt_strstr(host_addr + host_addr_len, "/");
if (!ptr) if (!ptr)
{ {
rc = -WEBCLIENT_ERROR; rc = -WEBCLIENT_ERROR;
@ -161,7 +161,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
{ {
int port_len = ptr - host_addr - host_addr_len - 2; int port_len = ptr - host_addr - host_addr_len - 2;
strncpy(port_str, host_addr + host_addr_len + 2, port_len); rt_strncpy(port_str, host_addr + host_addr_len + 2, port_len);
port_str[port_len] = '\0'; port_str[port_len] = '\0';
} }
@ -171,7 +171,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
{ {
char *port_ptr; char *port_ptr;
ptr = strstr(host_addr, "/"); ptr = rt_strstr(host_addr, "/");
if (!ptr) if (!ptr)
{ {
rc = -WEBCLIENT_ERROR; rc = -WEBCLIENT_ERROR;
@ -181,12 +181,12 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
*request = (char *) ptr; *request = (char *) ptr;
/* resolve port */ /* resolve port */
port_ptr = strstr(host_addr, ":"); port_ptr = rt_strstr(host_addr, ":");
if (port_ptr && port_ptr < ptr) if (port_ptr && port_ptr < ptr)
{ {
int port_len = ptr - port_ptr - 1; int port_len = ptr - port_ptr - 1;
strncpy(port_str, port_ptr + 1, port_len); rt_strncpy(port_str, port_ptr + 1, port_len);
port_str[port_len] = '\0'; port_str[port_len] = '\0';
host_addr_len = port_ptr - host_addr; host_addr_len = port_ptr - host_addr;
@ -226,7 +226,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a
struct addrinfo hint; struct addrinfo hint;
int ret; int ret;
memset(&hint, 0, sizeof(hint)); rt_memset(&hint, 0, sizeof(hint));
#ifdef WEBCLIENT_USING_TLS #ifdef WEBCLIENT_USING_TLS
if(session->tls_session) if(session->tls_session)
@ -459,7 +459,7 @@ int webclient_header_fields_add(struct webclient_session *session, const char *f
RT_ASSERT(session->header->buffer); RT_ASSERT(session->header->buffer);
va_start(args, fmt); va_start(args, fmt);
length = vsnprintf(session->header->buffer + session->header->length, length = rt_vsnprintf(session->header->buffer + session->header->length,
session->header->size - session->header->length, fmt, args); session->header->size - session->header->length, fmt, args);
if (length < 0) if (length < 0)
{ {
@ -500,12 +500,12 @@ const char *webclient_header_fields_get(struct webclient_session *session, const
resp_buf = session->header->buffer; resp_buf = session->header->buffer;
while (resp_buf_len < session->header->length) while (resp_buf_len < session->header->length)
{ {
if (strstr(resp_buf, fields)) if (rt_strstr(resp_buf, fields))
{ {
char *mime_ptr = RT_NULL; char *mime_ptr = RT_NULL;
/* jump space */ /* jump space */
mime_ptr = strstr(resp_buf, ":"); mime_ptr = rt_strstr(resp_buf, ":");
if (mime_ptr != NULL) if (mime_ptr != NULL)
{ {
mime_ptr += 1; mime_ptr += 1;
@ -520,8 +520,8 @@ const char *webclient_header_fields_get(struct webclient_session *session, const
if (*resp_buf == '\0') if (*resp_buf == '\0')
break; break;
resp_buf += strlen(resp_buf) + 1; resp_buf += rt_strlen(resp_buf) + 1;
resp_buf_len += strlen(resp_buf) + 1; resp_buf_len += rt_strlen(resp_buf) + 1;
} }
return RT_NULL; return RT_NULL;
@ -567,11 +567,11 @@ static int webclient_send_header(struct webclient_session *session, int method)
if (session->header->length == 0) if (session->header->length == 0)
{ {
/* use default header data */ /* use default header data */
if(webclient_header_fields_add(session, "GET %s HTTP/1.1\r\n", session->req_url) < 0) if (webclient_header_fields_add(session, "GET %s HTTP/1.1\r\n", session->req_url) < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
if(webclient_header_fields_add(session, "Host: %s\r\n", session->host) < 0) if (webclient_header_fields_add(session, "Host: %s\r\n", session->host) < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
if(webclient_header_fields_add(session, "User-Agent: RT-Thread HTTP Agent\r\n\r\n") < 0) if (webclient_header_fields_add(session, "User-Agent: RT-Thread HTTP Agent\r\n\r\n") < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
webclient_write(session, (unsigned char *) session->header->buffer, session->header->length); webclient_write(session, (unsigned char *) session->header->buffer, session->header->length);
@ -581,7 +581,7 @@ static int webclient_send_header(struct webclient_session *session, int method)
if (method != WEBCLIENT_USER_METHOD) if (method != WEBCLIENT_USER_METHOD)
{ {
/* check and add fields header data */ /* check and add fields header data */
if (memcmp(header, "HTTP/1.", strlen("HTTP/1."))) if (memcmp(header, "HTTP/1.", rt_strlen("HTTP/1.")))
{ {
char *header_buffer = RT_NULL; char *header_buffer = RT_NULL;
int length = 0; int length = 0;
@ -606,21 +606,21 @@ static int webclient_send_header(struct webclient_session *session, int method)
web_free(header_buffer); web_free(header_buffer);
} }
if (memcmp(header, "Host:", strlen("Host:"))) if (memcmp(header, "Host:", rt_strlen("Host:")))
{ {
if(webclient_header_fields_add(session, "Host: %s\r\n", session->host) < 0) if (webclient_header_fields_add(session, "Host: %s\r\n", session->host) < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
} }
if (memcmp(header, "User-Agent:", strlen("User-Agent:"))) if (memcmp(header, "User-Agent:", rt_strlen("User-Agent:")))
{ {
if(webclient_header_fields_add(session, "User-Agent: RT-Thread HTTP Agent\r\n") < 0) if (webclient_header_fields_add(session, "User-Agent: RT-Thread HTTP Agent\r\n") < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
} }
if (memcmp(header, "Accept:", strlen("Accept:"))) if (memcmp(header, "Accept:", rt_strlen("Accept:")))
{ {
if(webclient_header_fields_add(session, "Accept: */*\r\n") < 0) if (webclient_header_fields_add(session, "Accept: */*\r\n") < 0)
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
} }
@ -667,7 +667,7 @@ int webclient_handle_response(struct webclient_session *session)
RT_ASSERT(session); RT_ASSERT(session);
/* clean header buffer and size */ /* clean header buffer and size */
memset(session->header->buffer, 0x00, session->header->size); rt_memset(session->header->buffer, 0x00, session->header->size);
session->header->length = 0; session->header->length = 0;
/* We now need to read the header information */ /* We now need to read the header information */
@ -694,7 +694,7 @@ int webclient_handle_response(struct webclient_session *session)
session->header->length += rc; session->header->length += rc;
if(session->header->length >= session->header->size) if (session->header->length >= session->header->size)
{ {
LOG_E("not enough header buffer size(%d)!", session->header->size); LOG_E("not enough header buffer size(%d)!", session->header->size);
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
@ -703,17 +703,17 @@ int webclient_handle_response(struct webclient_session *session)
/* get HTTP status code */ /* get HTTP status code */
mime_ptr = web_strdup(session->header->buffer); mime_ptr = web_strdup(session->header->buffer);
if(mime_ptr == RT_NULL) if (mime_ptr == RT_NULL)
{ {
LOG_E("no memory for get http status code buffer!"); LOG_E("no memory for get http status code buffer!");
return -WEBCLIENT_NOMEM; return -WEBCLIENT_NOMEM;
} }
if(strstr(mime_ptr, "HTTP/1.")) if (rt_strstr(mime_ptr, "HTTP/1."))
{ {
char *ptr = mime_ptr; char *ptr = mime_ptr;
ptr += strlen("HTTP/1.x"); ptr += rt_strlen("HTTP/1.x");
while (*ptr && (*ptr == ' ' || *ptr == '\t')) while (*ptr && (*ptr == ' ' || *ptr == '\t'))
ptr++; ptr++;
@ -733,7 +733,7 @@ int webclient_handle_response(struct webclient_session *session)
session->content_remainder = session->content_length ? (size_t) session->content_length : 0xFFFFFFFF; session->content_remainder = session->content_length ? (size_t) session->content_length : 0xFFFFFFFF;
transfer_encoding = webclient_header_fields_get(session, "Transfer-Encoding"); transfer_encoding = webclient_header_fields_get(session, "Transfer-Encoding");
if (transfer_encoding && strcmp(transfer_encoding, "chunked") == 0) if (transfer_encoding && rt_strcmp(transfer_encoding, "chunked") == 0)
{ {
char line[16]; char line[16];
@ -954,7 +954,7 @@ int webclient_post(struct webclient_session *session, const char *URI, const cha
if (post_data) if (post_data)
{ {
webclient_write(session, (unsigned char *) post_data, strlen(post_data)); webclient_write(session, (unsigned char *) post_data, rt_strlen(post_data));
/* resolve response data, get http status code */ /* resolve response data, get http status code */
resp_status = webclient_handle_response(session); resp_status = webclient_handle_response(session);
@ -1006,7 +1006,7 @@ static int webclient_next_chunk(struct webclient_session *session)
length = webclient_read_line(session, line, sizeof(line)); length = webclient_read_line(session, line, sizeof(line));
if (length > 0) if (length > 0)
{ {
if (strcmp(line, "\r") == 0) if (rt_strcmp(line, "\r") == 0)
{ {
length = webclient_read_line(session, line, sizeof(line)); length = webclient_read_line(session, line, sizeof(line));
if (length <= 0) if (length <= 0)
@ -1428,7 +1428,7 @@ int webclient_request(const char *URI, const char *header, const char *post_data
if (header != RT_NULL) if (header != RT_NULL)
{ {
strncpy(session->header->buffer, header, strlen(header)); rt_strncpy(session->header->buffer, header, rt_strlen(header));
} }
if (webclient_get(session, URI) != 200) if (webclient_get(session, URI) != 200)
@ -1455,7 +1455,7 @@ int webclient_request(const char *URI, const char *header, const char *post_data
if (header != RT_NULL) if (header != RT_NULL)
{ {
strncpy(session->header->buffer, header, strlen(header)); rt_strncpy(session->header->buffer, header, rt_strlen(header));
} }
if (webclient_post(session, URI, post_data) != 200) if (webclient_post(session, URI, post_data) != 200)
@ -1467,7 +1467,7 @@ int webclient_request(const char *URI, const char *header, const char *post_data
if (header != RT_NULL) if (header != RT_NULL)
{ {
strncpy(session->header->buffer, header, strlen(header)); rt_strncpy(session->header->buffer, header, rt_strlen(header));
} }
__exit: __exit:

@ -194,7 +194,7 @@ int webclient_post_file(const char* URI, const char* filename,
"Content-Type: application/octet-stream\r\n\r\n"); "Content-Type: application/octet-stream\r\n\r\n");
/* calculate content-length */ /* calculate content-length */
length += buffer_ptr - buffer; length += buffer_ptr - buffer;
length += strlen(boundary) + 6; /* add the last boundary */ length += rt_strlen(boundary) + 6; /* add the last boundary */
/* build header for upload */ /* build header for upload */
header_ptr += rt_snprintf(header_ptr, header_ptr += rt_snprintf(header_ptr,
@ -236,7 +236,7 @@ int webclient_post_file(const char* URI, const char* filename,
/* send last boundary */ /* send last boundary */
rt_snprintf((char*) buffer, WEBCLIENT_RESPONSE_BUFSZ, "\r\n--%s--\r\n", boundary); rt_snprintf((char*) buffer, WEBCLIENT_RESPONSE_BUFSZ, "\r\n--%s--\r\n", boundary);
webclient_write(session, buffer, strlen(boundary) + 6); webclient_write(session, buffer, rt_strlen(boundary) + 6);
__exit: __exit:
if (fd >= 0) if (fd >= 0)

Loading…
Cancel
Save