projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Duplicate header file.
[bertos.git]
/
bertos
/
net
/
http.c
diff --git
a/bertos/net/http.c
b/bertos/net/http.c
index 15b4b13d6b9ceeefc0235a0282aca7aaa18f343d..e7ffd7eb6a76858a2cf10a483598e1e953f7ad17 100644
(file)
--- a/
bertos/net/http.c
+++ b/
bertos/net/http.c
@@
-101,8
+101,7
@@
int http_getValue(char *tolenized_buf, size_t tolenized_buf_len, const char *key
/* skip key */
p += token_len + 1;
/* skip key */
p += token_len + 1;
- http_decodeUrl(p, strlen(p), decoded_str, sizeof(decoded_str));
- value_len = strlen(decoded_str);
+ value_len = http_decodeUrl(p, strlen(p), decoded_str, sizeof(decoded_str));
if (value_len >= len)
return -1;
if (value_len >= len)
return -1;
@@
-150,17
+149,18
@@
static char http_hexToAscii(char first, char second)
return strtol(hex, &stop, 16);
}
return strtol(hex, &stop, 16);
}
-
void
http_decodeUrl(const char *raw_buf, size_t raw_len, char *decodec_buf, size_t len)
+
size_t
http_decodeUrl(const char *raw_buf, size_t raw_len, char *decodec_buf, size_t len)
{
ASSERT(decodec_buf);
char value;
{
ASSERT(decodec_buf);
char value;
+ size_t i;
memset(decodec_buf, 0, len);
memset(decodec_buf, 0, len);
- for (
size_t
i = 0; i < raw_len; i++)
+ for (i = 0; i < raw_len; i++)
{
{
- if (
!len
)
- return;
+ if (
len <= 1
)
+ return
i
;
if (raw_buf[i] == '%')
{
if (raw_buf[i] == '%')
{
@@
-183,6
+183,8
@@
void http_decodeUrl(const char *raw_buf, size_t raw_len, char *decodec_buf, size
*decodec_buf++ = (raw_buf[i] == '+' ? ' ' : raw_buf[i]);
len--;
}
*decodec_buf++ = (raw_buf[i] == '+' ? ' ' : raw_buf[i]);
len--;
}
+
+ return i;
}
void http_getPageName(const char *recv_buf, size_t recv_len, char *page_name, size_t len)
}
void http_getPageName(const char *recv_buf, size_t recv_len, char *page_name, size_t len)
@@
-219,7
+221,7
@@
void http_getPageName(const char *recv_buf, size_t recv_len, char *page_name, si
INLINE const char *get_ext(const char *name)
{
const char *ext = strstr(name, ".");
INLINE const char *get_ext(const char *name)
{
const char *ext = strstr(name, ".");
- if(
ext && (ext + 1
))
+ if(
(ext != NULL) && ((ext + 1) != '\0'
))
return (ext + 1);
return NULL;
return (ext + 1);
return NULL;
@@
-257,9
+259,9
@@
void http_sendOk(struct netconn *client, int content_type)
{
ASSERT(content_type < HTTP_CONTENT_CNT);
{
ASSERT(content_type < HTTP_CONTENT_CNT);
- netconn_write(client, http_html_hdr_200, sizeof(http_html_hdr_200) - 1, NETCONN_COPY);
+ netconn_write(client, http_html_hdr_200, sizeof(http_html_hdr_200) - 1, NETCONN_
NO
COPY);
netconn_write(client, http_content_type[content_type].content,
netconn_write(client, http_content_type[content_type].content,
- strlen(http_content_type[content_type].content), NETCONN_COPY);
+ strlen(http_content_type[content_type].content), NETCONN_
NO
COPY);
}
}
@@
-271,9
+273,9
@@
void http_sendFileNotFound(struct netconn *client, int content_type)
{
ASSERT(content_type < HTTP_CONTENT_CNT);
{
ASSERT(content_type < HTTP_CONTENT_CNT);
- netconn_write(client, http_html_hdr_404, sizeof(http_html_hdr_404) - 1, NETCONN_COPY);
+ netconn_write(client, http_html_hdr_404, sizeof(http_html_hdr_404) - 1, NETCONN_
NO
COPY);
netconn_write(client, http_content_type[content_type].content,
netconn_write(client, http_content_type[content_type].content,
- strlen(http_content_type[content_type].content), NETCONN_COPY);
+ strlen(http_content_type[content_type].content), NETCONN_
NO
COPY);
}
/**
}
/**
@@
-284,9
+286,9
@@
void http_sendInternalErr(struct netconn *client, int content_type)
{
ASSERT(content_type < HTTP_CONTENT_CNT);
{
ASSERT(content_type < HTTP_CONTENT_CNT);
- netconn_write(client, http_html_hdr_500, sizeof(http_html_hdr_500) - 1, NETCONN_COPY);
+ netconn_write(client, http_html_hdr_500, sizeof(http_html_hdr_500) - 1, NETCONN_
NO
COPY);
netconn_write(client, http_content_type[content_type].content,
netconn_write(client, http_content_type[content_type].content,
- strlen(http_content_type[content_type].content), NETCONN_COPY);
+ strlen(http_content_type[content_type].content), NETCONN_
NO
COPY);
}
static http_handler_t cgi_search(const char *name, HttpCGI *table)
}
static http_handler_t cgi_search(const char *name, HttpCGI *table)