http: remove hack for old libwebsocket versions

This commit is contained in:
Shuanglei Tao
2019-06-20 22:14:58 +08:00
parent 5dfcb8dd3e
commit 7901265f52
2 changed files with 9 additions and 18 deletions

View File

@@ -97,16 +97,12 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user, voi
return 1; return 1;
if (lws_write(wsi, buffer + LWS_PRE, p - (buffer + LWS_PRE), LWS_WRITE_HTTP_HEADERS) < 0) if (lws_write(wsi, buffer + LWS_PRE, p - (buffer + LWS_PRE), LWS_WRITE_HTTP_HEADERS) < 0)
return 1; return 1;
#if LWS_LIBRARY_VERSION_MAJOR < 3
if (n > 0 && lws_write_http(wsi, buf, n) < 0)
return 1;
#else
if (n > 0) { if (n > 0) {
pss->buffer = pss->ptr = strdup(buf); pss->buffer = pss->ptr = strdup(buf);
pss->len = n; pss->len = n;
lws_callback_on_writable(wsi); lws_callback_on_writable(wsi);
break;
} }
#endif
goto try_to_reuse; goto try_to_reuse;
} }
@@ -131,16 +127,9 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user, voi
return 1; return 1;
if (lws_write(wsi, buffer + LWS_PRE, p - (buffer + LWS_PRE), LWS_WRITE_HTTP_HEADERS) < 0) if (lws_write(wsi, buffer + LWS_PRE, p - (buffer + LWS_PRE), LWS_WRITE_HTTP_HEADERS) < 0)
return 1; return 1;
#if LWS_LIBRARY_VERSION_MAJOR < 3
if (lws_write_http(wsi, index_html, index_html_len) < 0)
return 1;
goto try_to_reuse;
#else
pss->buffer = pss->ptr = (char *) index_html; pss->buffer = pss->ptr = (char *) index_html;
pss->len = index_html_len; pss->len = index_html_len;
lws_callback_on_writable(wsi); lws_callback_on_writable(wsi);
return 0;
#endif
} }
break; break;

View File

@@ -312,22 +312,24 @@ callback_tty(struct lws *wsi, enum lws_callback_reasons reason,
break; break;
} }
if (send_initial_message(wsi, client->initial_cmd_index) < 0) { if (send_initial_message(wsi, client->initial_cmd_index) < 0) {
lwsl_err("failed to send initial message, index: %d\n", client->initial_cmd_index);
lws_close_reason(wsi, LWS_CLOSE_STATUS_UNEXPECTED_CONDITION, NULL, 0); lws_close_reason(wsi, LWS_CLOSE_STATUS_UNEXPECTED_CONDITION, NULL, 0);
return -1; return -1;
} }
client->initial_cmd_index++; client->initial_cmd_index++;
lws_callback_on_writable(wsi); lws_callback_on_writable(wsi);
return 0; break;
} }
if (client->state != STATE_READY) if (client->state != STATE_READY)
break; break;
// read error or client exited, close connection // read error or client exited, close connection
if (client->pty_len <= 0) { if (client->pty_len == 0) {
lws_close_reason(wsi, lws_close_reason(wsi, LWS_CLOSE_STATUS_NORMAL, NULL, 0);
client->pty_len == 0 ? LWS_CLOSE_STATUS_NORMAL return 1;
: LWS_CLOSE_STATUS_UNEXPECTED_CONDITION, } else if (client->pty_len < 0) {
NULL, 0); lwsl_err("read error: %d (%s)\n", errno, strerror(errno));
lws_close_reason(wsi, LWS_CLOSE_STATUS_UNEXPECTED_CONDITION, NULL, 0);
return -1; return -1;
} }