make ah available in http callback properly
Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
parent
cc13c6f187
commit
84fd949e05
2 changed files with 13 additions and 7 deletions
|
@ -137,9 +137,12 @@ libwebsocket_read(struct libwebsocket_context *context,
|
|||
|
||||
/* union transition */
|
||||
memset(&wsi->u, 0, sizeof(wsi->u));
|
||||
|
||||
wsi->mode = LWS_CONNMODE_HTTP_SERVING_ACCEPTED;
|
||||
wsi->state = WSI_STATE_HTTP;
|
||||
|
||||
/* expose it at the same offset as u.hdr */
|
||||
wsi->u.http.ah = ah;
|
||||
|
||||
n = 0;
|
||||
if (wsi->protocol->callback)
|
||||
n = wsi->protocol->callback(context, wsi,
|
||||
|
@ -149,6 +152,8 @@ libwebsocket_read(struct libwebsocket_context *context,
|
|||
/* now drop the header info we kept a pointer to */
|
||||
if (ah)
|
||||
free(ah);
|
||||
/* not possible to continue to use past here */
|
||||
wsi->u.http.ah = NULL;
|
||||
|
||||
if (n) {
|
||||
lwsl_info("LWS_CALLBACK_HTTP closing\n");
|
||||
|
|
|
@ -306,12 +306,6 @@ struct libwebsocket_context {
|
|||
* other APIs to get information out of it.
|
||||
*/
|
||||
|
||||
struct _lws_http_mode_related {
|
||||
int fd;
|
||||
unsigned long filepos;
|
||||
unsigned long filelen;
|
||||
};
|
||||
|
||||
struct lws_fragments {
|
||||
unsigned short offset;
|
||||
unsigned short len;
|
||||
|
@ -330,6 +324,13 @@ struct allocated_headers {
|
|||
#endif
|
||||
};
|
||||
|
||||
struct _lws_http_mode_related {
|
||||
struct allocated_headers *ah; /* mirroring _lws_header_related */
|
||||
int fd;
|
||||
unsigned long filepos;
|
||||
unsigned long filelen;
|
||||
};
|
||||
|
||||
struct _lws_header_related {
|
||||
struct allocated_headers *ah;
|
||||
short lextable_pos;
|
||||
|
|
Loading…
Add table
Reference in a new issue