Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
a592af7a
Commit
a592af7a
authored
Jan 04, 2017
by
Yury Popov
Committed by
Arnim Läuger
Jan 04, 2017
Browse files
Depend http client secure part on CLIENT_SSL_ENABLE (#1702)
parent
cad1632e
Changes
1
Show whitespace changes
Inline
Side-by-side
app/http/httpclient.c
View file @
a592af7a
...
...
@@ -27,7 +27,9 @@
typedef
struct
request_args_t
{
char
*
hostname
;
int
port
;
#ifdef CLIENT_SSL_ENABLE
bool
secure
;
#endif
char
*
method
;
char
*
path
;
char
*
headers
;
...
...
@@ -140,9 +142,11 @@ static void ICACHE_FLASH_ATTR http_receive_callback( void * arg, char * buf, uns
{
HTTPCLIENT_ERR
(
"Response too long (%d)"
,
new_size
);
req
->
buffer
[
0
]
=
'\0'
;
/* Discard the buffer to avoid using an incomplete response. */
#ifdef CLIENT_SSL_ENABLE
if
(
req
->
secure
)
espconn_secure_disconnect
(
conn
);
else
#endif
espconn_disconnect
(
conn
);
return
;
/* The disconnect callback will be called. */
}
...
...
@@ -170,9 +174,11 @@ static void ICACHE_FLASH_ATTR http_send_callback( void * arg )
{
/* The headers were sent, now send the contents. */
HTTPCLIENT_DEBUG
(
"Sending request body"
);
#ifdef CLIENT_SSL_ENABLE
if
(
req
->
secure
)
espconn_secure_send
(
conn
,
(
uint8_t
*
)
req
->
post_data
,
strlen
(
req
->
post_data
)
);
else
#endif
espconn_send
(
conn
,
(
uint8_t
*
)
req
->
post_data
,
strlen
(
req
->
post_data
)
);
os_free
(
req
->
post_data
);
req
->
post_data
=
NULL
;
...
...
@@ -213,7 +219,11 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg )
int
host_len
=
0
;
if
(
os_strstr
(
req
->
headers
,
"Host:"
)
==
NULL
&&
os_strstr
(
req
->
headers
,
"host:"
)
==
NULL
)
{
if
((
req
->
port
==
80
)
||
((
req
->
port
==
443
)
&&
(
req
->
secure
)))
if
((
req
->
port
==
80
)
#ifdef CLIENT_SSL_ENABLE
||
((
req
->
port
==
443
)
&&
(
req
->
secure
))
#endif
)
{
os_sprintf
(
host_header
,
"Host: %s
\r\n
"
,
req
->
hostname
);
}
...
...
@@ -236,11 +246,13 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg )
"
\r\n
"
,
req
->
method
,
req
->
path
,
host_header
,
req
->
headers
,
ua_header
,
post_headers
);
#ifdef CLIENT_SSL_ENABLE
if
(
req
->
secure
)
{
espconn_secure_send
(
conn
,
(
uint8_t
*
)
buf
,
len
);
}
else
#endif
{
espconn_send
(
conn
,
(
uint8_t
*
)
buf
,
len
);
}
...
...
@@ -343,8 +355,13 @@ static void ICACHE_FLASH_ATTR http_disconnect_callback( void * arg )
req
->
post_data
,
req
->
callback_handle
,
req
->
redirect_follow_count
);
}
else
{
if
(
os_strncmp
(
locationOffset
,
"/"
,
1
)
==
0
)
{
// relative and full path
http_raw_request
(
req
->
hostname
,
req
->
port
,
req
->
secure
,
req
->
method
,
locationOffset
,
req
->
headers
,
req
->
post_data
,
req
->
callback_handle
,
req
->
redirect_follow_count
);
http_raw_request
(
req
->
hostname
,
req
->
port
,
#ifdef CLIENT_SSL_ENABLE
req
->
secure
,
#else
0
,
#endif
req
->
method
,
locationOffset
,
req
->
headers
,
req
->
post_data
,
req
->
callback_handle
,
req
->
redirect_follow_count
);
}
else
{
// relative and relative path
// find last /
...
...
@@ -360,8 +377,13 @@ static void ICACHE_FLASH_ATTR http_disconnect_callback( void * arg )
os_memcpy
(
completeRelativePath
,
req
->
path
,
pathFolderLength
);
os_memcpy
(
completeRelativePath
+
pathFolderLength
,
locationOffset
,
locationLength
);
http_raw_request
(
req
->
hostname
,
req
->
port
,
req
->
secure
,
req
->
method
,
completeRelativePath
,
req
->
headers
,
req
->
post_data
,
req
->
callback_handle
,
req
->
redirect_follow_count
);
http_raw_request
(
req
->
hostname
,
req
->
port
,
#ifdef CLIENT_SSL_ENABLE
req
->
secure
,
#else
0
,
#endif
req
->
method
,
completeRelativePath
,
req
->
headers
,
req
->
post_data
,
req
->
callback_handle
,
req
->
redirect_follow_count
);
os_free
(
completeRelativePath
);
}
...
...
@@ -437,9 +459,11 @@ static void ICACHE_FLASH_ATTR http_timeout_callback( void *arg )
}
request_args_t
*
req
=
(
request_args_t
*
)
conn
->
reverse
;
/* Call disconnect */
#ifdef CLIENT_SSL_ENABLE
if
(
req
->
secure
)
espconn_secure_disconnect
(
conn
);
else
#endif
espconn_disconnect
(
conn
);
}
...
...
@@ -487,11 +511,13 @@ static void ICACHE_FLASH_ATTR http_dns_callback( const char * hostname, ip_addr_
os_timer_setfn
(
&
(
req
->
timeout_timer
),
(
os_timer_func_t
*
)
http_timeout_callback
,
conn
);
os_timer_arm
(
&
(
req
->
timeout_timer
),
req
->
timeout
,
false
);
#ifdef CLIENT_SSL_ENABLE
if
(
req
->
secure
)
{
espconn_secure_connect
(
conn
);
}
else
#endif
{
espconn_connect
(
conn
);
}
...
...
@@ -506,7 +532,9 @@ void ICACHE_FLASH_ATTR http_raw_request( const char * hostname, int port, bool s
request_args_t
*
req
=
(
request_args_t
*
)
os_zalloc
(
sizeof
(
request_args_t
)
);
req
->
hostname
=
esp_strdup
(
hostname
);
req
->
port
=
port
;
#ifdef CLIENT_SSL_ENABLE
req
->
secure
=
secure
;
#endif
req
->
method
=
esp_strdup
(
method
);
req
->
path
=
esp_strdup
(
path
);
req
->
headers
=
esp_strdup
(
headers
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment