Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1745821645, "reponame":"libwebsockets", "desc":"libwebsockets lightweight C networking library", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets", "f":3, "items": [ {"schema":"libjg2-1", "cid":"b1f711d6caf279ddb1515aee6eefa354", "commit": {"type":"commit", "time": 1591083430, "time_ofs": 60, "oid_tree": { "oid": "59c796ee00b54b84da907306bc1f0a3d4e1a6258", "alias": []}, "oid":{ "oid": "9bf1392b1340ebc11b756b33b52d284347373d3c", "alias": []}, "msg": "ss: http: allow rideshare to gate EOM", "sig_commit": { "git_time": { "time": 1591083430, "offset": 60 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }, "sig_author": { "git_time": { "time": 1590667796, "offset": 60 }, "name": "Jed Lu", "email": "jianlu@amazon.com", "md5": "ce74f834db5eb16ad715cc95ced04f1f" }}, "body": "ss: http: allow rideshare to gate EOM\n\nWhen rideshare is in use, the scope of the EOM is the rideshare section." , "diff": "diff --git a/lib/secure-streams/protocols/ss-h1.c b/lib/secure-streams/protocols/ss-h1.c\nindex 4d1568b..b75c5b8 100644\n--- a/lib/secure-streams/protocols/ss-h1.c\n+++ b/lib/secure-streams/protocols/ss-h1.c\n@@ -27,6 +27,10 @@\n #include \u003cprivate-lib-core.h\u003e\n \n #if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#define LWS_WITH_SS_RIDESHARE\n+#endif\n+\n+#if defined(LWS_WITH_SS_RIDESHARE)\n static int\n ss_http_multipart_parser(lws_ss_handle_t *h, void *in, size_t len)\n {\n@@ -163,6 +167,7 @@ secstream_h1(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \tuint8_t buf[LWS_PRE + 1520], *p \u003d \u0026buf[LWS_PRE],\n \t\t*end \u003d \u0026buf[sizeof(buf) - 1];\n \tint f \u003d 0, m, status, txr;\n+\tchar conceal_eom \u003d 0;\n \tsize_t buflen;\n \n \tswitch (reason) {\n@@ -235,7 +240,7 @@ secstream_h1(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t */\n \t\tlws_validity_confirmed(wsi);\n \n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n \n \t\tif (lws_hdr_copy(wsi, (char *)buf, sizeof(buf),\n \t\t\t\t WSI_TOKEN_HTTP_CONTENT_TYPE) \u003e 0 \u0026\u0026\n@@ -397,7 +402,7 @@ malformed:\n \t\tif (!h)\n \t\t\treturn 0;\n \n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n \t\tif (h-\u003eu.http.boundary[0])\n \t\t\treturn ss_http_multipart_parser(h, in, len);\n #endif\n@@ -455,7 +460,7 @@ malformed:\n \t\tif (!h-\u003erideshare)\n \t\t\th-\u003erideshare \u003d h-\u003epolicy;\n \n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n \t\tif (!h-\u003einside_msg \u0026\u0026 h-\u003erideshare-\u003eu.http.multipart_name)\n \t\t\tlws_client_http_multipart(wsi,\n \t\t\t\th-\u003erideshare-\u003eu.http.multipart_name,\n@@ -486,19 +491,21 @@ malformed:\n \t\tp +\u003d buflen;\n \n \t\tif (f \u0026 LWSSS_FLAG_EOM) {\n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n+\t\t\tconceal_eom \u003d 1;\n \t\t\t/* end of rideshares */\n \t\t\tif (!h-\u003erideshare-\u003erideshare_streamtype) {\n \t\t\t\tlws_client_http_body_pending(wsi, 0);\n \t\t\t\tif (h-\u003erideshare-\u003eu.http.multipart_name)\n \t\t\t\t\tlws_client_http_multipart(wsi, NULL, NULL, NULL,\n \t\t\t\t\t\t(char **)\u0026p, (char *)end);\n+\t\t\t\tconceal_eom \u003d 0;\n \t\t\t} else {\n #endif\n \t\t\t\th-\u003erideshare \u003d lws_ss_policy_lookup(wsi-\u003econtext,\n \t\t\t\t\t\th-\u003erideshare-\u003erideshare_streamtype);\n \t\t\t\tlws_callback_on_writable(wsi);\n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n \t\t\t}\n #endif\n \n@@ -515,7 +522,8 @@ malformed:\n \t\t\t lws_ptr_diff(p, buf + LWS_PRE), f);\n \n \t\tif (lws_write(wsi, buf + LWS_PRE, lws_ptr_diff(p, buf + LWS_PRE),\n-\t\t\t (f \u0026 LWSSS_FLAG_EOM) ? LWS_WRITE_HTTP_FINAL : LWS_WRITE_HTTP) !\u003d\n+\t\t\t (!conceal_eom \u0026\u0026 (f \u0026 LWSSS_FLAG_EOM)) ?\n+\t\t\t\t LWS_WRITE_HTTP_FINAL : LWS_WRITE_HTTP) !\u003d\n \t\t\t\t(int)lws_ptr_diff(p, buf + LWS_PRE)) {\n \t\t\tlwsl_err(\u0022%s: write failed\u005cn\u0022, __func__);\n \t\t\treturn -1;\n@@ -564,7 +572,7 @@ secstream_connect_munge_h1(lws_ss_handle_t *h, char *buf, size_t len,\n \tif (!pbasis)\n \t\treturn 0;\n \n-#if !defined(LWS_PLAT_FREERTOS) || defined(LWS_ROLE_H2)\n+#if defined(LWS_WITH_SS_RIDESHARE)\n \tif (h-\u003epolicy-\u003eflags \u0026 LWSSSPOLF_HTTP_MULTIPART)\n \t\ti-\u003essl_connection |\u003d LCCSCF_HTTP_MULTIPART_MIME;\n \n","s":{"c":1745821645,"u": 3079}} ],"g": 4080,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}