{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1746162386,
"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":"28ef43a9270e8cf25913973b586fbba1",
"commit": {"type":"commit",
"time": 1609844198,
"time_ofs": 0,
"oid_tree": { "oid": "e2f2f71e241a9717445c3eedb57abc332ecfc2a6", "alias": []},
"oid":{ "oid": "c9731c5f1730f10dde30713834032b56eac74c4b", "alias": []},
"msg": "type comparisons: fixes",
"sig_commit": { "git_time": { "time": 1609844198, "offset": 0 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },
"sig_author": { "git_time": { "time": 1607754100, "offset": 0 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }},
"body": "type comparisons: fixes\n\nThis is a huge patch that should be a global NOP.\n\nFor unix type platforms it enables -Wconversion to issue warnings (-\u003e error)\nfor all automatic casts that seem less than ideal but are normally concealed\nby the toolchain.\n\nThis is things like passing an int to a size_t argument. Once enabled, I\nwent through all args on my default build (which build most things) and\ntried to make the removed default cast explicit.\n\nWith that approach it neither change nor bloat the code, since it compiles\nto whatever it was doing before, just with the casts made explicit... in a\nfew cases I changed some length args from int to size_t but largely left\nthe causes alone.\n\nFrom now on, new code that is relying on less than ideal casting\nwill complain and nudge me to improve it by warnings.\n"
,
"diff": "diff --git a/CMakeLists.txt b/CMakeLists.txt\nindex 68d2f11..90cecc8 100644\n--- a/CMakeLists.txt\n+++ b/CMakeLists.txt\n@@ -657,6 +657,12 @@ CHECK_C_SOURCE_COMPILES(\u0022#include \u003clinux/rtnetlink.h\u003e\n \t\treturn 0;\n \t}\u0022 LWS_HAVE_RTA_PREF)\n \n+CHECK_C_SOURCE_COMPILES(\u0022#include \u003csys/types.h\u003e\n+\tint main(void) {\n+\t\tsuseconds_t x \u003d 0;\n+\t\treturn (int)x;\n+\t}\u0022 LWS_HAVE_SUSECONDS_T)\n+\n if (NOT PID_T_SIZE)\n \tset(pid_t int)\n endif()\n@@ -722,7 +728,7 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)\n \n \t# always warn all and generate debug info\n \tif (UNIX AND NOT LWS_PLAT_FREERTOS)\n-\t\tset(CMAKE_C_FLAGS \u0022-Wall -Wsign-compare -Wstrict-aliasing ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS} ${ASAN_FLAGS}\u0022 )\n+\t\tset(CMAKE_C_FLAGS \u0022-Wall -Wconversion -Wsign-compare -Wstrict-aliasing ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS} ${ASAN_FLAGS}\u0022 )\n \telse()\n \t\tset(CMAKE_C_FLAGS \u0022-Wall -Wsign-compare ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}\u0022 )\n \tendif()\ndiff --git a/cmake/lws_config.h.in b/cmake/lws_config.h.in\nindex 2c12a61..55b3679 100644\n--- a/cmake/lws_config.h.in\n+++ b/cmake/lws_config.h.in\n@@ -87,6 +87,7 @@\n #cmakedefine LWS_HAVE_SYS_CAPABILITY_H\n #cmakedefine LWS_HAVE_TLS_CLIENT_METHOD\n #cmakedefine LWS_HAVE_TLSV1_2_CLIENT_METHOD\n+#cmakedefine LWS_HAVE_SUSECONDS_T\n #cmakedefine LWS_HAVE_UV_VERSION_H\n #cmakedefine LWS_HAVE_VFORK\n #cmakedefine LWS_HAVE_X509_get_key_usage\ndiff --git a/include/libwebsockets.h b/include/libwebsockets.h\nindex 18cbe61..764b6b1 100644\n--- a/include/libwebsockets.h\n+++ b/include/libwebsockets.h\n@@ -88,6 +88,14 @@ typedef unsigned long long lws_intptr_t;\n #define O_RDONLY\t_O_RDONLY\n #endif\n \n+typedef int uid_t;\n+typedef int gid_t;\n+typedef unsigned short sa_family_t;\n+#if !defined(LWS_HAVE_SUSECONDS_T)\n+typedef unsigned int useconds_t;\n+typedef int suseconds_t;\n+#endif\n+\n #define LWS_INLINE __inline\n #define LWS_VISIBLE\n #define LWS_WARN_UNUSED_RESULT\ndiff --git a/include/libwebsockets/lws-context-vhost.h b/include/libwebsockets/lws-context-vhost.h\nindex d23d499..796cc47 100644\n--- a/include/libwebsockets/lws-context-vhost.h\n+++ b/include/libwebsockets/lws-context-vhost.h\n@@ -563,10 +563,10 @@ struct lws_context_creation_info {\n \t * 0 defaults to 10s. */\n #endif /* WITH_NETWORK */\n \n-\tint gid;\n+\tgid_t gid;\n \t/**\u003c CONTEXT: group id to change to after setting listen socket,\n \t * or -1. See also .username below. */\n-\tint uid;\n+\tuid_t uid;\n \t/**\u003c CONTEXT: user id to change to after setting listen socket,\n \t * or -1. See also .groupname below. */\n \tuint64_t options;\ndiff --git a/include/libwebsockets/lws-diskcache.h b/include/libwebsockets/lws-diskcache.h\nindex bec8082..ebca888 100644\n--- a/include/libwebsockets/lws-diskcache.h\n+++ b/include/libwebsockets/lws-diskcache.h\n@@ -100,7 +100,7 @@ lws_diskcache_destroy(struct lws_diskcache_scan **lds);\n * will transition to use when it drops root privileges.\n */\n LWS_VISIBLE LWS_EXTERN int\n-lws_diskcache_prepare(const char *cache_base_dir, int mode, int uid);\n+lws_diskcache_prepare(const char *cache_base_dir, int mode, uid_t uid);\n \n #define LWS_DISKCACHE_QUERY_NO_CACHE\t0\n #define LWS_DISKCACHE_QUERY_EXISTS\t1\ndiff --git a/include/libwebsockets/lws-http.h b/include/libwebsockets/lws-http.h\nindex 313af1d..c2f0e57 100644\n--- a/include/libwebsockets/lws-http.h\n+++ b/include/libwebsockets/lws-http.h\n@@ -954,7 +954,7 @@ lws_http_cookie_get(struct lws *wsi, const char *name, char *buf, size_t *max);\n */\n #define LWS_H2_STREAM_SID -1\n LWS_VISIBLE LWS_EXTERN int\n-lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump);\n+lws_h2_update_peer_txcredit(struct lws *wsi, unsigned int sid, int bump);\n \n \n /**\ndiff --git a/include/libwebsockets/lws-logs.h b/include/libwebsockets/lws-logs.h\nindex f1c91b1..422bbeb 100644\n--- a/include/libwebsockets/lws-logs.h\n+++ b/include/libwebsockets/lws-logs.h\n@@ -59,7 +59,7 @@\n * returns length written in p\n */\n LWS_VISIBLE LWS_EXTERN int\n-lwsl_timestamp(int level, char *p, int len);\n+lwsl_timestamp(int level, char *p, size_t len);\n \n #if defined(LWS_PLAT_OPTEE) \u0026\u0026 !defined(LWS_WITH_NETWORK)\n #define _lws_log(aaa, ...) SMSG(__VA_ARGS__)\ndiff --git a/include/libwebsockets/lws-lwsac.h b/include/libwebsockets/lws-lwsac.h\nindex fd8735c..2295039 100644\n--- a/include/libwebsockets/lws-lwsac.h\n+++ b/include/libwebsockets/lws-lwsac.h\n@@ -229,7 +229,7 @@ lwsac_unreference(struct lwsac **head);\n * cases\n */\n LWS_VISIBLE LWS_EXTERN int\n-lwsac_extend(struct lwsac *head, int amount);\n+lwsac_extend(struct lwsac *head, size_t amount);\n \n /* helpers to keep a file cached in memory */\n \ndiff --git a/include/libwebsockets/lws-misc.h b/include/libwebsockets/lws-misc.h\nindex fe139fe..98c8029 100644\n--- a/include/libwebsockets/lws-misc.h\n+++ b/include/libwebsockets/lws-misc.h\n@@ -542,7 +542,7 @@ lws_get_child(const struct lws *wsi);\n * and subdir creation / permissions down /var/cache dynamically.\n */\n LWS_VISIBLE LWS_EXTERN void\n-lws_get_effective_uid_gid(struct lws_context *context, int *uid, int *gid);\n+lws_get_effective_uid_gid(struct lws_context *context, uid_t *uid, gid_t *gid);\n \n /**\n * lws_get_udp() - get wsi's udp struct\n@@ -871,7 +871,7 @@ LWS_VISIBLE extern const lws_humanize_unit_t humanize_schema_us[8];\n */\n \n LWS_VISIBLE LWS_EXTERN int\n-lws_humanize(char *buf, int len, uint64_t value,\n+lws_humanize(char *buf, size_t len, uint64_t value,\n \t const lws_humanize_unit_t *schema);\n \n LWS_VISIBLE LWS_EXTERN void\ndiff --git a/include/libwebsockets/lws-purify.h b/include/libwebsockets/lws-purify.h\nindex 09849f7..68acc60 100644\n--- a/include/libwebsockets/lws-purify.h\n+++ b/include/libwebsockets/lws-purify.h\n@@ -41,7 +41,7 @@\n * possible to do it in-place, ie, with escaped \u003d\u003d string\n */\n LWS_VISIBLE LWS_EXTERN const char *\n-lws_sql_purify(char *escaped, const char *string, int len);\n+lws_sql_purify(char *escaped, const char *string, size_t len);\n \n /**\n * lws_sql_purify_len() - return length of purified version of input string\n@@ -93,12 +93,12 @@ lws_filename_purify_inplace(char *filename);\n \n LWS_VISIBLE LWS_EXTERN int\n lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n-\t\t\tint len);\n+\t\t\tsize_t len);\n LWS_VISIBLE LWS_EXTERN int\n-lws_plat_write_file(const char *filename, void *buf, int len);\n+lws_plat_write_file(const char *filename, void *buf, size_t len);\n \n LWS_VISIBLE LWS_EXTERN int\n-lws_plat_read_file(const char *filename, void *buf, int len);\n+lws_plat_read_file(const char *filename, void *buf, size_t len);\n \n LWS_VISIBLE LWS_EXTERN int\n lws_plat_recommended_rsa_bits(void);\ndiff --git a/include/libwebsockets/lws-writeable.h b/include/libwebsockets/lws-writeable.h\nindex 7f84d4c..8848911 100644\n--- a/include/libwebsockets/lws-writeable.h\n+++ b/include/libwebsockets/lws-writeable.h\n@@ -166,7 +166,7 @@ lws_callback_all_protocol_vhost_args(struct lws_vhost *vh,\n * wsi.\n */\n LWS_VISIBLE LWS_EXTERN int\n-lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len)\n+lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, size_t len)\n LWS_WARN_DEPRECATED;\n \n /**\ndiff --git a/lib/core-net/adopt.c b/lib/core-net/adopt.c\nindex 876548c..2427d30 100644\n--- a/lib/core-net/adopt.c\n+++ b/lib/core-net/adopt.c\n@@ -27,7 +27,7 @@\n static int\n lws_get_idlest_tsi(struct lws_context *context)\n {\n-\tunsigned int lowest \u003d ~0;\n+\tunsigned int lowest \u003d ~0u;\n \tint n \u003d 0, hit \u003d -1;\n \n \tfor (; n \u003c context-\u003ecount_threads; n++) {\n@@ -69,7 +69,7 @@ lws_create_new_server_wsi(struct lws_vhost *vhost, int fixed_tsi, const char *de\n \t__lws_lc_tag(\u0026vhost-\u003econtext-\u003elcg[LWSLCG_WSI], \u0026new_wsi-\u003elc, desc);\n \n \tnew_wsi-\u003ewsistate |\u003d LWSIFR_SERVER;\n-\tnew_wsi-\u003etsi \u003d n;\n+\tnew_wsi-\u003etsi \u003d (char)n;\n \tlwsl_debug(\u0022%s joining vhost %s, tsi %d\u005cn\u0022, new_wsi-\u003elc.gutag,\n \t\t vhost-\u003ename, new_wsi-\u003etsi);\n \n@@ -169,9 +169,9 @@ lws_adopt_descriptor_vhost1(struct lws_vhost *vh, lws_adoption_type type,\n \n \tif (!LWS_SSL_ENABLED(new_wsi-\u003ea.vhost) ||\n \t !(type \u0026 LWS_ADOPT_SOCKET))\n-\t\ttype \u0026\u003d ~LWS_ADOPT_ALLOW_SSL;\n+\t\ttype \u0026\u003d (unsigned int)~LWS_ADOPT_ALLOW_SSL;\n \n-\tif (lws_role_call_adoption_bind(new_wsi, type, vh_prot_name)) {\n+\tif (lws_role_call_adoption_bind(new_wsi, (int)type, vh_prot_name)) {\n \t\tlwsl_err(\u0022%s: no role for desc type 0x%x\u005cn\u0022, __func__, type);\n \t\tgoto bail;\n \t}\n@@ -348,7 +348,7 @@ lws_adopt_descriptor_vhost2(struct lws *new_wsi, lws_adoption_type type,\n \n \tif (!LWS_SSL_ENABLED(new_wsi-\u003ea.vhost) ||\n \t !(type \u0026 LWS_ADOPT_SOCKET))\n-\t\ttype \u0026\u003d ~LWS_ADOPT_ALLOW_SSL;\n+\t\ttype \u0026\u003d (unsigned int)~LWS_ADOPT_ALLOW_SSL;\n \n \t/*\n \t * A new connection was accepted. Give the user a chance to\n@@ -401,13 +401,13 @@ lws_adopt_descriptor_vhost2(struct lws *new_wsi, lws_adoption_type type,\n \t * by deferring callback to this point, after insertion to fds,\n \t * lws_callback_on_writable() can work from the callback\n \t */\n-\tif ((new_wsi-\u003ea.protocol-\u003ecallback)(new_wsi, n, new_wsi-\u003euser_space,\n+\tif ((new_wsi-\u003ea.protocol-\u003ecallback)(new_wsi, (enum lws_callback_reasons)n, new_wsi-\u003euser_space,\n \t\t\t\t\t NULL, 0))\n \t\tgoto fail;\n \n \t/* role may need to do something after all adoption completed */\n \n-\tlws_role_call_adoption_bind(new_wsi, type | _LWS_ADOPT_FINISH,\n+\tlws_role_call_adoption_bind(new_wsi, (int)type | _LWS_ADOPT_FINISH,\n \t\t\t\t new_wsi-\u003ea.protocol-\u003ename);\n \n #if defined(LWS_WITH_SERVER) \u0026\u0026 defined(LWS_WITH_SECURE_STREAMS)\n@@ -771,7 +771,7 @@ lws_create_adopt_udp(struct lws_vhost *vhost, const char *ads, int port,\n \twsi-\u003edo_bind \u003d !!(flags \u0026 LWS_CAUDP_BIND);\n \twsi-\u003edo_broadcast \u003d !!(flags \u0026 LWS_CAUDP_BROADCAST);\n \twsi-\u003epf_packet \u003d !!(flags \u0026 LWS_CAUDP_PF_PACKET);\n-\twsi-\u003ec_port \u003d port;\n+\twsi-\u003ec_port \u003d (uint16_t)(unsigned int)port;\n \tif (retry_policy)\n \t\twsi-\u003eretry_policy \u003d retry_policy;\n \telse\ndiff --git a/lib/core-net/client/client.c b/lib/core-net/client/client.c\nindex 1845562..ef7df9d 100644\n--- a/lib/core-net/client/client.c\n+++ b/lib/core-net/client/client.c\n@@ -43,10 +43,10 @@ lws_set_proxy(struct lws_vhost *vhost, const char *proxy)\n \tp \u003d strrchr(proxy, '@');\n \tif (p) { /* auth is around */\n \n-\t\tif ((unsigned int)(p - proxy) \u003e sizeof(authstring) - 1)\n+\t\tif (lws_ptr_diff_size_t(p, proxy) \u003e sizeof(authstring) - 1)\n \t\t\tgoto auth_too_long;\n \n-\t\tlws_strncpy(authstring, proxy, p - proxy + 1);\n+\t\tlws_strncpy(authstring, proxy, lws_ptr_diff_size_t(p, proxy) + 1);\n \t\t// null termination not needed on input\n \t\tif (lws_b64_encode_string(authstring, lws_ptr_diff(p, proxy),\n \t\t\t\tvhost-\u003eproxy_basic_auth_token,\n@@ -104,7 +104,7 @@ lws_set_proxy(struct lws_vhost *vhost, const char *proxy)\n \t}\n \tif (p) {\n \t\t*p \u003d '\u005c0';\n-\t\tvhost-\u003ehttp.http_proxy_port \u003d atoi(p + 1);\n+\t\tvhost-\u003ehttp.http_proxy_port \u003d (unsigned int)atoi(p + 1);\n \t}\n \n \tlwsl_info(\u0022 Proxy %s:%u\u005cn\u0022, vhost-\u003ehttp.http_proxy_address,\ndiff --git a/lib/core-net/client/connect.c b/lib/core-net/client/connect.c\nindex 7f344a5..8d12d64 100644\n--- a/lib/core-net/client/connect.c\n+++ b/lib/core-net/client/connect.c\n@@ -91,7 +91,7 @@ lws_client_connect_via_info(const struct lws_client_connect_info *i)\n \tstruct lws *wsi, *safe \u003d NULL;\n \tconst struct lws_protocols *p;\n \tconst char *cisin[CIS_COUNT];\n-\tint tid \u003d 0, n, m, tsi \u003d 0;\n+\tint tid \u003d 0, n, tsi \u003d 0;\n \tsize_t size;\n \tchar *pc;\n \n@@ -220,7 +220,7 @@ lws_client_connect_via_info(const struct lws_client_connect_info *i)\n \twsi-\u003euser_space \u003d NULL;\n \twsi-\u003epending_timeout \u003d NO_PENDING_TIMEOUT;\n \twsi-\u003eposition_in_fds_table \u003d LWS_NO_FDS_POS;\n-\twsi-\u003eocport \u003d wsi-\u003ec_port \u003d i-\u003eport;\n+\twsi-\u003eocport \u003d wsi-\u003ec_port \u003d (uint16_t)(unsigned int)i-\u003eport;\n \twsi-\u003esys_tls_client_cert \u003d i-\u003esys_tls_client_cert;\n \n #if defined(LWS_ROLE_H2)\n@@ -268,7 +268,7 @@ lws_client_connect_via_info(const struct lws_client_connect_info *i)\n \t}\n \n #if defined(LWS_WITH_TLS)\n-\twsi-\u003etls.use_ssl \u003d i-\u003essl_connection;\n+\twsi-\u003etls.use_ssl \u003d (unsigned int)i-\u003essl_connection;\n #else\n \tif (i-\u003essl_connection \u0026 LCCSCF_USE_SSL) {\n \t\tlwsl_err(\u0022%s: lws not configured for tls\u005cn\u0022, __func__);\n@@ -354,10 +354,11 @@ lws_client_connect_via_info(const struct lws_client_connect_info *i)\n \n \tfor (n \u003d 0; n \u003c CIS_COUNT; n++)\n \t\tif (cisin[n]) {\n+\t\t\tsize_t mm;\n \t\t\twsi-\u003estash-\u003ecis[n] \u003d pc;\n-\t\t\tm \u003d (int)strlen(cisin[n]) + 1;\n-\t\t\tmemcpy(pc, cisin[n], m);\n-\t\t\tpc +\u003d m;\n+\t\t\tmm \u003d strlen(cisin[n]) + 1;\n+\t\t\tmemcpy(pc, cisin[n], mm);\n+\t\t\tpc +\u003d mm;\n \t\t}\n \n \t/*\ndiff --git a/lib/core-net/client/connect2.c b/lib/core-net/client/connect2.c\nindex f687ba1..6db6ba9 100644\n--- a/lib/core-net/client/connect2.c\n+++ b/lib/core-net/client/connect2.c\n@@ -259,8 +259,8 @@ solo:\n \t wsi-\u003ea.context-\u003edetailed_latency_cb) {\n \t\twsi-\u003edetlat.type \u003d LDLT_NAME_RESOLUTION;\n \t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE] \u003d\n-\t\t\tlws_now_usecs() -\n-\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\twsi-\u003edetlat.earliest_write_req_pre_write \u003d lws_now_usecs();\n@@ -276,7 +276,7 @@ solo:\n \n \tif (wsi-\u003ea.vhost-\u003ehttp.http_proxy_port) {\n \t\tads \u003d wsi-\u003ea.vhost-\u003ehttp.http_proxy_address;\n-\t\tport \u003d wsi-\u003ea.vhost-\u003ehttp.http_proxy_port;\n+\t\tport \u003d (int)wsi-\u003ea.vhost-\u003ehttp.http_proxy_port;\n #else\n \t\tif (0) {\n #endif\n@@ -288,7 +288,7 @@ solo:\n \t} else if (wsi-\u003ea.vhost-\u003esocks_proxy_port) {\n \t\tlwsl_client(\u0022Sending SOCKS Greeting\u005cn\u0022);\n \t\tads \u003d wsi-\u003ea.vhost-\u003esocks_proxy_address;\n-\t\tport \u003d wsi-\u003ea.vhost-\u003esocks_proxy_port;\n+\t\tport \u003d (int)wsi-\u003ea.vhost-\u003esocks_proxy_port;\n #endif\n \t} else {\n \ndiff --git a/lib/core-net/client/connect3.c b/lib/core-net/client/connect3.c\nindex 994aa84..d544bc8 100644\n--- a/lib/core-net/client/connect3.c\n+++ b/lib/core-net/client/connect3.c\n@@ -60,6 +60,8 @@ lws_client_connect_check(struct lws *wsi)\n \tint en \u003d 0;\n \tsocklen_t sl \u003d sizeof(e);\n \n+\t(void)en;\n+\n \t/*\n \t * This resets SO_ERROR after reading it. If there's an error\n \t * condition, the connect definitively failed.\n@@ -239,8 +241,8 @@ lws_client_connect_3_connect(struct lws *wsi, const char *ads,\n \t wsi-\u003ea.context-\u003edetailed_latency_cb) {\n \t\twsi-\u003edetlat.type \u003d LDLT_NAME_RESOLUTION;\n \t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE] \u003d\n-\t\t\tlws_now_usecs() -\n-\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\twsi-\u003edetlat.earliest_write_req_pre_write \u003d lws_now_usecs();\n@@ -279,7 +281,7 @@ next_dns_result:\n \tsa46_sockport(\u0026wsi-\u003esa46_peer, htons(port));\n \n \tpsa \u003d sa46_sockaddr(\u0026wsi-\u003esa46_peer);\n-\tn \u003d sa46_socklen(\u0026wsi-\u003esa46_peer);\n+\tn \u003d (int)sa46_socklen(\u0026wsi-\u003esa46_peer);\n \n #if defined(LWS_WITH_UNIX_SOCK)\n ads_known:\n@@ -404,7 +406,7 @@ ads_known:\n \t * Finally, make the actual connection attempt\n \t */\n \n-\tm \u003d connect(wsi-\u003edesc.sockfd, (const struct sockaddr *)psa, n);\n+\tm \u003d connect(wsi-\u003edesc.sockfd, (const struct sockaddr *)psa, (unsigned int)n);\n \tif (m \u003d\u003d -1) {\n \t\t/*\n \t\t * Since we're nonblocking, connect not having completed is not\n@@ -490,8 +492,8 @@ conn_good:\n \tif (wsi-\u003ea.context-\u003edetailed_latency_cb) {\n \t\twsi-\u003edetlat.type \u003d LDLT_CONNECTION;\n \t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE] \u003d\n-\t\t\tlws_now_usecs() -\n-\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\twsi-\u003edetlat.earliest_write_req \u003d\ndiff --git a/lib/core-net/client/connect4.c b/lib/core-net/client/connect4.c\nindex 969599b..b3e503d 100644\n--- a/lib/core-net/client/connect4.c\n+++ b/lib/core-net/client/connect4.c\n@@ -93,9 +93,9 @@ lws_client_connect_4_established(struct lws *wsi, struct lws *wsi_piggyback,\n \t\t\t\t\t_WSI_TOKEN_CLIENT_PEER_ADDRESS,\n \t\t\t\t\twsi-\u003ea.vhost-\u003ehttp.http_proxy_address))\n \t\t\tgoto failed;\n-\t\twsi-\u003ec_port \u003d wsi-\u003ea.vhost-\u003ehttp.http_proxy_port;\n+\t\twsi-\u003ec_port \u003d (uint16_t)wsi-\u003ea.vhost-\u003ehttp.http_proxy_port;\n \n-\t\tn \u003d send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, (int)plen,\n+\t\tn \u003d (int)send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, (unsigned int)plen,\n \t\t\t MSG_NOSIGNAL);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_debug(\u0022ERROR writing to proxy socket\u005cn\u0022);\n@@ -104,7 +104,7 @@ lws_client_connect_4_established(struct lws *wsi, struct lws *wsi_piggyback,\n \t\t}\n \n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE,\n-\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t\tlwsi_set_state(wsi, LRS_WAITING_PROXY_REPLY);\n \n@@ -220,7 +220,7 @@ send_hs:\n \t\t\t\t\t\tLRS_H1C_ISSUE_HANDSHAKE2);\n \t\t\t\tlws_set_timeout(wsi,\n \t\t\t\t\tPENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND,\n-\t\t\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t\t\t\tgoto provoke_service;\n \t\t\t}\n@@ -233,7 +233,7 @@ send_hs:\n \t\t\tif (m) {\n \t\t\t\tn \u003d user_callback_handle_rxflow(\n \t\t\t\t\t\twsi-\u003ea.protocol-\u003ecallback, wsi,\n-\t\t\t\t\t\tm, wsi-\u003euser_space, NULL, 0);\n+\t\t\t\t\t\t(enum lws_callback_reasons)m, wsi-\u003euser_space, NULL, 0);\n \t\t\t\tif (n \u003c 0) {\n \t\t\t\t\tlwsl_info(\u0022RAW_PROXY_CLI_ADOPT err\u005cn\u0022);\n \t\t\t\t\tgoto failed;\n@@ -260,7 +260,7 @@ send_hs:\n \t\t\t\t */\n \t\t\t\tlws_set_timeout(wsi,\n \t\t\t\t\tPENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE,\n-\t\t\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t\t\t\tassert(lws_socket_is_valid(wsi-\u003edesc.sockfd));\n \n@@ -301,7 +301,7 @@ send_hs:\n provoke_service:\n #endif\n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE,\n-\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t\tassert(lws_socket_is_valid(wsi-\u003edesc.sockfd));\n \ndiff --git a/lib/core-net/client/sort-dns.c b/lib/core-net/client/sort-dns.c\nindex 0957a90..4f9fdc5 100644\n--- a/lib/core-net/client/sort-dns.c\n+++ b/lib/core-net/client/sort-dns.c\n@@ -633,7 +633,7 @@ lws_sort_dns(struct lws *wsi, const struct addrinfo *result)\n \t\t\treturn 1;\n \n \t\tmemcpy(\u0026ds-\u003edest, ai-\u003eai_addr, ai-\u003eai_addrlen);\n-\t\tds-\u003edest.sa4.sin_family \u003d ai-\u003eai_family;\n+\t\tds-\u003edest.sa4.sin_family \u003d (sa_family_t)ai-\u003eai_family;\n \n \t\tlws_sa46_write_numeric_address(\u0026ds-\u003edest, afip, sizeof(afip));\n \ndiff --git a/lib/core-net/close.c b/lib/core-net/close.c\nindex 05d8450..90c6cb2 100644\n--- a/lib/core-net/close.c\n+++ b/lib/core-net/close.c\n@@ -30,7 +30,7 @@ lws_close_trans_q_leader(struct lws_dll2 *d, void *user)\n {\n \tstruct lws *w \u003d lws_container_of(d, struct lws, dll2_cli_txn_queue);\n \n-\t__lws_close_free_wsi(w, -1, \u0022trans q leader closing\u0022);\n+\t__lws_close_free_wsi(w, (enum lws_close_status)-1, \u0022trans q leader closing\u0022);\n \n \treturn 0;\n }\n@@ -594,7 +594,7 @@ just_kill_connection:\n \t\t\t__lws_change_pollfd(wsi, LWS_POLLOUT, LWS_POLLIN);\n \t\t\tlwsi_set_state(wsi, LRS_SHUTDOWN);\n \t\t\t__lws_set_timeout(wsi, PENDING_TIMEOUT_SHUTDOWN_FLUSH,\n-\t\t\t\t\t context-\u003etimeout_secs);\n+\t\t\t\t\t (int)context-\u003etimeout_secs);\n \n \t\t\treturn;\n \t\t}\ndiff --git a/lib/core-net/detailed-latency.c b/lib/core-net/detailed-latency.c\nindex e176b4b..a8c1d09 100644\n--- a/lib/core-net/detailed-latency.c\n+++ b/lib/core-net/detailed-latency.c\n@@ -61,7 +61,7 @@ lws_det_lat_plot_cb(struct lws_context *context, const lws_detlat_t *d)\n \t\t\treturn 1;\n \t}\n \n-\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p),\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t \u0022%llu %c %u %u %u %u %u %zu %zu\u005cn\u0022,\n \t\t\t (unsigned long long)lws_now_usecs(), types[d-\u003etype],\n \t\t\t d-\u003elatencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE],\n@@ -73,7 +73,7 @@ lws_det_lat_plot_cb(struct lws_context *context, const lws_detlat_t *d)\n \t\t\t d-\u003elatencies[LAT_DUR_PROXY_RX_TO_ONWARD_TX],\n \t\t\t d-\u003eacc_size, d-\u003ereq_size);\n \n-\twrite(context-\u003elatencies_fd, buf, lws_ptr_diff(p, buf));\n+\twrite(context-\u003elatencies_fd, buf, lws_ptr_diff_size_t(p, buf));\n \n \treturn 0;\n }\ndiff --git a/lib/core-net/dummy-callback.c b/lib/core-net/dummy-callback.c\nindex e998aa9..4a5afff 100644\n--- a/lib/core-net/dummy-callback.c\n+++ b/lib/core-net/dummy-callback.c\n@@ -32,7 +32,7 @@ static int\n proxy_header(struct lws *wsi, struct lws *par, unsigned char *temp,\n \t int temp_len, int index, unsigned char **p, unsigned char *end)\n {\n-\tint n \u003d lws_hdr_total_length(par, index);\n+\tint n \u003d lws_hdr_total_length(par, (enum lws_token_indexes)index);\n \n \tif (n \u003c 1) {\n \t\tlwsl_debug(\u0022%s: no index %d:\u005cn\u0022, __func__, index);\n@@ -40,7 +40,7 @@ proxy_header(struct lws *wsi, struct lws *par, unsigned char *temp,\n \t\treturn 0;\n \t}\n \n-\tif (lws_hdr_copy(par, (char *)temp, temp_len, index) \u003c 0) {\n+\tif (lws_hdr_copy(par, (char *)temp, temp_len, (enum lws_token_indexes)index) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: unable to copy par hdr idx %d (len %d)\u005cn\u0022,\n \t\t\t\t__func__, index, n);\n \t\treturn -1;\n@@ -48,7 +48,7 @@ proxy_header(struct lws *wsi, struct lws *par, unsigned char *temp,\n \n \tlwsl_debug(\u0022%s: index %d: %s\u005cn\u0022, __func__, index, (char *)temp);\n \n-\tif (lws_add_http_header_by_token(wsi, index, temp, n, p, end)) {\n+\tif (lws_add_http_header_by_token(wsi, (enum lws_token_indexes)index, temp, n, p, end)) {\n \t\tlwsl_notice(\u0022%s: unable to append par hdr idx %d (len %d)\u005cn\u0022,\n \t\t\t\t__func__, index, n);\n \t\treturn -1;\n@@ -169,9 +169,9 @@ lws_callback_ws_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\treturn -1;\n \n \t\tpkt-\u003elen \u003d len;\n-\t\tpkt-\u003efirst \u003d lws_is_first_fragment(wsi);\n-\t\tpkt-\u003efinal \u003d lws_is_final_fragment(wsi);\n-\t\tpkt-\u003ebinary \u003d lws_frame_is_binary(wsi);\n+\t\tpkt-\u003efirst \u003d (char)lws_is_first_fragment(wsi);\n+\t\tpkt-\u003efinal \u003d (char)lws_is_final_fragment(wsi);\n+\t\tpkt-\u003ebinary \u003d (char)lws_frame_is_binary(wsi);\n \n \t\tmemcpy(((uint8_t *)\u0026pkt[1]) + LWS_PRE, in, len);\n \n@@ -186,7 +186,7 @@ lws_callback_ws_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tpkt \u003d (struct lws_proxy_pkt *)dll;\n \t\tif (lws_write(wsi, ((unsigned char *)\u0026pkt[1]) +\n-\t\t\t LWS_PRE, pkt-\u003elen, lws_write_ws_flags(\n+\t\t\t LWS_PRE, pkt-\u003elen, (enum lws_write_protocol)lws_write_ws_flags(\n \t\t\t\tpkt-\u003ebinary ? LWS_WRITE_BINARY : LWS_WRITE_TEXT,\n \t\t\t\t\tpkt-\u003efirst, pkt-\u003efinal)) \u003c 0)\n \t\t\treturn -1;\n@@ -213,9 +213,9 @@ lws_callback_ws_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\treturn -1;\n \n \t\tpkt-\u003elen \u003d len;\n-\t\tpkt-\u003efirst \u003d lws_is_first_fragment(wsi);\n-\t\tpkt-\u003efinal \u003d lws_is_final_fragment(wsi);\n-\t\tpkt-\u003ebinary \u003d lws_frame_is_binary(wsi);\n+\t\tpkt-\u003efirst \u003d (char)lws_is_first_fragment(wsi);\n+\t\tpkt-\u003efinal \u003d (char)lws_is_final_fragment(wsi);\n+\t\tpkt-\u003ebinary \u003d (char)lws_frame_is_binary(wsi);\n \n \t\tmemcpy(((uint8_t *)\u0026pkt[1]) + LWS_PRE, in, len);\n \n@@ -230,7 +230,7 @@ lws_callback_ws_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tpkt \u003d (struct lws_proxy_pkt *)dll;\n \t\tif (lws_write(wsi, ((unsigned char *)\u0026pkt[1]) +\n-\t\t\t LWS_PRE, pkt-\u003elen, lws_write_ws_flags(\n+\t\t\t LWS_PRE, pkt-\u003elen, (enum lws_write_protocol)lws_write_ws_flags(\n \t\t\t\tpkt-\u003ebinary ? LWS_WRITE_BINARY : LWS_WRITE_TEXT,\n \t\t\t\t\tpkt-\u003efirst, pkt-\u003efinal)) \u003c 0)\n \t\t\treturn -1;\n@@ -337,9 +337,9 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t\tif (wsi-\u003ereason_bf \u0026 LWS_CB_REASON_AUX_BF__CGI_HEADERS)\n \t\t\t\twsi-\u003ereason_bf \u0026\u003d\n-\t\t\t\t\t~LWS_CB_REASON_AUX_BF__CGI_HEADERS;\n+\t\t\t\t\t(char)~LWS_CB_REASON_AUX_BF__CGI_HEADERS;\n \t\t\telse\n-\t\t\t\twsi-\u003ereason_bf \u0026\u003d ~LWS_CB_REASON_AUX_BF__CGI;\n+\t\t\t\twsi-\u003ereason_bf \u0026\u003d (char)~LWS_CB_REASON_AUX_BF__CGI;\n \n \t\t\tif (wsi-\u003ehttp.cgi \u0026\u0026 wsi-\u003ehttp.cgi-\u003ecgi_transaction_over) {\n \t\t\t\tlwsl_info(\u0022%s: txn over\u005cn\u0022, __func__);\n@@ -371,7 +371,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tif (wsi-\u003ereason_bf \u0026 LWS_CB_REASON_AUX_BF__PROXY_HEADERS) {\n \n-\t\t\twsi-\u003ereason_bf \u0026\u003d ~LWS_CB_REASON_AUX_BF__PROXY_HEADERS;\n+\t\t\twsi-\u003ereason_bf \u0026\u003d (char)~LWS_CB_REASON_AUX_BF__PROXY_HEADERS;\n \n \t\t\tn \u003d LWS_WRITE_HTTP_HEADERS;\n \t\t\tif (!wsi-\u003ehttp.prh_content_length)\n@@ -382,7 +382,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t (int)wsi-\u003ehttp.prh_content_length);\n \t\t\tn \u003d lws_write(wsi, wsi-\u003ehttp.pending_return_headers +\n \t\t\t\t\t LWS_PRE,\n-\t\t\t\t wsi-\u003ehttp.pending_return_headers_len, n);\n+\t\t\t\t wsi-\u003ehttp.pending_return_headers_len, (enum lws_write_protocol)n);\n \n \t\t\tlws_free_set_NULL(wsi-\u003ehttp.pending_return_headers);\n \n@@ -406,7 +406,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t * suitable size to send or what's available, whichever\n \t\t\t * is the smaller.\n \t\t\t */\n-\t\t\twsi-\u003ereason_bf \u0026\u003d ~LWS_CB_REASON_AUX_BF__PROXY;\n+\t\t\twsi-\u003ereason_bf \u0026\u003d (char)~LWS_CB_REASON_AUX_BF__PROXY;\n \t\t\tif (!lws_get_child(wsi))\n \t\t\t\tbreak;\n \n@@ -427,7 +427,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tlwsl_info(\u0022%s: LWS_CB_REASON_AUX_BF__PROXY_TRANS_END\u005cn\u0022,\n \t\t\t\t __func__);\n \n-\t\t\twsi-\u003ereason_bf \u0026\u003d ~LWS_CB_REASON_AUX_BF__PROXY_TRANS_END;\n+\t\t\twsi-\u003ereason_bf \u0026\u003d (char)~LWS_CB_REASON_AUX_BF__PROXY_TRANS_END;\n \n \t\t\tif (stream_close(wsi))\n \t\t\t\treturn -1;\n@@ -473,7 +473,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t\tn \u003d lws_write(lws_get_parent(wsi),\n \t\t\t\t (unsigned char *)buf + LWS_PRE,\n-\t\t\t\t len + n + 2, LWS_WRITE_HTTP);\n+\t\t\t\t (size_t)(unsigned int)(len + (unsigned int)n + 2), LWS_WRITE_HTTP);\n \t\t} else\n \t\t\tn \u003d lws_write(lws_get_parent(wsi), (unsigned char *)in,\n \t\t\t\t len, LWS_WRITE_HTTP);\n@@ -558,13 +558,13 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tif (lws_finalize_http_header(parent, \u0026p, end))\n \t\t\treturn 1;\n \n-\t\tparent-\u003ehttp.prh_content_length \u003d -1;\n+\t\tparent-\u003ehttp.prh_content_length \u003d (size_t)-1;\n \t\tif (lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH))\n-\t\t\tparent-\u003ehttp.prh_content_length \u003d atoll(\n+\t\t\tparent-\u003ehttp.prh_content_length \u003d (size_t)atoll(\n \t\t\t\tlws_hdr_simple_ptr(wsi,\n \t\t\t\t\t\tWSI_TOKEN_HTTP_CONTENT_LENGTH));\n \n-\t\tparent-\u003ehttp.pending_return_headers_len \u003d lws_ptr_diff(p, start);\n+\t\tparent-\u003ehttp.pending_return_headers_len \u003d lws_ptr_diff_size_t(p, start);\n \t\tparent-\u003ehttp.pending_return_headers \u003d\n \t\t\tlws_malloc(parent-\u003ehttp.pending_return_headers_len +\n \t\t\t\t LWS_PRE, \u0022return proxy headers\u0022);\n@@ -606,8 +606,8 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tif (!lws_get_parent(wsi))\n \t\t\tbreak;\n \t//\tlwsl_err(\u0022%s: LWS_CALLBACK_CLOSED_CLIENT_HTTP\u005cn\u0022, __func__);\n- lws_set_timeout(lws_get_parent(wsi), LWS_TO_KILL_ASYNC,\n- PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE);\n+ lws_set_timeout(lws_get_parent(wsi), (enum pending_timeout)LWS_TO_KILL_ASYNC,\n+ (int)PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE);\n \t\tbreak;\n \n \tcase LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:\n@@ -670,7 +670,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tn \u003d lws_get_socket_fd(args-\u003estdwsi[LWS_STDERR]);\n \t\t\tif (n \u003c 0)\n \t\t\t\tbreak;\n-\t\t\tn \u003d read(n, buf, sizeof(buf) - 2);\n+\t\t\tn \u003d (int)read(n, buf, sizeof(buf) - 2);\n \t\t\tif (n \u003e 0) {\n \t\t\t\tif (buf[n - 1] !\u003d '\u005cn')\n \t\t\t\t\tbuf[n++] \u003d '\u005cn';\n@@ -732,7 +732,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t}\n \n \t\t\twsi-\u003ehttp.cgi-\u003einflate.next_in \u003d args-\u003edata;\n-\t\t\twsi-\u003ehttp.cgi-\u003einflate.avail_in \u003d args-\u003elen;\n+\t\t\twsi-\u003ehttp.cgi-\u003einflate.avail_in \u003d (unsigned int)args-\u003elen;\n \n \t\t\tdo {\n \n@@ -759,7 +759,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t sizeof(wsi-\u003ehttp.cgi-\u003einflate_buf)) {\n \t\t\t\t\tint written;\n \n-\t\t\t\t\twritten \u003d write(args-\u003estdwsi[LWS_STDIN]-\u003edesc.filefd,\n+\t\t\t\t\twritten \u003d (int)write(args-\u003estdwsi[LWS_STDIN]-\u003edesc.filefd,\n \t\t\t\t\t\twsi-\u003ehttp.cgi-\u003einflate_buf,\n \t\t\t\t\t\tsizeof(wsi-\u003ehttp.cgi-\u003einflate_buf) -\n \t\t\t\t\t\twsi-\u003ehttp.cgi-\u003einflate.avail_out);\n@@ -790,7 +790,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n #endif /* WITH_ZLIB */\n \n-\t\tn \u003d write(n, args-\u003edata, args-\u003elen);\n+\t\tn \u003d (int)write(n, args-\u003edata, (unsigned int)args-\u003elen);\n //\t\tlwsl_hexdump_notice(args-\u003edata, args-\u003elen);\n \t\tif (n \u003c args-\u003elen)\n \t\t\tlwsl_notice(\u0022LWS_CALLBACK_CGI_STDIN_DATA: \u0022\n@@ -800,7 +800,7 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tif (wsi-\u003ehttp.cgi-\u003epost_in_expected \u0026\u0026 args-\u003estdwsi[LWS_STDIN] \u0026\u0026\n \t\t args-\u003estdwsi[LWS_STDIN]-\u003edesc.filefd \u003e 0) {\n-\t\t\twsi-\u003ehttp.cgi-\u003epost_in_expected -\u003d n;\n+\t\t\twsi-\u003ehttp.cgi-\u003epost_in_expected -\u003d (unsigned int)n;\n \n \t\t\tif (!wsi-\u003ehttp.cgi-\u003epost_in_expected) {\n \t\t\t\tstruct lws *siwsi \u003d args-\u003estdwsi[LWS_STDIN];\ndiff --git a/lib/core-net/lws-dsh.c b/lib/core-net/lws-dsh.c\nindex 9a6a487..46aec64 100644\n--- a/lib/core-net/lws-dsh.c\n+++ b/lib/core-net/lws-dsh.c\n@@ -52,7 +52,7 @@ lws_dsh_align(size_t length)\n lws_dsh_t *\n lws_dsh_create(lws_dll2_owner_t *owner, size_t buf_len, int count_kinds)\n {\n-\tsize_t oha_len \u003d sizeof(lws_dsh_obj_head_t) * ++count_kinds;\n+\tsize_t oha_len \u003d sizeof(lws_dsh_obj_head_t) * (unsigned int)(++count_kinds);\n \tlws_dsh_obj_t *obj;\n \tlws_dsh_t *dsh;\n \tint n;\ndiff --git a/lib/core-net/network.c b/lib/core-net/network.c\nindex 1a26f2d..f5e6b3a 100644\n--- a/lib/core-net/network.c\n+++ b/lib/core-net/network.c\n@@ -57,7 +57,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,\n \tif (LWS_IPV6_ENABLED(vh)) {\n \t\tif (!lws_plat_inet_ntop(AF_INET6,\n \t\t\t\t\t\u0026((struct sockaddr_in6 *)ads)-\u003esin6_addr,\n-\t\t\t\t\trip, rip_len)) {\n+\t\t\t\t\trip, (socklen_t)rip_len)) {\n \t\t\tlwsl_err(\u0022inet_ntop: %s\u0022, strerror(LWS_ERRNO));\n \t\t\treturn -1;\n \t\t}\n@@ -67,7 +67,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,\n \t\t\tmemmove(rip, rip + 7, strlen(rip) - 6);\n \n \t\tgetnameinfo((struct sockaddr *)ads, sizeof(struct sockaddr_in6),\n-\t\t\t name, name_len, NULL, 0, 0);\n+\t\t\t name, (socklen_t)name_len, NULL, 0, 0);\n \n \t\treturn 0;\n \t} else\n@@ -81,7 +81,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,\n #if !defined(LWS_PLAT_FREERTOS)\n \t\tif (getnameinfo((struct sockaddr *)ads,\n \t\t\t\tsizeof(struct sockaddr_in),\n-\t\t\t\tname, name_len, NULL, 0, 0))\n+\t\t\t\tname, (unsigned int)name_len, NULL, 0, 0))\n \t\t\treturn -1;\n #endif\n \n@@ -106,7 +106,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,\n \tif (addr4.sin_family \u003d\u003d AF_UNSPEC)\n \t\treturn -1;\n \n-\tif (lws_plat_inet_ntop(AF_INET, \u0026addr4.sin_addr, rip, rip_len) \u003d\u003d NULL)\n+\tif (lws_plat_inet_ntop(AF_INET, \u0026addr4.sin_addr, rip, (unsigned int)rip_len) \u003d\u003d NULL)\n \t\treturn -1;\n \n \treturn 0;\n@@ -243,7 +243,7 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,\n \t\tmemset(\u0026serv_addr6, 0, sizeof(serv_addr6));\n \t\tif (iface) {\n \t\t\tm \u003d interface_to_sa(vhost, iface,\n-\t\t\t\t (struct sockaddr_in *)v, n, 1);\n+\t\t\t\t (struct sockaddr_in *)v, (unsigned int)n, 1);\n \t\t\tif (m \u003d\u003d LWS_ITOSA_NOT_USABLE) {\n \t\t\t\tlwsl_info(\u0022%s: netif %s: Not usable\u005cn\u0022,\n \t\t\t\t\t __func__, iface);\n@@ -254,11 +254,11 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,\n \t\t\t\t\t __func__, iface);\n \t\t\t\treturn m;\n \t\t\t}\n-\t\t\tserv_addr6.sin6_scope_id \u003d lws_get_addr_scope(iface);\n+\t\t\tserv_addr6.sin6_scope_id \u003d (unsigned int)lws_get_addr_scope(iface);\n \t\t}\n \n \t\tserv_addr6.sin6_family \u003d AF_INET6;\n-\t\tserv_addr6.sin6_port \u003d htons(port);\n+\t\tserv_addr6.sin6_port \u003d (uint16_t)htons((uint16_t)port);\n \t} else\n #endif\n \t{\n@@ -271,7 +271,7 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,\n #if !defined(LWS_PLAT_FREERTOS) \u0026\u0026 !defined(LWS_PLAT_OPTEE)\n \t\tif (iface) {\n \t\t m \u003d interface_to_sa(vhost, iface,\n-\t\t\t\t (struct sockaddr_in *)v, n, 0);\n+\t\t\t\t (struct sockaddr_in *)v, (unsigned int)n, 0);\n \t\t\tif (m \u003d\u003d LWS_ITOSA_NOT_USABLE) {\n \t\t\t\tlwsl_info(\u0022%s: netif %s: Not usable\u005cn\u0022,\n \t\t\t\t\t __func__, iface);\n@@ -284,14 +284,14 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,\n \t\t\t}\n \t\t}\n #endif\n-\t\tserv_addr4.sin_port \u003d htons(port);\n+\t\tserv_addr4.sin_port \u003d htons((uint16_t)(unsigned int)port);\n \t} /* ipv4 */\n \n \t/* just checking for the interface extant */\n \tif (sockfd \u003d\u003d LWS_SOCK_INVALID)\n \t\treturn LWS_ITOSA_USABLE;\n \n-\tn \u003d bind(sockfd, v, n);\n+\tn \u003d bind(sockfd, v, (unsigned int)n);\n #ifdef LWS_WITH_UNIX_SOCK\n \tif (n \u003c 0 \u0026\u0026 LWS_UNIX_SOCK_ENABLED(vhost)) {\n \t\tlwsl_err(\u0022ERROR on binding fd %d to \u005c\u0022%s\u005c\u0022 (%d %d)\u005cn\u0022,\n@@ -423,7 +423,7 @@ lws_retry_sul_schedule(struct lws_context *context, int tid,\n \tlwsl_info(\u0022%s: sul %p: scheduling retry in %dms\u005cn\u0022, __func__, sul,\n \t\t\t(int)ms);\n \n-\tlws_sul_schedule(context, tid, sul, cb, ms * 1000);\n+\tlws_sul_schedule(context, tid, sul, cb, (int64_t)(ms * 1000));\n \n \treturn 0;\n }\n@@ -655,7 +655,7 @@ lws_parse_numeric_address(const char *ads, uint8_t *result, size_t max_len)\n \t\tmemset(result, 0, max_len);\n \n \tdo {\n-\t\tts.e \u003d lws_tokenize(\u0026ts);\n+\t\tts.e \u003d (int8_t)lws_tokenize(\u0026ts);\n \t\tswitch (ts.e) {\n \t\tcase LWS_TOKZE_TOKEN:\n \t\t\tdm \u003d 0;\n@@ -733,10 +733,10 @@ lws_parse_numeric_address(const char *ads, uint8_t *result, size_t max_len)\n \t\t\t\t */\n \t\t\t\tif (ow \u003d\u003d 16)\n \t\t\t\t\treturn 16;\n-\t\t\t\tmemcpy(temp, \u0026orig[skip_point], ow - skip_point);\n-\t\t\t\tmemset(\u0026orig[skip_point], 0, 16 - skip_point);\n+\t\t\t\tmemcpy(temp, \u0026orig[skip_point], (unsigned int)(ow - skip_point));\n+\t\t\t\tmemset(\u0026orig[skip_point], 0, (unsigned int)(16 - skip_point));\n \t\t\t\tmemcpy(\u0026orig[16 - (ow - skip_point)], temp,\n-\t\t\t\t\t\t ow - skip_point);\n+\t\t\t\t\t\t (unsigned int)(ow - skip_point));\n \n \t\t\t\treturn 16;\n \t\t\t}\n@@ -788,7 +788,7 @@ lws_sa46_parse_numeric_address(const char *ads, lws_sockaddr46 *sa46)\n int\n lws_write_numeric_address(const uint8_t *ads, int size, char *buf, size_t len)\n {\n-\tchar c, elided \u003d 0, soe \u003d 0, zb \u003d -1, n, ipv4 \u003d 0;\n+\tchar c, elided \u003d 0, soe \u003d 0, zb \u003d (char)-1, n, ipv4 \u003d 0;\n \tconst char *e \u003d buf + len;\n \tchar *obuf \u003d buf;\n \tint q \u003d 0;\n@@ -801,7 +801,7 @@ lws_write_numeric_address(const uint8_t *ads, int size, char *buf, size_t len)\n \t\treturn -1;\n \n \tfor (c \u003d 0; c \u003c (char)size / 2; c++) {\n-\t\tuint16_t v \u003d (ads[q] \u003c\u003c 8) | ads[q + 1];\n+\t\tuint16_t v \u003d (uint16_t)((ads[q] \u003c\u003c 8) | ads[q + 1]);\n \n \t\tif (buf + 8 \u003e e)\n \t\t\treturn -1;\n@@ -819,7 +819,7 @@ lws_write_numeric_address(const uint8_t *ads, int size, char *buf, size_t len)\n \t\t\t}\n \n \t\tif (ipv4) {\n-\t\t\tn \u003d lws_snprintf(buf, e - buf, \u0022%u.%u\u0022,\n+\t\t\tn \u003d (char)lws_snprintf(buf, lws_ptr_diff_size_t(e, buf), \u0022%u.%u\u0022,\n \t\t\t\t\tads[q - 2], ads[q - 1]);\n \t\t\tbuf +\u003d n;\n \t\t\tif (c \u003d\u003d 6)\n@@ -830,7 +830,7 @@ lws_write_numeric_address(const uint8_t *ads, int size, char *buf, size_t len)\n \t\t\tif (c)\n \t\t\t\t*buf++ \u003d ':';\n \n-\t\t\tbuf +\u003d lws_snprintf(buf, e - buf, \u0022%x\u0022, v);\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(e, buf), \u0022%x\u0022, v);\n \n \t\t\tif (soe \u0026\u0026 v) {\n \t\t\t\tsoe \u003d 0;\n@@ -954,7 +954,7 @@ lws_sa46_on_net(const lws_sockaddr46 *sa46a, const lws_sockaddr46 *sa46_net,\n \n \twhile (net_len \u003e 0) {\n \t\tif (net_len \u003c 8)\n-\t\t\tmask \u003c\u003c\u003d 8 - net_len;\n+\t\t\tmask \u003d (uint8_t)(mask \u003c\u003c (8 - net_len));\n \n \t\tif (((*p1++) \u0026 mask) !\u003d ((*p2++) \u0026 mask))\n \t\t\treturn 1;\n@@ -968,7 +968,7 @@ lws_sa46_on_net(const lws_sockaddr46 *sa46a, const lws_sockaddr46 *sa46_net,\n void\n lws_sa46_copy_address(lws_sockaddr46 *sa46a, const void *in, int af)\n {\n-\tsa46a-\u003esa4.sin_family \u003d af;\n+\tsa46a-\u003esa4.sin_family \u003d (sa_family_t)af;\n \n \tif (af \u003d\u003d AF_INET)\n \t\tmemcpy(\u0026sa46a-\u003esa4.sin_addr, in, 4);\ndiff --git a/lib/core-net/output.c b/lib/core-net/output.c\nindex 0f4c98f..0c46f2c 100644\n--- a/lib/core-net/output.c\n+++ b/lib/core-net/output.c\n@@ -105,25 +105,25 @@ lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)\n \n \t/* limit sending */\n \tif (wsi-\u003ea.protocol-\u003etx_packet_size)\n-\t\tn \u003d (int)wsi-\u003ea.protocol-\u003etx_packet_size;\n+\t\tn \u003d (unsigned int)wsi-\u003ea.protocol-\u003etx_packet_size;\n \telse {\n-\t\tn \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n+\t\tn \u003d (unsigned int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \t\tif (!n)\n \t\t\tn \u003d context-\u003ept_serv_buf_size;\n \t}\n \tn +\u003d LWS_PRE + 4;\n \tif (n \u003e len)\n-\t\tn \u003d (int)len;\n+\t\tn \u003d (unsigned int)len;\n \n \t/* nope, send it on the socket directly */\n \n-\tm \u003d lws_ssl_capable_write(wsi, buf, n);\n+\tm \u003d (unsigned int)lws_ssl_capable_write(wsi, buf, n);\n \tlwsl_info(\u0022%s: ssl_capable_write (%d) says %d\u005cn\u0022, __func__, n, m);\n \n \t/* something got written, it can have been truncated now */\n \twsi-\u003ecould_have_pending \u003d 1;\n \n-\tswitch (m) {\n+\tswitch ((int)m) {\n \tcase LWS_SSL_CAPABLE_ERROR:\n \t\t/* we're going to close, let close know sends aren't possible */\n \t\twsi-\u003esocket_is_permanently_unusable \u003d 1;\n@@ -157,7 +157,7 @@ lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)\n \t\t\tlwsl_info(\u0022%s: %s: buflist_out flushed\u005cn\u0022,\n \t\t\t\t __func__, lws_wsi_tag(wsi));\n \n-\t\t\tm \u003d (int)real_len;\n+\t\t\tm \u003d (unsigned int)real_len;\n \t\t\tif (lwsi_state(wsi) \u003d\u003d LRS_FLUSHING_BEFORE_CLOSE) {\n \t\t\t\tlwsl_info(\u0022*%s signalling to close now\u005cn\u0022,\n \t\t\t\t\t\tlws_wsi_tag(wsi));\n@@ -190,7 +190,7 @@ lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)\n \t\t/* always callback on writeable */\n \t\tlws_callback_on_writable(wsi);\n \n-\t\treturn m;\n+\t\treturn (int)m;\n \t}\n \n #if defined(LWS_WITH_HTTP_STREAM_COMPRESSION)\n@@ -200,7 +200,7 @@ lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)\n \n \tif (m \u003d\u003d real_len)\n \t\t/* what we just sent went out cleanly */\n-\t\treturn m;\n+\t\treturn (int)m;\n \n \t/*\n \t * We were not able to send everything... and we were not sending from\n@@ -274,14 +274,14 @@ lws_write(struct lws *wsi, unsigned char *buf, size_t len,\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \tif (wsi-\u003ea.context-\u003edetailed_latency_cb) {\n \t\twsi-\u003edetlat.req_size \u003d len;\n-\t\twsi-\u003edetlat.acc_size \u003d m;\n+\t\twsi-\u003edetlat.acc_size \u003d (unsigned int)m;\n \t\twsi-\u003edetlat.type \u003d LDLT_WRITE;\n \t\tif (wsi-\u003edetlat.earliest_write_req_pre_write)\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_PROXY_REQ_TO_WRITE] \u003d\n-\t\t\t\t\tus - wsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t\t\t(uint32_t)(us - wsi-\u003edetlat.earliest_write_req_pre_write);\n \t\telse\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_PROXY_REQ_TO_WRITE] \u003d 0;\n-\t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d lws_now_usecs() - us;\n+\t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d (uint32_t)(lws_now_usecs() - us);\n \t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \n \t}\n@@ -291,7 +291,7 @@ lws_write(struct lws *wsi, unsigned char *buf, size_t len,\n }\n \n int\n-lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tstruct lws_context *context \u003d wsi-\u003ea.context;\n \tstruct lws_context_per_thread *pt \u003d \u0026context-\u003ept[(int)wsi-\u003etsi];\n@@ -304,11 +304,19 @@ lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n \tif (lws_wsi_is_udp(wsi)) {\n \t\tsocklen_t slt \u003d sizeof(wsi-\u003eudp-\u003esa46);\n \n-\t\tn \u003d recvfrom(wsi-\u003edesc.sockfd, (char *)buf, len, 0,\n+\t\tn \u003d (int)recvfrom(wsi-\u003edesc.sockfd, (char *)buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\tlen, 0,\n \t\t\t\tsa46_sockaddr(\u0026wsi-\u003eudp-\u003esa46), \u0026slt);\n \t} else\n #endif\n-\t\tn \u003d recv(wsi-\u003edesc.sockfd, (char *)buf, len, 0);\n+\t\tn \u003d (int)recv(wsi-\u003edesc.sockfd, (char *)buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\tlen, 0);\n \n \tif (n \u003e\u003d 0) {\n \n@@ -324,9 +332,9 @@ lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n \n #if defined(LWS_WITH_SERVER_STATUS)\n \t\tif (wsi-\u003ea.vhost)\n-\t\t\twsi-\u003ea.vhost-\u003econn_stats.rx +\u003d n;\n+\t\t\twsi-\u003ea.vhost-\u003econn_stats.rx \u003d (unsigned long long)(wsi-\u003ea.vhost-\u003econn_stats.rx + (unsigned long long)(long long)n);\n #endif\n-\t\tlws_stats_bump(pt, LWSSTATS_B_READ, n);\n+\t\tlws_stats_bump(pt, LWSSTATS_B_READ, (unsigned int)n);\n \n \t\treturn n;\n \t}\n@@ -341,7 +349,7 @@ lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n }\n \n int\n-lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tint n \u003d 0;\n #if defined(LWS_PLAT_OPTEE)\n@@ -361,25 +369,39 @@ lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, int len)\n \t\t\t\t wsi-\u003ea.context-\u003eudp_loss_sim_tx_pc) {\n \t\t\t\tlwsl_warn(\u0022%s: dropping udp tx\u005cn\u0022, __func__);\n \t\t\t\t/* pretend it was sent */\n-\t\t\t\tn \u003d len;\n+\t\t\t\tn \u003d (int)(ssize_t)len;\n \t\t\t\tgoto post_send;\n \t\t\t}\n \t\t}\n \n \t\tif (lws_has_buffered_out(wsi))\n-\t\t\tn \u003d sendto(wsi-\u003edesc.sockfd, (const char *)buf,\n+\t\t\tn \u003d (int)sendto(wsi-\u003edesc.sockfd, (const char *)buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n \t\t\t\t len, 0, sa46_sockaddr(\u0026wsi-\u003eudp-\u003esa46_pending),\n \t\t\t\t sa46_socklen(\u0026wsi-\u003eudp-\u003esa46_pending));\n \t\telse\n-\t\t\tn \u003d sendto(wsi-\u003edesc.sockfd, (const char *)buf,\n+\t\t\tn \u003d (int)sendto(wsi-\u003edesc.sockfd, (const char *)buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n \t\t\t\t len, 0, sa46_sockaddr(\u0026wsi-\u003eudp-\u003esa46),\n \t\t\t\t sa46_socklen(\u0026wsi-\u003eudp-\u003esa46));\n \t} else\n #endif\n \t\tif (wsi-\u003erole_ops-\u003efile_handle)\n-\t\t\tn \u003d write((int)(lws_intptr_t)wsi-\u003edesc.filefd, buf, len);\n+\t\t\tn \u003d (int)write((int)(lws_intptr_t)wsi-\u003edesc.filefd, buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\t\tlen);\n \t\telse\n-\t\t\tn \u003d send(wsi-\u003edesc.sockfd, (char *)buf, len, MSG_NOSIGNAL);\n+\t\t\tn \u003d (int)send(wsi-\u003edesc.sockfd, (char *)buf,\n+#if defined(WIN32)\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\t\tlen, MSG_NOSIGNAL);\n //\tlwsl_info(\u0022%s: sent len %d result %d\u0022, __func__, len, n);\n \n #if defined(LWS_WITH_UDP)\n@@ -399,7 +421,7 @@ post_send:\n \t}\n \n \tlwsl_debug(\u0022ERROR writing len %d to skt fd %d err %d / errno %d\u005cn\u0022,\n-\t\t len, wsi-\u003edesc.sockfd, n, LWS_ERRNO);\n+\t\t (int)(ssize_t)len, wsi-\u003edesc.sockfd, n, LWS_ERRNO);\n \n \treturn LWS_SSL_CAPABLE_ERROR;\n }\ndiff --git a/lib/core-net/pollfd.c b/lib/core-net/pollfd.c\nindex d31f9aa..2086882 100644\n--- a/lib/core-net/pollfd.c\n+++ b/lib/core-net/pollfd.c\n@@ -150,7 +150,7 @@ _lws_change_pollfd(struct lws *wsi, int _and, int _or, struct lws_pollargs *pa)\n \tlwsl_debug(\u0022%s: %s: fd %d events %d -\u003e %d\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n \t\t pa-\u003efd, pfd-\u003eevents, (pfd-\u003eevents \u0026 ~_and) | _or);\n \tpa-\u003eprev_events \u003d pfd-\u003eevents;\n-\tpa-\u003eevents \u003d pfd-\u003eevents \u003d (pfd-\u003eevents \u0026 ~_and) | _or;\n+\tpa-\u003eevents \u003d pfd-\u003eevents \u003d (short)((pfd-\u003eevents \u0026 ~_and) | _or);\n \n \tif (wsi-\u003emux_substream)\n \t\treturn 0;\n@@ -287,7 +287,7 @@ __insert_wsi_socket_into_fds(struct lws_context *context, struct lws *wsi)\n \n #if !defined(_WIN32)\n \tif (!wsi-\u003ea.context-\u003emax_fds_unrelated_to_ulimit \u0026\u0026\n-\t wsi-\u003edesc.sockfd - lws_plat_socket_offset() \u003e\u003d context-\u003emax_fds) {\n+\t wsi-\u003edesc.sockfd - lws_plat_socket_offset() \u003e\u003d (int)context-\u003emax_fds) {\n \t\tlwsl_err(\u0022Socket fd %d is too high (%d) offset %d\u005cn\u0022,\n \t\t\t wsi-\u003edesc.sockfd, context-\u003emax_fds,\n \t\t\t lws_plat_socket_offset());\n@@ -315,7 +315,7 @@ __insert_wsi_socket_into_fds(struct lws_context *context, struct lws *wsi)\n \tif (insert_wsi(context, wsi))\n \t\treturn -1;\n \tpt-\u003ecount_conns++;\n-\twsi-\u003eposition_in_fds_table \u003d pt-\u003efds_count;\n+\twsi-\u003eposition_in_fds_table \u003d (int)pt-\u003efds_count;\n \n \tpt-\u003efds[wsi-\u003eposition_in_fds_table].fd \u003d wsi-\u003edesc.sockfd;\n \tpt-\u003efds[wsi-\u003eposition_in_fds_table].events \u003d LWS_POLLIN;\n@@ -368,7 +368,7 @@ __remove_wsi_socket_from_fds(struct lws *wsi)\n \n #if !defined(_WIN32)\n \tif (!wsi-\u003ea.context-\u003emax_fds_unrelated_to_ulimit \u0026\u0026\n-\t wsi-\u003edesc.sockfd - lws_plat_socket_offset() \u003e context-\u003emax_fds) {\n+\t wsi-\u003edesc.sockfd - lws_plat_socket_offset() \u003e (int)context-\u003emax_fds) {\n \t\tlwsl_err(\u0022fd %d too high (%d)\u005cn\u0022, wsi-\u003edesc.sockfd,\n \t\t\t context-\u003emax_fds);\n \n@@ -583,7 +583,7 @@ lws_same_vh_protocol_insert(struct lws *wsi, int n)\n \tlws_dll2_add_head(\u0026wsi-\u003esame_vh_protocol,\n \t\t\t \u0026wsi-\u003ea.vhost-\u003esame_vh_protocol_owner[n]);\n \n-\twsi-\u003ebound_vhost_index \u003d n;\n+\twsi-\u003ebound_vhost_index \u003d (uint8_t)n;\n \n \tlws_vhost_unlock(wsi-\u003ea.vhost);\n }\ndiff --git a/lib/core-net/private-lib-core-net.h b/lib/core-net/private-lib-core-net.h\nindex 65c425a..a29e82f 100644\n--- a/lib/core-net/private-lib-core-net.h\n+++ b/lib/core-net/private-lib-core-net.h\n@@ -53,7 +53,7 @@ extern \u0022C\u0022 {\n #endif\n \n #define __lws_sul_insert_us(owner, sul, _us) \u005c\n-\t\t(sul)-\u003eus \u003d lws_now_usecs() + _us; \u005c\n+\t\t(sul)-\u003eus \u003d lws_now_usecs() + (lws_usec_t)(_us); \u005c\n \t\t__lws_sul_insert(owner, sul)\n \n \n@@ -603,7 +603,7 @@ __lws_vhost_destroy2(struct lws_vhost *vh);\n #define mux_to_wsi(_m) lws_container_of(_m, struct lws, mux)\n \n void\n-lws_wsi_mux_insert(struct lws *wsi, struct lws *parent_wsi, int sid);\n+lws_wsi_mux_insert(struct lws *wsi, struct lws *parent_wsi, unsigned int sid);\n int\n lws_wsi_mux_mark_parents_needing_writeable(struct lws *wsi);\n struct lws *\n@@ -1125,7 +1125,7 @@ int\n _lws_plat_service_forced_tsi(struct lws_context *context, int tsi);\n \n int\n-lws_rxflow_cache(struct lws *wsi, unsigned char *buf, int n, int len);\n+lws_rxflow_cache(struct lws *wsi, unsigned char *buf, size_t n, size_t len);\n \n int\n lws_service_flag_pending(struct lws_context *context, int tsi);\n@@ -1365,7 +1365,7 @@ _lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi);\n int\n lws_pthread_self_to_tsi(struct lws_context *context);\n const char * LWS_WARN_UNUSED_RESULT\n-lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt);\n+lws_plat_inet_ntop(int af, const void *src, char *dst, socklen_t cnt);\n int LWS_WARN_UNUSED_RESULT\n lws_plat_inet_pton(int af, const char *src, void *dst);\n \ndiff --git a/lib/core-net/sequencer.c b/lib/core-net/sequencer.c\nindex 42b43cd..aa6a0cb 100644\n--- a/lib/core-net/sequencer.c\n+++ b/lib/core-net/sequencer.c\n@@ -198,7 +198,7 @@ lws_seq_sul_pending_cb(lws_sorted_usec_list_t *sul)\n \tdh \u003d lws_dll2_get_head(\u0026seq-\u003eseq_event_owner);\n \tseqe \u003d lws_container_of(dh, lws_seq_event_t, seq_event_list);\n \n-\tn \u003d seq-\u003ecb(seq, (void *)\u0026seq[1], seqe-\u003ee, seqe-\u003edata, seqe-\u003eaux);\n+\tn \u003d (int)seq-\u003ecb(seq, (void *)\u0026seq[1], (int)seqe-\u003ee, seqe-\u003edata, seqe-\u003eaux);\n \n \t/* ... have to lock here though, because we will change the list */\n \ndiff --git a/lib/core-net/server.c b/lib/core-net/server.c\nindex 79d041b..00a9267 100644\n--- a/lib/core-net/server.c\n+++ b/lib/core-net/server.c\n@@ -68,7 +68,7 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)\n \tif (len \u003c 100)\n \t\treturn 0;\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\u0022{\u005cn \u005c\u0022name\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005cn\u0022\n \t\t\t\u0022 \u005c\u0022port\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n \t\t\t\u0022 \u005c\u0022use_ssl\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n@@ -105,12 +105,12 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)\n \tif (vh-\u003ehttp.mount_list) {\n \t\tconst struct lws_http_mount *m \u003d vh-\u003ehttp.mount_list;\n \n-\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u005cn \u005c\u0022mounts\u005c\u0022:[\u0022);\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u005cn \u005c\u0022mounts\u005c\u0022:[\u0022);\n \t\tfirst \u003d 1;\n \t\twhile (m) {\n \t\t\tif (!first)\n-\t\t\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u0022);\n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u0022);\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\t\u0022\u005cn {\u005cn \u005c\u0022mountpoint\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005cn\u0022\n \t\t\t\t\t\u0022 \u005c\u0022origin\u005c\u0022:\u005c\u0022%s%s\u005c\u0022,\u005cn\u0022\n \t\t\t\t\t\u0022 \u005c\u0022cache_max_age\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n@@ -126,25 +126,25 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)\n \t\t\t\t\tm-\u003ecache_revalidate,\n \t\t\t\t\tm-\u003ecache_intermediaries);\n \t\t\tif (m-\u003edef)\n-\t\t\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\t\t\u0022,\u005cn \u005c\u0022default\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022,\n \t\t\t\t\t\tm-\u003edef);\n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005cn }\u0022);\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005cn }\u0022);\n \t\t\tfirst \u003d 0;\n \t\t\tm \u003d m-\u003emount_next;\n \t\t}\n-\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005cn ]\u0022);\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005cn ]\u0022);\n \t}\n #endif\n \tif (vh-\u003eprotocols) {\n \t\tn \u003d 0;\n \t\tfirst \u003d 1;\n \n-\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u005cn \u005c\u0022ws-protocols\u005c\u0022:[\u0022);\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u005cn \u005c\u0022ws-protocols\u005c\u0022:[\u0022);\n \t\twhile (n \u003c vh-\u003ecount_protocols) {\n \t\t\tif (!first)\n-\t\t\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u0022);\n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u0022);\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\t\u0022\u005cn {\u005cn \u005c\u0022%s\u005c\u0022:{\u005cn\u0022\n \t\t\t\t\t\u0022 \u005c\u0022status\u005c\u0022:\u005c\u0022ok\u005c\u0022\u005cn }\u005cn }\u0022\n \t\t\t\t\t,\n@@ -152,12 +152,12 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)\n \t\t\tfirst \u003d 0;\n \t\t\tn++;\n \t\t}\n-\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005cn ]\u0022);\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005cn ]\u0022);\n \t}\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005cn}\u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005cn}\u0022);\n \n-\treturn buf - orig;\n+\treturn lws_ptr_diff(buf, orig);\n }\n \n \n@@ -179,7 +179,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n //\tuv_uptime(\u0026d);\n //#endif\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022{ \u0022\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022{ \u0022\n \t\t\t \u0022\u005c\u0022version\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005cn\u0022\n \t\t\t \u0022\u005c\u0022uptime\u005c\u0022:\u005c\u0022%ld\u005c\u0022,\u005cn\u0022,\n \t\t\t lws_get_library_version(),\n@@ -195,7 +195,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \n \t\tm \u003d getloadavg(d, 3);\n \t\tfor (n \u003d 0; n \u003c m; n++) {\n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\u0022\u005c\u0022l%d\u005c\u0022:\u005c\u0022%.2f\u005c\u0022,\u005cn\u0022,\n \t\t\t\tn + 1, d[n]);\n \t\t}\n@@ -205,23 +205,23 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \tfd \u003d lws_open(\u0022/proc/self/statm\u0022, LWS_O_RDONLY);\n \tif (fd \u003e\u003d 0) {\n \t\tchar contents[96], pure[96];\n-\t\tn \u003d read(fd, contents, sizeof(contents) - 1);\n+\t\tn \u003d (int)read(fd, contents, sizeof(contents) - 1);\n \t\tif (n \u003e 0) {\n \t\t\tcontents[n] \u003d '\u005c0';\n \t\t\tif (contents[n - 1] \u003d\u003d '\u005cn')\n \t\t\t\tcontents[--n] \u003d '\u005c0';\n \t\t\tlws_json_purify(pure, contents, sizeof(pure), NULL);\n \n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\t \u0022\u005c\u0022statm\u005c\u0022: \u005c\u0022%s\u005c\u0022,\u005cn\u0022, pure);\n \t\t}\n \t\tclose(fd);\n \t}\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005c\u0022heap\u005c\u0022:%lld,\u005cn\u005c\u0022contexts\u005c\u0022:[\u005cn\u0022,\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005c\u0022heap\u005c\u0022:%lld,\u005cn\u005c\u0022contexts\u005c\u0022:[\u005cn\u0022,\n \t\t\t\t(long long)lws_get_allocated_heap());\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022{ \u0022\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022{ \u0022\n \t\t\t\t\u0022\u005c\u0022context_uptime\u005c\u0022:\u005c\u0022%llu\u005c\u0022,\u005cn\u0022\n \t\t\t\t\u0022\u005c\u0022cgi_spawned\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n \t\t\t\t\u0022\u005c\u0022pt_fd_max\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n@@ -234,12 +234,12 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \t\t\t\tcontext-\u003emax_http_header_pool,\n \t\t\t\tcontext-\u003edeprecated);\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022\u005c\u0022pt\u005c\u0022:[\u005cn \u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022\u005c\u0022pt\u005c\u0022:[\u005cn \u0022);\n \tfor (n \u003d 0; n \u003c context-\u003ecount_threads; n++) {\n \t\tpt \u003d \u0026context-\u003ept[n];\n \t\tif (n)\n-\t\t\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u0022);\n-\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u0022);\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t\u0022\u005cn {\u005cn\u0022\n \t\t\t\t\u0022 \u005c\u0022fds_count\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n \t\t\t\t\u0022 \u005c\u0022ah_pool_inuse\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n@@ -252,9 +252,9 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \t\t\t\tpt-\u003ecount_wsi_allocated);\n \t}\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022]\u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022]\u0022);\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022, \u005c\u0022vhosts\u005c\u0022:[\u005cn \u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022, \u005c\u0022vhosts\u005c\u0022:[\u005cn \u0022);\n \n \tfirst \u003d 1;\n \tvh \u003d context-\u003evhost_list;\n@@ -265,9 +265,9 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \n \t\tif (!hide_vhosts) {\n \t\t\tif (!first)\n-\t\t\t\tif(buf !\u003d end)\n+\t\t\t\tif (buf !\u003d end)\n \t\t\t\t\t*buf++ \u003d ',';\n-\t\t\tbuf +\u003d lws_json_dump_vhost(vh, buf, end - buf);\n+\t\t\tbuf +\u003d lws_json_dump_vhost(vh, buf, lws_ptr_diff(end, buf));\n \t\t\tfirst \u003d 0;\n \t\t}\n \t\tif (vh-\u003elserv_wsi)\n@@ -275,7 +275,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \t\tvh \u003d vh-\u003evhost_next;\n \t}\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\u0022],\u005cn\u005c\u0022listen_wsi\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u005cn\u0022\n \t\t\t\u0022 \u005c\u0022rx\u005c\u0022:\u005c\u0022%llu\u005c\u0022,\u005cn\u0022\n \t\t\t\u0022 \u005c\u0022tx\u005c\u0022:\u005c\u0022%llu\u005c\u0022,\u005cn\u0022\n@@ -309,15 +309,15 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len,\n \t\t}\n \t}\n #endif\n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022,\u005cn \u005c\u0022cgi_alive\u005c\u0022:\u005c\u0022%d\u005c\u0022\u005cn \u0022,\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022,\u005cn \u005c\u0022cgi_alive\u005c\u0022:\u005c\u0022%d\u005c\u0022\u005cn \u0022,\n \t\t\tcgi_count);\n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022}\u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022}\u0022);\n \n \n-\tbuf +\u003d lws_snprintf(buf, end - buf, \u0022]}\u005cn \u0022);\n+\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf), \u0022]}\u005cn \u0022);\n \n-\treturn buf - orig;\n+\treturn lws_ptr_diff(buf, orig);\n }\n \n #endif\ndiff --git a/lib/core-net/service.c b/lib/core-net/service.c\nindex 1eda161..080c271 100644\n--- a/lib/core-net/service.c\n+++ b/lib/core-net/service.c\n@@ -49,7 +49,7 @@ lws_callback_as_writeable(struct lws *wsi)\n \t\t\t\t\twsi-\u003edetlat.earliest_write_req;\n \t\twsi-\u003edetlat.earliest_write_req \u003d 0;\n \t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_RX_TO_ONWARD_TX] \u003d\n-\t\t ((uint32_t)us - wsi-\u003edetlat.earliest_write_req_pre_write);\n+\t\t (uint32_t)(us - wsi-\u003edetlat.earliest_write_req_pre_write);\n \t}\n #endif\n \tn \u003d wsi-\u003erole_ops-\u003ewriteable_cb[lwsi_role_server(wsi)];\n@@ -249,7 +249,7 @@ bail_die:\n }\n \n int\n-lws_rxflow_cache(struct lws *wsi, unsigned char *buf, int n, int len)\n+lws_rxflow_cache(struct lws *wsi, unsigned char *buf, size_t n, size_t len)\n {\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tuint8_t *buffered;\n@@ -279,7 +279,7 @@ lws_rxflow_cache(struct lws *wsi, unsigned char *buf, int n, int len)\n \n \t/* a new rxflow, buffer it and warn caller */\n \n-\tlwsl_debug(\u0022%s: rxflow append %d\u005cn\u0022, __func__, len - n);\n+\tlwsl_debug(\u0022%s: rxflow append %d\u005cn\u0022, __func__, (int)(len - n));\n \tm \u003d lws_buflist_append_segment(\u0026wsi-\u003ebuflist, buf + n, len - n);\n \n \tif (m \u003c 0)\n@@ -391,7 +391,7 @@ lws_buflist_aware_read(struct lws_context_per_thread *pt, struct lws *wsi,\n \t\tebuf-\u003etoken \u003d pt-\u003eserv_buf + LWS_PRE;\n \tif (!ebuf-\u003elen ||\n \t (unsigned int)ebuf-\u003elen \u003e wsi-\u003ea.context-\u003ept_serv_buf_size - LWS_PRE)\n-\t\tebuf-\u003elen \u003d wsi-\u003ea.context-\u003ept_serv_buf_size - LWS_PRE;\n+\t\tebuf-\u003elen \u003d (int)(wsi-\u003ea.context-\u003ept_serv_buf_size - LWS_PRE);\n \n \te \u003d ebuf-\u003elen;\n \tep \u003d ebuf-\u003etoken;\n@@ -412,7 +412,7 @@ lws_buflist_aware_read(struct lws_context_per_thread *pt, struct lws *wsi,\n \t/* we're going to read something */\n \n \tebuf-\u003etoken \u003d ep;\n-\tebuf-\u003elen \u003d n \u003d lws_ssl_capable_read(wsi, ep, e);\n+\tebuf-\u003elen \u003d n \u003d lws_ssl_capable_read(wsi, ep, (size_t)e);\n \n \tlwsl_debug(\u0022%s: %s: %s: ssl_capable_read %d\u005cn\u0022, __func__,\n \t\t\tlws_wsi_tag(wsi), hint, ebuf-\u003elen);\n@@ -437,7 +437,7 @@ lws_buflist_aware_read(struct lws_context_per_thread *pt, struct lws *wsi,\n \t\t * Stash what we read, since there's earlier buflist material\n \t\t */\n \n-\t\tn \u003d lws_buflist_append_segment(\u0026wsi-\u003ebuflist, ebuf-\u003etoken, ebuf-\u003elen);\n+\t\tn \u003d lws_buflist_append_segment(\u0026wsi-\u003ebuflist, ebuf-\u003etoken, (size_t)ebuf-\u003elen);\n \t\tif (n \u003c 0)\n \t\t\treturn -1;\n \t\tif (n \u0026\u0026 lws_dll2_is_detached(\u0026wsi-\u003edll_buflist))\n@@ -498,12 +498,12 @@ lws_buflist_aware_finished_consuming(struct lws *wsi, struct lws_tokens *ebuf,\n \n \t/* any remainder goes on the buflist */\n \n-\tif (used !\u003d ebuf-\u003elen) {\n+\tif (used \u003c ebuf-\u003elen \u0026\u0026 ebuf-\u003elen \u003e\u003d 0 \u0026\u0026 used \u003e\u003d 0) {\n \t\t// lwsl_notice(\u0022%s %s bac appending %d\u005cn\u0022, __func__, hint,\n \t\t//\t\tebuf-\u003elen - used);\n \t\tm \u003d lws_buflist_append_segment(\u0026wsi-\u003ebuflist,\n \t\t\t\t\t ebuf-\u003etoken + used,\n-\t\t\t\t\t ebuf-\u003elen - used);\n+\t\t\t\t\t (unsigned int)(ebuf-\u003elen - used));\n \t\tif (m \u003c 0)\n \t\t\treturn 1; /* OOM */\n \t\tif (m) {\n@@ -618,9 +618,10 @@ lws_service_flag_pending(struct lws_context *context, int tsi)\n \n \t\tif (wsi-\u003eposition_in_fds_table \u003e\u003d 0) {\n \n-\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\u003d\n-\t\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026\n-\t\t\t\t\t\t\t\tLWS_POLLIN;\n+\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u003d (short)(\n+\t\t\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\n+\t\t\t\t(pt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026\n+\t\t\t\t\t\t\t\tLWS_POLLIN));\n \t\t\tif (pt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u0026\n \t\t\t\t\t\t\t\tLWS_POLLIN)\n \t\t\t\t/*\ndiff --git a/lib/core-net/socks5-client.c b/lib/core-net/socks5-client.c\nindex 975f204..f0db8f8 100644\n--- a/lib/core-net/socks5-client.c\n+++ b/lib/core-net/socks5-client.c\n@@ -61,9 +61,9 @@ lws_set_socks(struct lws_vhost *vhost, const char *socks)\n \t\t\t}\n \n \t\t\tlws_strncpy(vhost-\u003esocks_user, socks,\n-\t\t\t\t p_colon - socks + 1);\n+\t\t\t\t lws_ptr_diff_size_t(p_colon, socks) + 1);\n \t\t\tlws_strncpy(vhost-\u003esocks_password, p_colon + 1,\n-\t\t\t\tp_at - (p_colon + 1) + 1);\n+\t\t\t\tlws_ptr_diff_size_t(p_at, (p_colon + 1)) + 1);\n \t\t}\n \n \t\tlwsl_info(\u0022 Socks auth, user: %s, password: %s\u005cn\u0022,\n@@ -82,7 +82,7 @@ lws_set_socks(struct lws_vhost *vhost, const char *socks)\n \t} else {\n \t\tif (p_colon) {\n \t\t\t*p_colon \u003d '\u005c0';\n-\t\t\tvhost-\u003esocks_proxy_port \u003d atoi(p_colon + 1);\n+\t\t\tvhost-\u003esocks_proxy_port \u003d (unsigned int)atoi(p_colon + 1);\n \t\t}\n \t}\n \n@@ -121,8 +121,8 @@ lws_socks5c_generate_msg(struct lws *wsi, enum socks_msg_type type,\n \t\tbreak;\n \n \tcase SOCKS_MSG_USERNAME_PASSWORD:\n-\t\tn \u003d strlen(wsi-\u003ea.vhost-\u003esocks_user);\n-\t\tpasswd_len \u003d strlen(wsi-\u003ea.vhost-\u003esocks_password);\n+\t\tn \u003d (ssize_t)strlen(wsi-\u003ea.vhost-\u003esocks_user);\n+\t\tpasswd_len \u003d (ssize_t)strlen(wsi-\u003ea.vhost-\u003esocks_password);\n \n \t\tif (n \u003e 254 || passwd_len \u003e 254)\n \t\t\treturn 1;\n@@ -134,21 +134,21 @@ lws_socks5c_generate_msg(struct lws *wsi, enum socks_msg_type type,\n \t\t*p++ \u003d SOCKS_SUBNEGOTIATION_VERSION_1;\n \n \t\t/* length of the user name */\n-\t\t*p++ \u003d n;\n+\t\t*p++ \u003d (uint8_t)n;\n \t\t/* user name */\n-\t\tmemcpy(p, wsi-\u003ea.vhost-\u003esocks_user, n);\n-\t\tp +\u003d n;\n+\t\tmemcpy(p, wsi-\u003ea.vhost-\u003esocks_user, (size_t)n);\n+\t\tp +\u003d (uint8_t)n;\n \n \t\t/* length of the password */\n-\t\t*p++ \u003d passwd_len;\n+\t\t*p++ \u003d (uint8_t)passwd_len;\n \n \t\t/* password */\n-\t\tmemcpy(p, wsi-\u003ea.vhost-\u003esocks_password, passwd_len);\n+\t\tmemcpy(p, wsi-\u003ea.vhost-\u003esocks_password, (size_t)passwd_len);\n \t\tp +\u003d passwd_len;\n \t\tbreak;\n \n \tcase SOCKS_MSG_CONNECT:\n-\t\tn \u003d strlen(wsi-\u003estash-\u003ecis[CIS_ADDRESS]);\n+\t\tn \u003d (ssize_t)strlen(wsi-\u003estash-\u003ecis[CIS_ADDRESS]);\n \n \t\tif (n \u003e 254 || lws_ptr_diff(end, p) \u003c 5 + n + 2)\n \t\t\treturn 1;\n@@ -164,17 +164,17 @@ lws_socks5c_generate_msg(struct lws *wsi, enum socks_msg_type type,\n \t\t/* address type */\n \t\t*p++ \u003d SOCKS_ATYP_DOMAINNAME;\n \t\t/* length of ---\u003e */\n-\t\t*p++ \u003d n;\n+\t\t*p++ \u003d (uint8_t)n;\n \n \t\t/* the address we tell SOCKS proxy to connect to */\n-\t\tmemcpy(p, wsi-\u003estash-\u003ecis[CIS_ADDRESS], n);\n+\t\tmemcpy(p, wsi-\u003estash-\u003ecis[CIS_ADDRESS], (size_t)n);\n \t\tp +\u003d n;\n \n-\t\tnet_num \u003d htons(wsi-\u003ec_port);\n+\t\tnet_num \u003d (short)htons(wsi-\u003ec_port);\n \n \t\t/* the port we tell SOCKS proxy to connect to */\n-\t\t*p++ \u003d cp[0];\n-\t\t*p++ \u003d cp[1];\n+\t\t*p++ \u003d (uint8_t)cp[0];\n+\t\t*p++ \u003d (uint8_t)cp[1];\n \n \t\tbreak;\n \n@@ -232,7 +232,7 @@ lws_socks5c_greet(struct lws *wsi, const char **pcce)\n \t\treturn -1;\n \t}\n \t// lwsl_hexdump_notice(pt-\u003eserv_buf, plen);\n-\tn \u003d send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, plen,\n+\tn \u003d (int)send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, (size_t)plen,\n \t\t MSG_NOSIGNAL);\n \tif (n \u003c 0) {\n \t\tlwsl_debug(\u0022ERROR writing socks greeting\u005cn\u0022);\n@@ -241,7 +241,7 @@ lws_socks5c_greet(struct lws *wsi, const char **pcce)\n \t}\n \n \tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_SOCKS_GREETING_REPLY,\n-\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \tlwsi_set_state(wsi, LRS_WAITING_SOCKS_GREETING_REPLY);\n \n@@ -266,7 +266,7 @@ lws_socks5c_handle_state(struct lws *wsi, struct lws_pollfd *pollfd,\n \t\treturn LW5CHS_RET_BAIL3;\n \t}\n \n-\tn \u003d recv(wsi-\u003edesc.sockfd, pt-\u003eserv_buf,\n+\tn \u003d (int)recv(wsi-\u003edesc.sockfd, pt-\u003eserv_buf,\n \t\t wsi-\u003ea.context-\u003ept_serv_buf_size, 0);\n \tif (n \u003c 0) {\n \t\tif (LWS_ERRNO \u003d\u003d LWS_EAGAIN) {\n@@ -330,7 +330,7 @@ socks_send_msg_fail:\n \t\t\t PENDING_TIMEOUT_AWAITING_SOCKS_CONNECT_REPLY;\n socks_send:\n \t\t// lwsl_hexdump_notice(pt-\u003eserv_buf, len);\n-\t\tn \u003d send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, len,\n+\t\tn \u003d (int)send(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf, (size_t)len,\n \t\t\t MSG_NOSIGNAL);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_debug(\u0022ERROR writing to socks proxy\u005cn\u0022);\n@@ -338,9 +338,9 @@ socks_send:\n \t\t\treturn LW5CHS_RET_BAIL3;\n \t\t}\n \n-\t\tlws_set_timeout(wsi, pending_timeout,\n-\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n-\t\tlwsi_set_state(wsi, conn_mode);\n+\t\tlws_set_timeout(wsi, (enum pending_timeout)pending_timeout,\n+\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n+\t\tlwsi_set_state(wsi, (lws_wsi_state_t)conn_mode);\n \t\tbreak;\n \n socks_reply_fail:\n@@ -365,7 +365,7 @@ socks_reply_fail:\n \t\t}\n #endif\n \n-\t\twsi-\u003ec_port \u003d wsi-\u003ea.vhost-\u003esocks_proxy_port;\n+\t\twsi-\u003ec_port \u003d (uint16_t)wsi-\u003ea.vhost-\u003esocks_proxy_port;\n \n \t\t/* clear his proxy connection timeout */\n \t\tlws_set_timeout(wsi, NO_PENDING_TIMEOUT, 0);\ndiff --git a/lib/core-net/vhost.c b/lib/core-net/vhost.c\nindex 7b25153..f699636 100644\n--- a/lib/core-net/vhost.c\n+++ b/lib/core-net/vhost.c\n@@ -240,7 +240,7 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost,\n \t/* allocate the vh priv array only on demand */\n \tif (!vhost-\u003eprotocol_vh_privs) {\n \t\tvhost-\u003eprotocol_vh_privs \u003d (void **)lws_zalloc(\n-\t\t\t\tvhost-\u003ecount_protocols * sizeof(void *),\n+\t\t\t\t(size_t)vhost-\u003ecount_protocols * sizeof(void *),\n \t\t\t\t\u0022protocol_vh_privs\u0022);\n \t\tif (!vhost-\u003eprotocol_vh_privs)\n \t\t\treturn NULL;\n@@ -259,7 +259,7 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost,\n \t\t\treturn NULL;\n \t}\n \n-\tvhost-\u003eprotocol_vh_privs[n] \u003d lws_zalloc(size, \u0022vh priv\u0022);\n+\tvhost-\u003eprotocol_vh_privs[n] \u003d lws_zalloc((size_t)size, \u0022vh priv\u0022);\n \treturn vhost-\u003eprotocol_vh_privs[n];\n }\n \n@@ -347,14 +347,14 @@ lws_protocol_init_vhost(struct lws_vhost *vh, int *any)\n \t\t\t\t\t \u0022protocol for vh %s to %s\u005cn\u0022,\n \t\t\t\t\t vh-\u003ename,\n \t\t\t\t\t vh-\u003eprotocols[n].name);\n-\t\t\t\t\tvh-\u003edefault_protocol_index \u003d n;\n+\t\t\t\t\tvh-\u003edefault_protocol_index \u003d (unsigned char)n;\n \t\t\t\t}\n \t\t\t\tif (!strcmp(pvo-\u003ename, \u0022raw\u0022)) {\n \t\t\t\t\tlwsl_info(\u0022Setting raw \u0022\n \t\t\t\t\t \u0022protocol for vh %s to %s\u005cn\u0022,\n \t\t\t\t\t vh-\u003ename,\n \t\t\t\t\t vh-\u003eprotocols[n].name);\n-\t\t\t\t\tvh-\u003eraw_protocol_index \u003d n;\n+\t\t\t\t\tvh-\u003eraw_protocol_index \u003d (unsigned char)n;\n \t\t\t\t}\n \t\t\t\tpvo \u003d pvo-\u003enext;\n \t\t\t}\n@@ -529,7 +529,7 @@ lws_create_vhost(struct lws_context *context,\n #endif\n #if defined(LWS_WITH_CLIENT)\n \tif (info-\u003econnect_timeout_secs)\n-\t\tvh-\u003econnect_timeout_secs \u003d info-\u003econnect_timeout_secs;\n+\t\tvh-\u003econnect_timeout_secs \u003d (int)info-\u003econnect_timeout_secs;\n \telse\n \t\tvh-\u003econnect_timeout_secs \u003d 20;\n #endif\n@@ -579,7 +579,7 @@ lws_create_vhost(struct lws_context *context,\n \t\tvh-\u003ekeepalive_timeout \u003d 5;\n \n \tif (info-\u003etimeout_secs_ah_idle)\n-\t\tvh-\u003etimeout_secs_ah_idle \u003d info-\u003etimeout_secs_ah_idle;\n+\t\tvh-\u003etimeout_secs_ah_idle \u003d (int)info-\u003etimeout_secs_ah_idle;\n \telse\n \t\tvh-\u003etimeout_secs_ah_idle \u003d 10;\n \n@@ -601,11 +601,11 @@ lws_create_vhost(struct lws_context *context,\n \n \tif (n) {\n \t\tvh-\u003etls.key_path \u003d vh-\u003etls.alloc_cert_path \u003d\n-\t\t\t\t\tlws_malloc(n, \u0022vh paths\u0022);\n+\t\t\t\t\tlws_malloc((unsigned int)n, \u0022vh paths\u0022);\n \t\tif (info-\u003essl_cert_filepath) {\n \t\t\tn \u003d (int)strlen(info-\u003essl_cert_filepath) + 1;\n \t\t\tmemcpy(vh-\u003etls.alloc_cert_path,\n-\t\t\t info-\u003essl_cert_filepath, n);\n+\t\t\t info-\u003essl_cert_filepath, (unsigned int)n);\n \t\t\tvh-\u003etls.key_path +\u003d n;\n \t\t}\n \t\tif (info-\u003essl_private_key_filepath)\n@@ -633,10 +633,11 @@ lws_create_vhost(struct lws_context *context,\n \t * - his user protocols\n \t */\n \tlwsp \u003d lws_zalloc(sizeof(struct lws_protocols) *\n-\t\t\t\t(vh-\u003ecount_protocols +\n-\t\t\t\t abs_pcol_count + sec_pcol_count +\n-\t\t\t\t context-\u003eplugin_protocol_count +\n-\t\t\t\t fx + 1),\n+\t\t\t\t((unsigned int)vh-\u003ecount_protocols +\n+\t\t\t\t (unsigned int)abs_pcol_count +\n+\t\t\t\t (unsigned int)sec_pcol_count +\n+\t\t\t\t (unsigned int)context-\u003eplugin_protocol_count +\n+\t\t\t\t (unsigned int)fx + 1),\n \t\t\t \u0022vhost-specific plugin table\u0022);\n \tif (!lwsp) {\n \t\tlwsl_err(\u0022OOM\u005cn\u0022);\n@@ -652,7 +653,7 @@ lws_create_vhost(struct lws_context *context,\n \t\tfor (n \u003d 0; n \u003c m; n++)\n \t\t\tmemcpy(\u0026lwsp[n], info-\u003epprotocols[n], sizeof(lwsp[0]));\n \t} else\n-\t\tmemcpy(lwsp, pcols, sizeof(struct lws_protocols) * m);\n+\t\tmemcpy(lwsp, pcols, sizeof(struct lws_protocols) * (unsigned int)m);\n \n \t/*\n \t * 2: abstract protocols\n@@ -727,7 +728,7 @@ lws_create_vhost(struct lws_context *context,\n \n \tvh-\u003esame_vh_protocol_owner \u003d (struct lws_dll2_owner *)\n \t\t\tlws_zalloc(sizeof(struct lws_dll2_owner) *\n-\t\t\t\t vh-\u003ecount_protocols, \u0022same vh list\u0022);\n+\t\t\t\t (unsigned int)vh-\u003ecount_protocols, \u0022same vh list\u0022);\n #if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2)\n \tvh-\u003ehttp.mount_list \u003d info-\u003emounts;\n #endif\n@@ -819,7 +820,7 @@ lws_create_vhost(struct lws_context *context,\n \t\t\tgoto bail;\n \t\t}\n #ifndef WIN32\n-\t\tif (context-\u003euid !\u003d -1)\n+\t\tif (context-\u003euid !\u003d (uid_t)-1)\n \t\t\tif (chown(info-\u003elog_filepath, context-\u003euid,\n \t\t\t\t context-\u003egid) \u003d\u003d -1)\n \t\t\t\tlwsl_err(\u0022unable to chown log file %s\u005cn\u0022,\n@@ -1356,7 +1357,7 @@ lws_vhost_destroy(struct lws_vhost *vh)\n \t/* part 2 is deferred to allow all the handle closes to complete */\n \n \tdf-\u003enext \u003d vh-\u003econtext-\u003edeferred_free_list;\n-\tdf-\u003edeadline \u003d lws_now_secs();\n+\tdf-\u003edeadline \u003d (long)lws_now_secs();\n \tdf-\u003epayload \u003d vh;\n \tvh-\u003econtext-\u003edeferred_free_list \u003d df;\n \ndiff --git a/lib/core-net/wsi-timeout.c b/lib/core-net/wsi-timeout.c\nindex bef81ed..a51a34e 100644\n--- a/lib/core-net/wsi-timeout.c\n+++ b/lib/core-net/wsi-timeout.c\n@@ -136,7 +136,7 @@ __lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs)\n \tlwsl_debug(\u0022%s: %s: %d secs, reason %d\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n \t\t\tsecs, reason);\n \n-\twsi-\u003epending_timeout \u003d reason;\n+\twsi-\u003epending_timeout \u003d (char)reason;\n }\n \n void\n@@ -194,7 +194,7 @@ lws_set_timeout_us(struct lws *wsi, enum pending_timeout reason, lws_usec_t us)\n \tlwsl_notice(\u0022%s: %s: %llu us, reason %d\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n \t\t (unsigned long long)us, reason);\n \n-\twsi-\u003epending_timeout \u003d reason;\n+\twsi-\u003epending_timeout \u003d (char)reason;\n \tlws_pt_unlock(pt);\n }\n \ndiff --git a/lib/core-net/wsi.c b/lib/core-net/wsi.c\nindex f494af1..c96a0cb 100644\n--- a/lib/core-net/wsi.c\n+++ b/lib/core-net/wsi.c\n@@ -43,7 +43,7 @@ void lwsi_set_role(struct lws *wsi, lws_wsi_state_t role)\n \n void lwsi_set_state(struct lws *wsi, lws_wsi_state_t lrs)\n {\n-\twsi-\u003ewsistate \u003d (wsi-\u003ewsistate \u0026 (~LRS_MASK)) | lrs;\n+\twsi-\u003ewsistate \u003d (wsi-\u003ewsistate \u0026 (unsigned int)(~LRS_MASK)) | lrs;\n \n \tlwsl_debug(\u0022lwsi_set_state(%s, 0x%lx)\u005cn\u0022, lws_wsi_tag(wsi),\n \t\t\t\t\t(unsigned long)wsi-\u003ewsistate);\n@@ -144,8 +144,9 @@ lws_callback_all_protocol(struct lws_context *context,\n \t\t\tif (!wsi)\n \t\t\t\tcontinue;\n \t\t\tif (wsi-\u003ea.protocol \u003d\u003d protocol)\n-\t\t\t\tprotocol-\u003ecallback(wsi, reason, wsi-\u003euser_space,\n-\t\t\t\t\t\t NULL, 0);\n+\t\t\t\tprotocol-\u003ecallback(wsi,\n+\t\t\t\t\t(enum lws_callback_reasons)reason,\n+\t\t\t\t\twsi-\u003euser_space, NULL, 0);\n \t\t}\n \t\tpt++;\n \t}\n@@ -170,7 +171,7 @@ lws_callback_all_protocol_vhost_args(struct lws_vhost *vh,\n \t\t\t\tcontinue;\n \t\t\tif (wsi-\u003ea.vhost \u003d\u003d vh \u0026\u0026 (wsi-\u003ea.protocol \u003d\u003d protocol ||\n \t\t\t\t\t\t !protocol))\n-\t\t\t\twsi-\u003ea.protocol-\u003ecallback(wsi, reason,\n+\t\t\t\twsi-\u003ea.protocol-\u003ecallback(wsi, (enum lws_callback_reasons)reason,\n \t\t\t\t\t\twsi-\u003euser_space, argp, len);\n \t\t}\n \t\tpt++;\n@@ -187,12 +188,12 @@ lws_callback_all_protocol_vhost(struct lws_vhost *vh,\n }\n \n int\n-lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len)\n+lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, size_t len)\n {\n \tint n;\n \n \tfor (n \u003d 0; n \u003c wsi-\u003ea.vhost-\u003ecount_protocols; n++)\n-\t\tif (wsi-\u003ea.vhost-\u003eprotocols[n].callback(wsi, reason, NULL, in, len))\n+\t\tif (wsi-\u003ea.vhost-\u003eprotocols[n].callback(wsi, (enum lws_callback_reasons)reason, NULL, in, len))\n \t\t\treturn 1;\n \n \treturn 0;\n@@ -232,7 +233,7 @@ __lws_wsi_create_with_role(struct lws_context *context, int tsi,\n \tlws_role_transition(wsi, 0, LRS_UNCONNECTED, ops);\n \twsi-\u003epending_timeout \u003d NO_PENDING_TIMEOUT;\n \twsi-\u003ea.protocol \u003d NULL;\n-\twsi-\u003etsi \u003d tsi;\n+\twsi-\u003etsi \u003d (char)tsi;\n \twsi-\u003ea.vhost \u003d NULL;\n \twsi-\u003edesc.sockfd \u003d LWS_SOCK_INVALID;\n \twsi-\u003eposition_in_fds_table \u003d LWS_NO_FDS_POS;\n@@ -313,7 +314,7 @@ lws_callback_vhost_protocols_vhost(struct lws_vhost *vh, int reason, void *in,\n \n \tfor (n \u003d 0; n \u003c wsi-\u003ea.vhost-\u003ecount_protocols; n++) {\n \t\twsi-\u003ea.protocol \u003d \u0026vh-\u003eprotocols[n];\n-\t\tif (wsi-\u003ea.protocol-\u003ecallback(wsi, reason, NULL, in, len)) {\n+\t\tif (wsi-\u003ea.protocol-\u003ecallback(wsi, (enum lws_callback_reasons)reason, NULL, in, len)) {\n \t\t\tlws_free(wsi);\n \t\t\treturn 1;\n \t\t}\n@@ -352,9 +353,9 @@ lws_rx_flow_control(struct lws *wsi, int _enable)\n \n \t/* any bit set in rxflow_bitmap DISABLEs rxflow control */\n \tif (en \u0026 LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT)\n-\t\twsi-\u003erxflow_bitmap \u0026\u003d ~(en \u0026 0xff);\n+\t\twsi-\u003erxflow_bitmap \u0026\u003d (uint8_t)~(en \u0026 0xff);\n \telse\n-\t\twsi-\u003erxflow_bitmap |\u003d en \u0026 0xff;\n+\t\twsi-\u003erxflow_bitmap |\u003d (uint8_t)(en \u0026 0xff);\n \n \tif ((LWS_RXFLOW_PENDING_CHANGE | (!wsi-\u003erxflow_bitmap)) \u003d\u003d\n \t wsi-\u003erxflow_change_to)\n@@ -448,7 +449,7 @@ __lws_rx_flow_control(struct lws *wsi)\n \n \t/* now the pending is cleared, we can change rxflow state */\n \n-\twsi-\u003erxflow_change_to \u0026\u003d ~LWS_RXFLOW_PENDING_CHANGE;\n+\twsi-\u003erxflow_change_to \u0026\u003d (~LWS_RXFLOW_PENDING_CHANGE) \u0026 3;\n \n \tlwsl_info(\u0022rxflow: %s change_to %d\u005cn\u0022, lws_wsi_tag(wsi),\n \t\t wsi-\u003erxflow_change_to \u0026 LWS_RXFLOW_ALLOW);\n@@ -560,7 +561,7 @@ lws_role_transition(struct lws *wsi, enum lwsi_role role, enum lwsi_state state,\n #if (_LWS_ENABLED_LOGS \u0026 LLL_DEBUG) \n \tconst char *name \u003d \u0022(unset)\u0022;\n #endif\n-\twsi-\u003ewsistate \u003d role | state;\n+\twsi-\u003ewsistate \u003d (unsigned int)role | (unsigned int)state;\n \tif (ops)\n \t\twsi-\u003erole_ops \u003d ops;\n #if (_LWS_ENABLED_LOGS \u0026 LLL_DEBUG)\n@@ -630,7 +631,8 @@ lws_parse_uri(char *p, const char **prot, const char **ads, int *port,\n const char *\n lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len)\n {\n-\tint n \u003d 0, sl \u003d (int)strlen(name);\n+\tint n \u003d 0;\n+\tsize_t sl \u003d strlen(name);\n \n \twhile (lws_hdr_copy_fragment(wsi, buf, len,\n \t\t\t WSI_TOKEN_HTTP_URI_ARGS, n) \u003e\u003d 0) {\n@@ -724,7 +726,7 @@ lws_broadcast(struct lws_context_per_thread *pt, int reason, void *in, size_t le\n \n \tlws_fakewsi_prep_plwsa_ctx(pt-\u003econtext);\n #if !defined(LWS_PLAT_FREERTOS) \u0026\u0026 LWS_MAX_SMP \u003e 1\n-\t((struct lws *)plwsa)-\u003etsi \u003d (int)(pt - \u0026pt-\u003econtext-\u003ept[0]);\n+\t((struct lws *)plwsa)-\u003etsi \u003d (char)(int)(pt - \u0026pt-\u003econtext-\u003ept[0]);\n #endif\n \n \twhile (v) {\n@@ -735,7 +737,7 @@ lws_broadcast(struct lws_context_per_thread *pt, int reason, void *in, size_t le\n \t\tfor (n \u003d 0; n \u003c v-\u003ecount_protocols; n++) {\n \t\t\tplwsa-\u003eprotocol \u003d p;\n \t\t\tif (p-\u003ecallback \u0026\u0026\n-\t\t\t p-\u003ecallback((struct lws *)plwsa, reason, NULL, in, len))\n+\t\t\t p-\u003ecallback((struct lws *)plwsa, (enum lws_callback_reasons)reason, NULL, in, len))\n \t\t\t\tret |\u003d 1;\n \t\t\tp++;\n \t\t}\n@@ -1209,7 +1211,7 @@ lws_wsi_client_stash_item(struct lws *wsi, int stash_idx, int hdr_idx)\n \n #if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2)\n \t/* if not, use the ah stash if applicable */\n-\treturn lws_hdr_simple_ptr(wsi, hdr_idx);\n+\treturn lws_hdr_simple_ptr(wsi, (enum lws_token_indexes)hdr_idx);\n #else\n \treturn NULL;\n #endif\n@@ -1219,7 +1221,7 @@ lws_wsi_client_stash_item(struct lws *wsi, int stash_idx, int hdr_idx)\n #if defined(LWS_ROLE_H2) || defined(LWS_ROLE_MQTT)\n \n void\n-lws_wsi_mux_insert(struct lws *wsi, struct lws *parent_wsi, int sid)\n+lws_wsi_mux_insert(struct lws *wsi, struct lws *parent_wsi, unsigned int sid)\n {\n \tlwsl_info(\u0022%s: %s, par %s: assign sid %d (curr %d)\u005cn\u0022, __func__,\n \t\t lws_wsi_tag(wsi), lws_wsi_tag(parent_wsi), sid, wsi-\u003emux.my_sid);\n@@ -1285,7 +1287,7 @@ lws_wsi_mux_close_children(struct lws *wsi, int reason)\n \t\tassert (wsi2 !\u003d *w);\n \t\t(*w)-\u003emux.sibling_list \u003d NULL;\n \t\t(*w)-\u003esocket_is_permanently_unusable \u003d 1;\n-\t\t__lws_close_free_wsi(*w, reason, \u0022mux child recurse\u0022);\n+\t\t__lws_close_free_wsi(*w, (enum lws_close_status)reason, \u0022mux child recurse\u0022);\n \t\t*w \u003d wsi2;\n \t}\n }\ndiff --git a/lib/core/buflist.c b/lib/core/buflist.c\nindex 8f2f253..b89330a 100644\n--- a/lib/core/buflist.c\n+++ b/lib/core/buflist.c\n@@ -149,7 +149,7 @@ lws_buflist_use_segment(struct lws_buflist **head, size_t len)\n \tassert(b-\u003epos \u003c\u003d b-\u003elen);\n \n \tif (b-\u003epos \u003c b-\u003elen)\n-\t\treturn (int)(b-\u003elen - b-\u003epos);\n+\t\treturn (unsigned int)(b-\u003elen - b-\u003epos);\n \n \tif (lws_buflist_destroy_segment(head))\n \t\t/* last segment was just destroyed */\ndiff --git a/lib/core/context.c b/lib/core/context.c\nindex 350cc3d..822623e 100644\n--- a/lib/core/context.c\n+++ b/lib/core/context.c\n@@ -391,7 +391,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \tpid_t pid_daemon \u003d get_daemonize_pid();\n #endif\n #if defined(LWS_WITH_NETWORK)\n-\tint count_threads \u003d 1;\n+\tunsigned short count_threads \u003d 1;\n \tuint8_t *u;\n #endif\n #if defined(__ANDROID__)\n@@ -405,7 +405,8 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t\ts1 \u003d 4096,\n #endif\n \t\tsize \u003d sizeof(struct lws_context);\n-\tint n, lpf \u003d info-\u003efd_limit_per_thread;\n+\tint n;\n+\tunsigned int lpf \u003d info-\u003efd_limit_per_thread;\n \tconst lws_plugin_evlib_t *plev \u003d NULL;\n #if defined(LWS_WITH_EVLIB_PLUGINS) \u0026\u0026 defined(LWS_WITH_EVENT_LIBS)\n \tstruct lws_plugin\t\t*evlib_plugin_list \u003d NULL;\n@@ -448,7 +449,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \n #if defined(LWS_WITH_NETWORK)\n \tif (info-\u003ecount_threads)\n-\t\tcount_threads \u003d info-\u003ecount_threads;\n+\t\tcount_threads \u003d (unsigned short)info-\u003ecount_threads;\n \n \tif (count_threads \u003e LWS_MAX_SMP)\n \t\tcount_threads \u003d LWS_MAX_SMP;\n@@ -511,7 +512,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t\t\t\t\t LWS_TOKENIZE_F_NO_FLOATS;\n \n \t\t\t\tdo {\n-\t\t\t\t\tts.e \u003d lws_tokenize(\u0026ts);\n+\t\t\t\t\tts.e \u003d (int8_t)lws_tokenize(\u0026ts);\n \t\t\t\t\tif (ts.e !\u003d LWS_TOKZE_TOKEN)\n \t\t\t\t\t\tcontinue;\n \n@@ -711,7 +712,8 @@ lws_create_context(const struct lws_context_creation_info *info)\n #endif\n \n #if defined(LWS_WITH_NETWORK)\n-\tcontext-\u003eundestroyed_threads \u003d context-\u003ecount_threads \u003d count_threads;\n+\tcontext-\u003eundestroyed_threads \u003d count_threads;\n+\tcontext-\u003ecount_threads \u003d count_threads;\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \tcontext-\u003edetailed_latency_cb \u003d info-\u003edetailed_latency_cb;\n \tcontext-\u003edetailed_latency_filepath \u003d info-\u003edetailed_latency_filepath;\n@@ -816,7 +818,8 @@ lws_create_context(const struct lws_context_creation_info *info)\n \tif (info-\u003erlimit_nofile) {\n \t\tstruct rlimit rl;\n \n-\t\trl.rlim_cur \u003d rl.rlim_max \u003d info-\u003erlimit_nofile;\n+\t\trl.rlim_cur \u003d (unsigned int)info-\u003erlimit_nofile;\n+\t\trl.rlim_max \u003d (unsigned int)info-\u003erlimit_nofile;\n \t\tsetrlimit(RLIMIT_NOFILE, \u0026rl);\n \t}\n #endif\n@@ -834,7 +837,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \n \t\tgoto free_context_fail;\n \t}\n-\tcontext-\u003emax_fds \u003d rt.rlim_cur;\n+\tcontext-\u003emax_fds \u003d (unsigned int)rt.rlim_cur;\n #else\n #if defined(WIN32) || defined(_WIN32) || defined(LWS_AMAZON_RTOS) || defined(LWS_ESP_PLATFORM)\n \tcontext-\u003emax_fds \u003d getdtablesize();\n@@ -849,10 +852,10 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t\t\t\t __func__);\n \t\telse\n \t\t\tif (l !\u003d -1l)\n-\t\t\t\tcontext-\u003emax_fds \u003d (int)l;\n+\t\t\t\tcontext-\u003emax_fds \u003d (unsigned int)l;\n \t}\n #endif\n-\tif (context-\u003emax_fds \u003c 0) {\n+\tif ((int)context-\u003emax_fds \u003c 0) {\n \t\tlwsl_err(\u0022%s: problem getting process max files\u005cn\u0022,\n \t\t\t __func__);\n \n@@ -866,7 +869,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t * figure out what if this is something it can deal with.\n \t */\n \tif (info-\u003efd_limit_per_thread) {\n-\t\tint mf \u003d lpf * context-\u003ecount_threads;\n+\t\tunsigned int mf \u003d lpf * context-\u003ecount_threads;\n \n \t\tif (mf \u003c context-\u003emax_fds) {\n \t\t\tcontext-\u003emax_fds_unrelated_to_ulimit \u003d 1;\n@@ -890,10 +893,10 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t\t\tif (ar-\u003ealpn) {\n \t\t\t\tif (!first)\n \t\t\t\t\t*p++ \u003d ',';\n-\t\t\t\tp +\u003d lws_snprintf(p,\n-\t\t\t\t\tcontext-\u003etls.alpn_discovered +\n+\t\t\t\tp +\u003d lws_snprintf(p, (unsigned int)(\n+\t\t\t\t\t(context-\u003etls.alpn_discovered +\n \t\t\t\t\tsizeof(context-\u003etls.alpn_discovered) -\n-\t\t\t\t\t2 - p, \u0022%s\u0022, ar-\u003ealpn);\n+\t\t\t\t\t2) - p), \u0022%s\u0022, ar-\u003ealpn);\n \t\t\t\tfirst \u003d 0;\n \t\t\t}\n \t\t} LWS_FOR_EVERY_AVAILABLE_ROLE_END;\n@@ -915,7 +918,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \telse\n \t\tif (info-\u003emax_http_header_data2)\n \t\t\tcontext-\u003emax_http_header_data \u003d\n-\t\t\t\t\tinfo-\u003emax_http_header_data2;\n+\t\t\t\t\t(unsigned short)info-\u003emax_http_header_data2;\n \t\telse\n \t\t\tcontext-\u003emax_http_header_data \u003d LWS_DEF_HEADER_LEN;\n \n@@ -924,7 +927,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \telse\n \t\tif (info-\u003emax_http_header_pool2)\n \t\t\tcontext-\u003emax_http_header_pool \u003d\n-\t\t\t\t\tinfo-\u003emax_http_header_pool2;\n+\t\t\t\t\t(unsigned short)info-\u003emax_http_header_pool2;\n \t\telse\n \t\t\tcontext-\u003emax_http_header_pool \u003d context-\u003emax_fds;\n #endif\n@@ -986,7 +989,7 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t\tu +\u003d context-\u003ept_serv_buf_size;\n \n \t\tcontext-\u003ept[n].context \u003d context;\n-\t\tcontext-\u003ept[n].tid \u003d n;\n+\t\tcontext-\u003ept[n].tid \u003d (uint8_t)n;\n \n #if !defined(LWS_PLAT_FREERTOS)\n \t\t/*\n@@ -1049,9 +1052,9 @@ lws_create_context(const struct lws_context_creation_info *info)\n \t * fds table contains pollfd structs for as many pollfds as we can\n \t * handle... spread across as many service threads as we have going\n \t */\n-\tn \u003d sizeof(struct lws_pollfd) * context-\u003ecount_threads *\n-\t context-\u003efd_limit_per_thread;\n-\tcontext-\u003ept[0].fds \u003d lws_zalloc(n, \u0022fds table\u0022);\n+\tn \u003d (int)(sizeof(struct lws_pollfd) * context-\u003ecount_threads *\n+\t context-\u003efd_limit_per_thread);\n+\tcontext-\u003ept[0].fds \u003d lws_zalloc((unsigned int)n, \u0022fds table\u0022);\n \tif (context-\u003ept[0].fds \u003d\u003d NULL) {\n \t\tlwsl_err(\u0022OOM allocating %d fds\u005cn\u0022, context-\u003emax_fds);\n \t\tgoto bail;\n@@ -1960,7 +1963,7 @@ next:\n \n \t\tfor (n \u003d 0; n \u003c LWS_SYSBLOB_TYPE_COUNT; n++)\n \t\t\tlws_system_blob_destroy(\n-\t\t\t\t\tlws_system_get_blob(context, n, 0));\n+\t\t\t\t\tlws_system_get_blob(context, (lws_system_blob_item_t)n, 0));\n \n \t\t/*\n \t\t * Context lock is about to go away\ndiff --git a/lib/core/libwebsockets.c b/lib/core/libwebsockets.c\nindex a44e6d5..6db75fd 100644\n--- a/lib/core/libwebsockets.c\n+++ b/lib/core/libwebsockets.c\n@@ -55,13 +55,13 @@ lws_ser_wu64be(uint8_t *b, uint64_t u64)\n uint16_t\n lws_ser_ru16be(const uint8_t *b)\n {\n-\treturn (b[0] \u003c\u003c 8) | b[1];\n+\treturn (uint16_t)((b[0] \u003c\u003c 8) | b[1]);\n }\n \n uint32_t\n lws_ser_ru32be(const uint8_t *b)\n {\n-\treturn (b[0] \u003c\u003c 24) | (b[1] \u003c\u003c 16) | (b[2] \u003c\u003c 8) | b[3];\n+\treturn (unsigned int)((b[0] \u003c\u003c 24) | (b[1] \u003c\u003c 16) | (b[2] \u003c\u003c 8) | b[3]);\n }\n \n uint64_t\n@@ -118,15 +118,15 @@ lws_vbi_decode(const void *buf, uint64_t *value, size_t len)\n signed char char_to_hex(const char c)\n {\n \tif (c \u003e\u003d '0' \u0026\u0026 c \u003c\u003d '9')\n-\t\treturn c - '0';\n+\t\treturn (signed char)(c - '0');\n \n \tif (c \u003e\u003d 'a' \u0026\u0026 c \u003c\u003d 'f')\n-\t\treturn c - 'a' + 10;\n+\t\treturn (signed char)(c - 'a' + 10);\n \n \tif (c \u003e\u003d 'A' \u0026\u0026 c \u003c\u003d 'F')\n-\t\treturn c - 'A' + 10;\n+\t\treturn (signed char)(c - 'A' + 10);\n \n-\treturn -1;\n+\treturn (signed char)-1;\n }\n \n int\n@@ -144,7 +144,7 @@ lws_hex_to_byte_array(const char *h, uint8_t *dest, int max)\n \t\tif (t1 \u003c 0)\n \t\t\treturn -1;\n \n-\t\t*dest++ \u003d (t \u003c\u003c 4) | t1;\n+\t\t*dest++ \u003d (uint8_t)((t \u003c\u003c 4) | t1);\n \t}\n \n \tif (max \u003c 0)\n@@ -254,7 +254,7 @@ lws_now_secs(void)\n \n \tgettimeofday(\u0026tv, NULL);\n \n-\treturn tv.tv_sec;\n+\treturn (unsigned long)tv.tv_sec;\n }\n \n #endif\n@@ -453,7 +453,7 @@ lws_json_simple_find(const char *buf, size_t len, const char *name, size_t *alen\n \t\tnp++;\n \t}\n \n-\t*alen \u003d lws_ptr_diff(np, as);\n+\t*alen \u003d (unsigned int)lws_ptr_diff(np, as);\n \n \treturn as;\n }\n@@ -477,7 +477,7 @@ lws_json_simple_strcmp(const char *buf, size_t len, const char *name,\n static const char *hex \u003d \u00220123456789ABCDEF\u0022;\n \n const char *\n-lws_sql_purify(char *escaped, const char *string, int len)\n+lws_sql_purify(char *escaped, const char *string, size_t len)\n {\n \tconst char *p \u003d string;\n \tchar *q \u003d escaped;\n@@ -675,7 +675,7 @@ lws_urldecode(char *string, const char *escaped, int len)\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \t\t\tescaped++;\n-\t\t\tsum \u003d n \u003c\u003c 4;\n+\t\t\tsum \u003d (char)(n \u003c\u003c 4);\n \t\t\tstate++;\n \t\t\tbreak;\n \n@@ -684,7 +684,7 @@ lws_urldecode(char *string, const char *escaped, int len)\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \t\t\tescaped++;\n-\t\t\t*string++ \u003d sum | n;\n+\t\t\t*string++ \u003d (char)(sum | n);\n \t\t\tlen--;\n \t\t\tstate \u003d 0;\n \t\t\tbreak;\n@@ -708,7 +708,7 @@ lws_finalize_startup(struct lws_context *context)\n \n #if !defined(LWS_PLAT_FREERTOS)\n void\n-lws_get_effective_uid_gid(struct lws_context *context, int *uid, int *gid)\n+lws_get_effective_uid_gid(struct lws_context *context, uid_t *uid, gid_t *gid)\n {\n \t*uid \u003d context-\u003euid;\n \t*gid \u003d context-\u003egid;\n@@ -750,7 +750,7 @@ lws_timingsafe_bcmp(const void *a, const void *b, uint32_t len)\n \tuint8_t sum \u003d 0;\n \n \twhile (len--)\n-\t\tsum |\u003d (*pa++ ^ *pb++);\n+\t\tsum |\u003d (uint8_t)(*pa++ ^ *pb++);\n \n \treturn sum;\n }\n@@ -791,7 +791,7 @@ lws_tokenize(struct lws_tokenize *ts)\n \t\tc \u003d *ts-\u003estart++;\n \t\tts-\u003elen--;\n \n-\t\tutf8 \u003d lws_check_byte_utf8((unsigned char)utf8, c);\n+\t\tutf8 \u003d lws_check_byte_utf8((unsigned char)utf8, (unsigned char)c);\n \t\tif (utf8 \u003c 0)\n \t\t\treturn LWS_TOKZE_ERR_BROKEN_UTF8;\n \n@@ -1019,7 +1019,7 @@ lws_tokenize_init(struct lws_tokenize *ts, const char *start, int flags)\n {\n \tts-\u003estart \u003d start;\n \tts-\u003elen \u003d 0x7fffffff;\n-\tts-\u003eflags \u003d flags;\n+\tts-\u003eflags \u003d (uint16_t)(unsigned int)flags;\n \tts-\u003edelim \u003d LWSTZ_DT_NEED_FIRST_CONTENT;\n }\n \n@@ -1206,7 +1206,8 @@ lws_mutex_refcount_assert_held(struct lws_mutex_refcount *mr)\n const char *\n lws_cmdline_option(int argc, const char **argv, const char *val)\n {\n-\tint n \u003d (int)strlen(val), c \u003d argc;\n+\tsize_t n \u003d strlen(val);\n+\tint c \u003d argc;\n \n \twhile (--c \u003e 0) {\n \n@@ -1263,10 +1264,10 @@ lws_cmdline_option_handle_builtin(int argc, const char **argv,\n \t\t\tbreak;\n #if defined(LWS_WITH_UDP)\n \t\tcase 1:\n-\t\t\tinfo-\u003eudp_loss_sim_tx_pc \u003d m;\n+\t\t\tinfo-\u003eudp_loss_sim_tx_pc \u003d (uint8_t)m;\n \t\t\tbreak;\n \t\tcase 2:\n-\t\t\tinfo-\u003eudp_loss_sim_rx_pc \u003d m;\n+\t\t\tinfo-\u003eudp_loss_sim_rx_pc \u003d (uint8_t)m;\n \t\t\tbreak;\n \t\tcase 3:\n #else\n@@ -1314,7 +1315,7 @@ decim(char *r, uint64_t v, char chars, char leading)\n \n \twhile (n \u003e\u003d 0) {\n \t\tif (v / q)\n-\t\t\t*r-- \u003d '0' + ((v / q) % 10);\n+\t\t\t*r-- \u003d (char)('0' + (char)((v / q) % 10));\n \t\telse\n \t\t\t*r-- \u003d leading ? '0' : ' ';\n \t\tq \u003d q * 10;\n@@ -1329,7 +1330,7 @@ decim(char *r, uint64_t v, char chars, char leading)\n }\n \n int\n-lws_humanize(char *p, int len, uint64_t v, const lws_humanize_unit_t *schema)\n+lws_humanize(char *p, size_t len, uint64_t v, const lws_humanize_unit_t *schema)\n {\n \tchar *end \u003d p + len;\n \n@@ -1338,7 +1339,7 @@ lws_humanize(char *p, int len, uint64_t v, const lws_humanize_unit_t *schema)\n \t\t\tif (schema-\u003efactor \u003d\u003d 1) {\n \t\t\t\t*p++ \u003d ' ';\n \t\t\t\tp +\u003d decim(p, v, 4, 0);\n-\t\t\t\treturn lws_snprintf(p, lws_ptr_diff(end, p),\n+\t\t\t\treturn lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p),\n \t\t\t\t\t\t \u0022%s \u0022, schema-\u003ename);\n \t\t\t}\n \n@@ -1348,7 +1349,7 @@ lws_humanize(char *p, int len, uint64_t v, const lws_humanize_unit_t *schema)\n \t\t\tp +\u003d decim(p, (v % schema-\u003efactor) /\n \t\t\t\t\t(schema-\u003efactor / 1000), 3, 1);\n \n-\t\t\treturn lws_snprintf(p, lws_ptr_diff(end, p),\n+\t\t\treturn lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p),\n \t\t\t\t\t \u0022%s\u0022, schema-\u003ename);\n \t\t}\n \t\tschema++;\ndiff --git a/lib/core/logs.c b/lib/core/logs.c\nindex b618dec..36280c4 100644\n--- a/lib/core/logs.c\n+++ b/lib/core/logs.c\n@@ -153,7 +153,7 @@ lws_lc_tag(lws_lifecycle_t *lc)\n \n #if defined(LWS_LOGS_TIMESTAMP)\n int\n-lwsl_timestamp(int level, char *p, int len)\n+lwsl_timestamp(int level, char *p, size_t len)\n {\n #ifndef LWS_PLAT_OPTEE\n \ttime_t o_now;\n@@ -167,7 +167,7 @@ lwsl_timestamp(int level, char *p, int len)\n \n \tgettimeofday(\u0026tv, NULL);\n \to_now \u003d tv.tv_sec;\n-\tnow \u003d ((unsigned long long)tv.tv_sec * 10000) + (tv.tv_usec / 100);\n+\tnow \u003d ((unsigned long long)tv.tv_sec * 10000) + (unsigned int)(tv.tv_usec / 100);\n \n #ifndef _WIN32_WCE\n #ifdef WIN32\n@@ -231,7 +231,7 @@ _lwsl_emit_stderr(int level, const char *line, int ts)\n \tint n, m \u003d LWS_ARRAY_SIZE(colours) - 1;\n \n \tif (!tty)\n-\t\ttty \u003d isatty(2) | 2;\n+\t\ttty \u003d (char)(isatty(2) | 2);\n \n \tbuf[0] \u003d '\u005c0';\n #if defined(LWS_LOGS_TIMESTAMP)\n@@ -353,7 +353,7 @@ lwsl_hexdump_level(int hexdump_level, const void *vbuf, size_t len)\n \n \t\tfor (m \u003d 0; m \u003c 16 \u0026\u0026 (start + m) \u003c len; m++) {\n \t\t\tif (buf[start + m] \u003e\u003d ' ' \u0026\u0026 buf[start + m] \u003c 127)\n-\t\t\t\t*p++ \u003d buf[start + m];\n+\t\t\t\t*p++ \u003d (char)buf[start + m];\n \t\t\telse\n \t\t\t\t*p++ \u003d '.';\n \t\t}\ndiff --git a/lib/core/private-lib-core.h b/lib/core/private-lib-core.h\nindex eb0668d..622610c 100644\n--- a/lib/core/private-lib-core.h\n+++ b/lib/core/private-lib-core.h\n@@ -586,13 +586,14 @@ struct lws_context {\n \tuint32_t last_free_heap;\n #endif\n \n-\tint max_fds;\n+\tunsigned int max_fds;\n #if !defined(LWS_NO_DAEMONIZE)\n \tpid_t started_with_parent;\n #endif\n \n #if !defined(LWS_PLAT_FREERTOS)\n-\tint uid, gid;\n+\tuid_t uid;\n+\tgid_t gid;\n \tint fd_random;\n \tint count_cgi_spawned;\n #endif\n@@ -603,8 +604,8 @@ struct lws_context {\n \tunsigned int fd_limit_per_thread;\n \tunsigned int timeout_secs;\n \tunsigned int pt_serv_buf_size;\n-\tint max_http_header_data;\n-\tint max_http_header_pool;\n+\tunsigned int max_http_header_data;\n+\tunsigned int max_http_header_pool;\n \tint simultaneous_ssl_restriction;\n \tint simultaneous_ssl;\n #if defined(LWS_WITH_PEER_LIMITS)\n@@ -629,8 +630,8 @@ struct lws_context {\n \tunsigned int nl_initial_done:1;\n #endif\n \n-\tshort count_threads;\n-\tshort undestroyed_threads;\n+\tunsigned short count_threads;\n+\tunsigned short undestroyed_threads;\n \tshort plugin_protocol_count;\n \tshort plugin_extension_count;\n \tshort server_string_len;\n@@ -756,10 +757,10 @@ lws_vhost_unlock(struct lws_vhost *vhost)\n #endif\n \n int LWS_WARN_UNUSED_RESULT\n-lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len);\n+lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, size_t len);\n \n int LWS_WARN_UNUSED_RESULT\n-lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, int len);\n+lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, size_t len);\n \n int LWS_WARN_UNUSED_RESULT\n lws_ssl_pending_no_ssl(struct lws *wsi);\ndiff --git a/lib/core/vfs.c b/lib/core/vfs.c\nindex 8cd2a46..e14d415 100644\n--- a/lib/core/vfs.c\n+++ b/lib/core/vfs.c\n@@ -53,7 +53,8 @@ lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset)\n {\n \tlws_fileofs_t ofs;\n \n-\tofs \u003d fop_fd-\u003efops-\u003eLWS_FOP_SEEK_CUR(fop_fd, offset - fop_fd-\u003epos);\n+\tofs \u003d fop_fd-\u003efops-\u003eLWS_FOP_SEEK_CUR(fop_fd,\n+\t\t\toffset - (lws_fileofs_t)fop_fd-\u003epos);\n \n \treturn ofs;\n }\n@@ -62,8 +63,8 @@ lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset)\n lws_fileofs_t\n lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset)\n {\n-\treturn fop_fd-\u003efops-\u003eLWS_FOP_SEEK_CUR(fop_fd, fop_fd-\u003elen +\n-\t\t\t\t\t fop_fd-\u003epos + offset);\n+\treturn fop_fd-\u003efops-\u003eLWS_FOP_SEEK_CUR(fop_fd,\n+\t\t\t(lws_fileofs_t)fop_fd-\u003elen + (lws_fileofs_t)fop_fd-\u003epos + offset);\n }\n \n \n@@ -100,7 +101,7 @@ lws_vfs_select_fops(const struct lws_plat_file_ops *fops, const char *vfs_path,\n \t\t\t\tif (p \u003e\u003d vfs_path + pf-\u003efi[n].len)\n \t\t\t\t\tif (!strncmp(p - (pf-\u003efi[n].len - 1),\n \t\t\t\t\t\t pf-\u003efi[n].sig,\n-\t\t\t\t\t\t pf-\u003efi[n].len - 1)) {\n+\t\t\t\t\t\t (unsigned int)(pf-\u003efi[n].len - 1))) {\n \t\t\t\t\t\t*vpath \u003d p + 1;\n \t\t\t\t\t\treturn pf;\n \t\t\t\t\t}\ndiff --git a/lib/event-libs/glib/glib.c b/lib/event-libs/glib/glib.c\nindex 5022a10..c34108c 100644\n--- a/lib/event-libs/glib/glib.c\n+++ b/lib/event-libs/glib/glib.c\n@@ -116,7 +116,7 @@ lws_glib_dispatch(GSource *src, GSourceFunc x, gpointer userData)\n \tGIOCondition cond;\n \n \tcond \u003d g_source_query_unix_fd(src, sub-\u003etag);\n-\teventfd.revents \u003d cond;\n+\teventfd.revents \u003d (short)cond;\n \n \t/* translate from glib event namespace to platform */\n \n@@ -177,7 +177,7 @@ lws_glib_hrtimer_cb(void *p)\n \tus \u003d __lws_sul_service_ripe(pt-\u003ept_sul_owner, LWS_COUNT_PT_SUL_OWNERS,\n \t\t\t\t lws_now_usecs());\n \tif (us) {\n-\t\tms \u003d us / LWS_US_PER_MS;\n+\t\tms \u003d (unsigned int)(us / LWS_US_PER_MS);\n \t\tif (!ms)\n \t\t\tms \u003d 1;\n \n@@ -344,7 +344,7 @@ elops_init_pt_glib(struct lws_context *context, void *_loop, int tsi)\n */\n \n static void\n-elops_io_glib(struct lws *wsi, int flags)\n+elops_io_glib(struct lws *wsi, unsigned int flags)\n {\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tstruct lws_wsi_eventlibs_glib *wsipr \u003d wsi_to_priv_glib(wsi);\n@@ -364,19 +364,19 @@ elops_io_glib(struct lws *wsi, int flags)\n \n \tif (flags \u0026 LWS_EV_READ) {\n \t\tif (flags \u0026 LWS_EV_STOP)\n-\t\t\tcond \u0026\u003d ~(G_IO_IN | G_IO_HUP);\n+\t\t\tcond \u0026\u003d (unsigned int)~(G_IO_IN | G_IO_HUP);\n \t\telse\n \t\t\tcond |\u003d G_IO_IN | G_IO_HUP;\n \t}\n \n \tif (flags \u0026 LWS_EV_WRITE) {\n \t\tif (flags \u0026 LWS_EV_STOP)\n-\t\t\tcond \u0026\u003d ~G_IO_OUT;\n+\t\t\tcond \u0026\u003d (unsigned int)~G_IO_OUT;\n \t\telse\n \t\t\tcond |\u003d G_IO_OUT;\n \t}\n \n-\twsipr-\u003ew_read.actual_events \u003d cond;\n+\twsipr-\u003ew_read.actual_events \u003d (uint8_t)cond;\n \n \tlwsl_debug(\u0022%s: %s, fd %d, 0x%x/0x%x\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n \t\t\twsi-\u003edesc.sockfd, flags, (int)cond);\ndiff --git a/lib/event-libs/libev/libev.c b/lib/event-libs/libev/libev.c\nindex 1f054c9..ae71ee4 100644\n--- a/lib/event-libs/libev/libev.c\n+++ b/lib/event-libs/libev/libev.c\n@@ -142,8 +142,8 @@ elops_init_pt_ev(struct lws_context *context, void *_loop, int tsi)\n \tstruct ev_loop *loop \u003d (struct ev_loop *)_loop;\n \tstruct lws_vhost *vh \u003d context-\u003evhost_list;\n \tconst char *backend_name;\n+\tunsigned int backend;\n \tint status \u003d 0;\n-\tint backend;\n \n \tlwsl_info(\u0022%s: loop %p\u005cn\u0022, __func__, _loop);\n \n@@ -296,7 +296,7 @@ elops_accept_ev(struct lws *wsi)\n }\n \n static void\n-elops_io_ev(struct lws *wsi, int flags)\n+elops_io_ev(struct lws *wsi, unsigned int flags)\n {\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tstruct lws_pt_eventlibs_libev *ptpr \u003d pt_to_priv_ev(pt);\ndiff --git a/lib/event-libs/libevent/libevent.c b/lib/event-libs/libevent/libevent.c\nindex 1ff1709..2c99b77 100644\n--- a/lib/event-libs/libevent/libevent.c\n+++ b/lib/event-libs/libevent/libevent.c\n@@ -40,8 +40,13 @@ lws_event_hrtimer_cb(evutil_socket_t fd, short event, void *p)\n \tus \u003d __lws_sul_service_ripe(pt-\u003ept_sul_owner, LWS_COUNT_PT_SUL_OWNERS,\n \t\t\t\t lws_now_usecs());\n \tif (us) {\n-\t\ttv.tv_sec \u003d us / LWS_US_PER_SEC;\n-\t\ttv.tv_usec \u003d us - (tv.tv_sec * LWS_US_PER_SEC);\n+#if defined(__APPLE__)\n+\t\ttv.tv_sec \u003d (int)(us / LWS_US_PER_SEC);\n+\t\ttv.tv_usec \u003d (int)(us - (tv.tv_sec * LWS_US_PER_SEC));\n+#else\n+\t\ttv.tv_sec \u003d (long)(us / LWS_US_PER_SEC);\n+\t\ttv.tv_usec \u003d (long)(us - (tv.tv_sec * LWS_US_PER_SEC));\n+#endif\n \t\tevtimer_add(ptpr-\u003ehrtimer, \u0026tv);\n \t}\n \tlws_pt_unlock(pt);\n@@ -86,8 +91,8 @@ lws_event_idle_timer_cb(evutil_socket_t fd, short event, void *p)\n \tus \u003d __lws_sul_service_ripe(pt-\u003ept_sul_owner, LWS_COUNT_PT_SUL_OWNERS,\n \t\t\t\t lws_now_usecs());\n \tif (us) {\n-\t\ttv.tv_sec \u003d us / LWS_US_PER_SEC;\n-\t\ttv.tv_usec \u003d us - (tv.tv_sec * LWS_US_PER_SEC);\n+\t\ttv.tv_sec \u003d (suseconds_t)(us / LWS_US_PER_SEC);\n+\t\ttv.tv_usec \u003d (suseconds_t)(us - (tv.tv_sec * LWS_US_PER_SEC));\n \t\tevtimer_add(ptpr-\u003ehrtimer, \u0026tv);\n \t}\n \tlws_pt_unlock(pt);\n@@ -265,7 +270,7 @@ elops_accept_event(struct lws *wsi)\n \tptpr \u003d pt_to_priv_event(pt);\n \n \tif (wsi-\u003erole_ops-\u003efile_handle)\n- fd \u003d (ev_intptr_t) wsi-\u003edesc.filefd;\n+ fd \u003d (evutil_socket_t)(ev_intptr_t) wsi-\u003edesc.filefd;\n \telse\n \t\tfd \u003d wsi-\u003edesc.sockfd;\n \n@@ -278,7 +283,7 @@ elops_accept_event(struct lws *wsi)\n }\n \n static void\n-elops_io_event(struct lws *wsi, int flags)\n+elops_io_event(struct lws *wsi, unsigned int flags)\n {\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tstruct lws_pt_eventlibs_libevent *ptpr \u003d pt_to_priv_event(pt);\ndiff --git a/lib/event-libs/libuv/libuv.c b/lib/event-libs/libuv/libuv.c\nindex 2d668da..d3b8549 100644\n--- a/lib/event-libs/libuv/libuv.c\n+++ b/lib/event-libs/libuv/libuv.c\n@@ -46,7 +46,7 @@ lws_uv_sultimer_cb(uv_timer_t *timer\n \t\t\t\t lws_now_usecs());\n \tif (us)\n \t\tuv_timer_start(\u0026pt_to_priv_uv(pt)-\u003esultimer, lws_uv_sultimer_cb,\n-\t\t\t LWS_US_TO_MS(us), 0);\n+\t\t\t LWS_US_TO_MS((uint64_t)us), 0);\n \tlws_pt_unlock(pt);\n \tlws_context_unlock(pt-\u003econtext);\n }\n@@ -80,7 +80,7 @@ lws_uv_idle(uv_idle_t *handle\n \t\t\t\t lws_now_usecs());\n \tif (us)\n \t\tuv_timer_start(\u0026pt_to_priv_uv(pt)-\u003esultimer, lws_uv_sultimer_cb,\n-\t\t\t LWS_US_TO_MS(us), 0);\n+\t\t\t LWS_US_TO_MS((uint64_t)us), 0);\n \n \t/* there is nobody who needs service forcing, shut down idle */\n \tuv_idle_stop(handle);\n@@ -549,7 +549,7 @@ elops_accept_uv(struct lws *wsi)\n }\n \n static void\n-elops_io_uv(struct lws *wsi, int flags)\n+elops_io_uv(struct lws *wsi, unsigned int flags)\n {\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tstruct lws_io_watcher_libuv *w \u003d \u0026(wsi_to_priv_uv(wsi)-\u003ew_read);\n@@ -597,7 +597,7 @@ elops_io_uv(struct lws *wsi, int flags)\n \t\t\tuv_poll_start(w-\u003epwatcher, current_events, lws_io_cb);\n \t}\n \n-\tw-\u003eactual_events \u003d current_events;\n+\tw-\u003eactual_events \u003d (uint8_t)current_events;\n }\n \n static int\ndiff --git a/lib/event-libs/private-lib-event-libs.h b/lib/event-libs/private-lib-event-libs.h\nindex c0d087f..35bfcd8 100644\n--- a/lib/event-libs/private-lib-event-libs.h\n+++ b/lib/event-libs/private-lib-event-libs.h\n@@ -51,7 +51,7 @@ struct lws_event_loop_ops {\n \t/* event loop accept processing */\n \tint (*sock_accept)(struct lws *wsi);\n \t/* control wsi active events */\n-\tvoid (*io)(struct lws *wsi, int flags);\n+\tvoid (*io)(struct lws *wsi, unsigned int flags);\n \t/* run the event loop for a pt */\n \tvoid (*run_pt)(struct lws_context *context, int tsi);\n \t/* called before pt is destroyed */\ndiff --git a/lib/jose/jwe/enc/aescbc.c b/lib/jose/jwe/enc/aescbc.c\nindex d15475d..bf559d9 100755\n--- a/lib/jose/jwe/enc/aescbc.c\n+++ b/lib/jose/jwe/enc/aescbc.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -79,7 +79,7 @@ lws_jwe_encrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *cek,\n \n \t/* second half is the AES ENC_KEY */\n \tel.buf \u003d cek + (hlen / 2);\n-\tel.len \u003d hlen / 2;\n+\tel.len \u003d (uint32_t)(hlen / 2);\n \n \tif (lws_genaes_create(\u0026aesctx, LWS_GAESO_ENC, LWS_GAESM_CBC, \u0026el,\n \t\t\t LWS_GAESP_WITH_PADDING, NULL)) {\n@@ -113,11 +113,11 @@ lws_jwe_encrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *cek,\n \t * Additional Authenticated Data A expressed as a 64-bit unsigned\n \t * big-endian integer.\n \t */\n-\tlws_jwe_be64(aad_len * 8, al);\n+\tlws_jwe_be64((unsigned int)aad_len * 8, al);\n \n \t/* first half of the CEK is the MAC key */\n \tif (lws_genhmac_init(\u0026hmacctx, jwe-\u003ejose.enc_alg-\u003ehmac_type,\n-\t\t\t\tcek, hlen / 2))\n+\t\t\t\tcek, (unsigned int)hlen / 2))\n \t\treturn -1;\n \n \t/*\n@@ -134,7 +134,7 @@ lws_jwe_encrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *cek,\n \t * M are used as T.\n \t */\n \n-\tif (lws_genhmac_update(\u0026hmacctx, aad, aad_len) ||\n+\tif (lws_genhmac_update(\u0026hmacctx, aad, (unsigned int)aad_len) ||\n \t lws_genhmac_update(\u0026hmacctx, jwe-\u003ejws.map.buf[LJWE_IV],\n \t\t\t LWS_JWE_AES_IV_BYTES) ||\n \t /* since we encrypted it, this is the ciphertext */\n@@ -153,9 +153,9 @@ lws_jwe_encrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *cek,\n \t}\n \n \t/* create tag */\n-\tmemcpy((void *)jwe-\u003ejws.map.buf[LJWE_ATAG], digest, hlen / 2);\n+\tmemcpy((void *)jwe-\u003ejws.map.buf[LJWE_ATAG], digest, (unsigned int)hlen / 2);\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\n \n int\n@@ -197,16 +197,16 @@ lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek,\n \t *\n \t */\n \n-\tlws_jwe_be64(aad_len * 8, al);\n+\tlws_jwe_be64((unsigned int)aad_len * 8, al);\n \n \t/* first half of enc_cek is the MAC key */\n \tif (lws_genhmac_init(\u0026hmacctx, jwe-\u003ejose.enc_alg-\u003ehmac_type, enc_cek,\n-\t\t\t hlen / 2)) {\n+\t\t\t (unsigned int)hlen / 2)) {\n \t\tlwsl_err(\u0022%s: lws_genhmac_init fail\u005cn\u0022, __func__);\n \t\treturn -1;\n \t}\n \n-\tif (lws_genhmac_update(\u0026hmacctx, aad, aad_len) ||\n+\tif (lws_genhmac_update(\u0026hmacctx, aad, (unsigned int)aad_len) ||\n \t lws_genhmac_update(\u0026hmacctx, (uint8_t *)jwe-\u003ejws.map.buf[LJWE_IV],\n \t\t\t\t\t jwe-\u003ejws.map.len[LJWE_IV]) ||\n \t lws_genhmac_update(\u0026hmacctx, (uint8_t *)jwe-\u003ejws.map.buf[LJWE_CTXT],\n@@ -224,17 +224,17 @@ lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek,\n \n \t/* first half of digest is the auth tag */\n \n-\tif (lws_timingsafe_bcmp(digest, jwe-\u003ejws.map.buf[LJWE_ATAG], hlen / 2)) {\n+\tif (lws_timingsafe_bcmp(digest, jwe-\u003ejws.map.buf[LJWE_ATAG], (unsigned int)hlen / 2)) {\n \t\tlwsl_err(\u0022%s: auth failed: hmac tag (%d) !\u003d ATAG (%d)\u005cn\u0022,\n \t\t\t __func__, hlen / 2, jwe-\u003ejws.map.len[LJWE_ATAG]);\n-\t\tlwsl_hexdump_notice(jwe-\u003ejws.map.buf[LJWE_ATAG], hlen / 2);\n-\t\tlwsl_hexdump_notice(digest, hlen / 2);\n+\t\tlwsl_hexdump_notice(jwe-\u003ejws.map.buf[LJWE_ATAG], (unsigned int)hlen / 2);\n+\t\tlwsl_hexdump_notice(digest, (unsigned int)hlen / 2);\n \t\treturn -1;\n \t}\n \n \t/* second half of enc cek is the CEK KEY */\n \tel.buf \u003d enc_cek + (hlen / 2);\n-\tel.len \u003d hlen / 2;\n+\tel.len \u003d (unsigned int)hlen / 2;\n \n \tif (lws_genaes_create(\u0026aesctx, LWS_GAESO_DEC, LWS_GAESM_CBC,\n \t\t\t \u0026el, LWS_GAESP_NO_PADDING, NULL)) {\n@@ -257,8 +257,8 @@ lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek,\n \t\t\t\t__func__, jwe-\u003ejws.map.len[LJWE_CTXT]);\n \t\treturn -1;\n \t}\n-\tjwe-\u003ejws.map.len[LJWE_CTXT] -\u003d jwe-\u003ejws.map.buf[LJWE_CTXT][\n-\t\t\t\t\t\tjwe-\u003ejws.map.len[LJWE_CTXT] - 1];\n+\tjwe-\u003ejws.map.len[LJWE_CTXT] \u003d (uint32_t)((int)jwe-\u003ejws.map.len[LJWE_CTXT] -\n+\t\tjwe-\u003ejws.map.buf[LJWE_CTXT][jwe-\u003ejws.map.len[LJWE_CTXT] - 1]);\n \n \tn |\u003d lws_genaes_destroy(\u0026aesctx, NULL, 0);\n \tif (n) {\n@@ -266,6 +266,6 @@ lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek,\n \t\treturn -1;\n \t}\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\n \ndiff --git a/lib/jose/jwe/enc/aesgcm.c b/lib/jose/jwe/enc/aesgcm.c\nindex 28488b0..ef822ad 100644\n--- a/lib/jose/jwe/enc/aesgcm.c\n+++ b/lib/jose/jwe/enc/aesgcm.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -86,7 +86,7 @@ lws_jwe_encrypt_gcm(struct lws_jwe *jwe,\n \n \t/* aad */\n \n-\tn \u003d lws_genaes_crypt(\u0026aesctx, aad, aad_len, NULL,\n+\tn \u003d lws_genaes_crypt(\u0026aesctx, aad, (unsigned int)aad_len, NULL,\n \t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_IV],\n \t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_ATAG], \u0026ivs,\n \t\t\t LWS_AESGCM_TAG);\n@@ -110,7 +110,7 @@ lws_jwe_encrypt_gcm(struct lws_jwe *jwe,\n \t\treturn -1;\n \t}\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\n \n int\n@@ -149,7 +149,7 @@ lws_jwe_auth_and_decrypt_gcm(struct lws_jwe *jwe,\n \t\treturn -1;\n \t}\n \n-\tn \u003d lws_genaes_crypt(\u0026aesctx, aad, aad_len,\n+\tn \u003d lws_genaes_crypt(\u0026aesctx, aad, (unsigned int)aad_len,\n \t\t\t NULL,\n \t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_IV],\n \t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_ATAG], \u0026ivs, 16);\n@@ -169,5 +169,5 @@ lws_jwe_auth_and_decrypt_gcm(struct lws_jwe *jwe,\n \t\treturn -1;\n \t}\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\ndiff --git a/lib/jose/jwe/enc/aeskw.c b/lib/jose/jwe/enc/aeskw.c\nindex 78cf4f9..7d5ae0a 100644\n--- a/lib/jose/jwe/enc/aeskw.c\n+++ b/lib/jose/jwe/enc/aeskw.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -61,7 +61,7 @@ lws_jwe_encrypt_aeskw_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \t/* Allocate temp space for ATAG and IV */\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_ATAG, temp + (ot - *temp_len),\n-\t\t\t\t temp_len, hlen / 2, 0))\n+\t\t\t\t temp_len, (unsigned int)hlen / 2, 0))\n \t\treturn -1;\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_IV, temp + (ot - *temp_len),\n@@ -74,7 +74,7 @@ lws_jwe_encrypt_aeskw_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \n \tn \u003d lws_jwe_encrypt_cbc_hs(jwe, (uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY],\n \t\t\t\t (uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t\t jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t\t (int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_encrypt_cbc_hs failed\u005cn\u0022, __func__);\n \t\treturn -1;\n@@ -110,7 +110,7 @@ lws_jwe_encrypt_aeskw_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \tmemcpy((uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY], enc_cek,\n \t jwe-\u003ejws.map.len[LJWE_EKEY]);\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\n \n \n@@ -164,14 +164,14 @@ lws_jwe_auth_and_decrypt_aeskw_cbc_hs(struct lws_jwe *jwe)\n \n \tn \u003d lws_jwe_auth_and_decrypt_cbc_hs(jwe, enc_cek,\n \t\t\t (uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t (int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_auth_and_decrypt_cbc_hs failed\u005cn\u0022,\n \t\t\t\t__func__);\n \t\treturn -1;\n \t}\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\n \n \ndiff --git a/lib/jose/jwe/jwe-ecdh-es-aeskw.c b/lib/jose/jwe/jwe-ecdh-es-aeskw.c\nindex fc073b0..07c8c34 100644\n--- a/lib/jose/jwe/jwe-ecdh-es-aeskw.c\n+++ b/lib/jose/jwe/jwe-ecdh-es-aeskw.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -293,7 +293,7 @@ lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len,\n \n \t\t/* generate the actual CEK in cek */\n \n-\t\tif (lws_get_random(jwe-\u003ejws.context, cek, enc_hlen) !\u003d\n+\t\tif (lws_get_random(jwe-\u003ejws.context, cek, (unsigned int)enc_hlen) !\u003d\n \t\t\t\t\t\t\t(size_t)enc_hlen) {\n \t\t\tlwsl_err(\u0022Problem getting random\u005cn\u0022);\n \t\t\tgoto bail;\n@@ -302,7 +302,7 @@ lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len,\n \t\t/* wrap with the derived key */\n \n \t\tel.buf \u003d derived;\n-\t\tel.len \u003d enc_hlen / 2;\n+\t\tel.len \u003d (unsigned int)enc_hlen / 2;\n \n \t\tif (lws_genaes_create(\u0026aesctx, LWS_GAESO_ENC, LWS_GAESM_KW, \u0026el,\n \t\t\t\t\t1, NULL)) {\n@@ -313,7 +313,7 @@ lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len,\n \n \t\t/* wrap CEK into EKEY */\n \n-\t\tn \u003d lws_genaes_crypt(\u0026aesctx, cek, enc_hlen,\n+\t\tn \u003d lws_genaes_crypt(\u0026aesctx, cek, (unsigned int)enc_hlen,\n \t\t\t\t (void *)jwe-\u003ejws.map.buf[LJWE_EKEY],\n \t\t\t\t NULL, NULL, NULL, 0);\n \t\tm \u003d lws_genaes_destroy(\u0026aesctx, NULL, 0);\n@@ -326,18 +326,18 @@ lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len,\n \t\t\tgoto bail;\n \t\t}\n \n-\t\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d enc_hlen + 8;\n+\t\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d (unsigned int)enc_hlen + 8;\n \n \t\t/* Wrapped CEK is in EKEY. Random CEK is in cek. */\n \n \t} else /* direct derived CEK is in cek */\n-\t\tmemcpy(cek, derived, enc_hlen);\n+\t\tmemcpy(cek, derived, (unsigned int)enc_hlen);\n \n \t/* rewrite the protected JOSE header to have the epk pieces */\n \n \tjwe-\u003ejws.map.buf[LJWE_JOSE] \u003d temp;\n \n-\tm \u003d n \u003d lws_snprintf(temp, *temp_len,\n+\tm \u003d n \u003d lws_snprintf(temp, (size_t)*temp_len,\n \t\t\t \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022, \u005c\u0022enc\u005c\u0022:\u005c\u0022%s\u005c\u0022, \u005c\u0022epk\u005c\u0022:\u0022,\n \t\t\t jwe-\u003ejose.alg-\u003ealg, jwe-\u003ejose.enc_alg-\u003ealg);\n \t*temp_len -\u003d n;\n@@ -349,10 +349,10 @@ lws_jwe_encrypt_ecdh(struct lws_jwe *jwe, char *temp, int *temp_len,\n \t}\n \tm +\u003d n;\n \n-\tn \u003d lws_snprintf(temp + (ot - *temp_len), *temp_len, \u0022}\u0022);\n+\tn \u003d lws_snprintf(temp + (ot - *temp_len), (size_t)*temp_len, \u0022}\u0022);\n \t*temp_len -\u003d n + 1;\n \tm +\u003d n;\n-\tjwe-\u003ejws.map.len[LJWE_JOSE] \u003d m;\n+\tjwe-\u003ejws.map.len[LJWE_JOSE] \u003d (unsigned int)m;\n \n \t/* create a b64 version of the JOSE header, needed later for AAD */\n \n@@ -368,8 +368,8 @@ bail:\n \tlws_genec_destroy(\u0026ecctx);\n \n \t/* cleanse the shared secret (watch out for cek at parent too) */\n-\tlws_explicit_bzero(shared_secret, ekbytes);\n-\tlws_explicit_bzero(derived, ekbytes);\n+\tlws_explicit_bzero(shared_secret, (unsigned int)ekbytes);\n+\tlws_explicit_bzero(derived, (unsigned int)ekbytes);\n \n \treturn ret;\n }\n@@ -388,7 +388,7 @@ lws_jwe_encrypt_ecdh_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \tif (jwe-\u003ejose.alg-\u003ealgtype_crypto !\u003d LWS_JOSE_ENCTYPE_NONE) {\n \t\tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_EKEY,\n \t\t\t\t\t temp + (ot - *temp_len), temp_len,\n-\t\t\t\t\t enc_hlen + 8, 0))\n+\t\t\t\t\t (unsigned int)enc_hlen + 8, 0))\n \t\t\tgoto bail;\n \t}\n \n@@ -406,7 +406,7 @@ lws_jwe_encrypt_ecdh_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_ATAG,\n \t\t\t\t temp + (ot - *temp_len),\n-\t\t\t\t temp_len, enc_hlen / 2, 0))\n+\t\t\t\t temp_len, (unsigned int)enc_hlen / 2, 0))\n \t\tgoto bail;\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_IV,\n@@ -419,7 +419,7 @@ lws_jwe_encrypt_ecdh_cbc_hs(struct lws_jwe *jwe, char *temp, int *temp_len)\n \n \tn \u003d lws_jwe_encrypt_cbc_hs(jwe, cek,\n \t\t\t\t (uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t\t jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t\t (int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: lws_jwe_encrypt_cbc_hs failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n@@ -436,7 +436,7 @@ bail:\n \t\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d 0;\n \t}\n \n-\tlws_explicit_bzero(cek, ekbytes);\n+\tlws_explicit_bzero(cek, (unsigned int)ekbytes);\n \n \treturn ret;\n }\n@@ -551,7 +551,7 @@ lws_jwe_auth_and_decrypt_ecdh(struct lws_jwe *jwe)\n \t\t/* unwrap with the KEK we derived */\n \n \t\tel.buf \u003d derived;\n-\t\tel.len \u003d enc_hlen / 2;\n+\t\tel.len \u003d (unsigned int)enc_hlen / 2;\n \n \t\tif (lws_genaes_create(\u0026aesctx, LWS_GAESO_DEC, LWS_GAESM_KW,\n \t\t\t\t \u0026el, 1, NULL)) {\n@@ -577,13 +577,13 @@ lws_jwe_auth_and_decrypt_ecdh(struct lws_jwe *jwe)\n \t\t\tgoto bail;\n \t\t}\n \t} else\n-\t\tmemcpy(shared_secret, derived, enc_hlen);\n+\t\tmemcpy(shared_secret, derived, (unsigned int)enc_hlen);\n \n \t/* either way, the recovered CEK is in shared_secret */\n \n \tif (lws_jwe_auth_and_decrypt_cbc_hs(jwe, shared_secret,\n \t\t\t(uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\tjwe-\u003ejws.map_b64.len[LJWE_JOSE]) \u003c 0) {\n+\t\t\t(int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]) \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_auth_and_decrypt_cbc_hs fail\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -593,9 +593,9 @@ lws_jwe_auth_and_decrypt_ecdh(struct lws_jwe *jwe)\n \n bail:\n \t/* cleanse wrapped on stack that contained the CEK / wrapped key */\n-\tlws_explicit_bzero(derived, ekbytes);\n+\tlws_explicit_bzero(derived, (unsigned int)ekbytes);\n \t/* cleanse the shared secret */\n-\tlws_explicit_bzero(shared_secret, ekbytes);\n+\tlws_explicit_bzero(shared_secret, (unsigned int)ekbytes);\n \n \treturn ret;\n }\ndiff --git a/lib/jose/jwe/jwe-rsa-aescbc.c b/lib/jose/jwe/jwe-rsa-aescbc.c\nindex c2ff06f..21e4e50 100644\n--- a/lib/jose/jwe/jwe-rsa-aescbc.c\n+++ b/lib/jose/jwe/jwe-rsa-aescbc.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -70,7 +70,7 @@ lws_jwe_encrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe,\n \t\treturn -1;\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_ATAG, temp + (ot - *temp_len),\n-\t\t\t\t temp_len, hlen / 2, 0))\n+\t\t\t\t temp_len, (unsigned int)hlen / 2, 0))\n \t\treturn -1;\n \n \tif (lws_jws_alloc_element(\u0026jwe-\u003ejws.map, LJWE_IV, temp + (ot - *temp_len),\n@@ -91,7 +91,7 @@ lws_jwe_encrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe,\n \n \tn \u003d lws_jwe_encrypt_cbc_hs(jwe, (uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY],\n \t\t\t\t (uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t\t jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t\t (int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_encrypt_cbc_hs failed\u005cn\u0022, __func__);\n \t\treturn -1;\n@@ -109,17 +109,17 @@ lws_jwe_encrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe,\n \t/* encrypt the CEK using RSA, mbedtls can't handle both in and out are\n \t * the EKEY, so copy the unencrypted ekey out temporarily */\n \n-\tmemcpy(ekey, jwe-\u003ejws.map.buf[LJWE_EKEY], hlen);\n+\tmemcpy(ekey, jwe-\u003ejws.map.buf[LJWE_EKEY], (unsigned int)hlen);\n \n-\tn \u003d lws_genrsa_public_encrypt(\u0026rsactx, (uint8_t *)ekey, hlen,\n+\tn \u003d lws_genrsa_public_encrypt(\u0026rsactx, (uint8_t *)ekey, (unsigned int)hlen,\n \t\t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY]);\n \tlws_genrsa_destroy(\u0026rsactx);\n-\tlws_explicit_bzero(ekey, hlen); /* cleanse the temp CEK copy */\n+\tlws_explicit_bzero(ekey, (unsigned int)hlen); /* cleanse the temp CEK copy */\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: encrypt cek fail\u005cn\u0022, __func__);\n \t\treturn -1;\n \t}\n-\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d n; /* update to encrypted EKEY size */\n+\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d (unsigned int)n; /* update to encrypted EKEY size */\n \n \t/*\n \t * We end up with IV, ATAG, set, EKEY encrypted and CTXT is ciphertext,\n@@ -172,7 +172,7 @@ lws_jwe_auth_and_decrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe)\n \n \tn \u003d lws_jwe_auth_and_decrypt_cbc_hs(jwe, enc_cek,\n \t\t\t (uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t (int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_auth_and_decrypt_cbc_hs failed\u005cn\u0022,\n \t\t\t __func__);\n@@ -192,5 +192,5 @@ lws_jwe_auth_and_decrypt_rsa_aes_cbc_hs(struct lws_jwe *jwe)\n \tjwe-\u003ejws.map.len[LJWE_CTXT] -\u003d n;\n #endif\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\ndiff --git a/lib/jose/jwe/jwe-rsa-aesgcm.c b/lib/jose/jwe/jwe-rsa-aesgcm.c\nindex 0016128..b75c674 100644\n--- a/lib/jose/jwe/jwe-rsa-aesgcm.c\n+++ b/lib/jose/jwe/jwe-rsa-aesgcm.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -67,7 +67,7 @@ lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, char *temp, int *temp_len)\n \t * just reuse it. It will be cleansed in the JWE destroy.\n \t */\n \tif (!jwe-\u003ecek_valid) {\n-\t\tif (lws_get_random(jwe-\u003ejws.context, jwe-\u003ecek, ekbytes) !\u003d\n+\t\tif (lws_get_random(jwe-\u003ejws.context, jwe-\u003ecek, (unsigned int)ekbytes) !\u003d\n \t\t\t\t\t\t\t (size_t)ekbytes) {\n \t\t\tlwsl_err(\u0022%s: Problem getting random\u005cn\u0022, __func__);\n \t\t\treturn -1;\n@@ -77,14 +77,14 @@ lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, char *temp, int *temp_len)\n \n \tif (lws_jws_dup_element(\u0026jwe-\u003ejws.map, LJWE_EKEY,\n \t\t\t temp + (ot - *temp_len), temp_len,\n-\t\t\t jwe-\u003ecek, ekbytes, 0))\n+\t\t\t jwe-\u003ecek, (unsigned int)ekbytes, 0))\n \t\treturn -1;\n \n \t/* encrypt the payload */\n \n \tn \u003d lws_jwe_encrypt_gcm(jwe, (uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY],\n \t\t\t\t(uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t\tjwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t\t(int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_encrypt_gcm failed\u005cn\u0022,\n \t\t\t __func__);\n@@ -102,7 +102,7 @@ lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, char *temp, int *temp_len)\n \t\tgoto bail;\n \t}\n \n-\tn \u003d lws_genrsa_public_encrypt(\u0026rsactx, jwe-\u003ecek, ekbytes,\n+\tn \u003d lws_genrsa_public_encrypt(\u0026rsactx, jwe-\u003ecek, (unsigned int)ekbytes,\n \t\t\t\t (uint8_t *)jwe-\u003ejws.map.buf[LJWE_EKEY]);\n \tlws_genrsa_destroy(\u0026rsactx);\n \tif (n \u003c 0) {\n@@ -111,9 +111,9 @@ lws_jwe_encrypt_rsa_aes_gcm(struct lws_jwe *jwe, char *temp, int *temp_len)\n \t}\n \n \t/* set the EKEY length to the actual enciphered length */\n-\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d n;\n+\tjwe-\u003ejws.map.len[LJWE_EKEY] \u003d (unsigned int)n;\n \n-\tret \u003d jwe-\u003ejws.map.len[LJWE_CTXT];\n+\tret \u003d (int32_t)jwe-\u003ejws.map.len[LJWE_CTXT];\n \n bail:\n \n@@ -163,7 +163,7 @@ lws_jwe_auth_and_decrypt_rsa_aes_gcm(struct lws_jwe *jwe)\n \n \tn \u003d lws_jwe_auth_and_decrypt_gcm(jwe, enc_cek,\n \t\t\t(uint8_t *)jwe-\u003ejws.map_b64.buf[LJWE_JOSE],\n-\t\t\t\tjwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n+\t\t\t\t(int)jwe-\u003ejws.map_b64.len[LJWE_JOSE]);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_auth_and_decrypt_gcm_hs failed\u005cn\u0022,\n \t\t\t __func__);\n@@ -179,5 +179,5 @@ lws_jwe_auth_and_decrypt_rsa_aes_gcm(struct lws_jwe *jwe)\n \tjwe-\u003ejws.map.len[LJWE_CTXT] -\u003d n;\n #endif\n \n-\treturn jwe-\u003ejws.map.len[LJWE_CTXT];\n+\treturn (int)jwe-\u003ejws.map.len[LJWE_CTXT];\n }\ndiff --git a/lib/jose/jwe/jwe.c b/lib/jose/jwe/jwe.c\nindex 61e7c6a..d000e13 100755\n--- a/lib/jose/jwe/jwe.c\n+++ b/lib/jose/jwe/jwe.c\n@@ -118,7 +118,7 @@ append_string:\n \n \t\tn \u003d lws_b64_decode_string_len(\n \t\t\t(const char *)args-\u003ejws-\u003emap_b64.buf[m],\n-\t\t\targs-\u003ejws-\u003emap_b64.len[m],\n+\t\t\t(int)args-\u003ejws-\u003emap_b64.len[m],\n \t\t\t(char *)args-\u003etemp, *args-\u003etemp_len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: b64 decode failed\u005cn\u0022, __func__);\n@@ -127,7 +127,7 @@ append_string:\n \n \t\targs-\u003etemp +\u003d n;\n \t\t*args-\u003etemp_len -\u003d n;\n-\t\targs-\u003ejws-\u003emap.len[m] \u003d n;\n+\t\targs-\u003ejws-\u003emap.len[m] \u003d (uint32_t)n;\n \t}\n \n \treturn 0;\n@@ -184,10 +184,10 @@ be32(uint32_t i, uint32_t *p32)\n {\n \tuint8_t *p \u003d (uint8_t *)p32;\n \n-\t*p++ \u003d (i \u003e\u003e 24) \u0026 0xff;\n-\t*p++ \u003d (i \u003e\u003e 16) \u0026 0xff;\n-\t*p++ \u003d (i \u003e\u003e 8) \u0026 0xff;\n-\t*p++ \u003d i \u0026 0xff;\n+\t*p++ \u003d (uint8_t)((i \u003e\u003e 24) \u0026 0xff);\n+\t*p++ \u003d (uint8_t)((i \u003e\u003e 16) \u0026 0xff);\n+\t*p++ \u003d (uint8_t)((i \u003e\u003e 8) \u0026 0xff);\n+\t*p++ \u003d (uint8_t)(i \u0026 0xff);\n \n \treturn (uint8_t *)p32;\n }\n@@ -282,10 +282,10 @@ lws_jwa_concat_kdf(struct lws_jwe *jwe, int direct, uint8_t *out,\n \t\tif (/* counter */\n \t\t lws_genhash_update(\u0026hash_ctx, be32(ctr++, \u0026t), 4) ||\n \t\t /* Z */\n-\t\t lws_genhash_update(\u0026hash_ctx, shared_secret, sslen) ||\n+\t\t lws_genhash_update(\u0026hash_ctx, shared_secret, (unsigned int)sslen) ||\n \t\t /* other info */\n \t\t lws_genhash_update(\u0026hash_ctx, be32((uint32_t)strlen(aid), \u0026t), 4) ||\n-\t\t lws_genhash_update(\u0026hash_ctx, aid, aidlen) ||\n+\t\t lws_genhash_update(\u0026hash_ctx, aid, (unsigned int)aidlen) ||\n \t\t lws_genhash_update(\u0026hash_ctx,\n \t\t\t\t be32(jwe-\u003ejose.e[LJJHI_APU].len, \u0026t), 4) ||\n \t\t lws_genhash_update(\u0026hash_ctx, jwe-\u003ejose.e[LJJHI_APU].buf,\n@@ -326,7 +326,7 @@ lws_jwe_auth_and_decrypt(struct lws_jwe *jwe, char *temp, int *temp_len)\n \tchar dotstar[96];\n \n \tif (lws_jwe_parse_jose(\u0026jwe-\u003ejose, jwe-\u003ejws.map.buf[LJWS_JOSE],\n-\t\t\t jwe-\u003ejws.map.len[LJWS_JOSE],\n+\t\t\t (int)jwe-\u003ejws.map.len[LJWS_JOSE],\n \t\t\t temp, temp_len) \u003c 0) {\n \t\tlws_strnncpy(dotstar, jwe-\u003ejws.map.buf[LJWS_JOSE],\n \t\t\t jwe-\u003ejws.map.len[LJWS_JOSE], sizeof(dotstar));\n@@ -395,7 +395,7 @@ lws_jwe_encrypt(struct lws_jwe *jwe, char *temp, int *temp_len)\n \t\tjwe-\u003ejose.enc_alg-\u003ealgtype_crypto \u003d\u003d LWS_JOSE_ENCTYPE_AES_GCM;\n \n \tif (lws_jwe_parse_jose(\u0026jwe-\u003ejose, jwe-\u003ejws.map.buf[LJWS_JOSE],\n-\t\t\t jwe-\u003ejws.map.len[LJWS_JOSE], temp, temp_len) \u003c 0) {\n+\t\t\t (int)jwe-\u003ejws.map.len[LJWS_JOSE], temp, temp_len) \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -497,7 +497,7 @@ lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len)\n \n \tout +\u003d n;\n \t*out++ \u003d '.';\n-\tout_len -\u003d n + 1;\n+\tout_len -\u003d (unsigned int)n + 1;\n \n \tn \u003d lws_jws_base64_enc(jwe-\u003ejws.map.buf[LJWE_EKEY],\n \t\t\t jwe-\u003ejws.map.len[LJWE_EKEY], out, out_len);\n@@ -508,7 +508,7 @@ lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len)\n \n \tout +\u003d n;\n \t*out++ \u003d '.';\n-\tout_len -\u003d n + 1;\n+\tout_len -\u003d (unsigned int)n + 1;\n \tn \u003d lws_jws_base64_enc(jwe-\u003ejws.map.buf[LJWE_IV],\n \t\t\t jwe-\u003ejws.map.len[LJWE_IV], out, out_len);\n \tif (n \u003c 0 || (int)out_len \u003d\u003d n) {\n@@ -518,7 +518,7 @@ lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len)\n \n \tout +\u003d n;\n \t*out++ \u003d '.';\n-\tout_len -\u003d n + 1;\n+\tout_len -\u003d (unsigned int)n + 1;\n \n \tn \u003d lws_jws_base64_enc(jwe-\u003ejws.map.buf[LJWE_CTXT],\n \t\t\t jwe-\u003ejws.map.len[LJWE_CTXT], out, out_len);\n@@ -529,7 +529,7 @@ lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len)\n \n \tout +\u003d n;\n \t*out++ \u003d '.';\n-\tout_len -\u003d n + 1;\n+\tout_len -\u003d (unsigned int)n + 1;\n \tn \u003d lws_jws_base64_enc(jwe-\u003ejws.map.buf[LJWE_ATAG],\n \t\t\t jwe-\u003ejws.map.len[LJWE_ATAG], out, out_len);\n \tif (n \u003c 0 || (int)out_len \u003d\u003d n) {\n@@ -539,7 +539,7 @@ lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len)\n \n \tout +\u003d n;\n \t*out++ \u003d '\u005c0';\n-\tout_len -\u003d n;\n+\tout_len -\u003d (unsigned int)n;\n \n \treturn (int)(orig - out_len);\n }\n@@ -562,7 +562,7 @@ lws_jwe_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \t * here temporarily.\n \t */\n \tn \u003d LWS_PRE + 2048;\n-\tbuf \u003d malloc(n);\n+\tbuf \u003d malloc((unsigned int)n);\n \tif (!buf) {\n \t\tlwsl_notice(\u0022%s: malloc %d failed\u005cn\u0022, __func__, n);\n \t\treturn -1;\n@@ -578,7 +578,7 @@ lws_jwe_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \tif (!jwe-\u003ejose.alg || !jwe-\u003ejose.alg-\u003ealg)\n \t\tgoto bail;\n \n-\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p), \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022jwk\u005c\u0022:\u0022,\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022jwk\u005c\u0022:\u0022,\n \t\t\t jwe-\u003ejose.alg-\u003ealg);\n \tm \u003d lws_ptr_diff(end, p);\n \tn \u003d lws_jwk_export(\u0026jwe-\u003ejwk, 0, p, \u0026m);\n@@ -588,7 +588,7 @@ lws_jwe_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \t\tgoto bail;\n \t}\n \tp +\u003d n;\n-\tp +\u003d lws_snprintf(p, end - p, \u0022,\u005c\u0022nonce\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, nonce);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u005c\u0022nonce\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, nonce);\n \n \t/*\n \t * prepare the signed outer JSON with all the parts in\n@@ -597,53 +597,53 @@ lws_jwe_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \tp1 \u003d out;\n \tend1 \u003d out + out_len - 1;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n \tjws.map_b64.buf[LJWS_JOSE] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(start, p - start, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(start, lws_ptr_diff_size_t(p, start), p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode protected\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_JOSE] \u003d n;\n+\tjws.map_b64.len[LJWS_JOSE] \u003d (unsigned int)n;\n \tp1 +\u003d n;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005c\u0022payload\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005c\u0022payload\u005c\u0022:\u005c\u0022\u0022);\n \tjws.map_b64.buf[LJWS_PYLD] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(payload, len, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(payload, len, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode payload\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_PYLD] \u003d n;\n+\tjws.map_b64.len[LJWS_PYLD] \u003d (unsigned int)n;\n \tp1 +\u003d n;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005c\u0022header\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005c\u0022header\u005c\u0022:\u005c\u0022\u0022);\n \tjws.map_b64.buf[LJWS_UHDR] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(payload, len, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(payload, len, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode payload\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_UHDR] \u003d n;\n+\tjws.map_b64.len[LJWS_UHDR] \u003d (unsigned int)n;\n \n \tp1 +\u003d n;\n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005c\u0022signature\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005c\u0022signature\u005c\u0022:\u005c\u0022\u0022);\n \n \t/*\n \t * taking the b64 protected header and the b64 payload, sign them\n \t * and place the signature into the packet\n \t */\n-\tn \u003d lws_jws_sign_from_b64(\u0026jwe-\u003ejose, \u0026jws, p1, end1 - p1);\n+\tn \u003d lws_jws_sign_from_b64(\u0026jwe-\u003ejose, \u0026jws, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022sig gen failed\u005cn\u0022);\n \n \t\tgoto bail;\n \t}\n \tjws.map_b64.buf[LJWS_SIG] \u003d p1;\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (unsigned int)n;\n \n \tp1 +\u003d n;\n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022}\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022}\u0022);\n \n \tfree(buf);\n \n@@ -746,30 +746,30 @@ lws_jwe_render_flattened(struct lws_jwe *jwe, char *out, size_t out_len)\n \t\t\t \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022enc\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022,\n \t\t\t jwe-\u003ejose.alg-\u003ealg, jwe-\u003ejose.enc_alg-\u003ealg);\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n \tjwe-\u003ejws.map_b64.buf[LJWS_JOSE] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(protected, plen, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(protected, (size_t)plen, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode protected\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjwe-\u003ejws.map_b64.len[LJWS_JOSE] \u003d n;\n+\tjwe-\u003ejws.map_b64.len[LJWS_JOSE] \u003d (unsigned int)n;\n \tp1 +\u003d n;\n \n \t/* unprotected not supported atm */\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005cn\u005c\u0022header\u005c\u0022:\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005cn\u005c\u0022header\u005c\u0022:\u0022);\n \tlws_strnncpy(p1, buf, jlen, end1 - p1);\n \tp1 +\u003d strlen(p1);\n \n \tfor (m \u003d 0; m \u003c (int)LWS_ARRAY_SIZE(protected_en); m++)\n \t\tif (jwe-\u003ejws.map.buf[protected_idx[m]]) {\n-\t\t\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022,\u005cn\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022,\n+\t\t\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022,\u005cn\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022,\n \t\t\t\t\t protected_en[m]);\n \t\t\t//jwe-\u003ejws.map_b64.buf[protected_idx[m]] \u003d p1;\n \t\t\tn \u003d lws_jws_base64_enc(jwe-\u003ejws.map.buf[protected_idx[m]],\n \t\t\t\t\t jwe-\u003ejws.map.len[protected_idx[m]],\n-\t\t\t\t\t p1, end1 - p1);\n+\t\t\t\t\t p1, lws_ptr_diff_size_t(end1, p1));\n \t\t\tif (n \u003c 0) {\n \t\t\t\tlwsl_notice(\u0022%s: failed to encode %s\u005cn\u0022,\n \t\t\t\t\t __func__, protected_en[m]);\n@@ -777,10 +777,10 @@ lws_jwe_render_flattened(struct lws_jwe *jwe, char *out, size_t out_len)\n \t\t\t}\n \t\t\t//jwe-\u003ejws.map_b64.len[protected_idx[m]] \u003d n;\n \t\t\tp1 +\u003d n;\n-\t\t\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022\u0022);\n+\t\t\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022\u0022);\n \t\t}\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005cn}\u005cn\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005cn}\u005cn\u0022);\n \n \treturn lws_ptr_diff(p1, out);\n \ndiff --git a/lib/jose/jwk/jwk.c b/lib/jose/jwk/jwk.c\nindex 1ad9186..592d5a2 100644\n--- a/lib/jose/jwk/jwk.c\n+++ b/lib/jose/jwk/jwk.c\n@@ -222,7 +222,7 @@ lws_jwk_dump(struct lws_jwk *jwk)\n }\n \n static int\n-_lws_jwk_set_el_jwk(struct lws_gencrypto_keyelem *e, char *in, int len)\n+_lws_jwk_set_el_jwk(struct lws_gencrypto_keyelem *e, char *in, size_t len)\n {\n \te-\u003ebuf \u003d lws_malloc(len + 1, \u0022jwk\u0022);\n \tif (!e-\u003ebuf)\n@@ -230,7 +230,7 @@ _lws_jwk_set_el_jwk(struct lws_gencrypto_keyelem *e, char *in, int len)\n \n \tmemcpy(e-\u003ebuf, in, len);\n \te-\u003ebuf[len] \u003d '\u005c0';\n-\te-\u003elen \u003d len;\n+\te-\u003elen \u003d (uint32_t)len;\n \n \treturn 0;\n }\n@@ -238,7 +238,8 @@ _lws_jwk_set_el_jwk(struct lws_gencrypto_keyelem *e, char *in, int len)\n static int\n _lws_jwk_set_el_jwk_b64(struct lws_gencrypto_keyelem *e, char *in, int len)\n {\n-\tint dec_size \u003d lws_base64_size(len), n;\n+\tsize_t dec_size \u003d (unsigned int)lws_base64_size(len);\n+\tint n;\n \n \te-\u003ebuf \u003d lws_malloc(dec_size, \u0022jwk\u0022);\n \tif (!e-\u003ebuf)\n@@ -246,10 +247,10 @@ _lws_jwk_set_el_jwk_b64(struct lws_gencrypto_keyelem *e, char *in, int len)\n \n \t/* same decoder accepts both url or original styles */\n \n-\tn \u003d lws_b64_decode_string_len(in, len, (char *)e-\u003ebuf, dec_size - 1);\n+\tn \u003d lws_b64_decode_string_len(in, len, (char *)e-\u003ebuf, (int)dec_size - 1);\n \tif (n \u003c 0)\n \t\treturn -1;\n-\te-\u003elen \u003d n;\n+\te-\u003elen \u003d (uint32_t)n;\n \n \treturn 0;\n }\n@@ -257,7 +258,8 @@ _lws_jwk_set_el_jwk_b64(struct lws_gencrypto_keyelem *e, char *in, int len)\n static int\n _lws_jwk_set_el_jwk_b64u(struct lws_gencrypto_keyelem *e, char *in, int len)\n {\n-\tint dec_size \u003d lws_base64_size(len), n;\n+\tsize_t dec_size \u003d (size_t)lws_base64_size(len);\n+\tint n;\n \n \te-\u003ebuf \u003d lws_malloc(dec_size, \u0022jwk\u0022);\n \tif (!e-\u003ebuf)\n@@ -265,10 +267,10 @@ _lws_jwk_set_el_jwk_b64u(struct lws_gencrypto_keyelem *e, char *in, int len)\n \n \t/* same decoder accepts both url or original styles */\n \n-\tn \u003d lws_b64_decode_string_len(in, len, (char *)e-\u003ebuf, dec_size - 1);\n+\tn \u003d lws_b64_decode_string_len(in, len, (char *)e-\u003ebuf, (int)dec_size - 1);\n \tif (n \u003c 0)\n \t\treturn -1;\n-\te-\u003elen \u003d n;\n+\te-\u003elen \u003d (uint32_t)n;\n \n \treturn 0;\n }\n@@ -299,7 +301,8 @@ cb_jwk(struct lejp_ctx *ctx, char reason)\n {\n \tstruct lws_jwk_parse_state *jps \u003d (struct lws_jwk_parse_state *)ctx-\u003euser;\n \tstruct lws_jwk *jwk \u003d jps-\u003ejwk;\n-\tunsigned int idx, poss, n;\n+\tunsigned int idx, n;\n+\tunsigned short poss;\n \tchar dotstar[64];\n \n \tif (reason \u003d\u003d LEJPCB_VAL_STR_START)\n@@ -485,7 +488,7 @@ cont:\n \n \t\tif (idx \u0026 F_META) {\n \t\t\tif (_lws_jwk_set_el_jwk(\u0026jwk-\u003emeta[idx \u0026 0x7f],\n-\t\t\t\t\t\tjps-\u003eb64, jps-\u003epos) \u003c 0)\n+\t\t\t\t\t\tjps-\u003eb64, (unsigned int)jps-\u003epos) \u003c 0)\n \t\t\t\tgoto bail;\n \n \t\t\tbreak;\n@@ -516,7 +519,7 @@ cont:\n \t\t}\n \n \t\t\tif (_lws_jwk_set_el_jwk(\u0026jwk-\u003ee[idx \u0026 0x7f],\n-\t\t\t\t\t\tjps-\u003eb64, jps-\u003epos) \u003c 0)\n+\t\t\t\t\t\tjps-\u003eb64, (unsigned int)jps-\u003epos) \u003c 0)\n \t\t\t\tgoto bail;\n \t\tbreak;\n \t}\n@@ -553,14 +556,16 @@ lws_jwk_init_jps(struct lejp_ctx *jctx, struct lws_jwk_parse_state *jps,\n int\n lws_jwk_dup_oct(struct lws_jwk *jwk, const void *key, int len)\n {\n-\tjwk-\u003ee[LWS_GENCRYPTO_KTY_OCT].buf \u003d lws_malloc(len, __func__);\n+\tunsigned int ulen \u003d (unsigned int)len;\n+\n+\tjwk-\u003ee[LWS_GENCRYPTO_KTY_OCT].buf \u003d lws_malloc(ulen, __func__);\n \tif (!jwk-\u003ee[LWS_GENCRYPTO_KTY_OCT].buf)\n \t\treturn -1;\n \n \tjwk-\u003ekty \u003d LWS_GENCRYPTO_KTY_OCT;\n-\tjwk-\u003ee[LWS_GENCRYPTO_OCT_KEYEL_K].len \u003d len;\n+\tjwk-\u003ee[LWS_GENCRYPTO_OCT_KEYEL_K].len \u003d ulen;\n \n-\tmemcpy(jwk-\u003ee[LWS_GENCRYPTO_KTY_OCT].buf, key, len);\n+\tmemcpy(jwk-\u003ee[LWS_GENCRYPTO_KTY_OCT].buf, key, ulen);\n \n \treturn 0;\n }\n@@ -574,7 +579,7 @@ lws_jwk_generate(struct lws_context *context, struct lws_jwk *jwk,\n \n \tmemset(jwk, 0, sizeof(*jwk));\n \n-\tjwk-\u003ekty \u003d kty;\n+\tjwk-\u003ekty \u003d (int)kty;\n \tjwk-\u003eprivate_key \u003d 1;\n \n \tswitch (kty) {\n@@ -593,7 +598,7 @@ lws_jwk_generate(struct lws_context *context, struct lws_jwk *jwk,\n \t}\n \t\tbreak;\n \tcase LWS_GENCRYPTO_KTY_OCT:\n-\t\tsn \u003d lws_gencrypto_bits_to_bytes(bits);\n+\t\tsn \u003d (unsigned int)lws_gencrypto_bits_to_bytes(bits);\n \t\tjwk-\u003ee[LWS_GENCRYPTO_OCT_KEYEL_K].buf \u003d lws_malloc(sn, \u0022oct\u0022);\n \t\tjwk-\u003ee[LWS_GENCRYPTO_OCT_KEYEL_K].len \u003d (uint32_t)sn;\n \t\tif (lws_get_random(context,\n@@ -682,7 +687,7 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t * ie, meta and key data elements appear interleaved in name alpha order\n \t */\n \n-\tp +\u003d lws_snprintf(p, end - p, \u0022{\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u0022);\n \n \tswitch (jwk-\u003ekty) {\n \tcase LWS_GENCRYPTO_KTY_OCT:\n@@ -716,7 +721,7 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t\tif (!first)\n \t\t\t\t\t*p++ \u003d ',';\n \t\t\t\tfirst \u003d 0;\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022,\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022,\n \t\t\t\t\t\t l-\u003ename, kty_names[jwk-\u003ekty]);\n \t\t\t\tbreak;\n \t\t\tcase JWK_META_KEY_OPS:\n@@ -726,7 +731,7 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t\tq \u003d (const char *)jwk-\u003emeta[l-\u003eidx].buf;\n \t\t\t\tq_end \u003d q + jwk-\u003emeta[l-\u003eidx].len;\n \n-\t\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t \u0022\u005c\u0022%s\u005c\u0022:[\u0022, l-\u003ename);\n \t\t\t\t/*\n \t\t\t\t * For the public version, usages that\n@@ -748,7 +753,7 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t\t\t\tif (!f)\n \t\t\t\t\t\t\t*p++ \u003d ',';\n \t\t\t\t\t\tf \u003d 0;\n-\t\t\t\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t\t\u0022\u005c\u0022%s\u005c\u0022\u0022, tok);\n \t\t\t\t\t}\n \t\t\t\t\tq++;\n@@ -766,12 +771,12 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t\tif (!first)\n \t\t\t\t\t*p++ \u003d ',';\n \t\t\t\tfirst \u003d 0;\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022,\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022,\n \t\t\t\t\t\t l-\u003ename);\n \t\t\t\tlws_strnncpy(p, (const char *)jwk-\u003emeta[l-\u003eidx].buf,\n \t\t\t\t\t jwk-\u003emeta[l-\u003eidx].len, end - p);\n \t\t\t\tp +\u003d strlen(p);\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022\u0022);\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022\u0022);\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n@@ -782,7 +787,7 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t\t*p++ \u003d ',';\n \t\t\tfirst \u003d 0;\n \n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022, l-\u003ename);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022, l-\u003ename);\n \n \t\t\tif (jwk-\u003ekty \u003d\u003d LWS_GENCRYPTO_KTY_EC \u0026\u0026\n \t\t\t l-\u003eidx \u003d\u003d (int)LWS_GENCRYPTO_EC_KEYEL_CRV) {\n@@ -793,19 +798,19 @@ lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len)\n \t\t\t} else\n \t\t\t\tm \u003d lws_jws_base64_enc(\n \t\t\t\t\t(const char *)jwk-\u003ee[l-\u003eidx].buf,\n-\t\t\t\t\tjwk-\u003ee[l-\u003eidx].len, p, end - p - 4);\n+\t\t\t\t\tjwk-\u003ee[l-\u003eidx].len, p, lws_ptr_diff_size_t(end, p) - 4);\n \t\t\tif (m \u003c 0) {\n \t\t\t\tlwsl_notice(\u0022%s: enc failed\u005cn\u0022, __func__);\n \t\t\t\treturn -1;\n \t\t\t}\n \t\t\tp +\u003d m;\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022\u0022);\n \t\t}\n \n \t\tl++;\n \t}\n \n-\tp +\u003d lws_snprintf(p, end - p,\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t (flags \u0026 LWSJWKF_EXPORT_NOCRLF) ? \u0022}\u0022 : \u0022}\u005cn\u0022);\n \n \t*len -\u003d lws_ptr_diff(p, start);\n@@ -817,19 +822,20 @@ int\n lws_jwk_rfc7638_fingerprint(struct lws_jwk *jwk, char *digest32)\n {\n \tstruct lws_genhash_ctx hash_ctx;\n-\tint tmpsize \u003d 2536, n;\n+\tsize_t tmpsize \u003d 2536;\n \tchar *tmp;\n+\tint n, m \u003d (int)tmpsize;\n \n \ttmp \u003d lws_malloc(tmpsize, \u0022rfc7638 tmp\u0022);\n \n-\tn \u003d lws_jwk_export(jwk, LWSJWKF_EXPORT_NOCRLF, tmp, \u0026tmpsize);\n+\tn \u003d lws_jwk_export(jwk, LWSJWKF_EXPORT_NOCRLF, tmp, \u0026m);\n \tif (n \u003c 0)\n \t\tgoto bail;\n \n \tif (lws_genhash_init(\u0026hash_ctx, LWS_GENHASH_TYPE_SHA256))\n \t\tgoto bail;\n \n-\tif (lws_genhash_update(\u0026hash_ctx, tmp, n)) {\n+\tif (lws_genhash_update(\u0026hash_ctx, tmp, (unsigned int)n)) {\n \t\tlws_genhash_destroy(\u0026hash_ctx, NULL);\n \n \t\tgoto bail;\n@@ -851,11 +857,11 @@ int\n lws_jwk_strdup_meta(struct lws_jwk *jwk, enum enum_jwk_meta_tok idx,\n \t\t const char *in, int len)\n {\n-\tjwk-\u003emeta[idx].buf \u003d lws_malloc(len, __func__);\n+\tjwk-\u003emeta[idx].buf \u003d lws_malloc((unsigned int)len, __func__);\n \tif (!jwk-\u003emeta[idx].buf)\n \t\treturn 1;\n-\tjwk-\u003emeta[idx].len \u003d len;\n-\tmemcpy(jwk-\u003emeta[idx].buf, in, len);\n+\tjwk-\u003emeta[idx].len \u003d (uint32_t)(unsigned int)len;\n+\tmemcpy(jwk-\u003emeta[idx].buf, in, (unsigned int)len);\n \n \treturn 0;\n }\n@@ -864,7 +870,7 @@ int\n lws_jwk_load(struct lws_jwk *jwk, const char *filename,\n \t lws_jwk_key_import_callback cb, void *user)\n {\n-\tint buflen \u003d 4096;\n+\tunsigned int buflen \u003d 4096;\n \tchar *buf \u003d lws_malloc(buflen, \u0022jwk-load\u0022);\n \tint n;\n \n@@ -875,7 +881,7 @@ lws_jwk_load(struct lws_jwk *jwk, const char *filename,\n \tif (n \u003c 0)\n \t\tgoto bail;\n \n-\tn \u003d lws_jwk_import(jwk, cb, user, buf, n);\n+\tn \u003d lws_jwk_import(jwk, cb, user, buf, (unsigned int)n);\n \tlws_free(buf);\n \n \treturn n;\n@@ -889,7 +895,7 @@ int\n lws_jwk_save(struct lws_jwk *jwk, const char *filename)\n {\n \tint buflen \u003d 4096;\n-\tchar *buf \u003d lws_malloc(buflen, \u0022jwk-save\u0022);\n+\tchar *buf \u003d lws_malloc((unsigned int)buflen, \u0022jwk-save\u0022);\n \tint n, m;\n \n \tif (!buf)\n@@ -899,7 +905,7 @@ lws_jwk_save(struct lws_jwk *jwk, const char *filename)\n \tif (n \u003c 0)\n \t\tgoto bail;\n \n-\tm \u003d lws_plat_write_file(filename, buf, n);\n+\tm \u003d lws_plat_write_file(filename, buf, (size_t)n);\n \n \tlws_free(buf);\n \tif (m)\ndiff --git a/lib/jose/jws/jose.c b/lib/jose/jws/jose.c\nindex 4d68a82..c9fdf58 100644\n--- a/lib/jose/jws/jose.c\n+++ b/lib/jose/jws/jose.c\n@@ -364,19 +364,19 @@ append_string:\n \tif (reason \u003d\u003d LEJPCB_VAL_STR_END) {\n \t\tn \u003d lws_b64_decode_string_len(\n \t\t\t(const char *)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].buf,\n-\t\t\targs-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len,\n+\t\t\t(int)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len,\n \t\t\t(char *)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].buf,\n-\t\t\targs-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len + 1);\n+\t\t\t(int)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len + 1);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: b64 decode failed\u005cn\u0022, __func__);\n \t\t\treturn -1;\n \t\t}\n \n-\t\targs-\u003etemp -\u003d args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len - n - 1;\n+\t\targs-\u003etemp -\u003d (int)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len - n - 1;\n \t\t*args-\u003etemp_len +\u003d\n-\t\t\targs-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len - n - 1;\n+\t\t\t(int)args-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len - n - 1;\n \n-\t\targs-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len \u003d n;\n+\t\targs-\u003ejose-\u003ee[ctx-\u003epath_match - 1].len \u003d (uint32_t)n;\n \t}\n \n \treturn 0;\n@@ -419,13 +419,13 @@ lws_jose_parse(struct lws_jose *jose, const uint8_t *buf, int n,\n \t\t\t\t \u0026jose-\u003erecipient[jose-\u003erecipients].jwk_ephemeral,\n \t\t\t\t NULL, NULL);\n \n-\targs.is_jwe \u003d is_jwe;\n-\targs.temp \u003d temp;\n-\targs.temp_len \u003d temp_len;\n-\targs.jose \u003d jose;\n-\targs.recip \u003d 0;\n-\targs.recipients_array \u003d 0;\n-\tjose-\u003erecipients \u003d 0;\n+\targs.is_jwe\t\t\u003d (unsigned int)is_jwe;\n+\targs.temp\t\t\u003d temp;\n+\targs.temp_len\t\t\u003d temp_len;\n+\targs.jose\t\t\u003d jose;\n+\targs.recip\t\t\u003d 0;\n+\targs.recipients_array\t\u003d 0;\n+\tjose-\u003erecipients\t\u003d 0;\n \n \tlejp_construct(\u0026jctx, lws_jws_jose_cb, \u0026args, jws_jose,\n \t\t LWS_ARRAY_SIZE(jws_jose));\n@@ -488,7 +488,7 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \t\tcase LJJHI_ENC:\t/* JWE only: Optional: string */\n \t\tcase LJJHI_ZIP:\t/* JWE only: Optional: string (\u0022DEF\u0022\u003ddeflate) */\n \t\t\tif (jose-\u003ee[n].buf) {\n-\t\t\t\tout +\u003d lws_snprintf(out, end - out,\n+\t\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out),\n \t\t\t\t\t\u0022%s\u005c\u0022%s\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022, sub ? \u0022,\u005cn\u0022 : \u0022\u0022,\n \t\t\t\t\tjws_jose[n], jose-\u003ee[n].buf);\n \t\t\t\tsub \u003d 1;\n@@ -503,17 +503,17 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \t\tcase LJJHI_TAG:\t/* Additional arg for JWE AES: b64url */\n \t\tcase LJJHI_P2S:\t/* Additional arg for JWE PBES2: b64url: salt */\n \t\t\tif (jose-\u003ee[n].buf) {\n-\t\t\t\tout +\u003d lws_snprintf(out, end - out,\n+\t\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out),\n \t\t\t\t\t\u0022%s\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022, sub ? \u0022,\u005cn\u0022 : \u0022\u0022,\n \t\t\t\t\t\tjws_jose[n]);\n \t\t\t\tsub \u003d 1;\n \t\t\t\tm \u003d lws_b64_encode_string_url((const char *)\n-\t\t\t\t\t\tjose-\u003ee[n].buf, jose-\u003ee[n].len,\n+\t\t\t\t\t\tjose-\u003ee[n].buf, (int)jose-\u003ee[n].len,\n \t\t\t\t\t\tout, lws_ptr_diff(end, out));\n \t\t\t\tif (m \u003c 0)\n \t\t\t\t\treturn -1;\n \t\t\t\tout +\u003d m;\n-\t\t\t\tout +\u003d lws_snprintf(out, end - out, \u0022\u005c\u0022\u0022);\n+\t\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out), \u0022\u005c\u0022\u0022);\n \t\t\t}\n \t\t\tbreak;\n \n@@ -522,17 +522,17 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \n \t\tcase LJJHI_X5C:\t/* Optional: base64 (NOT -url): actual cert */\n \t\t\tif (jose-\u003ee[n].buf) {\n-\t\t\t\tout +\u003d lws_snprintf(out, end - out,\n+\t\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out),\n \t\t\t\t\t\u0022%s\u005c\u0022%s\u005c\u0022:\u005c\u0022\u0022, sub ? \u0022,\u005cn\u0022 : \u0022\u0022,\n \t\t\t\t\t\t\tjws_jose[n]);\n \t\t\t\tsub \u003d 1;\n \t\t\t\tm \u003d lws_b64_encode_string((const char *)\n-\t\t\t\t\t\tjose-\u003ee[n].buf, jose-\u003ee[n].len,\n+\t\t\t\t\t\tjose-\u003ee[n].buf, (int)jose-\u003ee[n].len,\n \t\t\t\t\t\tout, lws_ptr_diff(end, out));\n \t\t\t\tif (m \u003c 0)\n \t\t\t\t\treturn -1;\n \t\t\t\tout +\u003d m;\n-\t\t\t\tout +\u003d lws_snprintf(out, end - out, \u0022\u005c\u0022\u0022);\n+\t\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out), \u0022\u005c\u0022\u0022);\n \t\t\t}\n \t\t\tbreak;\n \n@@ -543,7 +543,7 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \t\t\tif (!jwk || !jwk-\u003ekty)\n \t\t\t\tbreak;\n \n-\t\t\tout +\u003d lws_snprintf(out, end - out, \u0022%s\u005c\u0022%s\u005c\u0022:\u0022,\n+\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out), \u0022%s\u005c\u0022%s\u005c\u0022:\u0022,\n \t\t\t\t\t sub ? \u0022,\u005cn\u0022 : \u0022\u0022, jws_jose[n]);\n \t\t\tsub \u003d 1;\n \t\t\tvl \u003d lws_ptr_diff(end, out);\n@@ -562,7 +562,7 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \t\t\tif (!jose-\u003ee[n].buf)\n \t\t\t\tbreak;\n \n-\t\t\tout +\u003d lws_snprintf(out, end - out,\n+\t\t\tout +\u003d lws_snprintf(out, lws_ptr_diff_size_t(end, out),\n \t\t\t\t\u0022%s\u005c\u0022%s\u005c\u0022:[\u0022, sub ? \u0022,\u005cn\u0022 : \u0022\u0022, jws_jose[n]);\n \t\t\tsub \u003d 1;\n \n@@ -585,7 +585,7 @@ lws_jose_render(struct lws_jose *jose, struct lws_jwk *aux_jwk,\n \t\t\t\t\tf \u003d 0;\n \t\t\t\t}\n \n-\t\t\t\t*out++ \u003d jose-\u003ee[n].buf[m];\n+\t\t\t\t*out++ \u003d (char)jose-\u003ee[n].buf[m];\n \t\t\t\tm++;\n \t\t\t}\n \ndiff --git a/lib/jose/jws/jws.c b/lib/jose/jws/jws.c\nindex e2c6f2a..549796a 100644\n--- a/lib/jose/jws/jws.c\n+++ b/lib/jose/jws/jws.c\n@@ -120,7 +120,7 @@ append_string:\n \n \t\tn \u003d lws_b64_decode_string_len(\n \t\t\t(const char *)args-\u003ejws-\u003emap_b64.buf[m],\n-\t\t\targs-\u003ejws-\u003emap_b64.len[m],\n+\t\t\t(int)args-\u003ejws-\u003emap_b64.len[m],\n \t\t\t(char *)args-\u003etemp, *args-\u003etemp_len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: b64 decode failed: in len %d, m %d\u005cn\u0022, __func__, (int)args-\u003ejws-\u003emap_b64.len[m], m);\n@@ -129,7 +129,7 @@ append_string:\n \n \t\targs-\u003etemp +\u003d n;\n \t\t*args-\u003etemp_len -\u003d n;\n-\t\targs-\u003ejws-\u003emap.len[m] \u003d n;\n+\t\targs-\u003ejws-\u003emap.len[m] \u003d (unsigned int)n;\n \t}\n \n \treturn 0;\n@@ -218,11 +218,11 @@ lws_jws_encode_b64_element(struct lws_jws_map *map, int idx,\n \tif (*temp_len \u003c lws_base64_size((int)in_len))\n \t\treturn -1;\n \n-\tn \u003d lws_jws_base64_enc(in, in_len, temp, *temp_len);\n+\tn \u003d lws_jws_base64_enc(in, in_len, temp, (size_t)*temp_len);\n \tif (n \u003c 0)\n \t\treturn -1;\n \n-\tmap-\u003elen[idx] \u003d n;\n+\tmap-\u003elen[idx] \u003d (unsigned int)n;\n \tmap-\u003ebuf[idx] \u003d temp;\n \n \t*temp_len -\u003d n;\n@@ -339,7 +339,7 @@ lws_jws_compact_decode(const char *in, int len, struct lws_jws_map *map,\n \t\treturn -1;\n \n \twhile (m \u003c blocks) {\n-\t\tn \u003d lws_b64_decode_string_len(map_b64-\u003ebuf[m], map_b64-\u003elen[m],\n+\t\tn \u003d lws_b64_decode_string_len(map_b64-\u003ebuf[m], (int)map_b64-\u003elen[m],\n \t\t\t\t\t out, *out_len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: b64 decode failed\u005cn\u0022, __func__);\n@@ -350,7 +350,7 @@ lws_jws_compact_decode(const char *in, int len, struct lws_jws_map *map,\n \t\t\tmap-\u003ebuf[m] \u003d out;\n \t\telse\n \t\t\tmap-\u003ebuf[m] \u003d NULL;\n-\t\tmap-\u003elen[m++] \u003d n;\n+\t\tmap-\u003elen[m++] \u003d (unsigned int)n;\n \t\tout +\u003d n;\n \t\t*out_len -\u003d n;\n \n@@ -368,7 +368,7 @@ lws_jws_compact_decode_map(struct lws_jws_map *map_b64, struct lws_jws_map *map,\n \tint n, m \u003d 0;\n \n \tfor (n \u003d 0; n \u003c LWS_JWS_MAX_COMPACT_BLOCKS; n++) {\n-\t\tn \u003d lws_b64_decode_string_len(map_b64-\u003ebuf[m], map_b64-\u003elen[m],\n+\t\tn \u003d lws_b64_decode_string_len(map_b64-\u003ebuf[m], (int)map_b64-\u003elen[m],\n \t\t\t\t\t out, *out_len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: b64 decode failed\u005cn\u0022, __func__);\n@@ -376,7 +376,7 @@ lws_jws_compact_decode_map(struct lws_jws_map *map_b64, struct lws_jws_map *map,\n \t\t}\n \t\t/* replace the map entry with the decoded content */\n \t\tmap-\u003ebuf[m] \u003d out;\n-\t\tmap-\u003elen[m++] \u003d n;\n+\t\tmap-\u003elen[m++] \u003d (unsigned int)n;\n \t\tout +\u003d n;\n \t\t*out_len -\u003d n;\n \n@@ -400,7 +400,7 @@ lws_jws_encode_section(const char *in, size_t in_len, int first, char **p,\n \tif (!first)\n \t\t*(*p)++ \u003d '.';\n \n-\tn \u003d lws_jws_base64_enc(in, in_len, *p, len - 1);\n+\tn \u003d lws_jws_base64_enc(in, in_len, *p, (unsigned int)len - 1);\n \tif (n \u003c 0)\n \t\treturn -1;\n \n@@ -422,7 +422,7 @@ lws_jws_compact_encode(struct lws_jws_map *map_b64, /* b64-encoded */\n \t\t\tmap_b64-\u003elen[n] \u003d 0;\n \t\t\tcontinue;\n \t\t}\n-\t\tm \u003d lws_jws_base64_enc(map-\u003ebuf[n], map-\u003elen[n], buf, *len);\n+\t\tm \u003d lws_jws_base64_enc(map-\u003ebuf[n], map-\u003elen[n], buf, (size_t)*len);\n \t\tif (m \u003c 0)\n \t\t\treturn -1;\n \t\tbuf +\u003d m;\n@@ -461,7 +461,7 @@ lws_jws_sig_confirm(struct lws_jws_map *map_b64, struct lws_jws_map *map,\n \tif (!map_b64-\u003ebuf[LJWS_SIG] \u0026\u0026 !map-\u003ebuf[LJWS_UHDR])\n \t\tb \u003d 2;\n \n-\tif (lws_jws_parse_jose(\u0026jose, map-\u003ebuf[LJWS_JOSE], map-\u003elen[LJWS_JOSE],\n+\tif (lws_jws_parse_jose(\u0026jose, map-\u003ebuf[LJWS_JOSE], (int)map-\u003elen[LJWS_JOSE],\n \t\t\t temp, \u0026temp_len) \u003c 0 || !jose.alg) {\n \t\tlwsl_notice(\u0022%s: parse failed\u005cn\u0022, __func__);\n \t\treturn -1;\n@@ -571,7 +571,7 @@ lws_jws_sig_confirm(struct lws_jws_map *map_b64, struct lws_jws_map *map,\n \n \t\t/* 7) Compare the computed and decoded hashes */\n \n-\t\tif (lws_timingsafe_bcmp(digest, map-\u003ebuf[2], h_len)) {\n+\t\tif (lws_timingsafe_bcmp(digest, map-\u003ebuf[2], (uint32_t)h_len)) {\n \t\t\tlwsl_notice(\u0022digest mismatch\u005cn\u0022);\n \n \t\t\treturn -1;\n@@ -783,13 +783,13 @@ lws_jws_sign_from_b64(struct lws_jose *jose, struct lws_jws *jws,\n \t\t\treturn -1;\n \t\t}\n \n-\t\tn \u003d jws-\u003ejwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_N].len;\n-\t\tbuf \u003d lws_malloc(lws_base64_size(n), \u0022jws sign\u0022);\n+\t\tn \u003d (int)jws-\u003ejwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_N].len;\n+\t\tbuf \u003d lws_malloc((unsigned int)lws_base64_size(n), \u0022jws sign\u0022);\n \t\tif (!buf)\n \t\t\treturn -1;\n \n \t\tn \u003d lws_genrsa_hash_sign(\u0026rsactx, digest, jose-\u003ealg-\u003ehash_type,\n-\t\t\t\t\t buf, n);\n+\t\t\t\t\t buf, (unsigned int)n);\n \t\tlws_genrsa_destroy(\u0026rsactx);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: lws_genrsa_hash_sign failed\u005cn\u0022, __func__);\n@@ -798,7 +798,7 @@ lws_jws_sign_from_b64(struct lws_jose *jose, struct lws_jws *jws,\n \t\t\treturn -1;\n \t\t}\n \n-\t\tn \u003d lws_jws_base64_enc((char *)buf, n, b64_sig, sig_len);\n+\t\tn \u003d lws_jws_base64_enc((char *)buf, (unsigned int)n, b64_sig, sig_len);\n \t\tlws_free(buf);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: lws_jws_base64_enc failed\u005cn\u0022, __func__);\n@@ -847,14 +847,14 @@ lws_jws_sign_from_b64(struct lws_jose *jose, struct lws_jws *jws,\n \t\t\treturn -1;\n \t\t}\n \t\tm \u003d lws_gencrypto_bits_to_bytes(jose-\u003ealg-\u003ekeybits_fixed) * 2;\n-\t\tbuf \u003d lws_malloc(m, \u0022jws sign\u0022);\n+\t\tbuf \u003d lws_malloc((unsigned int)m, \u0022jws sign\u0022);\n \t\tif (!buf)\n \t\t\treturn -1;\n \n \t\tn \u003d lws_genecdsa_hash_sign_jws(\u0026ecdsactx, digest,\n \t\t\t\t\t jose-\u003ealg-\u003ehash_type,\n \t\t\t\t\t jose-\u003ealg-\u003ekeybits_fixed,\n-\t\t\t\t\t (uint8_t *)buf, m);\n+\t\t\t\t\t (uint8_t *)buf, (unsigned int)m);\n \t\tlws_genec_destroy(\u0026ecdsactx);\n \t\tif (n \u003c 0) {\n \t\t\tlws_free(buf);\n@@ -863,7 +863,7 @@ lws_jws_sign_from_b64(struct lws_jose *jose, struct lws_jws *jws,\n \t\t\treturn -1;\n \t\t}\n \n-\t\tn \u003d lws_jws_base64_enc((char *)buf, m, b64_sig, sig_len);\n+\t\tn \u003d lws_jws_base64_enc((char *)buf, (unsigned int)m, b64_sig, sig_len);\n \t\tlws_free(buf);\n \n \t\treturn n;\n@@ -896,29 +896,29 @@ lws_jws_write_flattened_json(struct lws_jws *jws, char *flattened, size_t len)\n \tif (len \u003c 1)\n \t\treturn 1;\n \n-\tn +\u003d lws_snprintf(flattened + n, len - n , \u0022{\u005c\u0022payload\u005c\u0022: \u005c\u0022\u0022);\n+\tn +\u003d (unsigned int)lws_snprintf(flattened + n, len - n , \u0022{\u005c\u0022payload\u005c\u0022: \u005c\u0022\u0022);\n \tlws_strnncpy(flattened + n, jws-\u003emap_b64.buf[LJWS_PYLD],\n \t\t\tjws-\u003emap_b64.len[LJWS_PYLD], len - n);\n-\tn +\u003d strlen(flattened + n);\n+\tn \u003d n + strlen(flattened + n);\n \n-\tn +\u003d lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022protected\u005c\u0022: \u005c\u0022\u0022);\n+\tn +\u003d (unsigned int)lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022protected\u005c\u0022: \u005c\u0022\u0022);\n \tlws_strnncpy(flattened + n, jws-\u003emap_b64.buf[LJWS_JOSE],\n \t\t\tjws-\u003emap_b64.len[LJWS_JOSE], len - n);\n-\tn +\u003d strlen(flattened + n);\n+\tn \u003d n + strlen(flattened + n);\n \n \tif (jws-\u003emap_b64.buf[LJWS_UHDR]) {\n-\t\tn +\u003d lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022header\u005c\u0022: \u0022);\n+\t\tn +\u003d (unsigned int)lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022header\u005c\u0022: \u0022);\n \t\tlws_strnncpy(flattened + n, jws-\u003emap_b64.buf[LJWS_UHDR],\n \t\t\t\tjws-\u003emap_b64.len[LJWS_UHDR], len - n);\n-\t\tn +\u003d strlen(flattened + n);\n+\t\tn \u003d n + strlen(flattened + n);\n \t}\n \n-\tn +\u003d lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022signature\u005c\u0022: \u005c\u0022\u0022);\n+\tn +\u003d (unsigned int)lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022,\u005cn \u005c\u0022signature\u005c\u0022: \u005c\u0022\u0022);\n \tlws_strnncpy(flattened + n, jws-\u003emap_b64.buf[LJWS_SIG],\n \t\t\tjws-\u003emap_b64.len[LJWS_SIG], len - n);\n-\tn +\u003d strlen(flattened + n);\n+\tn \u003d n + strlen(flattened + n);\n \n-\tn +\u003d lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022}\u005cn\u0022);\n+\tn +\u003d (unsigned int)lws_snprintf(flattened + n, len - n , \u0022\u005c\u0022}\u005cn\u0022);\n \n \treturn (n \u003e\u003d len - 1);\n }\n@@ -969,7 +969,7 @@ lws_jwt_signed_validate(struct lws_context *ctx, struct lws_jwk *jwk,\n \t * blocks\n \t */\n \n-\tn \u003d lws_jws_compact_decode(com, (int)len, \u0026jws.map, \u0026jws.map_b64,\n+\tn \u003d (size_t)lws_jws_compact_decode(com, (int)len, \u0026jws.map, \u0026jws.map_b64,\n \t\t\t\t temp, \u0026tl);\n \tif (n !\u003d 3) {\n \t\tlwsl_err(\u0022%s: concat_map failed: %d\u005cn\u0022, __func__, (int)n);\n@@ -984,7 +984,7 @@ lws_jwt_signed_validate(struct lws_context *ctx, struct lws_jwk *jwk,\n \t */\n \n \tif (lws_jws_parse_jose(\u0026jose, jws.map.buf[LJWS_JOSE],\n-\t\t\t jws.map.len[LJWS_JOSE], temp, \u0026tl) \u003c 0) {\n+\t\t\t (int)jws.map.len[LJWS_JOSE], temp, \u0026tl) \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -998,7 +998,7 @@ lws_jwt_signed_validate(struct lws_context *ctx, struct lws_jwk *jwk,\n \tn \u003d strlen(jose.alg-\u003ealg);\n \n \tdo {\n-\t\tts.e \u003d lws_tokenize(\u0026ts);\n+\t\tts.e \u003d (int8_t)lws_tokenize(\u0026ts);\n \t\tif (ts.e \u003d\u003d LWS_TOKZE_TOKEN \u0026\u0026 ts.token_len \u003d\u003d n \u0026\u0026\n \t\t !strncmp(jose.alg-\u003ealg, ts.token, ts.token_len))\n \t\t\tbreak;\n@@ -1067,8 +1067,8 @@ lws_jwt_sign_compact(struct lws_context *ctx, struct lws_jwk *jwk,\n \t\treturn 1;\n \t}\n \n-\tjws.map.len[LJWS_JOSE] \u003d lws_snprintf((char *)jws.map.buf[LJWS_JOSE],\n-\t\t\t\t\t tl, \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, alg);\n+\tjws.map.len[LJWS_JOSE] \u003d (uint32_t)lws_snprintf((char *)jws.map.buf[LJWS_JOSE],\n+\t\t\t\t\t (size_t)tl, \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, alg);\n \n \ttemp +\u003d otl - tl;\n \totl \u003d tl;\n@@ -1079,18 +1079,18 @@ lws_jwt_sign_compact(struct lws_context *ctx, struct lws_jwk *jwk,\n \tif (n + 2 \u003e\u003d tl)\n \t\tgoto bail;\n \n-\tq \u003d lws_malloc(n + 2, __func__);\n+\tq \u003d lws_malloc((unsigned int)n + 2, __func__);\n \tif (!q)\n \t\tgoto bail;\n \n \tva_start(ap, format);\n-\tvsnprintf(q, n + 2, format, ap);\n+\tvsnprintf(q, (unsigned int)n + 2, format, ap);\n \tva_end(ap);\n \n \t/* add the plaintext from stdin to the map and a b64 version */\n \n \tjws.map.buf[LJWS_PYLD] \u003d q;\n-\tjws.map.len[LJWS_PYLD] \u003d n;\n+\tjws.map.len[LJWS_PYLD] \u003d (uint32_t)n;\n \n \tif (lws_jws_encode_b64_element(\u0026jws.map_b64, LJWS_PYLD, temp, \u0026tl,\n \t\t\t\t jws.map.buf[LJWS_PYLD],\n@@ -1113,7 +1113,7 @@ lws_jwt_sign_compact(struct lws_context *ctx, struct lws_jwk *jwk,\n \t/* prepare the space for the b64 signature in the map */\n \n \tif (lws_jws_alloc_element(\u0026jws.map_b64, LJWS_SIG, temp, \u0026tl,\n-\t\t\t\t lws_base64_size(LWS_JWE_LIMIT_KEY_ELEMENT_BYTES),\n+\t\t\t\t (size_t)lws_base64_size(LWS_JWE_LIMIT_KEY_ELEMENT_BYTES),\n \t\t\t\t 0))\n \t\tgoto bail1;\n \n@@ -1126,7 +1126,7 @@ lws_jwt_sign_compact(struct lws_context *ctx, struct lws_jwk *jwk,\n \t\tgoto bail1;\n \n \t/* set the actual b64 signature size */\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (uint32_t)n;\n \n \t/* create the compact JWS representation */\n \tif (lws_jws_write_compact(\u0026jws, out, *out_len))\ndiff --git a/lib/misc/base64-decode.c b/lib/misc/base64-decode.c\nindex a47743d..f8e8e49 100644\n--- a/lib/misc/base64-decode.c\n+++ b/lib/misc/base64-decode.c\n@@ -59,7 +59,7 @@ _lws_b64_encode_string(const char *encode, const char *in, int in_len,\n \t\tint len \u003d 0;\n \t\tfor (i \u003d 0; i \u003c 3; i++) {\n \t\t\tif (in_len) {\n-\t\t\t\ttriple[i] \u003d *in++;\n+\t\t\t\ttriple[i] \u003d (unsigned char)*in++;\n \t\t\t\tlen++;\n \t\t\t\tin_len--;\n \t\t\t} else\n@@ -121,20 +121,20 @@ lws_b64_decode_stateful(struct lws_b64state *s, const char *in, size_t *in_len,\n \t\t\tv \u003d 0;\n \t\t\ts-\u003ec \u003d 0;\n \t\t\twhile (in \u003c end_in \u0026\u0026 *in \u0026\u0026 !v) {\n-\t\t\t\ts-\u003ec \u003d v \u003d *in++;\n+\t\t\t\ts-\u003ec \u003d v \u003d (unsigned char)*in++;\n \t\t\t\t/* support the url base64 variant too */\n \t\t\t\tif (v \u003d\u003d '-')\n \t\t\t\t\ts-\u003ec \u003d v \u003d '+';\n \t\t\t\tif (v \u003d\u003d '_')\n \t\t\t\t\ts-\u003ec \u003d v \u003d '/';\n-\t\t\t\tv \u003d (v \u003c 43 || v \u003e 122) ? 0 : decode[v - 43];\n+\t\t\t\tv \u003d (uint8_t)((v \u003c 43 || v \u003e 122) ? 0 : decode[v - 43]);\n \t\t\t\tif (v)\n-\t\t\t\t\tv \u003d (v \u003d\u003d '$') ? 0 : v - 61;\n+\t\t\t\t\tv \u003d (uint8_t)((v \u003d\u003d '$') ? 0 : v - 61);\n \t\t\t}\n \t\t\tif (s-\u003ec) {\n \t\t\t\ts-\u003elen++;\n \t\t\t\tif (v)\n-\t\t\t\t\ts-\u003equad[s-\u003ei] \u003d v - 1;\n+\t\t\t\t\ts-\u003equad[s-\u003ei] \u003d (uint8_t)(v - 1);\n \t\t\t} else\n \t\t\t\ts-\u003equad[s-\u003ei] \u003d 0;\n \t\t}\n@@ -154,19 +154,19 @@ lws_b64_decode_stateful(struct lws_b64state *s, const char *in, size_t *in_len,\n \t\t\ts-\u003elen--;\n \n \t\tif (s-\u003elen \u003e\u003d 2)\n-\t\t\t*out++ \u003d s-\u003equad[0] \u003c\u003c 2 | s-\u003equad[1] \u003e\u003e 4;\n+\t\t\t*out++ \u003d (uint8_t)(s-\u003equad[0] \u003c\u003c 2 | s-\u003equad[1] \u003e\u003e 4);\n \t\tif (s-\u003elen \u003e\u003d 3)\n-\t\t\t*out++ \u003d s-\u003equad[1] \u003c\u003c 4 | s-\u003equad[2] \u003e\u003e 2;\n+\t\t\t*out++ \u003d (uint8_t)(s-\u003equad[1] \u003c\u003c 4 | s-\u003equad[2] \u003e\u003e 2);\n \t\tif (s-\u003elen \u003e\u003d 4)\n-\t\t\t*out++ \u003d ((s-\u003equad[2] \u003c\u003c 6) \u0026 0xc0) | s-\u003equad[3];\n+\t\t\t*out++ \u003d (uint8_t)(((s-\u003equad[2] \u003c\u003c 6) \u0026 0xc0) | s-\u003equad[3]);\n \n \t\ts-\u003edone +\u003d s-\u003elen - 1;\n \t\ts-\u003elen \u003d 0;\n \t}\n \n \t*out \u003d '\u005c0';\n-\t*in_len \u003d in - orig_in;\n-\t*out_size \u003d out - orig_out;\n+\t*in_len \u003d (unsigned int)(in - orig_in);\n+\t*out_size \u003d (unsigned int)(out - orig_out);\n \n \treturn 0;\n }\n@@ -181,7 +181,7 @@ lws_b64_decode_stateful(struct lws_b64state *s, const char *in, size_t *in_len,\n */\n \n static size_t\n-_lws_b64_decode_string(const char *in, int in_len, char *out, int out_size)\n+_lws_b64_decode_string(const char *in, int in_len, char *out, size_t out_size)\n {\n \tstruct lws_b64state state;\n \tsize_t il \u003d (size_t)in_len, ol \u003d out_size;\n@@ -201,13 +201,13 @@ _lws_b64_decode_string(const char *in, int in_len, char *out, int out_size)\n int\n lws_b64_decode_string(const char *in, char *out, int out_size)\n {\n-\treturn (int)_lws_b64_decode_string(in, -1, out, out_size);\n+\treturn (int)_lws_b64_decode_string(in, -1, out, (unsigned int)out_size);\n }\n \n int\n lws_b64_decode_string_len(const char *in, int in_len, char *out, int out_size)\n {\n-\treturn (int)_lws_b64_decode_string(in, in_len, out, out_size);\n+\treturn (int)_lws_b64_decode_string(in, in_len, out, (unsigned int)out_size);\n }\n \n #if 0\ndiff --git a/lib/misc/daemonize.c b/lib/misc/daemonize.c\nindex ef066f1..6dec9d6 100644\n--- a/lib/misc/daemonize.c\n+++ b/lib/misc/daemonize.c\n@@ -64,7 +64,7 @@ child_handler(int signum)\n \t\t\texit(0);\n \t\t}\n \t\tlen \u003d sprintf(sz, \u0022%u\u0022, (unsigned int)pid_daemon);\n-\t\tsent \u003d write(fd, sz, len);\n+\t\tsent \u003d (int)write(fd, sz, (size_t)len);\n \t\tif (sent !\u003d len)\n \t\t\tfprintf(stderr,\n \t\t\t \u0022unable to write pid to lock file %s, code\u003d%d (%s)\u005cn\u0022,\n@@ -117,7 +117,7 @@ lws_daemonize(const char *_lock_path)\n \t\tif (fd \u003e\u003d 0) {\n \t\t\tchar buf[10];\n \n-\t\t\tn \u003d read(fd, buf, sizeof(buf));\n+\t\t\tn \u003d (int)read(fd, buf, sizeof(buf));\n \t\t\tclose(fd);\n \t\t\tif (n) {\n \t\t\t\tint ret;\n@@ -136,8 +136,8 @@ lws_daemonize(const char *_lock_path)\n \t\t\t}\n \t\t}\n \n-\t\tn \u003d strlen(_lock_path) + 1;\n-\t\tlock_path \u003d lws_malloc(n, \u0022daemonize lock\u0022);\n+\t\tn \u003d (int)strlen(_lock_path) + 1;\n+\t\tlock_path \u003d lws_malloc((unsigned int)n, \u0022daemonize lock\u0022);\n \t\tif (!lock_path) {\n \t\t\tfprintf(stderr, \u0022Out of mem in lws_daemonize\u005cn\u0022);\n \t\t\treturn 1;\ndiff --git a/lib/misc/dir.c b/lib/misc/dir.c\nindex 5af02ee..c0a4f77 100644\n--- a/lib/misc/dir.c\n+++ b/lib/misc/dir.c\n@@ -120,7 +120,7 @@ lws_dir(const char *dirpath, void *user, lws_dir_callback_function cb)\n \tchar combo[COMBO_SIZEOF];\n \tsize_t l;\n \n-\tl \u003d lws_snprintf(combo, COMBO_SIZEOF - 2, \u0022%s\u0022, dirpath);\n+\tl \u003d (size_t)(ssize_t)lws_snprintf(combo, COMBO_SIZEOF - 2, \u0022%s\u0022, dirpath);\n \tcombo[l++] \u003d csep;\n \tcombo[l] \u003d '\u005c0';\n \ndiff --git a/lib/misc/diskcache.c b/lib/misc/diskcache.c\nindex a73d0a2..bfc629a 100644\n--- a/lib/misc/diskcache.c\n+++ b/lib/misc/diskcache.c\n@@ -89,7 +89,7 @@ fe_modified_sort(lws_list_ptr a, lws_list_ptr b)\n {\n \tstruct file_entry *p1 \u003d lp_to_fe(a, sorted), *p2 \u003d lp_to_fe(b, sorted);\n \n-\treturn p2-\u003emodified - p1-\u003emodified;\n+\treturn (int)((long)p2-\u003emodified - (long)p1-\u003emodified);\n }\n \n struct lws_diskcache_scan *\n@@ -118,27 +118,27 @@ lws_diskcache_destroy(struct lws_diskcache_scan **lds)\n }\n \n int\n-lws_diskcache_prepare(const char *cache_base_dir, int mode, int uid)\n+lws_diskcache_prepare(const char *cache_base_dir, int mode, uid_t uid)\n {\n \tchar dir[256];\n \tint n, m;\n \n-\t(void)mkdir(cache_base_dir, mode);\n-\tif (chown(cache_base_dir, uid, -1))\n+\t(void)mkdir(cache_base_dir, (unsigned short)mode);\n+\tif (chown(cache_base_dir, uid, (gid_t)-1))\n \t\tlwsl_err(\u0022%s: %s: unable to chown %d\u005cn\u0022, __func__,\n \t\t\t cache_base_dir, uid);\n \n \tfor (n \u003d 0; n \u003c 16; n++) {\n \t\tlws_snprintf(dir, sizeof(dir), \u0022%s/%c\u0022, cache_base_dir, hex[n]);\n-\t\t(void)mkdir(dir, mode);\n-\t\tif (chown(dir, uid, -1))\n+\t\t(void)mkdir(dir, (mode_t)mode);\n+\t\tif (chown(dir, uid, (uid_t)-1))\n \t\t\tlwsl_err(\u0022%s: %s: unable to chown %d\u005cn\u0022, __func__,\n \t\t\t\t\t\t dir, uid);\n \t\tfor (m \u003d 0; m \u003c 16; m++) {\n \t\t\tlws_snprintf(dir, sizeof(dir), \u0022%s/%c/%c\u0022,\n \t\t\t\t cache_base_dir, hex[n], hex[m]);\n-\t\t\t(void)mkdir(dir, mode);\n-\t\t\tif (chown(dir, uid, -1))\n+\t\t\t(void)mkdir(dir, (mode_t)mode);\n+\t\t\tif (chown(dir, uid, (uid_t)-1))\n \t\t\t\tlwsl_err(\u0022%s: %s: unable to chown %d\u005cn\u0022,\n \t\t\t\t\t __func__, dir, uid);\n \t\t}\n@@ -187,7 +187,7 @@ lws_diskcache_query(struct lws_diskcache_scan *lds, int is_bot,\n \tif (!is_bot)\n \t\tlds-\u003ecache_tries++;\n \n-\tn \u003d lws_snprintf(cache, cache_len, \u0022%s/%c/%c/%s\u0022, lds-\u003ecache_dir_base,\n+\tn \u003d lws_snprintf(cache, (size_t)cache_len, \u0022%s/%c/%c/%s\u0022, lds-\u003ecache_dir_base,\n \t\t\t hash_hex[0], hash_hex[1], hash_hex);\n \n \tlwsl_info(\u0022%s: job cache %s\u005cn\u0022, __func__, cache);\n@@ -221,7 +221,7 @@ lws_diskcache_query(struct lws_diskcache_scan *lds, int is_bot,\n \n \t/* let's create it first with a unique temp name */\n \n-\tlws_snprintf(cache + n, cache_len - n, \u0022~%d-%p\u0022, (int)getpid(),\n+\tlws_snprintf(cache + n, (size_t)cache_len - (unsigned int)n, \u0022~%d-%p\u0022, (int)getpid(),\n \t\t extant_cache_len);\n \n \t*_fd \u003d open(cache, O_RDWR | O_CREAT | O_TRUNC, 0600);\n@@ -271,7 +271,7 @@ lws_diskcache_secs_to_idle(struct lws_diskcache_scan *lds)\n int\n lws_diskcache_trim(struct lws_diskcache_scan *lds)\n {\n-\tsize_t cache_size_limit \u003d lds-\u003ecache_size_limit;\n+\tsize_t cache_size_limit \u003d (size_t)lds-\u003ecache_size_limit;\n \tchar dirpath[132], filepath[132 + 32];\n \tlws_list_ptr lp, op \u003d NULL;\n \tint files_trimmed \u003d 0;\n@@ -338,7 +338,7 @@ lws_diskcache_trim(struct lws_diskcache_scan *lds)\n \t\t\tcontinue;\n \t\t}\n \n-\t\tlds-\u003eagg_size +\u003d s.st_size;\n+\t\tlds-\u003eagg_size +\u003d (uint64_t)s.st_size;\n \n \t\tif (lds-\u003ebatch_in_use \u003d\u003d BATCH_COUNT) {\n \t\t\t/*\n@@ -365,7 +365,7 @@ lws_diskcache_trim(struct lws_diskcache_scan *lds)\n \t\tstrncpy(p-\u003ename, de-\u003ed_name, sizeof(p-\u003ename) - 1);\n \t\tp-\u003ename[sizeof(p-\u003ename) - 1] \u003d '\u005c0';\n \t\tp-\u003emodified \u003d s.st_mtime;\n-\t\tp-\u003esize \u003d s.st_size;\n+\t\tp-\u003esize \u003d (size_t)s.st_size;\n \n \t\tlws_list_ptr_insert(\u0026lds-\u003ehead, \u0026p-\u003esorted, fe_modified_sort);\n \t} while (de);\n@@ -429,7 +429,7 @@ lws_diskcache_trim(struct lws_diskcache_scan *lds)\n \t}\n \n \tif (lds-\u003eagg_size \u0026\u0026 lds-\u003eagg_file_count)\n-\t\tlds-\u003eavg_size \u003d lds-\u003eagg_size / lds-\u003eagg_file_count;\n+\t\tlds-\u003eavg_size \u003d lds-\u003eagg_size / (uint64_t)lds-\u003eagg_file_count;\n \n \t/*\n \t * estimate how long we can go before scanning again... default we need\n@@ -444,7 +444,7 @@ lws_diskcache_trim(struct lws_diskcache_scan *lds)\n \n \t\t/* let's use 80% of the real average for margin */\n \t\tif (lds-\u003eagg_size \u0026\u0026 lds-\u003eagg_file_count)\n-\t\t\tavg \u003d ((lds-\u003eagg_size * 8) / lds-\u003eagg_file_count) / 10;\n+\t\t\tavg \u003d ((lds-\u003eagg_size * 8) / (uint64_t)lds-\u003eagg_file_count) / 10;\n \n \t\t/*\n \t\t * if we collected BATCH_COUNT files of the average size,\n@@ -459,8 +459,8 @@ lws_diskcache_trim(struct lws_diskcache_scan *lds)\n \t\tprojected \u003d (lds-\u003eagg_size * 11) / 10;\n \t\tif (projected \u003c cache_size_limit)\n \t\t\t/* no... */\n-\t\t\tlds-\u003esecs_waiting \u003d (256 / 2) * ((cache_size_limit -\n-\t\t\t\t\t\t projected) / capacity);\n+\t\t\tlds-\u003esecs_waiting \u003d (int)((256 / 2) * ((cache_size_limit -\n+\t\t\t\t\t\t projected) / capacity));\n \n \t\t/*\n \t\t * large waits imply we may not have enough info yet, so\ndiff --git a/lib/misc/fsmount.c b/lib/misc/fsmount.c\nindex c951a3e..bc9669a 100644\n--- a/lib/misc/fsmount.c\n+++ b/lib/misc/fsmount.c\n@@ -99,16 +99,16 @@ lws_fsmount_mount(struct lws_fsmount *fsm)\n \t\t\tif (n !\u003d 9)\n \t\t\t\topts[n++] \u003d ':';\n \n-\t\t\tn +\u003d lws_snprintf(\u0026opts[n], sizeof(opts) - n,\n+\t\t\tn +\u003d lws_snprintf(\u0026opts[n], (size_t)(sizeof(opts) - (unsigned int)n),\n \t\t\t\t\t \u0022%s/%s/%s\u0022, fsm-\u003elayers_path,\n \t\t\t\t\t fsm-\u003edistro, fsm-\u003elayers[m]);\n \t\t}\n \n-\tn +\u003d lws_snprintf(\u0026opts[n], sizeof(opts) - n,\n+\tn +\u003d lws_snprintf(\u0026opts[n], (size_t)(sizeof(opts) - (unsigned int)n),\n \t\t\t \u0022,upperdir\u003d%s/overlays/%s/session\u0022,\n \t\t\t fsm-\u003eoverlay_path, fsm-\u003eovname);\n \n-\tn +\u003d lws_snprintf(\u0026opts[n], sizeof(opts) - n,\n+\tn +\u003d lws_snprintf(\u0026opts[n], (size_t)(sizeof(opts) - (unsigned int)n),\n \t\t\t \u0022,workdir\u003d%s/overlays/%s/work\u0022,\n \t\t\t fsm-\u003eoverlay_path, fsm-\u003eovname);\n \ndiff --git a/lib/misc/fts/trie-fd.c b/lib/misc/fts/trie-fd.c\nindex 5db2993..c67165b 100644\n--- a/lib/misc/fts/trie-fd.c\n+++ b/lib/misc/fts/trie-fd.c\n@@ -72,13 +72,13 @@ struct linetable {\n static uint32_t\n b32(unsigned char *b)\n {\n-\treturn (b[0] \u003c\u003c 24) | (b[1] \u003c\u003c 16) | (b[2] \u003c\u003c 8) | b[3];\n+\treturn (uint32_t)((b[0] \u003c\u003c 24) | (b[1] \u003c\u003c 16) | (b[2] \u003c\u003c 8) | b[3]);\n }\n \n static uint16_t\n b16(unsigned char *b)\n {\n-\treturn (b[0] \u003c\u003c 8) | b[1];\n+\treturn (uint16_t)((b[0] \u003c\u003c 8) | b[1]);\n }\n \n static int\n@@ -94,25 +94,25 @@ lws_fts_filepath(struct lws_fts_file *jtf, int filepath_index, char *result,\n \tif (filepath_index \u003e jtf-\u003efilepaths)\n \t\treturn 1;\n \n-\tif (lseek(jtf-\u003efd, jtf-\u003efilepath_table + (4 * filepath_index),\n+\tif (lseek(jtf-\u003efd, (off_t)(jtf-\u003efilepath_table + (4 * (unsigned int)filepath_index)),\n \t\t\tSEEK_SET) \u003c 0) {\n \t\tlwsl_err(\u0022%s: unable to seek\u005cn\u0022, __func__);\n \n \t\treturn 1;\n \t}\n \n-\tra \u003d read(jtf-\u003efd, buf, 4);\n+\tra \u003d (int)read(jtf-\u003efd, buf, 4);\n \tif (ra \u003c 0)\n \t\treturn 1;\n \n-\to \u003d (unsigned int)b32(buf);\n+\to \u003d (off_t)b32(buf);\n \tif (lseek(jtf-\u003efd, o, SEEK_SET) \u003c 0) {\n \t\tlwsl_err(\u0022%s: unable to seek\u005cn\u0022, __func__);\n \n \t\treturn 1;\n \t}\n \n-\tra \u003d read(jtf-\u003efd, buf, sizeof(buf));\n+\tra \u003d (int)read(jtf-\u003efd, buf, sizeof(buf));\n \tif (ra \u003c 0)\n \t\treturn 1;\n \n@@ -170,7 +170,7 @@ lws_fts_adopt(struct lws_fts_file *jtf)\n \n \t\tgoto bail;\n \t}\n-\tjtf-\u003eflen \u003d ot;\n+\tjtf-\u003eflen \u003d (jg2_file_offset)ot;\n \n \tif (jtf-\u003eflen !\u003d b32(\u0026buf[8])) {\n \t\tlwsl_err(\u0022%s: file size doesn't match expected\u005cn\u0022, __func__);\n@@ -179,7 +179,7 @@ lws_fts_adopt(struct lws_fts_file *jtf)\n \t}\n \n \tjtf-\u003efilepath_table \u003d b32(\u0026buf[12]);\n-\tjtf-\u003efilepaths \u003d b32(\u0026buf[16]);\n+\tjtf-\u003efilepaths \u003d (int)b32(\u0026buf[16]);\n \n \treturn jtf-\u003efd;\n \n@@ -224,13 +224,13 @@ lws_fts_close(struct lws_fts_file *jtf)\n \n #define grab(_pos, _size) { \u005c\n \t\tbp \u003d 0; \u005c\n-\t\tif (lseek(jtf-\u003efd, _pos, SEEK_SET) \u003c 0) { \u005c\n+\t\tif (lseek(jtf-\u003efd, (off_t)(_pos), SEEK_SET) \u003c 0) { \u005c\n \t\t\tlwsl_err(\u0022%s: unable to seek\u005cn\u0022, __func__); \u005c\n \u005c\n \t\t\tgoto bail; \u005c\n \t\t} \u005c\n \u005c\n-\t\tra \u003d read(jtf-\u003efd, buf, _size); \u005c\n+\t\tra \u003d (int)read(jtf-\u003efd, buf, (size_t)(_size)); \u005c\n \t\tif (ra \u003c 0) \u005c\n \t\t\tgoto bail; \u005c\n }\n@@ -262,12 +262,12 @@ lws_fts_cache_chunktable(struct lws_fts_file *jtf, uint32_t ofs_linetable,\n \n \t\tlt-\u003echunk_line_number_start \u003d line;\n \t\tlt-\u003echunk_line_number_count \u003d b16(\u0026buf[bp + 2]);\n-\t\tlt-\u003evli_ofs_in_index \u003d ofs_linetable + 8;\n+\t\tlt-\u003evli_ofs_in_index \u003d (off_t)(ofs_linetable + 8);\n \t\tlt-\u003echunk_filepos_start \u003d cfs;\n \n \t\tline +\u003d lt-\u003echunk_line_number_count;\n \n-\t\tcfs +\u003d b32(\u0026buf[bp + 4]);\n+\t\tcfs +\u003d (int32_t)b32(\u0026buf[bp + 4]);\n \t\tofs_linetable +\u003d b16(\u0026buf[bp]);\n \n \t} while (b16(\u0026buf[bp]));\n@@ -314,7 +314,7 @@ lws_fts_getfileoffset(struct lws_fts_file *jtf, struct linetable *ltstart,\n \tbp \u003d 0;\n \twhile (line) {\n \t\tbp +\u003d rq32(\u0026buf[bp], \u0026ll);\n-\t\tofs +\u003d ll;\n+\t\tofs +\u003d (int32_t)ll;\n \t\tline--;\n \t}\n \n@@ -347,7 +347,7 @@ ac_record(struct lws_fts_file *jtf, struct lwsac **results_head,\n \tfor (n \u003d 1; n \u003c\u003d sp; n++)\n \t\tm +\u003d s[n].ch[s[n].child - 1].name_length;\n \n-\tac \u003d lwsac_use(results_head, sizeof(*ac) + m + 1, 0);\n+\tac \u003d lwsac_use(results_head, sizeof(*ac) + (unsigned int)m + 1, 0);\n \tif (!ac)\n \t\treturn -1;\n \n@@ -356,19 +356,19 @@ ac_record(struct lws_fts_file *jtf, struct lwsac **results_head,\n \t**ppac \u003d ac;\n \tac-\u003enext \u003d NULL;\n \t*ppac \u003d \u0026ac-\u003enext;\n-\tac-\u003einstances \u003d instances;\n-\tac-\u003eagg_instances \u003d agg_instances;\n+\tac-\u003einstances \u003d (int)instances;\n+\tac-\u003eagg_instances \u003d (int)agg_instances;\n \tac-\u003eac_length \u003d m;\n \tac-\u003ehas_children \u003d !!children;\n \tac-\u003eelided \u003d 0;\n \n-\tmemcpy(p, needle, pos);\n+\tmemcpy(p, needle, (size_t)pos);\n \tp +\u003d pos;\n \n \tfor (n \u003d 1; n \u003c\u003d sp; n++) {\n \t\tint w \u003d s[n].child - 1;\n \n-\t\tmemcpy(p, s[n].ch[w].name, s[n].ch[w].name_length);\n+\t\tmemcpy(p, s[n].ch[w].name, (size_t)s[n].ch[w].name_length);\n \t\tp +\u003d s[n].ch[w].name_length;\n \t}\n \tp \u003d (char *)(ac + 1);\n@@ -380,8 +380,8 @@ ac_record(struct lws_fts_file *jtf, struct lwsac **results_head,\n \t * best results (children are sorted best-first)\n \t */\n \tfor (n \u003d sp; n \u003e\u003d 0; n--) {\n-\t\ts[n].ch[s[n].child - 1].child_agg -\u003d instances;\n-\t\ts[n].agg -\u003d instances;\n+\t\ts[n].ch[s[n].child - 1].child_agg -\u003d (int)instances;\n+\t\ts[n].agg -\u003d (int)instances;\n \t}\n \n \treturn 0;\n@@ -393,7 +393,7 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \tuint32_t children, instances, co, sl, agg, slt, chunk,\n \t\t fileofs_tif_start, desc, agg_instances;\n \tint pos \u003d 0, n, m, nl, bp, base \u003d 0, ra, palm, budget, sp, ofd \u003d -1;\n-\tunsigned long long tf \u003d lws_now_usecs();\n+\tunsigned long long tf \u003d (unsigned long long)lws_now_usecs();\n \tstruct lws_fts_result_autocomplete **pac \u003d NULL;\n \tchar stasis, nac \u003d 0, credible, needle[32];\n \tstruct lws_fts_result_filepath *fp;\n@@ -426,10 +426,10 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \tpalm \u003d 0;\n \n \tfor (n \u003d 0; n \u003c nl; n++)\n-\t\tneedle[n] \u003d tolower(ftsp-\u003eneedle[n]);\n+\t\tneedle[n] \u003d (char)tolower(ftsp-\u003eneedle[n]);\n \tneedle[nl] \u003d '\u005c0';\n \n-\to \u003d jtf-\u003eroot;\n+\to \u003d (off_t)jtf-\u003eroot;\n \tdo {\n \t\tbp \u003d 0;\n \t\tbase \u003d 0;\n@@ -458,7 +458,7 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \n \t\t\t/* we leave with bp positioned at the instance list */\n \n-\t\t\to \u003d fileofs_tif_start;\n+\t\t\to \u003d (off_t)fileofs_tif_start;\n \t\t\tgrab(o, sizeof(buf));\n \t\t\tbreak;\n \t\t}\n@@ -493,7 +493,7 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \t\t\t\t * our needle string (but that leaves it as a\n \t\t\t\t * perfectly fine autocomplete candidate)\n \t\t\t\t */\n-\t\t\t\tsize_t g \u003d nl - pos;\n+\t\t\t\tsize_t g \u003d (size_t)(nl - pos);\n \n \t\t\t\t/*\n \t\t\t\t * \u0022credible\u0022 means at least one child matches\n@@ -512,7 +512,7 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \t\t\t\t\tagg_instances -\u003d agg;\n \n \t\t\t\tnac \u003d 0;\n-\t\t\t\tbp +\u003d sl;\n+\t\t\t\tbp +\u003d (int)sl;\n \t\t\t\tslt \u003d 0;\n \t\t\t\tpos \u003d palm;\n \t\t\t\tgoto ensure;\n@@ -531,7 +531,7 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \t\t\t\t * not needed due to a match fail.\n \t\t\t\t */\n \n-\t\t\t\tchunk \u003d ra - bp;\n+\t\t\t\tchunk \u003d (uint32_t)(ra - bp);\n \t\t\t\tif (chunk \u003e slt)\n \t\t\t\t\tchunk \u003d slt;\n \n@@ -543,21 +543,21 @@ lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp)\n \t\t\t\t\t * it doesn't match... so nothing can\n \t\t\t\t\t * autocomplete this...\n \t\t\t\t\t */\n-\t\t\t\t\tbp +\u003d slt;\n+\t\t\t\t\tbp +\u003d (int)slt;\n \t\t\t\t\tslt \u003d 0;\n \t\t\t\t\tnac \u003d 1;\n \t\t\t\t\tgoto ensure;\n \t\t\t\t}\n \n \t\t\t\tslt -\u003d chunk;\n-\t\t\t\tpos +\u003d chunk;\n-\t\t\t\tbp +\u003d chunk;\n+\t\t\t\tpos +\u003d (int)chunk;\n+\t\t\t\tbp +\u003d (int)chunk;\n \n \t\t\t\t/* so far, it matches */\n \n \t\t\t\tif (!slt) {\n \t\t\t\t\t/* we matched the whole thing */\n-\t\t\t\t\to \u003d co;\n+\t\t\t\t\to \u003d (int32_t)co;\n \t\t\t\t\tif (!co)\n \t\t\t\t\t\tgoto bail;\n \t\t\t\t\tn \u003d (int)children;\n@@ -598,7 +598,7 @@ ensure:\n \t\t}\n \t} while(1);\n \n-\tresult-\u003eduration_ms \u003d (int)((lws_now_usecs() - tf) / 1000);\n+\tresult-\u003eduration_ms \u003d (int)(((uint64_t)lws_now_usecs() - tf) / 1000);\n \n \tif (!instances \u0026\u0026 !children)\n \t\treturn result;\n@@ -626,16 +626,16 @@ ensure:\n \t\tofd \u003d -1;\n \t\tgrab(o, sizeof(buf));\n \n-\t\tro \u003d o;\n+\t\tro \u003d (uint32_t)o;\n \t\tbp +\u003d rq32(\u0026buf[bp], \u0026_o);\n-\t\to \u003d _o;\n+\t\to \u003d (off_t)_o;\n \n \t\tassert(!o || o \u003e TRIE_FILE_HDR_SIZE);\n \n \t\tbp +\u003d rq32(\u0026buf[bp], \u0026fi);\n \t\tbp +\u003d rq32(\u0026buf[bp], \u0026tot);\n \n-\t\tif (lws_fts_filepath(jtf, fi, path, sizeof(path) - 1,\n+\t\tif (lws_fts_filepath(jtf, (int)fi, path, sizeof(path) - 1,\n \t\t\t\t \u0026ofs_linetable, \u0026lines)) {\n \t\t\tlwsl_err(\u0022can't get filepath index %d\u005cn\u0022, fi);\n \t\t\tgoto bail;\n@@ -656,27 +656,27 @@ ensure:\n \t\t\t}\n \t\t}\n \n-\t\tfplen \u003d (int)strlen(path);\n-\t\tfootprint \u003d sizeof(*fp) + fplen + 1;\n+\t\tfplen \u003d (uint32_t)strlen(path);\n+\t\tfootprint \u003d (int)(sizeof(*fp) + fplen + 1);\n \t\tif (ftsp-\u003eflags \u0026 LWSFTS_F_QUERY_FILE_LINES) {\n \t\t\t/* line number and offset in file */\n-\t\t\tfootprint +\u003d 2 * sizeof(uint32_t) * tot;\n+\t\t\tfootprint +\u003d (int)(2 * sizeof(uint32_t) * tot);\n \n \t\t\tif (ftsp-\u003eflags \u0026 LWSFTS_F_QUERY_QUOTE_LINE)\n \t\t\t\t/* pointer to quote string */\n-\t\t\t\tfootprint +\u003d sizeof(void *) * tot;\n+\t\t\t\tfootprint +\u003d (int)(sizeof(void *) * tot);\n \t\t}\n \n-\t\tfp \u003d lwsac_use(\u0026ftsp-\u003eresults_head, footprint, 0);\n+\t\tfp \u003d lwsac_use(\u0026ftsp-\u003eresults_head, (unsigned int)footprint, 0);\n \t\tif (!fp) {\n \t\t\tlwsac_free(\u0026lt_head);\n \t\t\tgoto bail;\n \t\t}\n \n-\t\tfp-\u003efilepath_length \u003d fplen;\n-\t\tfp-\u003elines_in_file \u003d lines;\n-\t\tfp-\u003ematches \u003d tot;\n-\t\tfp-\u003ematches_length \u003d footprint - sizeof(*fp) - (fplen + 1);\n+\t\tfp-\u003efilepath_length \u003d (int)fplen;\n+\t\tfp-\u003elines_in_file \u003d (int)lines;\n+\t\tfp-\u003ematches \u003d (int)tot;\n+\t\tfp-\u003ematches_length \u003d footprint - (int)sizeof(*fp) - (int)(fplen + 1);\n \t\tfp-\u003enext \u003d result-\u003efilepath_head;\n \t\tresult-\u003efilepath_head \u003d fp;\n \n@@ -697,13 +697,13 @@ ensure:\n \n \t\t\t\tif ((ra - bp) \u003c 8) {\n \t\t\t\t\tbase +\u003d bp;\n-\t\t\t\t\tgrab(ro + base, sizeof(buf));\n+\t\t\t\t\tgrab((int32_t)ro + base, sizeof(buf));\n \t\t\t\t}\n \n \t\t\t\tbp +\u003d rq32(\u0026buf[bp], \u0026line);\n \t\t\t\t*u++ \u003d line;\n \n-\t\t\t\tif (lws_fts_getfileoffset(jtf, ltst, line, \u0026fo))\n+\t\t\t\tif (lws_fts_getfileoffset(jtf, ltst, (int)line, \u0026fo))\n \t\t\t\t\tcontinue;\n \n \t\t\t\t*u++ \u003d (uint32_t)fo;\n@@ -714,7 +714,7 @@ ensure:\n \t\t\t\tif (lseek(ofd, fo, SEEK_SET) \u003c 0)\n \t\t\t\t\tcontinue;\n \n-\t\t\t\tm \u003d read(ofd, lbuf, sizeof(lbuf) - 1);\n+\t\t\t\tm \u003d (int)read(ofd, lbuf, sizeof(lbuf) - 1);\n \t\t\t\tif (m \u003c 0)\n \t\t\t\t\tcontinue;\n \t\t\t\tlbuf[sizeof(lbuf) - 1] \u003d '\u005c0';\n@@ -732,13 +732,13 @@ ensure:\n \t\t\t\t\t\tsizeof(ebuf) - 1, NULL);\n \t\t\t\tm \u003d (int)strlen(ebuf);\n \n-\t\t\t\tp \u003d lwsac_use(\u0026ftsp-\u003eresults_head, m + 1, 0);\n+\t\t\t\tp \u003d lwsac_use(\u0026ftsp-\u003eresults_head, (unsigned int)m + 1, 0);\n \t\t\t\tif (!p) {\n \t\t\t\t\tlwsac_free(\u0026lt_head);\n \t\t\t\t\tgoto bail;\n \t\t\t\t}\n \n-\t\t\t\tmemcpy(p, ebuf, m);\n+\t\t\t\tmemcpy(p, ebuf, (unsigned int)m);\n \t\t\t\tp[m] \u003d '\u005c0';\n \t\t\t\tv \u003d (const char **)u;\n \t\t\t\t*v \u003d (const char *)p;\n@@ -830,7 +830,7 @@ autocomp:\n \n \ts[sp].child \u003d 1;\n \ts[sp].tifs \u003d fileofs_tif_start;\n-\ts[sp].self \u003d child_ofs;\n+\ts[sp].self \u003d (jg2_file_offset)child_ofs;\n \ts[sp].ch[0].effpos \u003d pos;\n \n \tif (pos \u003d\u003d nl)\n@@ -852,8 +852,8 @@ autocomp:\n \t\t tch-\u003eeffpos + tch-\u003ename_length \u003e\u003d nl \u0026\u0026\n \t\t tch-\u003einst \u0026\u0026 fileofs_tif_start) {\n \t\t\tn \u003d ac_record(jtf, \u0026ftsp-\u003eresults_head, needle, pos, s,\n-\t\t\t\t sp, tch-\u003einst, tch-\u003echild_agg,\n-\t\t\t\t tch-\u003edescendents, \u0026pac);\n+\t\t\t\t sp, (uint32_t)tch-\u003einst, (uint32_t)tch-\u003echild_agg,\n+\t\t\t\t (uint32_t)tch-\u003edescendents, \u0026pac);\n \t\t\tif (n \u003c 0)\n \t\t\t\tgoto bail;\n \t\t\tif (!n)\n@@ -866,7 +866,7 @@ autocomp:\n \t\t\tsp++;\n \t\t\tmemset(\u0026s[sp], 0, sizeof(s[sp]));\n \t\t\ts[sp].tifs \u003d fileofs_tif_start;\n-\t\t\ts[sp].self \u003d child_ofs;\n+\t\t\ts[sp].self \u003d (jg2_file_offset)child_ofs;\n \n \t\t\tfor (n \u003d 0; n \u003c (int)children \u0026\u0026 s[sp].child_count \u003c\n \t\t\t\t\t (int)LWS_ARRAY_SIZE(s[0].ch); n++) {\n@@ -886,16 +886,16 @@ autocomp:\n \t\t\t\t\tmax \u003d sizeof(ch-\u003ename) - 1;\n \n \t\t\t\tstrncpy(ch-\u003ename, (char *)\u0026buf[bp], max);\n-\t\t\t\tbp +\u003d slen;\n+\t\t\t\tbp +\u003d (int)slen;\n \n \t\t\t\tch-\u003ename_length \u003d (int)max;\n \t\t\t\tch-\u003ename[sizeof(ch-\u003ename) - 1] \u003d '\u005c0';\n-\t\t\t\tch-\u003einst \u003d inst;\n+\t\t\t\tch-\u003einst \u003d (int)inst;\n \t\t\t\tch-\u003eeffpos \u003d\n \t\t\t\t s[sp - 1].ch[s[sp - 1].child - 1].effpos;\n \n-\t\t\t\tch-\u003echild_agg \u003d agg;\n-\t\t\t\tch-\u003edescendents \u003d desc;\n+\t\t\t\tch-\u003echild_agg \u003d (int)agg;\n+\t\t\t\tch-\u003edescendents \u003d (int)desc;\n \n \t\t\t\t/*\n \t\t\t\t * if we have more needle chars than we matched\n@@ -909,7 +909,7 @@ autocomp:\n \t\t\t\t\tm \u003d ch-\u003ename_length;\n \n \t\t\t\tif (m \u003e 0 \u0026\u0026\n-\t\t\t\t strncmp(\u0026needle[ch-\u003eeffpos], ch-\u003ename, m))\n+\t\t\t\t strncmp(\u0026needle[ch-\u003eeffpos], ch-\u003ename, (unsigned int)m))\n \t\t\t\t\tcontinue;\n \n \t\t\t\tch-\u003eeffpos +\u003d m;\n@@ -951,7 +951,7 @@ autocomp:\n \t\t\t\tfor (m \u003d n; m \u003c sp + 1; m++)\n \t\t\t\t\ts[m].done_children \u003d 0;\n \t\t\t\tsp \u003d n;\n-\t\t\t\tchild_ofs \u003d s[sp].ch[s[sp].child++].ofs;\n+\t\t\t\tchild_ofs \u003d (off_t)s[sp].ch[s[sp].child++].ofs;\n \t\t\t\tnobump \u003d 1;\n \t\t\t}\n \n@@ -961,7 +961,7 @@ autocomp:\n \t\tif (nobump || sp \u003c 0)\n \t\t\tcontinue;\n \n-\t\tchild_ofs \u003d s[sp].ch[s[sp].child++].ofs;\n+\t\tchild_ofs \u003d (off_t)s[sp].ch[s[sp].child++].ofs;\n \t}\n \n \t/* let's do a final sort into agg order */\ndiff --git a/lib/misc/fts/trie.c b/lib/misc/fts/trie.c\nindex 792cca0..8b4317e 100644\n--- a/lib/misc/fts/trie.c\n+++ b/lib/misc/fts/trie.c\n@@ -168,23 +168,23 @@ struct lws_fts {\n #define TRIE_LWSAC_BLOCK_SIZE (1024 * 1024)\n \n #define spill(margin, force) \u005c\n-\tif (bp \u0026\u0026 ((uint32_t)bp \u003e\u003d (sizeof(buf) - (margin)) || (force))) { \u005c\n-\t\tif (write(t-\u003efd, buf, bp) !\u003d bp) { \u005c\n+\tif (bp \u0026\u0026 ((uint32_t)bp \u003e\u003d (sizeof(buf) - (size_t)(margin)) || (force))) { \u005c\n+\t\tif ((int)write(t-\u003efd, buf, (size_t)bp) !\u003d bp) { \u005c\n \t\t\tlwsl_err(\u0022%s: write %d failed (%d)\u005cn\u0022, __func__, \u005c\n \t\t\t\t bp, errno); \u005c\n \t\t\treturn 1; \u005c\n \t\t} \u005c\n-\t\tt-\u003ec +\u003d bp; \u005c\n+\t\tt-\u003ec +\u003d (unsigned int)bp; \u005c\n \t\tbp \u003d 0; \u005c\n \t}\n \n static int\n g32(unsigned char *b, uint32_t d)\n {\n-\t*b++ \u003d (d \u003e\u003e 24) \u0026 0xff;\n-\t*b++ \u003d (d \u003e\u003e 16) \u0026 0xff;\n-\t*b++ \u003d (d \u003e\u003e 8) \u0026 0xff;\n-\t*b \u003d d \u0026 0xff;\n+\t*b++ \u003d (uint8_t)((d \u003e\u003e 24) \u0026 0xff);\n+\t*b++ \u003d (uint8_t)((d \u003e\u003e 16) \u0026 0xff);\n+\t*b++ \u003d (uint8_t)((d \u003e\u003e 8) \u0026 0xff);\n+\t*b \u003d (uint8_t)(d \u0026 0xff);\n \n \treturn 4;\n }\n@@ -192,8 +192,8 @@ g32(unsigned char *b, uint32_t d)\n static int\n g16(unsigned char *b, int d)\n {\n-\t*b++ \u003d (d \u003e\u003e 8) \u0026 0xff;\n-\t*b \u003d d \u0026 0xff;\n+\t*b++ \u003d (uint8_t)((d \u003e\u003e 8) \u0026 0xff);\n+\t*b \u003d (uint8_t)(d \u0026 0xff);\n \n \treturn 2;\n }\n@@ -204,20 +204,20 @@ wq32(unsigned char *b, uint32_t d)\n \tunsigned char *ob \u003d b;\n \n \tif (d \u003e (1 \u003c\u003c 28) - 1)\n-\t\t*b++ \u003d ((d \u003e\u003e 28) | 0x80) \u0026 0xff;\n+\t\t*b++ \u003d (uint8_t)(((d \u003e\u003e 28) | 0x80) \u0026 0xff);\n \n \tif (d \u003e (1 \u003c\u003c 21) - 1)\n-\t\t*b++ \u003d ((d \u003e\u003e 21) | 0x80) \u0026 0xff;\n+\t\t*b++ \u003d (uint8_t)(((d \u003e\u003e 21) | 0x80) \u0026 0xff);\n \n \tif (d \u003e (1 \u003c\u003c 14) - 1)\n-\t\t*b++ \u003d ((d \u003e\u003e 14) | 0x80) \u0026 0xff;\n+\t\t*b++ \u003d (uint8_t)(((d \u003e\u003e 14) | 0x80) \u0026 0xff);\n \n \tif (d \u003e (1 \u003c\u003c 7) - 1)\n-\t\t*b++ \u003d ((d \u003e\u003e 7) | 0x80) \u0026 0xff;\n+\t\t*b++ \u003d (uint8_t)(((d \u003e\u003e 7) | 0x80) \u0026 0xff);\n \n-\t*b++ \u003d d \u0026 0x7f;\n+\t*b++ \u003d (uint8_t)(d \u0026 0x7f);\n \n-\treturn (int)(b - ob);\n+\treturn lws_ptr_diff(b, ob);\n }\n \n \n@@ -403,9 +403,9 @@ finalize_per_input(struct lws_fts *t)\n \tbp +\u003d g16(\u0026buf[bp], 0);\n \tbp +\u003d g16(\u0026buf[bp], 0);\n \tbp +\u003d g32(\u0026buf[bp], 0);\n-\tif (write(t-\u003efd, buf, bp) !\u003d bp)\n+\tif ((int)write(t-\u003efd, buf, (size_t)bp) !\u003d bp)\n \t\treturn 1;\n-\tt-\u003ec +\u003d bp;\n+\tt-\u003ec +\u003d (unsigned int)bp;\n \tbp \u003d 0;\n \n \t/*\n@@ -432,7 +432,7 @@ finalize_per_input(struct lws_fts *t)\n \n \t\ttemp \u003d tif-\u003eowner-\u003eofs_last_inst_file;\n \t\tif (tif-\u003etotal)\n-\t\t\ttif-\u003eowner-\u003eofs_last_inst_file \u003d t-\u003ec + bp;\n+\t\t\ttif-\u003eowner-\u003eofs_last_inst_file \u003d t-\u003ec + (unsigned int)bp;\n \n \t\tassert(!temp || (temp \u003e TRIE_FILE_HDR_SIZE \u0026\u0026 temp \u003c t-\u003ec));\n \n@@ -444,13 +444,13 @@ finalize_per_input(struct lws_fts *t)\n \t\t/* remove any pointers into this disposable lac footprint */\n \t\ttif-\u003eowner-\u003einst_file_list \u003d NULL;\n \n-\t\tmemcpy(\u0026buf[bp], \u0026tif-\u003evli, tif-\u003ecount);\n+\t\tmemcpy(\u0026buf[bp], \u0026tif-\u003evli, (size_t)tif-\u003ecount);\n \t\tbp +\u003d tif-\u003ecount;\n \n \t\ti \u003d tif-\u003elines_list;\n \t\twhile (i) {\n \t\t\tspill(i-\u003ecount, 0);\n-\t\t\tmemcpy(\u0026buf[bp], \u0026i-\u003evli, i-\u003ecount);\n+\t\t\tmemcpy(\u0026buf[bp], \u0026i-\u003evli, (size_t)i-\u003ecount);\n \t\t\tbp +\u003d i-\u003ecount;\n \n \t\t\ti \u003d i-\u003elines_next;\n@@ -543,7 +543,7 @@ int\n lws_fts_fill(struct lws_fts *t, uint32_t file_index, const char *buf,\n \t size_t len)\n {\n-\tunsigned long long tf \u003d lws_now_usecs();\n+\tunsigned long long tf \u003d (unsigned long long)lws_now_usecs();\n \tunsigned char c, linetable[256], vlibuf[8];\n \tstruct lws_fts_entry *e, *e1, *dcl;\n \tstruct lws_fts_instance_file *tif;\n@@ -556,7 +556,7 @@ lws_fts_fill(struct lws_fts *t, uint32_t file_index, const char *buf,\n \tif ((int)file_index !\u003d t-\u003elast_file_index) {\n \t\tif (t-\u003elast_file_index \u003e\u003d 0)\n \t\t\tfinalize_per_input(t);\n-\t\tt-\u003elast_file_index \u003d file_index;\n+\t\tt-\u003elast_file_index \u003d (int)file_index;\n \t\tt-\u003eline_number \u003d 1;\n \t\tt-\u003echars_in_line \u003d 0;\n \t\tt-\u003elines_in_unsealed_linetable \u003d 0;\n@@ -567,7 +567,7 @@ lws_fts_fill(struct lws_fts *t, uint32_t file_index, const char *buf,\n resume:\n \n \tchars \u003d 0;\n-\tlbh \u003d t-\u003ec;\n+\tlbh \u003d (off_t)t-\u003ec;\n \tsline \u003d t-\u003eline_number;\n \tbp +\u003d g16(\u0026linetable[bp], 0);\n \tbp +\u003d g16(\u0026linetable[bp], 0);\n@@ -589,14 +589,14 @@ resume:\n \t\t\tt-\u003elines_in_unsealed_linetable++;\n \t\t\tt-\u003eline_number++;\n \n-\t\t\tbp +\u003d wq32(\u0026linetable[bp], t-\u003echars_in_line);\n+\t\t\tbp +\u003d wq32(\u0026linetable[bp], (uint32_t)t-\u003echars_in_line);\n \t\t\tif ((unsigned int)bp \u003e sizeof(linetable) - 6) {\n-\t\t\t\tif (write(t-\u003efd, linetable, bp) !\u003d bp) {\n+\t\t\t\tif ((int)write(t-\u003efd, linetable, (unsigned int)bp) !\u003d bp) {\n \t\t\t\t\tlwsl_err(\u0022%s: linetable write failed\u005cn\u0022,\n \t\t\t\t\t\t\t__func__);\n \t\t\t\t\treturn 1;\n \t\t\t\t}\n-\t\t\t\tt-\u003ec +\u003d bp;\n+\t\t\t\tt-\u003ec +\u003d (unsigned int)bp;\n \t\t\t\tbp \u003d 0;\n \t\t\t\t// assert(lseek(t-\u003efd, 0, SEEK_END) \u003d\u003d t-\u003ec);\n \t\t\t}\n@@ -634,7 +634,7 @@ resume:\n \t\tif (!m)\n \t\t\tgoto seal;\n \t\tif (m \u003d\u003d 2)\n-\t\t\tc +\u003d 'a' - 'A';\n+\t\t\tc \u003d (unsigned char)((char)c + 'a' - 'A');\n \n \t\tif (t-\u003eaggregate) {\n \n@@ -826,12 +826,12 @@ seal:\n \t\t\t */\n \n \t\t\tdcl \u003d t-\u003eparser-\u003echild_list;\n-\t\t\tm \u003d t-\u003eparser-\u003echild_count;\n+\t\t\tm \u003d (int)t-\u003eparser-\u003echild_count;\n \n \t\t\tt-\u003eparser-\u003echild_list \u003d NULL;\n \t\t\tt-\u003eparser-\u003echild_count \u003d 0;\n \n-\t\t\te \u003d lws_fts_entry_child_add(t,\n+\t\t\te \u003d lws_fts_entry_child_add(t, (unsigned char)\n \t\t\t\t\tosuff[t-\u003estr_match_pos - 1], t-\u003eparser);\n \t\t\tif (!e) {\n \t\t\t\tlwsl_err(\u0022%s: lws_fts_entry_child_add fail1\u005cn\u0022,\n@@ -840,7 +840,7 @@ seal:\n \t\t\t}\n \n \t\t\te-\u003echild_list \u003d dcl;\n-\t\t\te-\u003echild_count \u003d m;\n+\t\t\te-\u003echild_count \u003d (uint32_t)m;\n \t\t\t/*\n \t\t\t * any children we took over must point to us as the\n \t\t\t * parent now they appear on our child list\n@@ -942,7 +942,7 @@ seal:\n \t\t\t}\n \n \t\t\t/* add the first char at the beginning */\n-\t\t\t*t-\u003eparser-\u003esuffix \u003d t-\u003eparser-\u003ec;\n+\t\t\t*t-\u003eparser-\u003esuffix \u003d (char)t-\u003eparser-\u003ec;\n \t\t\t/* and then add the agg buffer stuff */\n \t\t\tmemcpy(t-\u003eparser-\u003esuffix + 1, t-\u003eagg, t-\u003eagg_pos);\n \t\t\tt-\u003eparser-\u003esuffix_len \u003d t-\u003eagg_pos + 1;\n@@ -988,14 +988,14 @@ seal:\n \t\t * more vli space and continues chaining those if needed.\n \t\t */\n \n-\t\tn \u003d wq32(vlibuf, t-\u003eline_number);\n+\t\tn \u003d (unsigned int)wq32(vlibuf, (uint32_t)t-\u003eline_number);\n \t\ttif \u003d t-\u003eparser-\u003einst_file_list;\n \n \t\tif (!tif-\u003elines_list) {\n \t\t\t/* we are still trying to use the file inst vli */\n-\t\t\tif (LWS_ARRAY_SIZE(tif-\u003evli) - tif-\u003ecount \u003e\u003d n) {\n-\t\t\t\ttif-\u003ecount +\u003d wq32(tif-\u003evli + tif-\u003ecount,\n-\t\t\t\t\t\t t-\u003eline_number);\n+\t\t\tif (LWS_ARRAY_SIZE(tif-\u003evli) - (size_t)tif-\u003ecount \u003e\u003d n) {\n+\t\t\t\ttif-\u003ecount \u003d (char)((char)tif-\u003ecount + (char)wq32(tif-\u003evli + tif-\u003ecount,\n+\t\t\t\t\t\t (uint32_t)t-\u003eline_number));\n \t\t\t\tgoto after;\n \t\t\t}\n \t\t\t/* we are going to have to allocate */\n@@ -1004,10 +1004,10 @@ seal:\n \t\t/* can we add to an existing line numbers struct? */\n \t\tif (tif-\u003elines_tail \u0026\u0026\n \t\t LWS_ARRAY_SIZE(tif-\u003elines_tail-\u003evli) -\n-\t\t \t tif-\u003elines_tail-\u003ecount \u003e\u003d n) {\n-\t\t\ttif-\u003elines_tail-\u003ecount +\u003d wq32(tif-\u003elines_tail-\u003evli +\n+\t\t\t\t(unsigned char)tif-\u003elines_tail-\u003ecount \u003e\u003d n) {\n+\t\t\ttif-\u003elines_tail-\u003ecount \u003d (char)((char)tif-\u003elines_tail-\u003ecount + (char)wq32(tif-\u003elines_tail-\u003evli +\n \t\t\t\t\t\t tif-\u003elines_tail-\u003ecount,\n-\t\t\t\t\t\t t-\u003eline_number);\n+\t\t\t\t\t\t (uint32_t)t-\u003eline_number));\n \t\t\tgoto after;\n \t\t}\n \n@@ -1028,7 +1028,7 @@ seal:\n \t\tif (!tif-\u003elines_list)\n \t\t\ttif-\u003elines_list \u003d tl;\n \n-\t\ttl-\u003ecount \u003d wq32(tl-\u003evli, t-\u003eline_number);\n+\t\ttl-\u003ecount \u003d (char)wq32(tl-\u003evli, (uint32_t)t-\u003eline_number);\n after:\n \t\ttif-\u003etotal++;\n #if 0\n@@ -1050,9 +1050,9 @@ after:\n \t/* seal off the line length table block */\n \n \tif (bp) {\n-\t\tif (write(t-\u003efd, linetable, bp) !\u003d bp)\n+\t\tif ((int)write(t-\u003efd, linetable, (size_t)bp) !\u003d bp)\n \t\t\treturn 1;\n-\t\tt-\u003ec +\u003d bp;\n+\t\tt-\u003ec +\u003d (unsigned int)bp;\n \t\tbp \u003d 0;\n \t}\n \n@@ -1062,17 +1062,17 @@ after:\n \t\treturn 1;\n \t}\n \n-\tg16(linetable, t-\u003ec - lbh);\n-\tg16(linetable + 2, t-\u003eline_number - sline);\n-\tg32(linetable + 4, chars);\n-\tif (write(t-\u003efd, linetable, 8) !\u003d 8) {\n+\tg16(linetable, (uint16_t)(t-\u003ec - (jg2_file_offset)lbh));\n+\tg16(linetable + 2, (uint16_t)(t-\u003eline_number - sline));\n+\tg32(linetable + 4, (uint32_t)chars);\n+\tif ((int)write(t-\u003efd, linetable, 8) !\u003d 8) {\n \t\tlwsl_err(\u0022%s: write linetable header failed\u005cn\u0022, __func__);\n \t\treturn 1;\n \t}\n \n \tassert(lseek(t-\u003efd, 0, SEEK_END) \u003d\u003d (off_t)t-\u003ec);\n \n-\tif (lseek(t-\u003efd, t-\u003ec, SEEK_SET) \u003c 0) {\n+\tif (lseek(t-\u003efd, (off_t)t-\u003ec, SEEK_SET) \u003c 0) {\n \t\tlwsl_err(\u0022%s: end seek failed\u005cn\u0022, __func__);\n \t\treturn 1;\n \t}\n@@ -1086,7 +1086,7 @@ after:\n \n \t/* dump the collected per-input instance and line data, and free it */\n \n-\tt-\u003eagg_trie_creation_us +\u003d lws_now_usecs() - tf;\n+\tt-\u003eagg_trie_creation_us +\u003d (uint64_t)((uint64_t)lws_now_usecs() - tf);\n \n \treturn 0;\n }\n@@ -1097,7 +1097,7 @@ int\n lws_fts_serialize(struct lws_fts *t)\n {\n \tstruct lws_fts_filepath *fp \u003d t-\u003efilepath_list, *ofp;\n-\tunsigned long long tf \u003d lws_now_usecs();\n+\tunsigned long long tf \u003d (unsigned long long)lws_now_usecs();\n \tstruct lws_fts_entry *e, *e1, *s[256];\n \tunsigned char buf[8192], stasis;\n \tint n, bp, sp \u003d 0, do_parent;\n@@ -1163,14 +1163,14 @@ lws_fts_serialize(struct lws_fts *t)\n \tbp \u003d 0;\n \twhile (fp) {\n \n-\t\tfp-\u003eofs \u003d t-\u003ec + bp;\n+\t\tfp-\u003eofs \u003d t-\u003ec + (unsigned int)bp;\n \t\tn \u003d (int)strlen(fp-\u003efilepath);\n \t\tspill(15 + n, 0);\n \n \t\tbp +\u003d wq32(\u0026buf[bp], fp-\u003eline_table_ofs);\n-\t\tbp +\u003d wq32(\u0026buf[bp], fp-\u003etotal_lines);\n-\t\tbp +\u003d wq32(\u0026buf[bp], n);\n-\t\tmemcpy(\u0026buf[bp], fp-\u003efilepath, n);\n+\t\tbp +\u003d wq32(\u0026buf[bp], (uint32_t)fp-\u003etotal_lines);\n+\t\tbp +\u003d wq32(\u0026buf[bp], (uint32_t)n);\n+\t\tmemcpy(\u0026buf[bp], fp-\u003efilepath, (unsigned int)n);\n \t\tbp +\u003d n;\n \n \t\tfp-\u003eprev \u003d ofp;\n@@ -1185,12 +1185,12 @@ lws_fts_serialize(struct lws_fts *t)\n \tif (lseek(t-\u003efd, 0xc, SEEK_SET) \u003c 0)\n \t\tgoto bail_seek;\n \n-\tg32(buf, t-\u003ec + bp);\n-\tg32(buf + 4, t-\u003enext_file_index);\n-\tif (write(t-\u003efd, buf, 8) !\u003d 8)\n+\tg32(buf, t-\u003ec + (unsigned int)bp);\n+\tg32(buf + 4, (uint32_t)t-\u003enext_file_index);\n+\tif ((int)write(t-\u003efd, buf, 8) !\u003d 8)\n \t\tgoto bail;\n \n-\tif (lseek(t-\u003efd, t-\u003ec + bp, SEEK_SET) \u003c 0)\n+\tif (lseek(t-\u003efd, (off_t)(t-\u003ec + (unsigned int)bp), SEEK_SET) \u003c 0)\n \t\tgoto bail_seek;\n \n \t/* dump the filepath map, starting from index 0, which is at the tail */\n@@ -1235,7 +1235,7 @@ lws_fts_serialize(struct lws_fts *t)\n \t\t/* leaf nodes with no children */\n \n \t\te \u003d s[sp];\n-\t\te-\u003eofs \u003d t-\u003ec + bp;\n+\t\te-\u003eofs \u003d t-\u003ec + (unsigned int)bp;\n \n \t\t/* write the trie entry header */\n \n@@ -1289,7 +1289,7 @@ lws_fts_serialize(struct lws_fts *t)\n \t\t\tif (e1-\u003esuffix) { /* string */\n \t\t\t\tbp +\u003d wq32(\u0026buf[bp], e1-\u003esuffix_len);\n \t\t\t\tmemmove(\u0026buf[bp], e1-\u003esuffix, e1-\u003esuffix_len);\n-\t\t\t\tbp +\u003d e1-\u003esuffix_len;\n+\t\t\t\tbp +\u003d (int)e1-\u003esuffix_len;\n \t\t\t} else { /* char */\n \t\t\t\tbp +\u003d wq32(\u0026buf[bp], 1);\n \t\t\t\tbuf[bp++] \u003d e1-\u003ec;\n@@ -1357,7 +1357,7 @@ lws_fts_serialize(struct lws_fts *t)\n \t\t (int)(t-\u003eagg_trie_creation_us / 1000),\n \t\t (int)(lwsac_total_alloc(t-\u003elwsac_head) / 1024),\n \t\t (int)(t-\u003eworst_lwsac_input_size / 1024),\n-\t\t (int)((lws_now_usecs() - tf) / 1000),\n+\t\t (int)(((uint64_t)lws_now_usecs() - tf) / 1000),\n \t\t (int)(t-\u003ec / 1024));\n \n \treturn 0;\ndiff --git a/lib/misc/lejp.c b/lib/misc/lejp.c\nindex 707af88..ee84734 100644\n--- a/lib/misc/lejp.c\n+++ b/lib/misc/lejp.c\n@@ -159,7 +159,7 @@ lejp_check_path_match(struct lejp_ctx *ctx)\n \t\tctx-\u003ewildcount \u003d 0;\n \t\tp \u003d ctx-\u003epath;\n \n-\t\tq \u003d *((char **)(((char *)ctx-\u003epst[ctx-\u003epst_sp].paths) + (n * s)));\n+\t\tq \u003d *((char **)(((char *)ctx-\u003epst[ctx-\u003epst_sp].paths) + ((unsigned int)n * s)));\n \n \t\twhile (*p \u0026\u0026 *q) {\n \t\t\tif (*q !\u003d '*') {\n@@ -169,7 +169,7 @@ lejp_check_path_match(struct lejp_ctx *ctx)\n \t\t\t\tq++;\n \t\t\t\tcontinue;\n \t\t\t}\n-\t\t\tctx-\u003ewild[ctx-\u003ewildcount++] \u003d lws_ptr_diff(p, ctx-\u003epath);\n+\t\t\tctx-\u003ewild[ctx-\u003ewildcount++] \u003d (uint16_t)lws_ptr_diff_size_t(p, ctx-\u003epath);\n \t\t\tq++;\n \t\t\t/*\n \t\t\t * if * has something after it, match to .\n@@ -185,7 +185,7 @@ lejp_check_path_match(struct lejp_ctx *ctx)\n \t\tif (*p || *q)\n \t\t\tcontinue;\n \n-\t\tctx-\u003epath_match \u003d n + 1;\n+\t\tctx-\u003epath_match \u003d (uint8_t)(n + 1);\n \t\tctx-\u003epath_match_len \u003d ctx-\u003epst[ctx-\u003epst_sp].ppos;\n \t\treturn;\n \t}\n@@ -245,13 +245,13 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \n \twhile (len--) {\n \t\tc \u003d *json++;\n-\t\ts \u003d ctx-\u003est[ctx-\u003esp].s;\n+\t\ts \u003d (unsigned char)ctx-\u003est[ctx-\u003esp].s;\n \n \t\t/* skip whitespace unless we should care */\n \t\tif (c \u003d\u003d ' ' || c \u003d\u003d '\u005ct' || c \u003d\u003d '\u005cn' || c \u003d\u003d '\u005cr' || c \u003d\u003d '#') {\n \t\t\tif (c \u003d\u003d '\u005cn') {\n \t\t\t\tctx-\u003eline++;\n-\t\t\t\tctx-\u003est[ctx-\u003esp].s \u0026\u003d ~LEJP_FLAG_WS_COMMENTLINE;\n+\t\t\t\tctx-\u003est[ctx-\u003esp].s \u0026\u003d (char)~LEJP_FLAG_WS_COMMENTLINE;\n \t\t\t}\n \t\t\tif (!(s \u0026 LEJP_FLAG_WS_KEEP)) {\n \t\t\t\tif (c \u003d\u003d '#')\n@@ -349,7 +349,7 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\tif (c !\u003d esc_char[n])\n \t\t\t\t\tcontinue;\n \t\t\t\t/* found it */\n-\t\t\t\tc \u003d esc_tran[n];\n+\t\t\t\tc \u003d (unsigned char)esc_tran[n];\n \t\t\t\tctx-\u003est[ctx-\u003esp].s \u003d LEJP_MP_STRING;\n \t\t\t\tgoto emit_string_char;\n \t\t\t}\n@@ -361,15 +361,15 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\tcase LEJP_MP_STRING_ESC_U2:\n \t\tcase LEJP_MP_STRING_ESC_U3:\n \t\tcase LEJP_MP_STRING_ESC_U4:\n-\t\t\tctx-\u003euni \u003c\u003c\u003d 4;\n+\t\t\tctx-\u003euni \u003d (uint16_t)(ctx-\u003euni \u003c\u003c 4);\n \t\t\tif (c \u003e\u003d '0' \u0026\u0026 c \u003c\u003d '9')\n-\t\t\t\tctx-\u003euni |\u003d c - '0';\n+\t\t\t\tctx-\u003euni |\u003d (uint16_t)(c - '0');\n \t\t\telse\n \t\t\t\tif (c \u003e\u003d 'a' \u0026\u0026 c \u003c\u003d 'f')\n-\t\t\t\t\tctx-\u003euni |\u003d c - 'a' + 10;\n+\t\t\t\t\tctx-\u003euni |\u003d (uint16_t)(c - 'a' + 10);\n \t\t\t\telse\n \t\t\t\t\tif (c \u003e\u003d 'A' \u0026\u0026 c \u003c\u003d 'F')\n-\t\t\t\t\t\tctx-\u003euni |\u003d c - 'A' + 10;\n+\t\t\t\t\t\tctx-\u003euni |\u003d (uint16_t)(c - 'A' + 10);\n \t\t\t\t\telse {\n \t\t\t\t\t\tret \u003d LEJP_REJECT_ILLEGAL_HEX;\n \t\t\t\t\t\tgoto reject;\n@@ -383,7 +383,7 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\t * 0x08-0xff (0x0800 - 0xffff)\n \t\t\t\t * emit 3-byte UTF-8\n \t\t\t\t */\n-\t\t\t\tc \u003d 0xe0 | ((ctx-\u003euni \u003e\u003e 4) \u0026 0xf);\n+\t\t\t\tc \u003d (unsigned char)(0xe0 | ((ctx-\u003euni \u003e\u003e 4) \u0026 0xf));\n \t\t\t\tgoto emit_string_char;\n \n \t\t\tcase LEJP_MP_STRING_ESC_U3:\n@@ -393,7 +393,7 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\t\t * middle 3-byte seq\n \t\t\t\t\t * send ....XXXXXX..\n \t\t\t\t\t */\n-\t\t\t\t\tc \u003d 0x80 | ((ctx-\u003euni \u003e\u003e 2) \u0026 0x3f);\n+\t\t\t\t\tc \u003d (unsigned char)(0x80 | ((ctx-\u003euni \u003e\u003e 2) \u0026 0x3f));\n \t\t\t\t\tgoto emit_string_char;\n \t\t\t\t}\n \t\t\t\tif (ctx-\u003euni \u003c 0x008)\n@@ -402,13 +402,13 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\t * 0x008 - 0x7f (0x0080 - 0x07ff)\n \t\t\t\t * start 2-byte seq\n \t\t\t\t */\n-\t\t\t\tc \u003d 0xc0 | (ctx-\u003euni \u003e\u003e 2);\n+\t\t\t\tc \u003d (unsigned char)(0xc0 | (ctx-\u003euni \u003e\u003e 2));\n \t\t\t\tgoto emit_string_char;\n \n \t\t\tcase LEJP_MP_STRING_ESC_U4:\n \t\t\t\tif (ctx-\u003euni \u003e\u003d 0x0080)\n \t\t\t\t\t/* end of 2 or 3-byte seq */\n-\t\t\t\t\tc \u003d 0x80 | (ctx-\u003euni \u0026 0x3f);\n+\t\t\t\t\tc \u003d (unsigned char)(0x80 | (ctx-\u003euni \u0026 0x3f));\n \t\t\t\telse\n \t\t\t\t\t/* literal */\n \t\t\t\t\tc \u003d (unsigned char)ctx-\u003euni;\n@@ -493,9 +493,9 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\t}\n \t\t\t\t/* drop the path [n] bit */\n \t\t\t\tif (ctx-\u003esp) {\n-\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d\n+\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d (unsigned char)\n \t\t\t\t\t\t\tctx-\u003est[ctx-\u003esp - 1].p;\n-\t\t\t\t\tctx-\u003eipos \u003d ctx-\u003est[ctx-\u003esp - 1].i;\n+\t\t\t\t\tctx-\u003eipos \u003d (unsigned char)ctx-\u003est[ctx-\u003esp - 1].i;\n \t\t\t\t}\n \t\t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n \t\t\t\tif (ctx-\u003epath_match \u0026\u0026\n@@ -647,7 +647,7 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\t\tctx-\u003epath_match \u003d 0;\n \t\t\t\t\tbreak;\n \t\t\t\t}\n-\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d ctx-\u003est[ctx-\u003esp - 1].p;\n+\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d (unsigned char)ctx-\u003est[ctx-\u003esp - 1].p;\n \t\t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n \t\t\t\tif (ctx-\u003epath_match \u0026\u0026\n \t\t\t\t ctx-\u003epst[ctx-\u003epst_sp].ppos \u003c\u003d ctx-\u003epath_match_len)\n@@ -679,9 +679,9 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \n \t\t\t\t/* drop the path [n] bit */\n \t\t\t\tif (ctx-\u003esp) {\n-\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d\n+\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d (unsigned char)\n \t\t\t\t\t\t\tctx-\u003est[ctx-\u003esp - 1].p;\n-\t\t\t\t\tctx-\u003eipos \u003d ctx-\u003est[ctx-\u003esp - 1].i;\n+\t\t\t\t\tctx-\u003eipos \u003d (unsigned char)ctx-\u003est[ctx-\u003esp - 1].i;\n \t\t\t\t}\n \t\t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n \t\t\t\tif (ctx-\u003epath_match \u0026\u0026\n@@ -708,7 +708,7 @@ lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len)\n \t\t\t\tn \u003d LEJPCB_OBJECT_END;\n completed:\n \t\t\t\tlejp_check_path_match(ctx);\n-\t\t\t\tif (ctx-\u003epst[ctx-\u003epst_sp].callback(ctx, n) ||\n+\t\t\t\tif (ctx-\u003epst[ctx-\u003epst_sp].callback(ctx, (char)n) ||\n \t\t\t\t ctx-\u003epst[ctx-\u003epst_sp].callback(ctx,\n \t\t\t\t\t\t\t LEJPCB_COMPLETE))\n \t\t\t\t\tgoto reject_callback;\n@@ -721,8 +721,8 @@ completed:\n pop_level:\n \t\t\tctx-\u003esp--;\n \t\t\tif (ctx-\u003esp) {\n-\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d ctx-\u003est[ctx-\u003esp].p;\n-\t\t\t\tctx-\u003eipos \u003d ctx-\u003est[ctx-\u003esp].i;\n+\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d (unsigned char)ctx-\u003est[ctx-\u003esp].p;\n+\t\t\t\tctx-\u003eipos \u003d (unsigned char)ctx-\u003est[ctx-\u003esp].i;\n \t\t\t}\n \t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n \t\t\tif (ctx-\u003epath_match \u0026\u0026\n@@ -748,7 +748,7 @@ array_end:\n \t\t\t\t\tctx-\u003ei[ctx-\u003eipos - 1]++;\n \t\t\t\tctx-\u003est[ctx-\u003esp].s \u003d LEJP_MP_VALUE;\n \t\t\t\tif (ctx-\u003esp)\n-\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d\n+\t\t\t\t\tctx-\u003epst[ctx-\u003epst_sp].ppos \u003d (unsigned char)\n \t\t\t\t\t\t\tctx-\u003est[ctx-\u003esp - 1].p;\n \t\t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n \t\t\t\tbreak;\n@@ -768,7 +768,7 @@ array_end:\n emit_string_char:\n \t\tif (!ctx-\u003esp || ctx-\u003est[ctx-\u003esp - 1].s !\u003d LEJP_MP_DELIM) {\n \t\t\t/* assemble the string value into chunks */\n-\t\t\tctx-\u003ebuf[ctx-\u003enpos++] \u003d c;\n+\t\t\tctx-\u003ebuf[ctx-\u003enpos++] \u003d (char)c;\n \t\t\tif (ctx-\u003enpos \u003d\u003d sizeof(ctx-\u003ebuf) - 1) {\n \t\t\t\tif (ctx-\u003epst[ctx-\u003epst_sp].callback(ctx,\n \t\t\t\t\t\t\t LEJPCB_VAL_STR_CHUNK))\n@@ -778,7 +778,7 @@ emit_string_char:\n \t\t\tcontinue;\n \t\t}\n \t\t/* name part of name:value pair */\n-\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos++] \u003d c;\n+\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos++] \u003d (char)c;\n \t\tcontinue;\n \n add_stack_level:\n@@ -788,14 +788,14 @@ add_stack_level:\n \t\t ctx-\u003est[ctx-\u003esp].s !\u003d LEJP_MP_ARRAY_END)\n \t\t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos++] \u003d '.';\n \n-\t\tctx-\u003est[ctx-\u003esp].p \u003d ctx-\u003epst[ctx-\u003epst_sp].ppos;\n-\t\tctx-\u003est[ctx-\u003esp].i \u003d ctx-\u003eipos;\n+\t\tctx-\u003est[ctx-\u003esp].p \u003d (char)ctx-\u003epst[ctx-\u003epst_sp].ppos;\n+\t\tctx-\u003est[ctx-\u003esp].i \u003d (char)ctx-\u003eipos;\n \t\tif (++ctx-\u003esp \u003d\u003d LWS_ARRAY_SIZE(ctx-\u003est)) {\n \t\t\tret \u003d LEJP_REJECT_STACK_OVERFLOW;\n \t\t\tgoto reject;\n \t\t}\n \t\tctx-\u003epath[ctx-\u003epst[ctx-\u003epst_sp].ppos] \u003d '\u005c0';\n-\t\tctx-\u003est[ctx-\u003esp].s \u003d c;\n+\t\tctx-\u003est[ctx-\u003esp].s \u003d (char)c;\n \t\tctx-\u003est[ctx-\u003esp].b \u003d 0;\n \t\tcontinue;\n \n@@ -804,7 +804,7 @@ append_npos:\n \t\t\tret \u003d LEJP_REJECT_NUM_TOO_LONG;\n \t\t\tgoto reject;\n \t\t}\n-\t\tctx-\u003ebuf[ctx-\u003enpos++] \u003d c;\n+\t\tctx-\u003ebuf[ctx-\u003enpos++] \u003d (char)c;\n \t\tcontinue;\n \n redo_character:\ndiff --git a/lib/misc/lws-ring.c b/lib/misc/lws-ring.c\nindex e301835..3c6a215 100644\n--- a/lib/misc/lws-ring.c\n+++ b/lib/misc/lws-ring.c\n@@ -81,19 +81,19 @@ lws_ring_get_count_free_elements(struct lws_ring *ring)\n \t * |*****ht*********|\n \t */\n \tif (ring-\u003ehead \u003d\u003d ring-\u003eoldest_tail)\n-\t\tf \u003d ring-\u003ebuflen - ring-\u003eelement_len;\n+\t\tf \u003d (int)(ring-\u003ebuflen - ring-\u003eelement_len);\n \telse\n \t\tif (ring-\u003ehead \u003c ring-\u003eoldest_tail)\n-\t\t\tf \u003d (ring-\u003eoldest_tail - ring-\u003ehead) -\n-\t\t\t ring-\u003eelement_len;\n+\t\t\tf \u003d (int)((ring-\u003eoldest_tail - ring-\u003ehead) -\n+\t\t\t ring-\u003eelement_len);\n \t\telse\n-\t\t\tf \u003d (ring-\u003ebuflen - ring-\u003ehead) + ring-\u003eoldest_tail -\n-\t\t\t ring-\u003eelement_len;\n+\t\t\tf \u003d (int)((ring-\u003ebuflen - ring-\u003ehead) + ring-\u003eoldest_tail -\n+\t\t\t ring-\u003eelement_len);\n \n \tif (f \u003c 2)\n \t\treturn 0;\n \n-\treturn f / ring-\u003eelement_len;\n+\treturn (unsigned int)f / ring-\u003eelement_len;\n }\n \n size_t\n@@ -115,11 +115,11 @@ lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail)\n \t\tf \u003d 0;\n \telse\n \t\tif (ring-\u003ehead \u003e *tail)\n-\t\t\tf \u003d (ring-\u003ehead - *tail);\n+\t\t\tf \u003d (int)(ring-\u003ehead - *tail);\n \t\telse\n-\t\t\tf \u003d (ring-\u003ebuflen - *tail) + ring-\u003ehead;\n+\t\t\tf \u003d (int)((ring-\u003ebuflen - *tail) + ring-\u003ehead);\n \n-\treturn f / ring-\u003eelement_len;\n+\treturn (unsigned int)f / ring-\u003eelement_len;\n }\n \n int\n@@ -134,7 +134,7 @@ lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start,\n \tif (!n)\n \t\treturn 1;\n \n-\tif (ring-\u003ehead + n \u003e ring-\u003ebuflen) {\n+\tif (ring-\u003ehead + (unsigned int)n \u003e ring-\u003ebuflen) {\n \t\t*start \u003d (void *)(((uint8_t *)ring-\u003ebuf) + ring-\u003ehead);\n \t\t*bytes \u003d ring-\u003ebuflen - ring-\u003ehead;\n \n@@ -142,7 +142,7 @@ lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start,\n \t}\n \n \t*start \u003d (void *)(((uint8_t *)ring-\u003ebuf) + ring-\u003ehead);\n-\t*bytes \u003d n;\n+\t*bytes \u003d (unsigned int)n;\n \n \treturn 0;\n }\n@@ -157,7 +157,8 @@ size_t\n lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count)\n {\n \tconst uint8_t *osrc \u003d src;\n-\tint m, n;\n+\tsize_t m;\n+\tint n;\n \n \t/* n is how many bytes the whole fifo can take */\n \tn \u003d (int)(lws_ring_get_count_free_elements(ring) * ring-\u003eelement_len);\n@@ -170,7 +171,7 @@ lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count)\n \t * n is legal to insert, but as an optimization we can cut the\n \t * insert into one or two memcpys, depending on if it wraps\n \t */\n-\tif (ring-\u003ehead + n \u003e ring-\u003ebuflen) {\n+\tif (ring-\u003ehead + (unsigned int)n \u003e ring-\u003ebuflen) {\n \n \t\t/*\n \t\t * He does wrap. The first memcpy should take us up to\n@@ -185,13 +186,13 @@ lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count)\n \t\t/* adapt the second memcpy for what we already did */\n \n \t\tsrc \u003d ((uint8_t *)src) + m;\n-\t\tn -\u003d m;\n+\t\tn \u003d n - (int)m;\n \t}\n \n-\tmemcpy(((uint8_t *)ring-\u003ebuf) + ring-\u003ehead, src, n);\n-\tring-\u003ehead \u003d (ring-\u003ehead + n) % ring-\u003ebuflen;\n+\tmemcpy(((uint8_t *)ring-\u003ebuf) + ring-\u003ehead, src, (size_t)n);\n+\tring-\u003ehead \u003d (ring-\u003ehead + (unsigned int)n) % ring-\u003ebuflen;\n \n-\treturn (((uint8_t *)src + n) - osrc) / ring-\u003eelement_len;\n+\treturn (unsigned long)(((uint8_t *)src + (unsigned int)n) - osrc) / ring-\u003eelement_len;\n }\n \n size_t\n@@ -217,21 +218,21 @@ lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest,\n \t\tn \u003d (int)(max_count * ring-\u003eelement_len);\n \n \tif (!dest) {\n-\t\t*tail \u003d ((*tail) + n) % ring-\u003ebuflen;\n+\t\t*tail \u003d ((*tail) + (unsigned int)n) % ring-\u003ebuflen;\n \t\tif (!orig_tail) /* single tail */\n \t\t\tlws_ring_update_oldest_tail(ring, *tail);\n \n-\t\treturn n / ring-\u003eelement_len;\n+\t\treturn (unsigned int)n / ring-\u003eelement_len;\n \t}\n-\tif (*tail + n \u003e ring-\u003ebuflen) {\n+\tif (*tail + (unsigned int)n \u003e ring-\u003ebuflen) {\n \n \t\t/*\n \t\t * He does wrap. The first memcpy should take us up to\n \t\t * the end of the buffer\n \t\t */\n \n-\t\tm \u003d ring-\u003ebuflen - *tail;\n-\t\tmemcpy(dest, ((uint8_t *)ring-\u003ebuf) + *tail, m);\n+\t\tm \u003d (int32_t)(ring-\u003ebuflen - *tail);\n+\t\tmemcpy(dest, ((uint8_t *)ring-\u003ebuf) + *tail, (size_t)m);\n \t\t/* we know it will wrap exactly back to zero */\n \t\t*tail \u003d 0;\n \n@@ -241,13 +242,13 @@ lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest,\n \t\tn -\u003d m;\n \t}\n \n-\tmemcpy(dest, ((uint8_t *)ring-\u003ebuf) + *tail, n);\n+\tmemcpy(dest, ((uint8_t *)ring-\u003ebuf) + *tail, (size_t)n);\n \n-\t*tail \u003d ((*tail) + n) % ring-\u003ebuflen;\n+\t*tail \u003d ((*tail) + (unsigned int)n) % ring-\u003ebuflen;\n \tif (!orig_tail) /* single tail */\n \t\tlws_ring_update_oldest_tail(ring, *tail);\n \n-\treturn (((uint8_t *)dest + n) - odest) / ring-\u003eelement_len;\n+\treturn (unsigned int)(((uint8_t *)dest + n) - odest) / (unsigned int)ring-\u003eelement_len;\n }\n \n const void *\ndiff --git a/lib/misc/lws-struct-lejp.c b/lib/misc/lws-struct-lejp.c\nindex a486472..7f3f304 100644\n--- a/lib/misc/lws-struct-lejp.c\n+++ b/lib/misc/lws-struct-lejp.c\n@@ -339,7 +339,7 @@ lws_struct_default_lejp_cb(struct lejp_ctx *ctx, char reason)\n \t\t\tif (map-\u003eaux \u003d\u003d sizeof(signed char)) {\n \t\t\t\tsigned char *pc;\n \t\t\t\tpc \u003d (signed char *)(u + map-\u003eofs);\n-\t\t\t\t*pc \u003d atoi(ctx-\u003ebuf);\n+\t\t\t\t*pc \u003d (signed char)atoi(ctx-\u003ebuf);\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tif (map-\u003eaux \u003d\u003d sizeof(int)) {\n@@ -363,23 +363,23 @@ lws_struct_default_lejp_cb(struct lejp_ctx *ctx, char reason)\n \t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned char)) {\n \t\t\t\tunsigned char *pc;\n \t\t\t\tpc \u003d (unsigned char *)(u + map-\u003eofs);\n-\t\t\t\t*pc \u003d atoi(ctx-\u003ebuf);\n+\t\t\t\t*pc \u003d (unsigned char)(unsigned int)atoi(ctx-\u003ebuf);\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned int)) {\n \t\t\t\tunsigned int *pi;\n \t\t\t\tpi \u003d (unsigned int *)(u + map-\u003eofs);\n-\t\t\t\t*pi \u003d atoi(ctx-\u003ebuf);\n+\t\t\t\t*pi \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned long)) {\n \t\t\t\tunsigned long *pl;\n \t\t\t\tpl \u003d (unsigned long *)(u + map-\u003eofs);\n-\t\t\t\t*pl \u003d atol(ctx-\u003ebuf);\n+\t\t\t\t*pl \u003d (unsigned long)atol(ctx-\u003ebuf);\n \t\t\t} else {\n \t\t\t\tunsigned long long *pll;\n \t\t\t\tpll \u003d (unsigned long long *)(u + map-\u003eofs);\n-\t\t\t\t*pll \u003d atoll(ctx-\u003ebuf);\n+\t\t\t\t*pll \u003d (unsigned long long)atoll(ctx-\u003ebuf);\n \t\t\t}\n \t\t\tbreak;\n \n@@ -398,7 +398,7 @@ lws_struct_default_lejp_cb(struct lejp_ctx *ctx, char reason)\n \t\t\t} else {\n \t\t\t\tuint64_t *p64;\n \t\t\t\tp64 \u003d (uint64_t *)(u + map-\u003eofs);\n-\t\t\t\t*p64 \u003d li;\n+\t\t\t\t*p64 \u003d (uint64_t)li;\n \t\t\t}\n \t\t\tbreak;\n \n@@ -423,7 +423,7 @@ chunk_copy:\n \t\t\t\tlejp_collation_t *coll \u003d (lejp_collation_t *)p;\n \n \t\t\t\tif (lim) {\n-\t\t\t\t\tb \u003d coll-\u003elen;\n+\t\t\t\t\tb \u003d (unsigned int)coll-\u003elen;\n \t\t\t\t\tif (b \u003e lim)\n \t\t\t\t\t\tb \u003d lim;\n \t\t\t\t\tmemcpy(s, coll-\u003ebuf, b);\n@@ -593,7 +593,7 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \t\t\tn \u003d lws_snprintf((char *)buf, len, \u0022\u005c\u0022%s\u005c\u0022:\u0022,\n \t\t\t\t\t map-\u003ecolname);\n \t\t\tbuf +\u003d n;\n-\t\t\tlen -\u003d n;\n+\t\t\tlen \u003d len - (unsigned int)n;\n \t\t\tif (js-\u003eflags \u0026 LSSERJ_FLAG_PRETTY) {\n \t\t\t\t*buf++ \u003d ' ';\n \t\t\t\tlen--;\n@@ -618,10 +618,10 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \t\t\tq \u003d dbuf;\n \n \t\t\tif (map-\u003etype \u003d\u003d LSMT_BOOLEAN) {\n-\t\t\t\tbudget \u003d lws_snprintf(dbuf, sizeof(dbuf),\n+\t\t\t\tbudget \u003d (unsigned int)lws_snprintf(dbuf, sizeof(dbuf),\n \t\t\t\t\t\t\u0022%s\u0022, uli ? \u0022true\u0022 : \u0022false\u0022);\n \t\t\t} else\n-\t\t\t\tbudget \u003d lws_snprintf(dbuf, sizeof(dbuf),\n+\t\t\t\tbudget \u003d (unsigned int)lws_snprintf(dbuf, sizeof(dbuf),\n \t\t\t\t\t\t \u0022%llu\u0022, uli);\n \t\t\tbreak;\n \n@@ -639,7 +639,7 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \t\t\t\t}\n \t\t\t}\n \t\t\tq \u003d dbuf;\n-\t\t\tbudget \u003d lws_snprintf(dbuf, sizeof(dbuf), \u0022%lld\u0022, li);\n+\t\t\tbudget \u003d (unsigned int)lws_snprintf(dbuf, sizeof(dbuf), \u0022%lld\u0022, li);\n \t\t\tbreak;\n \n \t\tcase LSMT_STRING_CHAR_ARRAY:\n@@ -669,7 +669,7 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \n \t\t\tn \u003d j-\u003eidt;\n \t\t\tj \u003d \u0026js-\u003est[++js-\u003esp];\n-\t\t\tj-\u003eidt \u003d n + 2;\n+\t\t\tj-\u003eidt \u003d (char)(n + 2);\n \t\t\tj-\u003emap \u003d map-\u003echild_map;\n \t\t\tj-\u003emap_entries \u003d map-\u003echild_map_size;\n \t\t\tj-\u003esize \u003d map-\u003eaux;\n@@ -694,7 +694,7 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \n \t\t\tn \u003d j-\u003eidt;\n \t\t\tj \u003d \u0026js-\u003est[++js-\u003esp];\n-\t\t\tj-\u003eidt \u003d n + 2;\n+\t\t\tj-\u003eidt \u003d (char)(n + 2);\n \t\t\tj-\u003emap \u003d map-\u003echild_map;\n \t\t\tj-\u003emap_entries \u003d map-\u003echild_map_size;\n \t\t\tj-\u003esize \u003d map-\u003eaux;\n@@ -714,11 +714,11 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \t\t\tj \u003d \u0026js-\u003est[++js-\u003esp];\n \t\t\tlws_struct_pretty(js, \u0026buf, \u0026len);\n \t\t\tif (!(js-\u003eflags \u0026 LSSERJ_FLAG_OMIT_SCHEMA)) {\n-\t\t\t\tbudget \u003d lws_snprintf(dbuf, 15, \u0022\u005c\u0022schema\u005c\u0022:\u0022);\n+\t\t\t\tbudget \u003d (unsigned int)lws_snprintf(dbuf, 15, \u0022\u005c\u0022schema\u005c\u0022:\u0022);\n \t\t\t\tif (js-\u003eflags \u0026 LSSERJ_FLAG_PRETTY)\n \t\t\t\t\tdbuf[budget++] \u003d ' ';\n \n-\t\t\t\tbudget +\u003d lws_snprintf(dbuf + budget,\n+\t\t\t\tbudget +\u003d (unsigned int)lws_snprintf(dbuf + budget,\n \t\t\t\t\t\t sizeof(dbuf) - budget,\n \t\t\t\t\t\t \u0022\u005c\u0022%s\u005c\u0022\u0022, map-\u003ecolname);\n \t\t\t}\n@@ -766,8 +766,8 @@ lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf,\n \t\t\tm \u003d strlen((const char *)buf);\n \t\t\tbuf +\u003d m;\n \t\t\tlen -\u003d m;\n-\t\t\tjs-\u003eremaining \u003d budget - used;\n-\t\t\tjs-\u003eoffset \u003d used;\n+\t\t\tjs-\u003eremaining \u003d budget - (unsigned int)used;\n+\t\t\tjs-\u003eoffset \u003d (unsigned int)used;\n \t\t\tif (!js-\u003eremaining)\n \t\t\t\tjs-\u003eoffset \u003d 0;\n \ndiff --git a/lib/misc/lws-struct-sqlite.c b/lib/misc/lws-struct-sqlite.c\nindex 1556880..fbe8cf4 100644\n--- a/lib/misc/lws-struct-sqlite.c\n+++ b/lib/misc/lws-struct-sqlite.c\n@@ -38,7 +38,7 @@ lws_struct_sq3_deser_cb(void *priv, int cols, char **cv, char **cn)\n \tchar *u \u003d lwsac_use_zero(\u0026a-\u003eac, a-\u003edest_len, a-\u003eac_block_size);\n \tlws_dll2_owner_t *o \u003d (lws_dll2_owner_t *)a-\u003ecb_arg;\n \tconst lws_struct_map_t *map \u003d a-\u003emap_st[0];\n-\tint n, mems \u003d a-\u003emap_entries_st[0];\n+\tint n, mems \u003d (int)(ssize_t)a-\u003emap_entries_st[0];\n \tlong long li;\n \tsize_t lim;\n \tchar **pp;\n@@ -62,13 +62,13 @@ lws_struct_sq3_deser_cb(void *priv, int cols, char **cv, char **cn)\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(signed char)) {\n \t\t\t\t\tsigned char *pc;\n \t\t\t\t\tpc \u003d (signed char *)(u + map-\u003eofs);\n-\t\t\t\t\t*pc \u003d atoi(cv[n]);\n+\t\t\t\t\t*pc \u003d (signed char)atoi(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(short)) {\n \t\t\t\t\tshort *ps;\n \t\t\t\t\tps \u003d (short *)(u + map-\u003eofs);\n-\t\t\t\t\t*ps \u003d atoi(cv[n]);\n+\t\t\t\t\t*ps \u003d (short)atoi(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(int)) {\n@@ -94,31 +94,31 @@ lws_struct_sq3_deser_cb(void *priv, int cols, char **cv, char **cn)\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned char)) {\n \t\t\t\t\tunsigned char *pc;\n \t\t\t\t\tpc \u003d (unsigned char *)(u + map-\u003eofs);\n-\t\t\t\t\t*pc \u003d atoi(cv[n]);\n+\t\t\t\t\t*pc \u003d (unsigned char)(unsigned int)atoi(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned short)) {\n \t\t\t\t\tunsigned short *ps;\n \t\t\t\t\tps \u003d (unsigned short *)(u + map-\u003eofs);\n-\t\t\t\t\t*ps \u003d atoi(cv[n]);\n+\t\t\t\t\t*ps \u003d (unsigned short)atoi(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned int)) {\n \t\t\t\t\tunsigned int *pi;\n \t\t\t\t\tpi \u003d (unsigned int *)(u + map-\u003eofs);\n-\t\t\t\t\t*pi \u003d atoi(cv[n]);\n+\t\t\t\t\t*pi \u003d (unsigned int)atoi(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\tif (map-\u003eaux \u003d\u003d sizeof(unsigned long)) {\n \t\t\t\t\tunsigned long *pl;\n \t\t\t\t\tpl \u003d (unsigned long *)(u + map-\u003eofs);\n-\t\t\t\t\t*pl \u003d atol(cv[n]);\n+\t\t\t\t\t*pl \u003d (unsigned long)atol(cv[n]);\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t\t{\n \t\t\t\t\tunsigned long long *pll;\n \t\t\t\t\tpll \u003d (unsigned long long *)(u + map-\u003eofs);\n-\t\t\t\t\t*pll \u003d atoll(cv[n]);\n+\t\t\t\t\t*pll \u003d (unsigned long long)atoll(cv[n]);\n \t\t\t\t}\n \t\t\t\tbreak;\n \n@@ -140,7 +140,7 @@ lws_struct_sq3_deser_cb(void *priv, int cols, char **cv, char **cn)\n \t\t\t\t} else {\n \t\t\t\t\tuint64_t *p64;\n \t\t\t\t\tp64 \u003d (uint64_t *)(u + map-\u003eofs);\n-\t\t\t\t\t*p64 \u003d li;\n+\t\t\t\t\t*p64 \u003d (uint64_t)li;\n \t\t\t\t}\n \t\t\t\tbreak;\n \n@@ -205,7 +205,7 @@ lws_struct_sq3_deserialize(sqlite3 *pdb, const char *filter, const char *order,\n \n \tm \u003d 0;\n \tfor (n \u003d 0; n \u003c (int)schema-\u003echild_map_size; n++)\n-\t\tm +\u003d lws_snprintf(\u0026results[m], sizeof(results) - n - 1,\n+\t\tm +\u003d lws_snprintf(\u0026results[m], sizeof(results) - (unsigned int)n - 1,\n \t\t\t\t \u0022%s%c\u0022, schema-\u003echild_map[n].colname,\n \t\t\t\t n + 1 \u003d\u003d (int)schema-\u003echild_map_size ? ' ' : ',');\n \n@@ -241,7 +241,7 @@ _lws_struct_sq3_ser_one(sqlite3 *pdb, const lws_struct_map_t *schema,\n \t\t\tuint32_t idx, void *st)\n {\n \tconst lws_struct_map_t *map \u003d schema-\u003echild_map;\n-\tint n, m, pk \u003d 0, nentries \u003d schema-\u003echild_map_size, nef \u003d 0, did;\n+\tint n, m, pk \u003d 0, nentries \u003d (int)(ssize_t)schema-\u003echild_map_size, nef \u003d 0, did;\n \tsize_t sql_est \u003d 46 + strlen(schema-\u003ecolname) + 1;\n \t\t/* \u0022insert into (_lws_idx, ) values (00000001,);\u0022 ...\n \t\t * plus the table name */\n@@ -301,13 +301,13 @@ _lws_struct_sq3_ser_one(sqlite3 *pdb, const lws_struct_map_t *schema,\n \n \t\t\tbreak;\n \t\tcase LSMT_STRING_CHAR_ARRAY:\n-\t\t\tsql_est +\u003d lws_sql_purify_len((const char *)st +\n+\t\t\tsql_est +\u003d (unsigned int)lws_sql_purify_len((const char *)st +\n \t\t\t\t\t\t\tmap[n].ofs) + 2;\n \t\t\tbreak;\n \n \t\tcase LSMT_STRING_PTR:\n \t\t\tp \u003d *((const char * const *)\u0026stb[map[n].ofs]);\n-\t\t\tsql_est +\u003d (p ? lws_sql_purify_len(p) : 0) + 2;\n+\t\t\tsql_est +\u003d (unsigned int)((p ? lws_sql_purify_len(p) : 0) + 2);\n \t\t\tbreak;\n \n \t\tcase LSMT_BLOB_PTR:\n@@ -345,12 +345,12 @@ _lws_struct_sq3_ser_one(sqlite3 *pdb, const lws_struct_map_t *schema,\n \t\t\tcontinue;\n \n \t\tdid++;\n-\t\tm +\u003d lws_snprintf(sql + m, sql_est - m,\n+\t\tm +\u003d lws_snprintf(sql + m, sql_est - (unsigned int)m,\n \t\t\t\t did \u003d\u003d nef ? \u0022%s\u0022 : \u0022%s, \u0022,\n \t\t\t\t map[n].colname);\n \t}\n \n-\tm +\u003d lws_snprintf(sql + m, sql_est - m, \u0022) values(%u, \u0022, idx);\n+\tm +\u003d lws_snprintf(sql + m, sql_est - (unsigned int)m, \u0022) values(%u, \u0022, idx);\n \n \tpk \u003d 0;\n \tdid \u003d 0;\n@@ -374,26 +374,26 @@ _lws_struct_sq3_ser_one(sqlite3 *pdb, const lws_struct_map_t *schema,\n \t\t\t\t\t\t\t\t(q \u003c\u003c 3));\n \n \t\t\tif (map[n].type \u003d\u003d LSMT_SIGNED)\n-\t\t\t\tm +\u003d lws_snprintf(sql + m, sql_est - m, \u0022%lld\u0022,\n+\t\t\t\tm +\u003d lws_snprintf(sql + m, sql_est - (unsigned int)m, \u0022%lld\u0022,\n \t\t\t\t\t\t (long long)(int64_t)uu64);\n \t\t\telse\n-\t\t\t\tm +\u003d lws_snprintf(sql + m, sql_est - m, \u0022%llu\u0022,\n+\t\t\t\tm +\u003d lws_snprintf(sql + m, sql_est - (unsigned int)m, \u0022%llu\u0022,\n \t\t\t\t\t\t (unsigned long long)uu64);\n \t\t\tbreak;\n \n \t\tcase LSMT_STRING_CHAR_ARRAY:\n \t\t\tsql[m++] \u003d '\u005c'';\n \t\t\tlws_sql_purify(sql + m, (const char *)\u0026stb[map[n].ofs],\n-\t\t\t\t sql_est - m - 4);\n-\t\t\tm +\u003d strlen(sql + m);\n+\t\t\t\t sql_est - (size_t)(ssize_t)m - 4);\n+\t\t\tm +\u003d (int)(ssize_t)strlen(sql + m);\n \t\t\tsql[m++] \u003d '\u005c'';\n \t\t\tbreak;\n \t\tcase LSMT_STRING_PTR:\n \t\t\tp \u003d *((const char * const *)\u0026stb[map[n].ofs]);\n \t\t\tsql[m++] \u003d '\u005c'';\n \t\t\tif (p) {\n-\t\t\t\tlws_sql_purify(sql + m, p, sql_est - m - 4);\n-\t\t\t\tm +\u003d strlen(sql + m);\n+\t\t\t\tlws_sql_purify(sql + m, p, sql_est - (unsigned int)m - 4);\n+\t\t\t\tm +\u003d (int)(ssize_t)strlen(sql + m);\n \t\t\t}\n \t\t\tsql[m++] \u003d '\u005c'';\n \t\t\tbreak;\n@@ -409,14 +409,14 @@ _lws_struct_sq3_ser_one(sqlite3 *pdb, const lws_struct_map_t *schema,\n \n \t\tdid++;\n \t\tif (did !\u003d nef) {\n-\t\t\tif (sql_est - m \u003c 6)\n+\t\t\tif (sql_est - (unsigned int)m \u003c 6)\n \t\t\t\treturn -1;\n \t\t\tsql[m++] \u003d ',';\n \t\t\tsql[m++] \u003d ' ';\n \t\t}\n \t}\n \n-\tlws_snprintf(sql + m, sql_est - m, \u0022);\u0022);\n+\tlws_snprintf(sql + m, sql_est - (unsigned int)m, \u0022);\u0022);\n \n \tn \u003d sqlite3_exec(pdb, sql, NULL, NULL, NULL);\n \tif (n !\u003d SQLITE_OK) {\n@@ -450,11 +450,11 @@ int\n lws_struct_sq3_create_table(sqlite3 *pdb, const lws_struct_map_t *schema)\n {\n \tconst lws_struct_map_t *map \u003d schema-\u003echild_map;\n-\tint map_size \u003d schema-\u003echild_map_size, subsequent \u003d 0;\n+\tint map_size \u003d (int)(ssize_t)schema-\u003echild_map_size, subsequent \u003d 0;\n \tchar s[2048], *p \u003d s, *end \u003d \u0026s[sizeof(s) - 1],\n \t *pri \u003d \u0022 primary key autoincrement\u0022, *use;\n \n-\tp +\u003d lws_snprintf(p, end - p,\n+\tp +\u003d lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p),\n \t\t\t \u0022create table if not exists %s (_lws_idx integer, \u0022,\n \t\t\t schema-\u003ecolname);\n \n@@ -470,26 +470,26 @@ lws_struct_sq3_create_table(sqlite3 *pdb, const lws_struct_map_t *schema)\n \t\tsubsequent \u003d 1;\n \t\tif (map-\u003etype \u003d\u003d LSMT_BLOB_PTR) {\n \n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s blob\u0022, map-\u003ecolname);\n+\t\t\tp +\u003d lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p), \u0022%s blob\u0022, map-\u003ecolname);\n \n \t\t} else {\n \t\t\tif (map-\u003etype \u003c LSMT_STRING_CHAR_ARRAY) {\n \t\t\t\tuse \u003d \u0022\u0022;\n \t\t\t\tif (map-\u003ecolname[0] !\u003d '_') /* _lws_idx is not primary key */\n \t\t\t\t\tuse \u003d pri;\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s integer%s\u0022,\n+\t\t\t\tp +\u003d lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p), \u0022%s integer%s\u0022,\n \t\t\t\t\t\tmap-\u003ecolname, use);\n \t\t\t\tif (map-\u003ecolname[0] !\u003d '_')\n \t\t\t\t\tpri \u003d \u0022\u0022;\n \t\t\t} else\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s varchar\u0022,\n+\t\t\t\tp +\u003d lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p), \u0022%s varchar\u0022,\n \t\t\t\t\t\tmap-\u003ecolname);\n \t\t}\n \n \t\tmap++;\n \t}\n \n-\tp +\u003d lws_snprintf(p, end - p, \u0022);\u0022);\n+\tp +\u003d lws_snprintf(p, (unsigned int)lws_ptr_diff(end, p), \u0022);\u0022);\n \n \tif (sqlite3_exec(pdb, s, NULL, NULL, NULL) !\u003d SQLITE_OK) {\n \t\tlwsl_err(\u0022%s: %s: fail\u005cn\u0022, __func__, sqlite3_errmsg(pdb));\n@@ -505,7 +505,8 @@ lws_struct_sq3_open(struct lws_context *context, const char *sqlite3_path,\n \t\t char create_if_missing, sqlite3 **pdb)\n {\n #if !defined(WIN32)\n-\tint uid \u003d 0, gid \u003d 0;\n+\tuid_t uid \u003d 0;\n+\tgid_t gid \u003d 0;\n #endif\n \n \tif (sqlite3_open_v2(sqlite3_path, pdb,\ndiff --git a/lib/misc/lwsac/cached-file.c b/lib/misc/lwsac/cached-file.c\nindex d5573ee..9f3b723 100644\n--- a/lib/misc/lwsac/cached-file.c\n+++ b/lib/misc/lwsac/cached-file.c\n@@ -177,7 +177,7 @@ lwsac_cached_file(const char *filepath, lwsac_cached_file_t *cache, size_t *len)\n \t * it... reload in a new lac and then detach the old lac.\n \t */\n \n-\tall \u003d sizeof(*info) + s.st_size + 2;\n+\tall \u003d sizeof(*info) + (unsigned long)s.st_size + 2;\n \n \tinfo \u003d lwsac_use(\u0026lac, all, all);\n \tif (!info)\n@@ -188,10 +188,10 @@ lwsac_cached_file(const char *filepath, lwsac_cached_file_t *cache, size_t *len)\n \n \ta \u003d (unsigned char *)(info + 1);\n \n-\t*len \u003d s.st_size;\n+\t*len \u003d (unsigned long)s.st_size;\n \ta[s.st_size] \u003d '\u005c0';\n \n-\trd \u003d read(fd, a, s.st_size);\n+\trd \u003d read(fd, a, (unsigned long)s.st_size);\n \tif (rd !\u003d s.st_size) {\n \t\tlwsl_err(\u0022%s: cannot read %s (%d)\u005cn\u0022, __func__, filepath,\n \t\t\t (int)rd);\ndiff --git a/lib/misc/lwsac/lwsac.c b/lib/misc/lwsac/lwsac.c\nindex cde97ef..faa82f0 100644\n--- a/lib/misc/lwsac/lwsac.c\n+++ b/lib/misc/lwsac/lwsac.c\n@@ -70,7 +70,7 @@ lwsac_get_next(struct lwsac *lac)\n }\n \n int\n-lwsac_extend(struct lwsac *head, int amount)\n+lwsac_extend(struct lwsac *head, size_t amount)\n {\n \tstruct lwsac_head *lachead;\n \tstruct lwsac *bf;\ndiff --git a/lib/misc/peer-limits.c b/lib/misc/peer-limits.c\nindex 32ea50d..1f3a715 100644\n--- a/lib/misc/peer-limits.c\n+++ b/lib/misc/peer-limits.c\n@@ -89,7 +89,7 @@ lws_get_or_create_peer(struct lws_vhost *vhost, lws_sockfd_type sockfd)\n \n \tq8 \u003d q;\n \tfor (n \u003d 0; n \u003c (int)rlen; n++)\n-\t\thash \u003d (((hash \u003c\u003c 4) | (hash \u003e\u003e 28)) * n) ^ q8[n];\n+\t\thash \u003d (uint32_t)((((hash \u003c\u003c 4) | (hash \u003e\u003e 28)) * (uint32_t)n) ^ q8[n]);\n \n \thash \u003d hash % context-\u003epl_hash_elements;\n \ndiff --git a/lib/misc/sha-1.c b/lib/misc/sha-1.c\nindex 109bfdb..22989e4 100644\n--- a/lib/misc/sha-1.c\n+++ b/lib/misc/sha-1.c\n@@ -211,14 +211,14 @@ sha1_pad(struct sha1_ctxt *ctxt)\n \tpadlen \u003d 64 - padstart;\n \tif (padlen \u003c 8) {\n \t\tmemset(\u0026ctxt-\u003em.b8[padstart], 0, padlen);\n-\t\tCOUNT +\u003d (unsigned char)padlen;\n+\t\tCOUNT \u003d (unsigned char)(COUNT + padlen);\n \t\tCOUNT %\u003d 64;\n \t\tsha1_step(ctxt);\n \t\tpadstart \u003d COUNT % 64;\t/* should be 0 */\n \t\tpadlen \u003d 64 - padstart;\t/* should be 64 */\n \t}\n \tmemset(\u0026ctxt-\u003em.b8[padstart], 0, padlen - 8);\n-\tCOUNT +\u003d ((unsigned char)padlen - 8);\n+\tCOUNT \u003d (unsigned char)(COUNT + (padlen - 8));\n \tCOUNT %\u003d 64;\n #if BYTE_ORDER \u003d\u003d BIG_ENDIAN\n \tPUTPAD(ctxt-\u003ec.b8[0]); PUTPAD(ctxt-\u003ec.b8[1]);\n@@ -245,7 +245,7 @@ sha1_loop(struct sha1_ctxt *ctxt, const unsigned char *input, size_t len)\n \t\t copysiz \u003d (gaplen \u003c len - off) ? gaplen : len - off;\n \n \t\tmemcpy(\u0026ctxt-\u003em.b8[gapstart], \u0026input[off], copysiz);\n-\t\tCOUNT +\u003d (unsigned char)copysiz;\n+\t\tCOUNT \u003d (unsigned char)(COUNT + copysiz);\n \t\tCOUNT %\u003d 64;\n \t\tctxt-\u003ec.b64[0] +\u003d copysiz * 8;\n \t\tif (COUNT % 64 \u003d\u003d 0)\ndiff --git a/lib/misc/threadpool/threadpool.c b/lib/misc/threadpool/threadpool.c\nindex 1109373..dd310b8 100644\n--- a/lib/misc/threadpool/threadpool.c\n+++ b/lib/misc/threadpool/threadpool.c\n@@ -129,7 +129,7 @@ __lws_threadpool_task_dump(struct lws_threadpool_task *task, char *buf, int len)\n \tint syncms \u003d 0, runms \u003d 0;\n \n \tif (!task-\u003eacquired) {\n-\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\t \u0022task: %s, QUEUED queued: %dms\u0022,\n \t\t\t\t task-\u003ename, ms_delta(now, task-\u003ecreated));\n \n@@ -143,7 +143,7 @@ __lws_threadpool_task_dump(struct lws_threadpool_task *task, char *buf, int len)\n \t\tsyncms \u003d (int)task-\u003eacc_syncing;\n \n \tif (!task-\u003edone) {\n-\t\tbuf +\u003d lws_snprintf(buf, end - buf,\n+\t\tbuf +\u003d lws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\t\u0022task: %s, ONGOING state %d (%dms) alive: %dms \u0022\n \t\t\t\u0022(queued %dms, acquired: %dms, \u0022\n \t\t\t\u0022run: %d%%, sync: %d%%)\u0022, task-\u003ename, task-\u003estatus,\n@@ -157,7 +157,7 @@ __lws_threadpool_task_dump(struct lws_threadpool_task *task, char *buf, int len)\n \t\treturn;\n \t}\n \n-\tlws_snprintf(buf, end - buf,\n+\tlws_snprintf(buf, lws_ptr_diff_size_t(end, buf),\n \t\t\u0022task: %s, DONE state %d lived: %dms \u0022\n \t\t\u0022(queued %dms, on thread: %dms, \u0022\n \t\t\u0022ran: %d%%, synced: %d%%)\u0022, task-\u003ename, task-\u003estatus,\n@@ -586,7 +586,7 @@ lws_threadpool_worker(void *d)\n \t\t\t}\n \n \t\t\tthen \u003d lws_now_usecs();\n-\t\t\tn \u003d task-\u003eargs.task(task-\u003eargs.user, task-\u003estatus);\n+\t\t\tn \u003d (int)task-\u003eargs.task(task-\u003eargs.user, task-\u003estatus);\n \t\t\tlwsl_debug(\u0022 %d, status %d\u005cn\u0022, n, task-\u003estatus);\n \t\t\tus_accrue(\u0026task-\u003eacc_running, then);\n \t\t\tif (n \u0026 LWS_TP_RETURN_FLAG_OUTLIVE)\n@@ -688,12 +688,12 @@ lws_threadpool_create(struct lws_context *context,\n \tva_list ap;\n \tint n;\n \n-\ttp \u003d lws_malloc(sizeof(*tp) + (sizeof(struct lws_pool) * args-\u003ethreads),\n+\ttp \u003d lws_malloc(sizeof(*tp) + (sizeof(struct lws_pool) * (unsigned int)args-\u003ethreads),\n \t\t\t\u0022threadpool alloc\u0022);\n \tif (!tp)\n \t\treturn NULL;\n \n-\tmemset(tp, 0, sizeof(*tp) + (sizeof(struct lws_pool) * args-\u003ethreads));\n+\tmemset(tp, 0, sizeof(*tp) + (sizeof(struct lws_pool) * (unsigned int)args-\u003ethreads));\n \ttp-\u003epool_list \u003d (struct lws_pool *)(tp + 1);\n \ttp-\u003emax_queue_depth \u003d args-\u003emax_queue_depth;\n \ndiff --git a/lib/plat/freertos/freertos-file.c b/lib/plat/freertos/freertos-file.c\nindex e08d174..033d258 100644\n--- a/lib/plat/freertos/freertos-file.c\n+++ b/lib/plat/freertos/freertos-file.c\n@@ -154,7 +154,7 @@ lws_find_string_in_file(const char *filename, const char *string, int stringlen)\n \n #if !defined(LWS_AMAZON_RTOS)\n int\n-lws_plat_write_file(const char *filename, void *buf, int len)\n+lws_plat_write_file(const char *filename, void *buf, size_t len)\n {\n \tnvs_handle nvh;\n \tint n;\n@@ -179,7 +179,7 @@ lws_plat_write_file(const char *filename, void *buf, int len)\n \n int\n lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n-\t\t\tint len)\n+\t\t\tsize_t len)\n {\n \tconst char *name \u003d vhost-\u003etls.alloc_cert_path;\n \n@@ -190,7 +190,7 @@ lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n }\n \n int\n-lws_plat_read_file(const char *filename, void *buf, int len)\n+lws_plat_read_file(const char *filename, void *buf, size_t len)\n {\n \tnvs_handle nvh;\n \tsize_t s \u003d 0;\n@@ -204,7 +204,7 @@ lws_plat_read_file(const char *filename, void *buf, int len)\n \tESP_ERROR_CHECK(nvs_open(\u0022lws-station\u0022, NVS_READWRITE, \u0026nvh));\n \tif (nvs_get_blob(nvh, filename, NULL, \u0026s) !\u003d ESP_OK)\n \t\tgoto bail;\n-\tif (s \u003e (size_t)len)\n+\tif (s \u003e len)\n \t\tgoto bail;\n \n \tn \u003d nvs_get_blob(nvh, filename, buf, \u0026s);\ndiff --git a/lib/plat/freertos/freertos-sockets.c b/lib/plat/freertos/freertos-sockets.c\nindex 4b8c73c..f5d975b 100644\n--- a/lib/plat/freertos/freertos-sockets.c\n+++ b/lib/plat/freertos/freertos-sockets.c\n@@ -215,7 +215,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,\n }\n \n const char *\n-lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt)\n+lws_plat_inet_ntop(int af, const void *src, char *dst, socklen_t cnt)\n {\n \treturn inet_ntop(af, src, dst, cnt);\n }\n@@ -235,8 +235,8 @@ lws_plat_ifname_to_hwaddr(int fd, const char *ifname, uint8_t *hwaddr, int len)\n }\n \n int\n-lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n-\t\t\t int n, int fd, const char *iface)\n+lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, size_t canned_len,\n+\t\t\t size_t n, int fd, const char *iface)\n {\n \tlwsl_err(\u0022%s: UNIMPLEMENTED on this platform\u005cn\u0022, __func__);\n \ndiff --git a/lib/plat/optee/lws-plat-optee.c b/lib/plat/optee/lws-plat-optee.c\nindex e36b768..cc46d76 100644\n--- a/lib/plat/optee/lws-plat-optee.c\n+++ b/lib/plat/optee/lws-plat-optee.c\n@@ -219,7 +219,7 @@ lws_plat_init(struct lws_context *context,\n }\n \n int\n-lws_plat_write_file(const char *filename, void *buf, int len)\n+lws_plat_write_file(const char *filename, void *buf, size_t len)\n {\n \treturn 1;\n }\ndiff --git a/lib/plat/optee/network.c b/lib/plat/optee/network.c\nindex 90f37f1..b0867b7 100644\n--- a/lib/plat/optee/network.c\n+++ b/lib/plat/optee/network.c\n@@ -203,7 +203,7 @@ lws_plat_set_socket_options(struct lws_vhost *vhost, int fd, int unix_skt)\n \n int\n lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n-\t\t\tint len)\n+\t\t\tsize_t len)\n {\n \treturn 1;\n }\n@@ -243,7 +243,7 @@ lws_plat_change_pollfd(struct lws_context *context,\n }\n \n const char *\n-lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt)\n+lws_plat_inet_ntop(int af, const void *src, char *dst, socklen_t cnt)\n {\n \t//return inet_ntop(af, src, dst, cnt);\n \treturn \u0022lws_plat_inet_ntop\u0022;\ndiff --git a/lib/plat/unix/private-lib-plat-unix.h b/lib/plat/unix/private-lib-plat-unix.h\nindex 6d0ab84..b6e4ee8 100644\n--- a/lib/plat/unix/private-lib-plat-unix.h\n+++ b/lib/plat/unix/private-lib-plat-unix.h\n@@ -197,8 +197,8 @@ delete_from_fd(const struct lws_context *context, int fd);\n #endif\n \n int\n-lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n-\t\t\t int n, int fd, const char *iface);\n+lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, size_t canned_len,\n+\t\t\t size_t n, int fd, const char *iface);\n \n int\n lws_plat_if_up(const char *ifname, int fd, int up);\ndiff --git a/lib/plat/unix/unix-caps.c b/lib/plat/unix/unix-caps.c\nindex 8962b95..68e4f19 100644\n--- a/lib/plat/unix/unix-caps.c\n+++ b/lib/plat/unix/unix-caps.c\n@@ -54,13 +54,13 @@ lws_plat_user_colon_group_to_ids(const char *u_colon_g, uid_t *puid, gid_t *pgid\n \tchar *colon \u003d strchr(u_colon_g, ':'), u[33];\n \tstruct passwd *p;\n \tstruct group *g;\n-\tint ulen;\n+\tsize_t ulen;\n \n \tif (!colon)\n \t\treturn 1;\n \n-\tulen \u003d lws_ptr_diff(colon, u_colon_g);\n-\tif (ulen \u003c 2 || ulen \u003e (int)sizeof(u) - 1)\n+\tulen \u003d (size_t)(unsigned int)lws_ptr_diff(colon, u_colon_g);\n+\tif (ulen \u003c 2 || ulen \u003e sizeof(u) - 1)\n \t\treturn 1;\n \n \tmemcpy(u, u_colon_g, ulen);\n@@ -133,7 +133,7 @@ lws_plat_drop_app_privileges(struct lws_context *context, int actually_drop)\n \n \t/* if he gave us the gid or we have it from the groupname, set it */\n \n-\tif (context-\u003egid \u0026\u0026 context-\u003egid !\u003d -1) {\n+\tif (context-\u003egid \u0026\u0026 context-\u003egid !\u003d (gid_t)-1l) {\n \t\tg \u003d getgrgid(context-\u003egid);\n \n \t\tif (!g) {\n@@ -158,7 +158,7 @@ lws_plat_drop_app_privileges(struct lws_context *context, int actually_drop)\n \n \t/* if he gave us the uid or we have it from the username, set it */\n \n-\tif (context-\u003euid \u0026\u0026 context-\u003euid !\u003d -1) {\n+\tif (context-\u003euid \u0026\u0026 context-\u003euid !\u003d (uid_t)-1l) {\n \t\tp \u003d getpwuid(context-\u003euid);\n \n \t\tif (!p) {\n@@ -172,7 +172,11 @@ lws_plat_drop_app_privileges(struct lws_context *context, int actually_drop)\n \t\t\t\t context-\u003ecount_caps);\n #endif\n \n-\t\tif (initgroups(p-\u003epw_name, context-\u003egid))\n+\t\tif (initgroups(p-\u003epw_name,\n+#if defined(__APPLE__)\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\tcontext-\u003egid))\n \t\t\treturn 1;\n \n \t\tif (setuid(context-\u003euid)) {\ndiff --git a/lib/plat/unix/unix-file.c b/lib/plat/unix/unix-file.c\nindex 1a8bd41..c71c0d1 100644\n--- a/lib/plat/unix/unix-file.c\n+++ b/lib/plat/unix/unix-file.c\n@@ -44,9 +44,10 @@ int lws_plat_apply_FD_CLOEXEC(int n)\n }\n \n int\n-lws_plat_write_file(const char *filename, void *buf, int len)\n+lws_plat_write_file(const char *filename, void *buf, size_t len)\n {\n-\tint m, fd;\n+\tssize_t m;\n+\tint fd;\n \n \tfd \u003d lws_open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600);\n \n@@ -56,20 +57,25 @@ lws_plat_write_file(const char *filename, void *buf, int len)\n \tm \u003d write(fd, buf, len);\n \tclose(fd);\n \n-\treturn m !\u003d len;\n+\tif (m \u003c 0)\n+\t\treturn 1;\n+\n+\treturn (size_t)m !\u003d len;\n }\n \n int\n-lws_plat_read_file(const char *filename, void *buf, int len)\n+lws_plat_read_file(const char *filename, void *buf, size_t len)\n {\n-\tint n, fd \u003d lws_open(filename, O_RDONLY);\n+\tint fd \u003d lws_open(filename, O_RDONLY);\n+\tssize_t n;\n+\n \tif (fd \u003d\u003d -1)\n \t\treturn -1;\n \n \tn \u003d read(fd, buf, len);\n \tclose(fd);\n \n-\treturn n;\n+\treturn (int)n;\n }\n \n lws_fop_fd_t\n@@ -94,7 +100,7 @@ _lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename,\n \tfop_fd-\u003eflags \u003d *flags;\n \tfop_fd-\u003efd \u003d ret;\n \tfop_fd-\u003efilesystem_priv \u003d NULL; /* we don't use it */\n-\tfop_fd-\u003elen \u003d stat_buf.st_size;\n+\tfop_fd-\u003elen \u003d (lws_filepos_t)stat_buf.st_size;\n \tfop_fd-\u003epos \u003d 0;\n \n \treturn fop_fd;\n@@ -122,15 +128,15 @@ _lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset)\n \n \tif (offset \u003e 0 \u0026\u0026\n \t offset \u003e (lws_fileofs_t)fop_fd-\u003elen - (lws_fileofs_t)fop_fd-\u003epos)\n-\t\toffset \u003d fop_fd-\u003elen - fop_fd-\u003epos;\n+\t\toffset \u003d (lws_fileofs_t)(fop_fd-\u003elen - fop_fd-\u003epos);\n \n \tif ((lws_fileofs_t)fop_fd-\u003epos + offset \u003c 0)\n-\t\toffset \u003d -fop_fd-\u003epos;\n+\t\toffset \u003d (lws_fileofs_t)(-fop_fd-\u003epos);\n \n-\tr \u003d lseek(fop_fd-\u003efd, offset, SEEK_CUR);\n+\tr \u003d lseek(fop_fd-\u003efd, (off_t)offset, SEEK_CUR);\n \n \tif (r \u003e\u003d 0)\n-\t\tfop_fd-\u003epos \u003d r;\n+\t\tfop_fd-\u003epos \u003d (lws_filepos_t)r;\n \telse\n \t\tlwsl_err(\u0022error seeking from cur %ld, offset %ld\u005cn\u0022,\n (long)fop_fd-\u003epos, (long)offset);\n@@ -142,17 +148,18 @@ int\n _lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount,\n \t\t uint8_t *buf, lws_filepos_t len)\n {\n-\tlong n;\n+\tssize_t n;\n \n-\tn \u003d read((int)fop_fd-\u003efd, buf, len);\n-\tif (n \u003d\u003d -1) {\n+\tn \u003d read((int)fop_fd-\u003efd, buf, (size_t)len);\n+\tif (n \u003d\u003d -1l) {\n \t\t*amount \u003d 0;\n \t\treturn -1;\n \t}\n-\tfop_fd-\u003epos +\u003d n;\n-\tlwsl_debug(\u0022%s: read %ld of req %ld, pos %ld, len %ld\u005cn\u0022, __func__, n,\n- (long)len, (long)fop_fd-\u003epos, (long)fop_fd-\u003elen);\n-\t*amount \u003d n;\n+\tfop_fd-\u003epos +\u003d (size_t)n;\n+\tlwsl_debug(\u0022%s: read %ld of req %ld, pos %ld, len %ld\u005cn\u0022, __func__,\n+\t\t\t(long)n, (long)len, (long)fop_fd-\u003epos,\n+\t\t\t(long)fop_fd-\u003elen);\n+\t*amount \u003d (size_t)n;\n \n \treturn 0;\n }\n@@ -161,16 +168,16 @@ int\n _lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount,\n \t\t uint8_t *buf, lws_filepos_t len)\n {\n-\tlong n;\n+\tssize_t n;\n \n-\tn \u003d write((int)fop_fd-\u003efd, buf, len);\n+\tn \u003d write((int)fop_fd-\u003efd, buf, (size_t)len);\n \tif (n \u003d\u003d -1) {\n \t\t*amount \u003d 0;\n \t\treturn -1;\n \t}\n \n-\tfop_fd-\u003epos +\u003d n;\n-\t*amount \u003d n;\n+\tfop_fd-\u003epos +\u003d (size_t)n;\n+\t*amount \u003d (size_t)n;\n \n \treturn 0;\n }\ndiff --git a/lib/plat/unix/unix-init.c b/lib/plat/unix/unix-init.c\nindex f82143f..ea90dca 100644\n--- a/lib/plat/unix/unix-init.c\n+++ b/lib/plat/unix/unix-init.c\n@@ -92,8 +92,10 @@ protocol_plugin_cb(struct lws_plugin *pin, void *each_user)\n \tconst lws_plugin_protocol_t *plpr \u003d\n \t\t\t(const lws_plugin_protocol_t *)pin-\u003ehdr;\n \n-\tcontext-\u003eplugin_protocol_count +\u003d plpr-\u003ecount_protocols;\n-\tcontext-\u003eplugin_extension_count +\u003d plpr-\u003ecount_extensions;\n+\tcontext-\u003eplugin_protocol_count \u003d (short)(context-\u003eplugin_protocol_count +\n+\t\t\t\t\t\t plpr-\u003ecount_protocols);\n+\tcontext-\u003eplugin_extension_count \u003d (short)(context-\u003eplugin_extension_count +\n+\t\t\t\t\t\t plpr-\u003ecount_extensions);\n \n \treturn 0;\n }\ndiff --git a/lib/plat/unix/unix-misc.c b/lib/plat/unix/unix-misc.c\nindex 7c6679f..8dcaaa9 100644\n--- a/lib/plat/unix/unix-misc.c\n+++ b/lib/plat/unix/unix-misc.c\n@@ -36,7 +36,7 @@\n void\n lws_msleep(unsigned int ms)\n {\n- usleep(ms * LWS_US_PER_MS);\n+ usleep((unsigned int)(ms * LWS_US_PER_MS));\n }\n \n lws_usec_t\n@@ -95,18 +95,18 @@ void lwsl_emit_syslog(int level, const char *line)\n \n int\n lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n-\t\t\tint len)\n+\t\t\tsize_t len)\n {\n-\tint n;\n+\tssize_t n;\n \n \tn \u003d write(fd, buf, len);\n \n-\tif (fsync(fd))\n+\tif (n \u003c 0 || fsync(fd))\n \t\treturn 1;\n \tif (lseek(fd, 0, SEEK_SET) \u003c 0)\n \t\treturn 1;\n \n-\treturn n !\u003d len;\n+\treturn (size_t)n !\u003d len;\n }\n \n \ndiff --git a/lib/plat/unix/unix-pipe.c b/lib/plat/unix/unix-pipe.c\nindex 6b917cd..b447097 100644\n--- a/lib/plat/unix/unix-pipe.c\n+++ b/lib/plat/unix/unix-pipe.c\n@@ -57,7 +57,7 @@ lws_plat_pipe_signal(struct lws_context *ctx, int tsi)\n \tchar buf \u003d 0;\n \tint n;\n \n-\tn \u003d write(pt-\u003edummy_pipe_fds[1], \u0026buf, 1);\n+\tn \u003d (int)write(pt-\u003edummy_pipe_fds[1], \u0026buf, 1);\n \n \treturn n !\u003d 1;\n #endif\ndiff --git a/lib/plat/unix/unix-resolv.c b/lib/plat/unix/unix-resolv.c\nindex f587763..177ecad 100644\n--- a/lib/plat/unix/unix-resolv.c\n+++ b/lib/plat/unix/unix-resolv.c\n@@ -30,8 +30,9 @@ lws_plat_asyncdns_init(struct lws_context *context, lws_sockaddr46 *sa46)\n \tlws_async_dns_server_check_t s \u003d LADNS_CONF_SERVER_CHANGED;\n \tlws_sockaddr46 sa46t;\n \tlws_tokenize_t ts;\n-\tint fd, n, ns \u003d 0;\n \tchar ads[48], *r;\n+\tint fd, ns \u003d 0;\n+\tssize_t n;\n \n \tr \u003d (char *)context-\u003ept[0].serv_buf;\n \n@@ -53,7 +54,7 @@ lws_plat_asyncdns_init(struct lws_context *context, lws_sockaddr46 *sa46)\n \t\t\t\t LWS_TOKENIZE_F_MINUS_NONTERM |\n \t\t\t\t LWS_TOKENIZE_F_HASH_COMMENT);\n \tdo {\n-\t\tts.e \u003d lws_tokenize(\u0026ts);\n+\t\tts.e \u003d (int8_t)lws_tokenize(\u0026ts);\n \t\tif (ts.e !\u003d LWS_TOKZE_TOKEN) {\n \t\t\tns \u003d 0;\n \t\t\tcontinue;\ndiff --git a/lib/plat/unix/unix-service.c b/lib/plat/unix/unix-service.c\nindex 7bb22ed..8428bf8 100644\n--- a/lib/plat/unix/unix-service.c\n+++ b/lib/plat/unix/unix-service.c\n@@ -131,7 +131,7 @@ _lws_plat_service_tsi(struct lws_context *context, int timeout_ms, int tsi)\n \n \tvpt-\u003einside_poll \u003d 1;\n \tlws_memory_barrier();\n-\tn \u003d poll(pt-\u003efds, pt-\u003efds_count, timeout_us /* ms now */ );\n+\tn \u003d poll(pt-\u003efds, pt-\u003efds_count, (int)timeout_us /* ms now */ );\n \tvpt-\u003einside_poll \u003d 0;\n \tlws_memory_barrier();\n \ndiff --git a/lib/plat/unix/unix-sockets.c b/lib/plat/unix/unix-sockets.c\nindex 05a6d2a..fc0963d 100644\n--- a/lib/plat/unix/unix-sockets.c\n+++ b/lib/plat/unix/unix-sockets.c\n@@ -160,7 +160,7 @@ lws_plat_set_socket_options(struct lws_vhost *vhost, int fd, int unix_skt)\n \tif (!unix_skt \u0026\u0026 vhost-\u003ebind_iface \u0026\u0026 vhost-\u003eiface) {\n \t\tlwsl_info(\u0022binding listen skt to %s using SO_BINDTODEVICE\u005cn\u0022, vhost-\u003eiface);\n \t\tif (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, vhost-\u003eiface,\n-\t\t\t\tstrlen(vhost-\u003eiface)) \u003c 0) {\n+\t\t\t\t(socklen_t)strlen(vhost-\u003eiface)) \u003c 0) {\n \t\t\tlwsl_warn(\u0022Failed to bind to device %s\u005cn\u0022, vhost-\u003eiface);\n \t\t\treturn 1;\n \t\t}\n@@ -276,7 +276,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,\n \n \n const char *\n-lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt)\n+lws_plat_inet_ntop(int af, const void *src, char *dst, socklen_t cnt)\n {\n \treturn inet_ntop(af, src, dst, cnt);\n }\n@@ -310,8 +310,8 @@ lws_plat_ifname_to_hwaddr(int fd, const char *ifname, uint8_t *hwaddr, int len)\n }\n \n int\n-lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n-\t\t\t int n, int fd, const char *iface)\n+lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, size_t canned_len,\n+\t\t\t size_t n, int fd, const char *iface)\n {\n #if defined(__linux__)\n \tstruct sockaddr_ll sll;\n@@ -320,8 +320,8 @@ lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n \n \tmemcpy(p, canned, canned_len);\n \n-\tp[2] \u003d n \u003e\u003e 8;\n-\tp[3] \u003d n;\n+\tp[2] \u003d (uint8_t)(n \u003e\u003e 8);\n+\tp[3] \u003d (uint8_t)(n);\n \n \twhile (p16 \u003c (uint16_t *)(p + 20))\n \t\tucs +\u003d ntohs(*p16++);\n@@ -329,19 +329,19 @@ lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n \tucs +\u003d ucs \u003e\u003e 16;\n \tucs ^\u003d 0xffff;\n \n-\tp[10] \u003d ucs \u003e\u003e 8;\n-\tp[11] \u003d ucs;\n-\tp[24] \u003d (n - 20) \u003e\u003e 8;\n-\tp[25] \u003d (n - 20);\n+\tp[10] \u003d (uint8_t)(ucs \u003e\u003e 8);\n+\tp[11] \u003d (uint8_t)(ucs);\n+\tp[24] \u003d (uint8_t)((n - 20) \u003e\u003e 8);\n+\tp[25] \u003d (uint8_t)((n - 20));\n \n \tmemset(\u0026sll, 0, sizeof(sll));\n \tsll.sll_family \u003d AF_PACKET;\n \tsll.sll_protocol \u003d htons(0x800);\n \tsll.sll_halen \u003d 6;\n-\tsll.sll_ifindex \u003d if_nametoindex(iface);\n+\tsll.sll_ifindex \u003d (int)if_nametoindex(iface);\n \tmemset(sll.sll_addr, 0xff, 6);\n \n-\treturn sendto(fd, p, n, 0, (struct sockaddr *)\u0026sll, sizeof(sll));\n+\treturn (int)sendto(fd, p, n, 0, (struct sockaddr *)\u0026sll, sizeof(sll));\n #else\n \tlwsl_err(\u0022%s: UNIMPLEMENTED on this platform\u005cn\u0022, __func__);\n \n@@ -474,7 +474,7 @@ lws_plat_mbedtls_net_send(void *ctx, const uint8_t *buf, size_t len)\n \tif (fd \u003c 0)\n \t\treturn MBEDTLS_ERR_NET_INVALID_CONTEXT;\n \n-\tret \u003d write(fd, buf, len);\n+\tret \u003d (int)write(fd, buf, len);\n \tif (ret \u003e\u003d 0)\n \t\treturn ret;\n \ndiff --git a/lib/plat/unix/unix-spawn.c b/lib/plat/unix/unix-spawn.c\nindex cf4d200..c7300ac 100644\n--- a/lib/plat/unix/unix-spawn.c\n+++ b/lib/plat/unix/unix-spawn.c\n@@ -154,7 +154,7 @@ lws_spawn_reap(struct lws_spawn_piped *lsp)\n \t/* check if exited, do not reap yet */\n \n \tmemset(\u0026lsp-\u003esi, 0, sizeof(lsp-\u003esi));\n-\tn \u003d waitid(P_PID, lsp-\u003echild_pid, \u0026lsp-\u003esi, WEXITED | WNOHANG | WNOWAIT);\n+\tn \u003d waitid(P_PID, (id_t)lsp-\u003echild_pid, \u0026lsp-\u003esi, WEXITED | WNOHANG | WNOWAIT);\n \tif (n \u003c 0) {\n \t\tlwsl_info(\u0022%s: child %d still running\u005cn\u0022, __func__, lsp-\u003echild_pid);\n \t\treturn 0;\n@@ -205,14 +205,14 @@ lws_spawn_reap(struct lws_spawn_piped *lsp)\n \t\t/*\n \t\t * Cpu accounting in us\n \t\t */\n-\t\tlsp-\u003eaccounting[0] \u003d ((uint64_t)tms.tms_cstime * 1000000) / hz;\n-\t\tlsp-\u003eaccounting[1] \u003d ((uint64_t)tms.tms_cutime * 1000000) / hz;\n-\t\tlsp-\u003eaccounting[2] \u003d ((uint64_t)tms.tms_stime * 1000000) / hz;\n-\t\tlsp-\u003eaccounting[3] \u003d ((uint64_t)tms.tms_utime * 1000000) / hz;\n+\t\tlsp-\u003eaccounting[0] \u003d (lws_usec_t)((uint64_t)tms.tms_cstime * 1000000) / hz;\n+\t\tlsp-\u003eaccounting[1] \u003d (lws_usec_t)((uint64_t)tms.tms_cutime * 1000000) / hz;\n+\t\tlsp-\u003eaccounting[2] \u003d (lws_usec_t)((uint64_t)tms.tms_stime * 1000000) / hz;\n+\t\tlsp-\u003eaccounting[3] \u003d (lws_usec_t)((uint64_t)tms.tms_utime * 1000000) / hz;\n \t}\n \n \ttemp \u003d *lsp;\n-\tn \u003d waitid(P_PID, lsp-\u003echild_pid, \u0026temp.si, WEXITED | WNOHANG);\n+\tn \u003d waitid(P_PID, (id_t)lsp-\u003echild_pid, \u0026temp.si, WEXITED | WNOHANG);\n \ttemp.si.si_status \u0026\u003d 0xff; /* we use b8 + for flags */\n \tlwsl_info(\u0022%s: waitd says %d, process exit %d\u005cn\u0022,\n \t\t __func__, n, temp.si.si_status);\ndiff --git a/lib/plat/windows/windows-file.c b/lib/plat/windows/windows-file.c\nindex 3b9c146..5e2625a 100644\n--- a/lib/plat/windows/windows-file.c\n+++ b/lib/plat/windows/windows-file.c\n@@ -134,19 +134,19 @@ _lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount,\n \n int\n lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf,\n-\t\t\tint len)\n+\t\t\tsize_t len)\n {\n \tint n;\n \n-\tn \u003d write(fd, buf, len);\n+\tn \u003d (int)write(fd, buf, (unsigned int)len);\n \n \tlseek(fd, 0, SEEK_SET);\n \n-\treturn n !\u003d len;\n+\treturn (size_t)n !\u003d len;\n }\n \n int\n-lws_plat_write_file(const char *filename, void *buf, int len)\n+lws_plat_write_file(const char *filename, void *buf, size_t len)\n {\n \tint m, fd;\n \n@@ -155,20 +155,20 @@ lws_plat_write_file(const char *filename, void *buf, int len)\n \tif (fd \u003d\u003d -1)\n \t\treturn -1;\n \n-\tm \u003d write(fd, buf, len);\n+\tm \u003d (int)write(fd, buf, (unsigned int)len);\n \tclose(fd);\n \n-\treturn m !\u003d len;\n+\treturn (size_t)m !\u003d len;\n }\n \n int\n-lws_plat_read_file(const char *filename, void *buf, int len)\n+lws_plat_read_file(const char *filename, void *buf, size_t len)\n {\n \tint n, fd \u003d lws_open(filename, O_RDONLY);\n \tif (fd \u003d\u003d -1)\n \t\treturn -1;\n \n-\tn \u003d read(fd, buf, len);\n+\tn \u003d (int)read(fd, buf, (unsigned int)len);\n \tclose(fd);\n \n \treturn n;\ndiff --git a/lib/plat/windows/windows-sockets.c b/lib/plat/windows/windows-sockets.c\nindex 8196bda..6ff11a5 100644\n--- a/lib/plat/windows/windows-sockets.c\n+++ b/lib/plat/windows/windows-sockets.c\n@@ -228,7 +228,7 @@ lws_plat_change_pollfd(struct lws_context *context, struct lws *wsi,\n }\n \n const char *\n-lws_plat_inet_ntop(int af, const void *src, char *dst, int cnt)\n+lws_plat_inet_ntop(int af, const void *src, char *dst, socklen_t cnt)\n {\n \tWCHAR *buffer;\n \tsize_t bufferlen \u003d (size_t)cnt;\n@@ -343,8 +343,8 @@ lws_plat_ifname_to_hwaddr(int fd, const char *ifname, uint8_t *hwaddr, int len)\n }\n \n int\n-lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, int canned_len,\n-\t\t\t int n, int fd, const char *iface)\n+lws_plat_rawudp_broadcast(uint8_t *p, const uint8_t *canned, size_t canned_len,\n+\t\t\t size_t n, int fd, const char *iface)\n {\n \tlwsl_err(\u0022%s: UNIMPLEMENTED on this platform\u005cn\u0022, __func__);\n \ndiff --git a/lib/roles/cgi/cgi-server.c b/lib/roles/cgi/cgi-server.c\nindex 5d22714..0adf2c9 100644\n--- a/lib/roles/cgi/cgi-server.c\n+++ b/lib/roles/cgi/cgi-server.c\n@@ -65,7 +65,7 @@ urlencode(const char *in, int inlen, char *out, int outlen)\n \tif (out \u003e\u003d end - 4)\n \t\treturn -1;\n \n-\treturn out - start;\n+\treturn lws_ptr_diff(out, start);\n }\n \n static void\n@@ -145,7 +145,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \tcgi-\u003ecgi_list \u003d pt-\u003ehttp.cgi_list;\n \tpt-\u003ehttp.cgi_list \u003d cgi;\n \n-\tsum +\u003d lws_snprintf(sum, sumend - sum, \u0022%s \u0022, exec_array[0]);\n+\tsum +\u003d lws_snprintf(sum, lws_ptr_diff_size_t(sumend, sum), \u0022%s \u0022, exec_array[0]);\n \n \tif (0) {\n \t\tchar *pct \u003d lws_hdr_simple_ptr(wsi,\n@@ -161,7 +161,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \n \tif (lws_is_ssl(wsi)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTPS\u003dON\u0022);\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTPS\u003dON\u0022);\n \t\tp++;\n \t}\n \n@@ -205,17 +205,17 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t\tif (m \u003e\u003d 0) {\n \t\t\tenv_array[n++] \u003d p;\n \t\t\tif (m \u003c (int)LWS_ARRAY_SIZE(meths) - 1) {\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t \u0022REQUEST_METHOD\u003d%s\u0022,\n \t\t\t\t\t\t meth_names[m]);\n-\t\t\t\tsum +\u003d lws_snprintf(sum, sumend - sum, \u0022%s \u0022,\n+\t\t\t\tsum +\u003d lws_snprintf(sum, lws_ptr_diff_size_t(sumend, sum), \u0022%s \u0022,\n \t\t\t\t\t\t meth_names[m]);\n #if defined(LWS_ROLE_H2)\n \t\t\t} else {\n-\t\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t \u0022REQUEST_METHOD\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_COLON_METHOD));\n-\t\t\t\tsum +\u003d lws_snprintf(sum, sumend - sum, \u0022%s \u0022,\n+\t\t\t\tsum +\u003d lws_snprintf(sum, lws_ptr_diff_size_t(sumend, sum), \u0022%s \u0022,\n \t\t\t\t\tlws_hdr_simple_ptr(wsi,\n \t\t\t\t\t\t WSI_TOKEN_HTTP_COLON_METHOD));\n #endif\n@@ -224,11 +224,11 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t\t}\n \n \t\tif (uritok \u003e\u003d 0)\n-\t\t\tsum +\u003d lws_snprintf(sum, sumend - sum, \u0022%s \u0022,\n-\t\t\t\t\t lws_hdr_simple_ptr(wsi, uritok));\n+\t\t\tsum +\u003d lws_snprintf(sum, lws_ptr_diff_size_t(sumend, sum), \u0022%s \u0022,\n+\t\t\t\t\t lws_hdr_simple_ptr(wsi, (enum lws_token_indexes)uritok));\n \n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022QUERY_STRING\u003d\u0022);\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022QUERY_STRING\u003d\u0022);\n \t\t/* dump the individual URI Arg parameters */\n \t\tm \u003d 0;\n \t\twhile (script_uri_path_len \u003e\u003d 0) {\n@@ -241,7 +241,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t\t\t\t*p++ \u003d *t++;\n \t\t\tif (*t \u003d\u003d '\u003d')\n \t\t\t\t*p++ \u003d *t++;\n-\t\t\ti \u003d urlencode(t, i- (t - tok), p, end - p);\n+\t\t\ti \u003d urlencode(t, i - lws_ptr_diff(t, tok), p, lws_ptr_diff(end, p));\n \t\t\tif (i \u003e 0) {\n \t\t\t\tp +\u003d i;\n \t\t\t\t*p++ \u003d '\u0026';\n@@ -255,7 +255,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t\tif (uritok \u003e\u003d 0) {\n \t\t\tstrcpy(cgi_path, \u0022REQUEST_URI\u003d\u0022);\n \t\t\tc \u003d lws_hdr_copy(wsi, cgi_path + 12,\n-\t\t\t\t\t sizeof(cgi_path) - 12, uritok);\n+\t\t\t\t\t sizeof(cgi_path) - 12, (enum lws_token_indexes)uritok);\n \t\t\tif (c \u003c 0)\n \t\t\t\tgoto bail;\n \n@@ -263,11 +263,11 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t\t\tenv_array[n++] \u003d cgi_path;\n \t\t}\n \n-\t\tsum +\u003d lws_snprintf(sum, sumend - sum, \u0022%s\u0022, env_array[n - 1]);\n+\t\tsum +\u003d lws_snprintf(sum, lws_ptr_diff_size_t(sumend, sum), \u0022%s\u0022, env_array[n - 1]);\n \n \t\tif (script_uri_path_len \u003e\u003d 0) {\n \t\t\tenv_array[n++] \u003d p;\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022PATH_INFO\u003d%s\u0022,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022PATH_INFO\u003d%s\u0022,\n \t\t\t\t cgi_path + 12 + script_uri_path_len);\n \t\t\tp++;\n \t\t}\n@@ -276,7 +276,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_REFERER)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_REFERER\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_REFERER\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_REFERER));\n \t\tp++;\n \t}\n@@ -284,15 +284,15 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HOST)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_HOST\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_HOST\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST));\n \t\tp++;\n \t}\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_COOKIE)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_COOKIE\u003d\u0022);\n-\t\tm \u003d lws_hdr_copy(wsi, p, end - p, WSI_TOKEN_HTTP_COOKIE);\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_COOKIE\u003d\u0022);\n+\t\tm \u003d lws_hdr_copy(wsi, p, lws_ptr_diff(end, p), WSI_TOKEN_HTTP_COOKIE);\n \t\tif (m \u003e 0)\n \t\t\tp +\u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_COOKIE);\n \t\t*p++ \u003d '\u005c0';\n@@ -301,7 +301,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_USER_AGENT)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_USER_AGENT\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_USER_AGENT\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_USER_AGENT));\n \t\tp++;\n \t}\n@@ -309,21 +309,21 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_ENCODING)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_CONTENT_ENCODING\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_CONTENT_ENCODING\u003d%s\u0022,\n \t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_ENCODING));\n \t\tp++;\n \t}\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_ACCEPT)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_ACCEPT\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_ACCEPT\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_ACCEPT));\n \t\tp++;\n \t}\n \tif (script_uri_path_len \u003e\u003d 0 \u0026\u0026\n \t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_ACCEPT_ENCODING)) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022HTTP_ACCEPT_ENCODING\u003d%s\u0022,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022HTTP_ACCEPT_ENCODING\u003d%s\u0022,\n \t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_ACCEPT_ENCODING));\n \t\tp++;\n \t}\n@@ -331,37 +331,37 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t uritok \u003d\u003d WSI_TOKEN_POST_URI) {\n \t\tif (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE)) {\n \t\t\tenv_array[n++] \u003d p;\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022CONTENT_TYPE\u003d%s\u0022,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022CONTENT_TYPE\u003d%s\u0022,\n \t\t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE));\n \t\t\tp++;\n \t\t}\n \t\tif (!wsi-\u003ehttp.cgi-\u003egzip_inflate \u0026\u0026\n \t\t lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH)) {\n \t\t\tenv_array[n++] \u003d p;\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022CONTENT_LENGTH\u003d%s\u0022,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022CONTENT_LENGTH\u003d%s\u0022,\n \t\t\t\t\t lws_hdr_simple_ptr(wsi,\n \t\t\t\t\t WSI_TOKEN_HTTP_CONTENT_LENGTH));\n \t\t\tp++;\n \t\t}\n \n \t\tif (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH))\n-\t\t\twsi-\u003ehttp.cgi-\u003epost_in_expected \u003d\n+\t\t\twsi-\u003ehttp.cgi-\u003epost_in_expected \u003d (lws_filepos_t)\n \t\t\t\tatoll(lws_hdr_simple_ptr(wsi,\n \t\t\t\t\t\tWSI_TOKEN_HTTP_CONTENT_LENGTH));\n \t}\n \n \n \tenv_array[n++] \u003d p;\n-\tp +\u003d lws_snprintf(p, end - p, \u0022PATH\u003d/bin:/usr/bin:/usr/local/bin:/var/www/cgi-bin\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022PATH\u003d/bin:/usr/bin:/usr/local/bin:/var/www/cgi-bin\u0022);\n \tp++;\n \n \tenv_array[n++] \u003d p;\n-\tp +\u003d lws_snprintf(p, end - p, \u0022SCRIPT_PATH\u003d%s\u0022, exec_array[0]);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022SCRIPT_PATH\u003d%s\u0022, exec_array[0]);\n \tp++;\n \n \twhile (mp_cgienv) {\n \t\tenv_array[n++] \u003d p;\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s\u003d%s\u0022, mp_cgienv-\u003ename,\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022%s\u003d%s\u0022, mp_cgienv-\u003ename,\n \t\t\t mp_cgienv-\u003evalue);\n \t\tif (!strcmp(mp_cgienv-\u003ename, \u0022GIT_PROJECT_ROOT\u0022)) {\n \t\t\twsi-\u003ehttp.cgi-\u003eimplied_chunked \u003d 1;\n@@ -374,7 +374,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t}\n \n \tenv_array[n++] \u003d p;\n-\tp +\u003d lws_snprintf(p, end - p, \u0022SERVER_SOFTWARE\u003dlws\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022SERVER_SOFTWARE\u003dlws\u0022);\n \tp++;\n \n \tenv_array[n] \u003d NULL;\n@@ -419,7 +419,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array,\n \t/* inform cgi owner of the child PID */\n \tn \u003d user_callback_handle_rxflow(wsi-\u003ea.protocol-\u003ecallback, wsi,\n \t\t\t\t LWS_CALLBACK_CGI_PROCESS_ATTACH,\n-\t\t\t\t wsi-\u003euser_space, NULL, cgi-\u003elsp-\u003echild_pid);\n+\t\t\t\t wsi-\u003euser_space, NULL, (unsigned int)cgi-\u003elsp-\u003echild_pid);\n \t(void)n;\n \n \treturn 0;\n@@ -472,7 +472,7 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)\n \t\t\tlwsl_debug(\u0022LHCS_RESPONSE: issuing response %d\u005cn\u0022,\n \t\t\t\t wsi-\u003ehttp.cgi-\u003eresponse_code);\n \t\t\tif (lws_add_http_header_status(wsi,\n-\t\t\t\t\t\t wsi-\u003ehttp.cgi-\u003eresponse_code,\n+\t\t\t\t\t\t (unsigned int)wsi-\u003ehttp.cgi-\u003eresponse_code,\n \t\t\t\t\t\t \u0026p, end))\n \t\t\t\treturn 1;\n \t\t\tif (!wsi-\u003ehttp.cgi-\u003eexplicitly_chunked \u0026\u0026\n@@ -487,7 +487,7 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)\n \t\t\t\t\t\t(unsigned char *)\u0022close\u0022, 5,\n \t\t\t\t\t\t\u0026p, end))\n \t\t\t\t\treturn 1;\n-\t\t\tn \u003d lws_write(wsi, start, p - start,\n+\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n \t\t\t\t LWS_WRITE_HTTP_HEADERS | LWS_WRITE_NO_FIN);\n \n \t\t\t/*\n@@ -522,8 +522,8 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)\n \t\t\t\t\t\treturn -1;\n \t\t\t\t\tif (*p !\u003d ':') {\n \t\t\t\t\t\tif (*p \u003e\u003d 'A' \u0026\u0026 *p \u003c\u003d 'Z')\n-\t\t\t\t\t\t\t*name++ \u003d (*p++) +\n-\t\t\t\t\t\t\t\t ('a' - 'A');\n+\t\t\t\t\t\t\t*name++ \u003d (unsigned char)((*p++) +\n+\t\t\t\t\t\t\t\t ('a' - 'A'));\n \t\t\t\t\t\telse\n \t\t\t\t\t\t\t*name++ \u003d *p++;\n \t\t\t\t\t} else {\n@@ -561,7 +561,7 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)\n \t\t\t\t\t\t\t\t buf, value);\n \t\t\t\t\t\t\tif (\n \t\t\t\t\tlws_add_http_header_by_name(wsi, buf,\n-\t\t\t\t\t(unsigned char *)value, name - value,\n+\t\t\t\t\t(unsigned char *)value, lws_ptr_diff(name, value),\n \t\t\t\t\t(unsigned char **)\u0026wsi-\u003ehttp.cgi-\u003eheaders_pos,\n \t\t\t\t\t(unsigned char *)wsi-\u003ehttp.cgi-\u003eheaders_end))\n \t\t\t\t\t\t\t\treturn 1;\n@@ -592,8 +592,8 @@ post_hpack_recode:\n \n \t\tcase LHCS_DUMP_HEADERS:\n \n-\t\t\tn \u003d wsi-\u003ehttp.cgi-\u003eheaders_pos -\n-\t\t\t wsi-\u003ehttp.cgi-\u003eheaders_dumped;\n+\t\t\tn \u003d (int)(wsi-\u003ehttp.cgi-\u003eheaders_pos -\n+\t\t\t wsi-\u003ehttp.cgi-\u003eheaders_dumped);\n \t\t\tif (n \u003e 512)\n \t\t\t\tn \u003d 512;\n \n@@ -608,7 +608,7 @@ post_hpack_recode:\n \n \t\t\tm \u003d lws_write(wsi,\n \t\t\t\t (unsigned char *)wsi-\u003ehttp.cgi-\u003eheaders_dumped,\n-\t\t\t\t n, cmd);\n+\t\t\t\t (unsigned int)n, (enum lws_write_protocol)cmd);\n \t\t\tif (m \u003c 0) {\n \t\t\t\tlwsl_debug(\u0022%s: write says %d\u005cn\u0022, __func__, m);\n \t\t\t\treturn -1;\n@@ -645,7 +645,7 @@ post_hpack_recode:\n \t\t\tn \u003d 2048;\n \t\t\tif (wsi-\u003emux_substream)\n \t\t\t\tn \u003d 4096;\n-\t\t\twsi-\u003ehttp.cgi-\u003eheaders_buf \u003d lws_malloc(n + LWS_PRE,\n+\t\t\twsi-\u003ehttp.cgi-\u003eheaders_buf \u003d lws_malloc((unsigned int)n + LWS_PRE,\n \t\t\t\t\t\t\t \u0022cgi hdr buf\u0022);\n \t\t\tif (!wsi-\u003ehttp.cgi-\u003eheaders_buf) {\n \t\t\t\tlwsl_err(\u0022OOM\u005cn\u0022);\n@@ -669,7 +669,7 @@ post_hpack_recode:\n \t\tn \u003d lws_get_socket_fd(wsi-\u003ehttp.cgi-\u003elsp-\u003estdwsi[LWS_STDOUT]);\n \t\tif (n \u003c 0)\n \t\t\treturn -1;\n-\t\tn \u003d read(n, \u0026c, 1);\n+\t\tn \u003d (int)read(n, \u0026c, 1);\n \t\tif (n \u003c 0) {\n \t\t\tif (errno !\u003d EAGAIN) {\n \t\t\t\tlwsl_debug(\u0022%s: read says %d\u005cn\u0022, __func__, n);\n@@ -708,11 +708,11 @@ post_hpack_recode:\n \t\t\t\t\tswitch (n) {\n \t\t\t\t\tcase SIGNIFICANT_HDR_CONTENT_LENGTH:\n \t\t\t\t\t\twsi-\u003ehttp.cgi-\u003econtent_length \u003d\n-\t\t\t\t\t\t\tatoll(wsi-\u003ehttp.cgi-\u003el);\n+\t\t\t\t\t\t\t(lws_filepos_t)atoll(wsi-\u003ehttp.cgi-\u003el);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase SIGNIFICANT_HDR_STATUS:\n \t\t\t\t\t\twsi-\u003ehttp.cgi-\u003eresponse_code \u003d\n-\t\t\t\t\t\t\tatol(wsi-\u003ehttp.cgi-\u003el);\n+\t\t\t\t\t\t\tatoi(wsi-\u003ehttp.cgi-\u003el);\n \t\t\t\t\t\tlwsl_debug(\u0022Status set to %d\u005cn\u0022,\n \t\t\t\t\t\t wsi-\u003ehttp.cgi-\u003eresponse_code);\n \t\t\t\t\t\tbreak;\n@@ -735,7 +735,7 @@ post_hpack_recode:\n \t\t\t\twsi-\u003ehdr_state \u003d LCHS_SINGLE_0A;\n \t\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d '\u005cx0d';\n \t\t\t}\n-\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d c;\n+\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d (unsigned char)c;\n \t\t\tif (c \u003d\u003d '\u005cx0d')\n \t\t\t\twsi-\u003ehdr_state \u003d LCHS_LF1;\n \n@@ -756,7 +756,7 @@ post_hpack_recode:\n \t\t\t}\n \t\t\tbreak;\n \t\tcase LCHS_LF1:\n-\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d c;\n+\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d (unsigned char)c;\n \t\t\tif (c \u003d\u003d '\u005cx0a') {\n \t\t\t\twsi-\u003ehdr_state \u003d LCHS_CR2;\n \t\t\t\tbreak;\n@@ -796,7 +796,7 @@ post_hpack_recode:\n \t\t\t\t/* we got \u005cr\u005cn\u005cr[^\u005cn]... unreasonable */\n \t\t\t\treturn -1;\n \t\t\t/* we got \u005cx0anext header, it's reasonable */\n-\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d c;\n+\t\t\t*wsi-\u003ehttp.cgi-\u003eheaders_pos++ \u003d (unsigned char)c;\n \t\t\twsi-\u003ehdr_state \u003d LCHS_HEADER;\n \t\t\tfor (n \u003d 0; n \u003c SIGNIFICANT_HDR_COUNT; n++)\n \t\t\t\twsi-\u003ehttp.cgi-\u003ematch[n] \u003d 0;\n@@ -820,7 +820,7 @@ agin:\n \tn \u003d lws_get_socket_fd(wsi-\u003ehttp.cgi-\u003elsp-\u003estdwsi[LWS_STDOUT]);\n \tif (n \u003c 0)\n \t\treturn -1;\n-\tn \u003d read(n, start, sizeof(buf) - LWS_PRE);\n+\tn \u003d (int)read(n, start, sizeof(buf) - LWS_PRE);\n \n \tif (n \u003c 0 \u0026\u0026 errno !\u003d EAGAIN) {\n \t\tlwsl_debug(\u0022%s: stdout read says %d\u005cn\u0022, __func__, n);\n@@ -833,8 +833,8 @@ agin:\n \t\t\tchar chdr[LWS_HTTP_CHUNK_HDR_SIZE];\n \t\t\tm \u003d lws_snprintf(chdr, LWS_HTTP_CHUNK_HDR_SIZE - 3,\n \t\t\t\t\t \u0022%X\u005cx0d\u005cx0a\u0022, n);\n-\t\t\tmemmove(start + m, start, n);\n-\t\t\tmemcpy(start, chdr, m);\n+\t\t\tmemmove(start + m, start, (unsigned int)n);\n+\t\t\tmemcpy(start, chdr, (unsigned int)m);\n \t\t\tmemcpy(start + m + n, \u0022\u005cx0d\u005cx0a\u0022, 2);\n \t\t\tn +\u003d m + 2;\n \t\t}\n@@ -854,17 +854,17 @@ agin:\n #endif\n \n \t\tcmd \u003d LWS_WRITE_HTTP;\n-\t\tif (wsi-\u003ehttp.cgi-\u003econtent_length_seen + n \u003d\u003d\n+\t\tif (wsi-\u003ehttp.cgi-\u003econtent_length_seen + (unsigned int)n \u003d\u003d\n \t\t\t\t\t\twsi-\u003ehttp.cgi-\u003econtent_length)\n \t\t\tcmd \u003d LWS_WRITE_HTTP_FINAL;\n \n-\t\tm \u003d lws_write(wsi, (unsigned char *)start, n, cmd);\n+\t\tm \u003d lws_write(wsi, (unsigned char *)start, (unsigned int)n, (enum lws_write_protocol)cmd);\n \t\t//lwsl_notice(\u0022write %d\u005cn\u0022, m);\n \t\tif (m \u003c 0) {\n \t\t\tlwsl_debug(\u0022%s: stdout write says %d\u005cn\u0022, __func__, m);\n \t\t\treturn -1;\n \t\t}\n-\t\twsi-\u003ehttp.cgi-\u003econtent_length_seen +\u003d n;\n+\t\twsi-\u003ehttp.cgi-\u003econtent_length_seen +\u003d (unsigned int)n;\n \t} else {\n \n \t\tif (!wsi-\u003emux_substream \u0026\u0026 m) {\n@@ -919,7 +919,7 @@ lws_cgi_kill(struct lws *wsi)\n \t\tn \u003d user_callback_handle_rxflow(wsi-\u003ea.protocol-\u003ecallback, wsi,\n \t\t\t\t\t\tLWS_CALLBACK_CGI_TERMINATED,\n \t\t\t\t\t\twsi-\u003euser_space, (void *)\u0026args,\n-\t\t\t\t\t\tpid);\n+\t\t\t\t\t\t(unsigned int)pid);\n \t\tif (n \u0026\u0026 !m)\n \t\t\tlws_close_free_wsi(wsi, 0, \u0022lws_cgi_kill\u0022);\n \t}\ndiff --git a/lib/roles/cgi/ops-cgi.c b/lib/roles/cgi/ops-cgi.c\nindex a5d63b6..131fc86 100644\n--- a/lib/roles/cgi/ops-cgi.c\n+++ b/lib/roles/cgi/ops-cgi.c\n@@ -69,7 +69,7 @@ rops_handle_POLLIN_cgi(struct lws_context_per_thread *pt, struct lws *wsi,\n \n \targs.ch \u003d wsi-\u003elsp_channel;\n \targs.stdwsi \u003d \u0026wsi-\u003eparent-\u003ehttp.cgi-\u003elsp-\u003estdwsi[0];\n-\targs.hdr_state \u003d wsi-\u003ehdr_state;\n+\targs.hdr_state \u003d (enum lws_cgi_hdr_state)wsi-\u003ehdr_state;\n \n \tlwsl_debug(\u0022CGI LWS_STDOUT %p wsistate 0x%x\u005cn\u0022,\n \t\t wsi-\u003eparent, wsi-\u003ewsistate);\ndiff --git a/lib/roles/dbus/dbus.c b/lib/roles/dbus/dbus.c\nindex d43fc21..2832fac 100644\n--- a/lib/roles/dbus/dbus.c\n+++ b/lib/roles/dbus/dbus.c\n@@ -181,7 +181,7 @@ lws_dbus_add_watch(DBusWatch *w, void *data)\n \tlwsl_info(\u0022%s: %p, fd %d, data %p, fl %d\u005cn\u0022, __func__, w,\n \t\t dbus_watch_get_unix_fd(w), data, lws_flags);\n \n-\t__lws_change_pollfd(wsi, 0, lws_flags);\n+\t__lws_change_pollfd(wsi, 0, (int)lws_flags);\n \n \tlws_pt_unlock(pt);\n \tlws_context_unlock(pt-\u003econtext);\n@@ -251,7 +251,7 @@ lws_dbus_remove_watch(DBusWatch *w, void *data)\n \t\t __func__, w, dbus_watch_get_unix_fd(w),\n \t\t data, lws_flags);\n \n-\t__lws_change_pollfd(wsi, lws_flags, 0);\n+\t__lws_change_pollfd(wsi, (int)lws_flags, 0);\n \n bail:\n \tlws_pt_unlock(pt);\ndiff --git a/lib/roles/h1/ops-h1.c b/lib/roles/h1/ops-h1.c\nindex 01437c4..157a89d 100644\n--- a/lib/roles/h1/ops-h1.c\n+++ b/lib/roles/h1/ops-h1.c\n@@ -96,7 +96,7 @@ lws_read_h1(struct lws *wsi, unsigned char *buf, lws_filepos_t len)\n \t\t * Figure out how much was read, so that we can proceed\n \t\t * appropriately:\n \t\t */\n-\t\tlen -\u003d (buf - last_char);\n+\t\tlen -\u003d (unsigned int)lws_ptr_diff(buf, last_char);\n \n \t\tif (!wsi-\u003ehdr_parsing_completed)\n \t\t\t/* More header content on the way */\n@@ -150,10 +150,10 @@ http_postbody:\n \t\t\t\targs.ch \u003d LWS_STDIN;\n \t\t\t\targs.stdwsi \u003d \u0026wsi-\u003ehttp.cgi-\u003elsp-\u003estdwsi[0];\n \t\t\t\targs.data \u003d buf;\n-\t\t\t\targs.len \u003d body_chunk_len;\n+\t\t\t\targs.len \u003d (int)(unsigned int)body_chunk_len;\n \n \t\t\t\t/* returns how much used */\n-\t\t\t\tn \u003d user_callback_handle_rxflow(\n+\t\t\t\tn \u003d (unsigned int)user_callback_handle_rxflow(\n \t\t\t\t\twsi-\u003ea.protocol-\u003ecallback,\n \t\t\t\t\twsi, LWS_CALLBACK_CGI_STDIN_DATA,\n \t\t\t\t\twsi-\u003euser_space,\n@@ -199,7 +199,7 @@ http_postbody:\n \t\t\tif (wsi-\u003ehttp.rx_content_remain) {\n \t\t\t\tlws_set_timeout(wsi,\n \t\t\t\t\t\tPENDING_TIMEOUT_HTTP_CONTENT,\n-\t\t\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\t/* he sent all the content in time */\n@@ -211,7 +211,7 @@ postbody_completion:\n \t\t\t */\n \t\t\tif (wsi-\u003ehttp.cgi)\n \t\t\t\tlws_set_timeout(wsi, PENDING_TIMEOUT_CGI,\n-\t\t\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \t\t\telse\n #endif\n \t\t\tlws_set_timeout(wsi, NO_PENDING_TIMEOUT, 0);\n@@ -235,7 +235,7 @@ postbody_completion:\n \t\t\t\tlwsl_info(\u0022HTTP_BODY_COMPLETION: %s (%s)\u005cn\u0022,\n \t\t\t\t\t lws_wsi_tag(wsi), wsi-\u003ea.protocol-\u003ename);\n \n-\t\t\t\tn \u003d wsi-\u003ea.protocol-\u003ecallback(wsi,\n+\t\t\t\tn \u003d (unsigned int)wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\t\tLWS_CALLBACK_HTTP_BODY_COMPLETION,\n \t\t\t\t\twsi-\u003euser_space, NULL, 0);\n \t\t\t\tif (n) {\n@@ -438,10 +438,10 @@ lws_h1_server_socket_service(struct lws *wsi, struct lws_pollfd *pollfd)\n \t\t */\n #if defined(LWS_ROLE_H2)\n \t\tif (lwsi_role_h2(wsi) \u0026\u0026 lwsi_state(wsi) !\u003d LRS_BODY)\n-\t\t\tn \u003d lws_read_h2(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_read_h2(wsi, ebuf.token, (unsigned int)ebuf.len);\n \t\telse\n #endif\n-\t\t\tn \u003d lws_read_h1(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_read_h1(wsi, ebuf.token, (unsigned int)ebuf.len);\n \t\tif (n \u003c 0) /* we closed wsi */\n \t\t\treturn LWS_HPI_RET_WSI_ALREADY_DIED;\n \n@@ -782,7 +782,7 @@ rops_handle_POLLOUT_h1(struct lws *wsi)\n #endif\n \t\t\t\tlwsi_set_state(wsi, LRS_WAITING_SERVER_REPLY);\n \t\t\t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE,\n-\t\t\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \t\t\t}\n \t\t}\n #endif\n@@ -824,7 +824,7 @@ rops_write_role_protocol_h1(struct lws *wsi, unsigned char *buf, size_t len,\n \t\t\t (int)o, (int)*wp, wsi-\u003ehttp.comp_ctx.may_have_more);\n \n \t\tif (!o)\n-\t\t\treturn olen;\n+\t\t\treturn (int)olen;\n \n \t\tif (wsi-\u003ehttp.comp_ctx.chunking) {\n \t\t\tchar c[LWS_HTTP_CHUNK_HDR_MAX_SIZE + 2];\n@@ -835,8 +835,8 @@ rops_write_role_protocol_h1(struct lws *wsi, unsigned char *buf, size_t len,\n \t\t\tn \u003d lws_snprintf(c, sizeof(c), \u0022%X\u005cx0d\u005cx0a\u0022, (int)o);\n \t\t\tlwsl_info(\u0022%s: chunk (%d) %s\u0022, __func__, (int)o, c);\n \t\t\tout -\u003d n;\n-\t\t\to +\u003d n;\n-\t\t\tmemcpy(out, c, n);\n+\t\t\to +\u003d (unsigned int)n;\n+\t\t\tmemcpy(out, c, (unsigned int)n);\n \t\t\tout[o++] \u003d '\u005cx0d';\n \t\t\tout[o++] \u003d '\u005cx0a';\n \n@@ -974,7 +974,7 @@ rops_adoption_bind_h1(struct lws *wsi, int type, const char *vh_prot_name)\n \n \t/* the transport is accepted... give him time to negotiate */\n \tlws_set_timeout(wsi, PENDING_TIMEOUT_ESTABLISH_WITH_SERVER,\n-\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \treturn 1; /* bound */\n }\ndiff --git a/lib/roles/h2/hpack.c b/lib/roles/h2/hpack.c\nindex eff8a27..2184707 100644\n--- a/lib/roles/h2/hpack.c\n+++ b/lib/roles/h2/hpack.c\n@@ -280,10 +280,10 @@ static int lws_frag_append(struct lws *wsi, unsigned char c)\n {\n \tstruct allocated_headers *ah \u003d wsi-\u003ehttp.ah;\n \n-\tah-\u003edata[ah-\u003epos++] \u003d c;\n+\tah-\u003edata[ah-\u003epos++] \u003d (char)c;\n \tah-\u003efrags[ah-\u003enfrag].len++;\n \n-\treturn (int)ah-\u003epos \u003e\u003d wsi-\u003ea.context-\u003emax_http_header_data;\n+\treturn (unsigned int)ah-\u003epos \u003e\u003d wsi-\u003ea.context-\u003emax_http_header_data;\n }\n \n static int lws_frag_end(struct lws *wsi)\n@@ -328,13 +328,13 @@ static void lws_dump_header(struct lws *wsi, int hdr)\n \n \t(void)p;\n \n-\tlen \u003d lws_hdr_copy(wsi, s, sizeof(s) - 1, hdr);\n+\tlen \u003d lws_hdr_copy(wsi, s, sizeof(s) - 1, (enum lws_token_indexes)hdr);\n \tif (len \u003c 0)\n \t\tstrcpy(s, \u0022(too big to show)\u0022);\n \telse\n \t\ts[len] \u003d '\u005c0';\n #if defined(_DEBUG)\n-\tp \u003d lws_token_to_string(hdr);\n+\tp \u003d lws_token_to_string((enum lws_token_indexes)hdr);\n \tlwsl_header(\u0022 hdr tok %d (%s) \u003d '%s' (len %d)\u005cn\u0022, hdr,\n \t\t p ? (char *)p : (char *)\u0022null\u0022, s, len);\n #endif\n@@ -464,8 +464,8 @@ static void\n lws_dynamic_free(struct hpack_dynamic_table *dyn, int idx)\n {\n \tlwsl_header(\u0022freeing %d for reuse\u005cn\u0022, idx);\n-\tdyn-\u003evirtual_payload_usage -\u003d dyn-\u003eentries[idx].value_len +\n-\t\t\t\tdyn-\u003eentries[idx].hdr_len;\n+\tdyn-\u003evirtual_payload_usage \u003d (uint32_t)((unsigned int)dyn-\u003evirtual_payload_usage - (unsigned int)(dyn-\u003eentries[idx].value_len +\n+\t\t\t\tdyn-\u003eentries[idx].hdr_len));\n \tlws_free_set_NULL(dyn-\u003eentries[idx].value);\n \tdyn-\u003eentries[idx].value \u003d NULL;\n \tdyn-\u003eentries[idx].value_len \u003d 0;\n@@ -490,7 +490,7 @@ lws_dynamic_free(struct hpack_dynamic_table *dyn, int idx)\n \n static int\n lws_dynamic_token_insert(struct lws *wsi, int hdr_len,\n-\t\t\t int lws_hdr_index, char *arg, int len)\n+\t\t\t int lws_hdr_index, char *arg, size_t len)\n {\n \tstruct hpack_dynamic_table *dyn;\n \tint new_index;\n@@ -524,7 +524,7 @@ lws_dynamic_token_insert(struct lws *wsi, int hdr_len,\n \n \twhile (dyn-\u003evirtual_payload_usage \u0026\u0026\n \t dyn-\u003eused_entries \u0026\u0026\n-\t dyn-\u003evirtual_payload_usage + hdr_len + len \u003e\n+\t dyn-\u003evirtual_payload_usage + (unsigned int)hdr_len + len \u003e\n \t\t\t\tdyn-\u003evirtual_payload_max + 1024) {\n \t\tint n \u003d lws_safe_modulo(dyn-\u003epos - dyn-\u003eused_entries,\n \t\t\t\t\t\tdyn-\u003enum_entries);\n@@ -548,21 +548,22 @@ lws_dynamic_token_insert(struct lws *wsi, int hdr_len,\n \n \t\tmemcpy(dyn-\u003eentries[new_index].value, arg, len);\n \t\tdyn-\u003eentries[new_index].value[len] \u003d '\u005c0';\n-\t\tdyn-\u003eentries[new_index].value_len \u003d len;\n+\t\tdyn-\u003eentries[new_index].value_len \u003d (uint16_t)len;\n \t} else\n \t\tdyn-\u003eentries[new_index].value \u003d NULL;\n \n-\tdyn-\u003eentries[new_index].lws_hdr_idx \u003d lws_hdr_index;\n-\tdyn-\u003eentries[new_index].hdr_len \u003d hdr_len;\n+\tdyn-\u003eentries[new_index].lws_hdr_idx \u003d (uint16_t)lws_hdr_index;\n+\tdyn-\u003eentries[new_index].hdr_len \u003d (uint16_t)hdr_len;\n \n-\tdyn-\u003evirtual_payload_usage +\u003d hdr_len + len;\n+\tdyn-\u003evirtual_payload_usage \u003d (uint32_t)(dyn-\u003evirtual_payload_usage +\n+\t\t\t\t\t(unsigned int)hdr_len + len);\n \n \tlwsl_info(\u0022%s: index %ld: lws_hdr_index 0x%x, hdr len %d, '%s' len %d\u005cn\u0022,\n \t\t __func__, (long)LWS_ARRAY_SIZE(static_token),\n \t\t lws_hdr_index, hdr_len, dyn-\u003eentries[new_index].value ?\n-\t\t\t\t dyn-\u003eentries[new_index].value : \u0022null\u0022, len);\n+\t\t\t\t dyn-\u003eentries[new_index].value : \u0022null\u0022, (int)len);\n \n-\tdyn-\u003epos \u003d lws_safe_modulo(dyn-\u003epos + 1, dyn-\u003enum_entries);\n+\tdyn-\u003epos \u003d (uint16_t)lws_safe_modulo(dyn-\u003epos + 1, dyn-\u003enum_entries);\n \n \tlws_h2_dynamic_table_dump(wsi);\n \n@@ -620,10 +621,10 @@ lws_hpack_dynamic_size(struct lws *wsi, int size)\n \t\t\tgoto bail;\n \t\t}\n \n-\t\tsize \u003d nwsi-\u003ea.vhost-\u003eh2.set.s[H2SET_HEADER_TABLE_SIZE];\n+\t\tsize \u003d (int)nwsi-\u003ea.vhost-\u003eh2.set.s[H2SET_HEADER_TABLE_SIZE];\n \t}\n \n-\tdyn-\u003evirtual_payload_max \u003d size;\n+\tdyn-\u003evirtual_payload_max \u003d (uint32_t)size;\n \n \tsize \u003d size / 8;\n \tmin \u003d size;\n@@ -638,7 +639,7 @@ lws_hpack_dynamic_size(struct lws *wsi, int size)\n \n \t// lwsl_notice(\u0022dte requested size %d\u005cn\u0022, size);\n \n-\tdte \u003d lws_zalloc(sizeof(*dte) * (size + 1), \u0022dynamic table entries\u0022);\n+\tdte \u003d lws_zalloc(sizeof(*dte) * (unsigned int)(size + 1), \u0022dynamic table entries\u0022);\n \tif (!dte)\n \t\tgoto bail;\n \n@@ -666,10 +667,10 @@ lws_hpack_dynamic_size(struct lws *wsi, int size)\n \t}\n \n \tdyn-\u003eentries \u003d dte;\n-\tdyn-\u003enum_entries \u003d size;\n-\tdyn-\u003eused_entries \u003d min;\n+\tdyn-\u003enum_entries \u003d (uint16_t)size;\n+\tdyn-\u003eused_entries \u003d (uint16_t)min;\n \tif (size)\n-\t\tdyn-\u003epos \u003d lws_safe_modulo(min, size);\n+\t\tdyn-\u003epos \u003d (uint16_t)lws_safe_modulo(min, size);\n \telse\n \t\tdyn-\u003epos \u003d 0;\n \n@@ -730,7 +731,7 @@ lws_hpack_use_idx_hdr(struct lws *wsi, int idx, int known_token)\n \t\t\t tok);\n \t} else\n \t\tlwsl_header(\u0022writing indexed hdr %d (tok %d '%s')\u005cn\u0022, idx, tok,\n-\t\t\t\tlws_token_to_string(tok));\n+\t\t\t\tlws_token_to_string((enum lws_token_indexes)tok));\n \n \tif (tok \u003d\u003d LWS_HPACK_IGNORE_ENTRY)\n \t\treturn 0;\n@@ -746,7 +747,7 @@ lws_hpack_use_idx_hdr(struct lws *wsi, int idx, int known_token)\n \n \tif (p)\n \t\twhile (*p \u0026\u0026 len--)\n-\t\t\tif (lws_frag_append(wsi, *p++))\n+\t\t\tif (lws_frag_append(wsi, (unsigned char)*p++))\n \t\t\t\treturn 1;\n \n \tif (lws_frag_end(wsi))\n@@ -878,7 +879,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)\n \t\t\t\t\treturn 1;\n \t\t\t}\n \n-\t\t\tm \u003d lws_token_from_index(wsi, h2n-\u003ehdr_idx,\n+\t\t\tm \u003d lws_token_from_index(wsi, (int)h2n-\u003ehdr_idx,\n \t\t\t\t\t\t NULL, NULL, NULL);\n \t\t\tif (lws_hpack_handle_pseudo_rules(nwsi, wsi, m))\n \t\t\t\treturn 1;\n@@ -983,16 +984,16 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\th2n-\u003elast_action_dyntable_resize \u003d 1;\n-\t\t\tif (lws_hpack_dynamic_size(wsi, h2n-\u003ehpack_len))\n+\t\t\tif (lws_hpack_dynamic_size(wsi, (int)h2n-\u003ehpack_len))\n \t\t\t\treturn 1;\n \t\t\tbreak;\n \t\t}\n \t\tbreak;\n \n \tcase HPKS_IDX_EXT:\n-\t\th2n-\u003ehpack_len \u003d h2n-\u003ehpack_len |\n-\t\t\t\t ((c \u0026 0x7f) \u003c\u003c h2n-\u003eext_count);\n-\t\th2n-\u003eext_count +\u003d 7;\n+\t\th2n-\u003ehpack_len \u003d (uint32_t)((unsigned int)h2n-\u003ehpack_len |\n+\t\t\t\t(unsigned int)((c \u0026 0x7f) \u003c\u003c h2n-\u003eext_count));\n+\t\th2n-\u003eext_count \u003d (uint8_t)(h2n-\u003eext_count + 7);\n \t\tif (c \u0026 0x80) /* extended int not complete yet */\n \t\t\tbreak;\n \n@@ -1002,8 +1003,8 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)\n \n \t\tswitch (h2n-\u003ehpack_type) {\n \t\tcase HPKT_INDEXED_HDR_7:\n-\t\t\tif (lws_hpack_use_idx_hdr(wsi, h2n-\u003ehpack_len,\n-\t\t\t\t\t\t h2n-\u003ehdr_idx)) {\n+\t\t\tif (lws_hpack_use_idx_hdr(wsi, (int)h2n-\u003ehpack_len,\n+\t\t\t\t\t\t (int)h2n-\u003ehdr_idx)) {\n \t\t\t\tlwsl_notice(\u0022%s: hd7 use fail\u005cn\u0022, __func__);\n \t\t\t\treturn 1;\n \t\t\t}\n@@ -1012,7 +1013,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)\n \n \t\tcase HPKT_SIZE_5:\n \t\t\th2n-\u003elast_action_dyntable_resize \u003d 1;\n-\t\t\tif (lws_hpack_dynamic_size(wsi, h2n-\u003ehpack_len))\n+\t\t\tif (lws_hpack_dynamic_size(wsi, (int)h2n-\u003ehpack_len))\n \t\t\t\treturn 1;\n \t\t\th2n-\u003ehpack \u003d HPKS_TYPE;\n \t\t\tbreak;\n@@ -1064,11 +1065,11 @@ pre_data:\n \t\t\tn \u003d ah-\u003eparser_state;\n \t\t\tif (n \u003d\u003d 255) {\n \t\t\t\tn \u003d -1;\n-\t\t\t\th2n-\u003ehdr_idx \u003d -1;\n+\t\t\t\th2n-\u003ehdr_idx \u003d (uint32_t)-1;\n \t\t\t} else\n \t\t\t\th2n-\u003ehdr_idx \u003d 1;\n \t\t} else {\n-\t\t\tn \u003d lws_token_from_index(wsi, h2n-\u003ehdr_idx, NULL,\n+\t\t\tn \u003d lws_token_from_index(wsi, (int)h2n-\u003ehdr_idx, NULL,\n \t\t\t\t\t\t NULL, NULL);\n \t\t\tlwsl_header(\u0022 lws_tok_from_idx(%u) says %d\u005cn\u0022,\n \t\t\t\t (unsigned int)h2n-\u003ehdr_idx, n);\n@@ -1100,9 +1101,9 @@ pre_data:\n \t\tbreak;\n \n \tcase HPKS_HLEN_EXT:\n-\t\th2n-\u003ehpack_len \u003d h2n-\u003ehpack_len |\n-\t\t\t\t ((c \u0026 0x7f) \u003c\u003c h2n-\u003eext_count);\n-\t\th2n-\u003eext_count +\u003d 7;\n+\t\th2n-\u003ehpack_len \u003d (uint32_t)((unsigned int)h2n-\u003ehpack_len |\n+\t\t\t\t(unsigned int)((c \u0026 0x7f) \u003c\u003c h2n-\u003eext_count));\n+\t\th2n-\u003eext_count \u003d (uint8_t)(h2n-\u003eext_count + 7);\n \t\tif (c \u0026 0x80) /* extended integer not complete yet */\n \t\t\tbreak;\n \n@@ -1117,9 +1118,9 @@ pre_data:\n \t\t\tif (h2n-\u003ehuff) {\n \t\t\t\tchar b \u003d (c \u003e\u003e 7) \u0026 1;\n \t\t\t\tprev \u003d h2n-\u003ehpack_pos;\n-\t\t\t\th2n-\u003ehpack_pos \u003d huftable_decode(\n-\t\t\t\t\t\th2n-\u003ehpack_pos, b);\n-\t\t\t\tc \u003c\u003c\u003d 1;\n+\t\t\t\th2n-\u003ehpack_pos \u003d (uint16_t)huftable_decode(\n+\t\t\t\t\t\t(int)h2n-\u003ehpack_pos, b);\n+\t\t\t\tc \u003d (unsigned char)(c \u003c\u003c 1);\n \t\t\t\tif (h2n-\u003ehpack_pos \u003d\u003d 0xffff) {\n \t\t\t\t\tlwsl_notice(\u0022Huffman err\u005cn\u0022);\n \t\t\t\t\treturn 1;\n@@ -1130,7 +1131,7 @@ pre_data:\n \t\t\t\t\th2n-\u003ehuff_pad++;\n \t\t\t\t\tcontinue;\n \t\t\t\t}\n-\t\t\t\tc1 \u003d h2n-\u003ehpack_pos \u0026 0x7fff;\n+\t\t\t\tc1 \u003d (uint8_t)(h2n-\u003ehpack_pos \u0026 0x7fff);\n \t\t\t\th2n-\u003ehpack_pos \u003d 0;\n \t\t\t\th2n-\u003ehuff_pad \u003d 0;\n \t\t\t\th2n-\u003ezero_huff_padding \u003d 0;\n@@ -1191,7 +1192,7 @@ pre_data:\n \t\t\t\th2n-\u003ehpack_hdr_len++;\n \t\t\t\tif (h2n-\u003eis_first_header_char) {\n \t\t\t\t\th2n-\u003eis_first_header_char \u003d 0;\n-\t\t\t\t\th2n-\u003efirst_hdr_char \u003d c1;\n+\t\t\t\t\th2n-\u003efirst_hdr_char \u003d (char)c1;\n \t\t\t\t}\n \t\t\t\tlwsl_header(\u0022parser: %c\u005cn\u0022, c1);\n \t\t\t\t/* uppercase header names illegal */\n@@ -1249,7 +1250,7 @@ fin:\n #endif\n \t\t\t ah-\u003eparser_state \u003d\u003d WSI_TOKEN_SKIPPING) {\n \t\t\t\th2n-\u003eunknown_header \u003d 1;\n-\t\t\t\tah-\u003eparser_state \u003d -1;\n+\t\t\t\tah-\u003eparser_state \u003d 0xff;\n \t\t\t\twsi-\u003eseen_nonpseudoheader \u003d 1;\n \t\t\t}\n \t\t}\n@@ -1276,7 +1277,7 @@ fin:\n \t\t/* NEW indexed hdr with value */\n \t\tcase HPKT_INDEXED_HDR_6_VALUE_INCR:\n \t\t\t/* header length is determined by known index */\n-\t\t\tm \u003d lws_token_from_index(wsi, h2n-\u003ehdr_idx, NULL, NULL,\n+\t\t\tm \u003d lws_token_from_index(wsi, (int)h2n-\u003ehdr_idx, NULL, NULL,\n \t\t\t\t\t\u0026h2n-\u003ehpack_hdr_len);\n \t\t\tif (m \u003c 0)\n \t\t\t\t/*\n@@ -1316,7 +1317,7 @@ add_it:\n \t\t\t */\n \t\t\tah-\u003efrags[ah-\u003enfrag].flags |\u003d 1;\n \n-\t\t\tif (lws_dynamic_token_insert(wsi, h2n-\u003ehpack_hdr_len, m,\n+\t\t\tif (lws_dynamic_token_insert(wsi, (int)h2n-\u003ehpack_hdr_len, m,\n \t\t\t\t\t\u0026ah-\u003edata[ah-\u003efrags[ah-\u003enfrag].offset],\n \t\t\t\t\tah-\u003efrags[ah-\u003enfrag].len)) {\n \t\t\t\tlwsl_notice(\u0022%s: tok_insert fail\u005cn\u0022, __func__);\n@@ -1340,7 +1341,7 @@ add_it:\n \t\t\t\tif (m \u003d\u003d 255)\n \t\t\t\t\tm \u003d -1;\n \t\t\t} else\n-\t\t\t\tm \u003d lws_token_from_index(wsi, h2n-\u003ehdr_idx,\n+\t\t\t\tm \u003d lws_token_from_index(wsi, (int)h2n-\u003ehdr_idx,\n \t\t\t\t\t\t\t NULL, NULL, NULL);\n \t\t}\n \n@@ -1360,13 +1361,13 @@ add_it:\n \n \n \n-static int\n+static unsigned int\n lws_h2_num_start(int starting_bits, unsigned long num)\n {\n-\tunsigned int mask \u003d (1 \u003c\u003c starting_bits) - 1;\n+\tunsigned int mask \u003d (unsigned int)((1 \u003c\u003c starting_bits) - 1);\n \n \tif (num \u003c mask)\n-\t\treturn (int)num;\n+\t\treturn (unsigned int)num;\n \n \treturn mask;\n }\n@@ -1375,7 +1376,7 @@ static int\n lws_h2_num(int starting_bits, unsigned long num,\n \t\t\t unsigned char **p, unsigned char *end)\n {\n-\tunsigned int mask \u003d (1 \u003c\u003c starting_bits) - 1;\n+\tunsigned int mask \u003d (unsigned int)((1 \u003c\u003c starting_bits) - 1);\n \n \tif (num \u003c mask)\n \t\treturn 0;\n@@ -1383,9 +1384,9 @@ lws_h2_num(int starting_bits, unsigned long num,\n \tnum -\u003d mask;\n \tdo {\n \t\tif (num \u003e 127)\n-\t\t\t*((*p)++) \u003d 0x80 | (num \u0026 0x7f);\n+\t\t\t*((*p)++) \u003d (uint8_t)(0x80 | (num \u0026 0x7f));\n \t\telse\n-\t\t\t*((*p)++) \u003d 0x00 | (num \u0026 0x7f);\n+\t\t\t*((*p)++) \u003d (uint8_t)(0x00 | (num \u0026 0x7f));\n \t\tif (*p \u003e\u003d end)\n \t\t\treturn 1;\n \t\tnum \u003e\u003e\u003d 7;\n@@ -1416,7 +1417,7 @@ int lws_add_http2_header_by_name(struct lws *wsi, const unsigned char *name,\n \t\t\tlen--;\n \n \tif (wsi-\u003emux_substream \u0026\u0026 !strncmp((const char *)name,\n-\t\t\t\t\t \u0022transfer-encoding\u0022, len)) {\n+\t\t\t\t\t \u0022transfer-encoding\u0022, (unsigned int)len)) {\n \t\tlwsl_header(\u0022rejecting %s\u005cn\u0022, name);\n \n \t\treturn 0;\n@@ -1427,21 +1428,21 @@ int lws_add_http2_header_by_name(struct lws *wsi, const unsigned char *name,\n \n \t*((*p)++) \u003d 0; /* literal hdr, literal name, */\n \n-\t*((*p)++) \u003d 0 | lws_h2_num_start(7, len); /* non-HUF */\n-\tif (lws_h2_num(7, len, p, end))\n+\t*((*p)++) \u003d 0 | (uint8_t)lws_h2_num_start(7, (unsigned long)len); /* non-HUF */\n+\tif (lws_h2_num(7, (unsigned long)len, p, end))\n \t\treturn 1;\n \n \t/* upper-case header names are verboten in h2, but OK on h1, so\n \t * they're not illegal per se. Silently convert them for h2... */\n \n \twhile(len--)\n-\t\t*((*p)++) \u003d tolower((int)*name++);\n+\t\t*((*p)++) \u003d (uint8_t)tolower((int)*name++);\n \n-\t*((*p)++) \u003d 0 | lws_h2_num_start(7, length); /* non-HUF */\n-\tif (lws_h2_num(7, length, p, end))\n+\t*((*p)++) \u003d 0 | (uint8_t)lws_h2_num_start(7, (unsigned long)length); /* non-HUF */\n+\tif (lws_h2_num(7, (unsigned long)length, p, end))\n \t\treturn 1;\n \n-\tmemcpy(*p, value, length);\n+\tmemcpy(*p, value, (unsigned int)length);\n \t*p +\u003d length;\n \n \treturn 0;\ndiff --git a/lib/roles/h2/http2.c b/lib/roles/h2/http2.c\nindex 0364d84..df7fd74 100644\n--- a/lib/roles/h2/http2.c\n+++ b/lib/roles/h2/http2.c\n@@ -151,7 +151,7 @@ lws_h2_state(struct lws *wsi, enum lws_h2_states s)\n }\n \n int\n-lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump)\n+lws_h2_update_peer_txcredit(struct lws *wsi, unsigned int sid, int bump)\n {\n \tstruct lws *nwsi \u003d lws_get_network_wsi(wsi);\n \tstruct lws_h2_protocol_send *pps;\n@@ -161,7 +161,7 @@ lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump)\n \tif (!bump)\n \t\treturn 0;\n \n-\tif (sid \u003d\u003d -1)\n+\tif (sid \u003d\u003d (unsigned int)-1)\n \t\tsid \u003d wsi-\u003emux.my_sid;\n \n \tlwsl_info(\u0022%s: sid %d: bump %d -\u003e %d\u005cn\u0022, __func__, sid, bump,\n@@ -171,8 +171,8 @@ lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump)\n \tif (!pps)\n \t\treturn 1;\n \n-\tpps-\u003eu.update_window.sid \u003d sid;\n-\tpps-\u003eu.update_window.credit \u003d bump;\n+\tpps-\u003eu.update_window.sid \u003d (unsigned int)sid;\n+\tpps-\u003eu.update_window.credit \u003d (unsigned int)bump;\n \twsi-\u003etxc.peer_tx_cr_est +\u003d bump;\n \n \tlws_wsi_txc_describe(\u0026wsi-\u003etxc, __func__, wsi-\u003emux.my_sid);\n@@ -184,7 +184,7 @@ lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump)\n \t\treturn 1;\n \n \tpps-\u003eu.update_window.sid \u003d 0;\n-\tpps-\u003eu.update_window.credit \u003d bump;\n+\tpps-\u003eu.update_window.credit \u003d (unsigned int)bump;\n \tnwsi-\u003etxc.peer_tx_cr_est +\u003d bump;\n \n \tlws_wsi_txc_describe(\u0026nwsi-\u003etxc, __func__, nwsi-\u003emux.my_sid);\n@@ -202,7 +202,7 @@ lws_h2_get_peer_txcredit_estimate(struct lws *wsi)\n }\n \n static int\n-lws_h2_update_peer_txcredit_thresh(struct lws *wsi, int sid, int threshold, int bump)\n+lws_h2_update_peer_txcredit_thresh(struct lws *wsi, unsigned int sid, int threshold, int bump)\n {\n \tif (wsi-\u003etxc.peer_tx_cr_est \u003e threshold)\n \t\treturn 0;\n@@ -256,9 +256,9 @@ lws_wsi_server_new(struct lws_vhost *vh, struct lws *parent_wsi,\n \twsi-\u003emux_substream \u003d 1;\n \twsi-\u003eseen_nonpseudoheader \u003d 0;\n \n-\twsi-\u003etxc.tx_cr \u003d nwsi-\u003eh2.h2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n+\twsi-\u003etxc.tx_cr \u003d (int32_t)nwsi-\u003eh2.h2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \twsi-\u003etxc.peer_tx_cr_est \u003d\n-\t\t\tnwsi-\u003eh2.h2n-\u003eour_set.s[H2SET_INITIAL_WINDOW_SIZE];\n+\t\t\t(int32_t)nwsi-\u003eh2.h2n-\u003eour_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \n \tlwsi_set_state(wsi, LRS_ESTABLISHED);\n \tlwsi_set_role(wsi, lwsi_role(parent_wsi));\n@@ -336,8 +336,8 @@ lws_wsi_h2_adopt(struct lws *parent_wsi, struct lws *wsi)\n \n \tlws_wsi_mux_insert(wsi, parent_wsi, wsi-\u003emux.my_sid);\n \n-\twsi-\u003etxc.tx_cr \u003d nwsi-\u003eh2.h2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n-\twsi-\u003etxc.peer_tx_cr_est \u003d\n+\twsi-\u003etxc.tx_cr \u003d (int32_t)nwsi-\u003eh2.h2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n+\twsi-\u003etxc.peer_tx_cr_est \u003d (int32_t)\n \t\t\tnwsi-\u003eh2.h2n-\u003eour_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \n \tlws_wsi_txc_describe(\u0026wsi-\u003etxc, __func__, wsi-\u003emux.my_sid);\n@@ -483,10 +483,10 @@ lws_h2_settings(struct lws *wsi, struct http2_settings *settings,\n \t\treturn 1;\n \n \twhile (len \u003e\u003d LWS_H2_SETTINGS_LEN) {\n-\t\ta \u003d (buf[0] \u003c\u003c 8) | buf[1];\n+\t\ta \u003d (unsigned int)((buf[0] \u003c\u003c 8) | buf[1]);\n \t\tif (!a || a \u003e\u003d H2SET_COUNT)\n \t\t\tgoto skip;\n-\t\tb \u003d buf[2] \u003c\u003c 24 | buf[3] \u003c\u003c 16 | buf[4] \u003c\u003c 8 | buf[5];\n+\t\tb \u003d (unsigned int)(buf[2] \u003c\u003c 24 | buf[3] \u003c\u003c 16 | buf[4] \u003c\u003c 8 | buf[5]);\n \n \t\tswitch (a) {\n \t\tcase H2SET_HEADER_TABLE_SIZE:\n@@ -538,9 +538,9 @@ lws_h2_settings(struct lws *wsi, struct http2_settings *settings,\n \t\t\t\tlwsl_info(\u0022%s: adi child tc cr %d +%d -\u003e %d\u0022,\n \t\t\t\t\t __func__, (int)w-\u003etxc.tx_cr,\n \t\t\t\t\t b - (unsigned int)settings-\u003es[a],\n-\t\t\t\t\t (int)w-\u003etxc.tx_cr + b -\n-\t\t\t\t\t\t (unsigned int)settings-\u003es[a]);\n-\t\t\t\tw-\u003etxc.tx_cr +\u003d b - settings-\u003es[a];\n+\t\t\t\t\t (int)(w-\u003etxc.tx_cr + (int)b -\n+\t\t\t\t\t\t (int)settings-\u003es[a]));\n+\t\t\t\tw-\u003etxc.tx_cr +\u003d (int)b - (int)settings-\u003es[a];\n \t\t\t\tif (w-\u003etxc.tx_cr \u003e 0 \u0026\u0026\n \t\t\t\t w-\u003etxc.tx_cr \u003c\u003d\n \t\t\t\t\t\t (int32_t)(b - settings-\u003es[a]))\n@@ -639,15 +639,15 @@ int lws_h2_frame_write(struct lws *wsi, int type, int flags,\n \t//if (wsi-\u003eh2_stream_carries_ws)\n \t// lwsl_hexdump_level(LLL_NOTICE, buf, len);\n \n-\t*p++ \u003d len \u003e\u003e 16;\n-\t*p++ \u003d len \u003e\u003e 8;\n-\t*p++ \u003d len;\n-\t*p++ \u003d type;\n-\t*p++ \u003d flags;\n-\t*p++ \u003d sid \u003e\u003e 24;\n-\t*p++ \u003d sid \u003e\u003e 16;\n-\t*p++ \u003d sid \u003e\u003e 8;\n-\t*p++ \u003d sid;\n+\t*p++ \u003d (uint8_t)(len \u003e\u003e 16);\n+\t*p++ \u003d (uint8_t)(len \u003e\u003e 8);\n+\t*p++ \u003d (uint8_t)len;\n+\t*p++ \u003d (uint8_t)type;\n+\t*p++ \u003d (uint8_t)flags;\n+\t*p++ \u003d (uint8_t)(sid \u003e\u003e 24);\n+\t*p++ \u003d (uint8_t)(sid \u003e\u003e 16);\n+\t*p++ \u003d (uint8_t)(sid \u003e\u003e 8);\n+\t*p++ \u003d (uint8_t)sid;\n \n \tlwsl_debug(\u0022%s: %s (eff %s). typ %d, fl 0x%x, sid\u003d%d, len\u003d%d, \u0022\n \t\t \u0022txcr\u003d%d, nwsi-\u003etxcr\u003d%d\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n@@ -656,10 +656,11 @@ int lws_h2_frame_write(struct lws *wsi, int type, int flags,\n \n \tif (type \u003d\u003d LWS_H2_FRAME_TYPE_DATA) {\n \t\tif (wsi-\u003etxc.tx_cr \u003c (int)len)\n+\n \t\t\tlwsl_info(\u0022%s: %s: sending payload len %d\u0022\n \t\t\t\t \u0022 but tx_cr only %d!\u005cn\u0022, __func__,\n \t\t\t\t lws_wsi_tag(wsi), len, (int)wsi-\u003etxc.tx_cr);\n-\t\tlws_h2_tx_cr_consume(wsi, len);\n+\t\t\t\tlws_h2_tx_cr_consume(wsi, (int)len);\n \t}\n \n \tn \u003d lws_issue_raw(nwsi, \u0026buf[-LWS_H2_FRAME_HEADER_LENGTH],\n@@ -675,12 +676,12 @@ int lws_h2_frame_write(struct lws *wsi, int type, int flags,\n \n static void lws_h2_set_bin(struct lws *wsi, int n, unsigned char *buf)\n {\n-\t*buf++ \u003d n \u003e\u003e 8;\n-\t*buf++ \u003d n;\n-\t*buf++ \u003d wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 24;\n-\t*buf++ \u003d wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 16;\n-\t*buf++ \u003d wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 8;\n-\t*buf \u003d wsi-\u003eh2.h2n-\u003eour_set.s[n];\n+\t*buf++ \u003d (uint8_t)(n \u003e\u003e 8);\n+\t*buf++ \u003d (uint8_t)n;\n+\t*buf++ \u003d (uint8_t)(wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 24);\n+\t*buf++ \u003d (uint8_t)(wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 16);\n+\t*buf++ \u003d (uint8_t)(wsi-\u003eh2.h2n-\u003eour_set.s[n] \u003e\u003e 8);\n+\t*buf \u003d (uint8_t)wsi-\u003eh2.h2n-\u003eour_set.s[n];\n }\n \n /* we get called on the network connection */\n@@ -726,10 +727,10 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \t\t\t\t\t\t wsi-\u003eh2.h2n-\u003eour_set.s[n]);\n \n \t\t\t\tlws_h2_set_bin(wsi, n, \u0026set[LWS_PRE + m]);\n-\t\t\t\tm +\u003d sizeof(h2n-\u003eone_setting);\n+\t\t\t\tm +\u003d (int)sizeof(h2n-\u003eone_setting);\n \t\t\t}\n \t\tn \u003d lws_h2_frame_write(wsi, LWS_H2_FRAME_TYPE_SETTINGS,\n-\t\t\t\t flags, LWS_H2_STREAM_ID_MASTER, m,\n+\t\t\t\t flags, LWS_H2_STREAM_ID_MASTER, (unsigned int)m,\n \t\t \t\t \u0026set[LWS_PRE]);\n \t\tif (n !\u003d m) {\n \t\t\tlwsl_info(\u0022send %d %d\u005cn\u0022, n, m);\n@@ -739,12 +740,12 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \n \tcase LWS_H2_PPS_SETTINGS_INITIAL_UPDATE_WINDOW:\n \t\tq \u003d \u0026set[LWS_PRE];\n-\t\t*q++ \u003d H2SET_INITIAL_WINDOW_SIZE \u003e\u003e 8;\n-\t\t*q++ \u003d H2SET_INITIAL_WINDOW_SIZE;\n-\t\t*q++ \u003d pps-\u003eu.update_window.credit \u003e\u003e 24;\n-\t\t*q++ \u003d pps-\u003eu.update_window.credit \u003e\u003e 16;\n-\t\t*q++ \u003d pps-\u003eu.update_window.credit \u003e\u003e 8;\n-\t\t*q \u003d pps-\u003eu.update_window.credit;\n+\t\t*q++ \u003d (uint8_t)(H2SET_INITIAL_WINDOW_SIZE \u003e\u003e 8);\n+\t\t*q++ \u003d (uint8_t)(H2SET_INITIAL_WINDOW_SIZE);\n+\t\t*q++ \u003d (uint8_t)(pps-\u003eu.update_window.credit \u003e\u003e 24);\n+\t\t*q++ \u003d (uint8_t)(pps-\u003eu.update_window.credit \u003e\u003e 16);\n+\t\t*q++ \u003d (uint8_t)(pps-\u003eu.update_window.credit \u003e\u003e 8);\n+\t\t*q \u003d (uint8_t)(pps-\u003eu.update_window.credit);\n \n \t\tlwsl_debug(\u0022%s: resetting initial window to %d\u005cn\u0022, __func__,\n \t\t\t\t(int)pps-\u003eu.update_window.credit);\n@@ -795,7 +796,7 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \n \t\t\tlwsl_info(\u0022%s: inherited headers %p\u005cn\u0022, __func__,\n \t\t\t\t h2n-\u003eswsi-\u003ehttp.ah);\n-\t\t\th2n-\u003eswsi-\u003etxc.tx_cr \u003d\n+\t\t\th2n-\u003eswsi-\u003etxc.tx_cr \u003d (int32_t)\n \t\t\t\th2n-\u003eour_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \t\t\tlwsl_info(\u0022initial tx credit on %s: %d\u005cn\u0022,\n \t\t\t\t lws_wsi_tag(h2n-\u003eswsi),\n@@ -840,14 +841,14 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \n \tcase LWS_H2_PPS_GOAWAY:\n \t\tlwsl_info(\u0022LWS_H2_PPS_GOAWAY\u005cn\u0022);\n-\t\t*p++ \u003d pps-\u003eu.ga.highest_sid \u003e\u003e 24;\n-\t\t*p++ \u003d pps-\u003eu.ga.highest_sid \u003e\u003e 16;\n-\t\t*p++ \u003d pps-\u003eu.ga.highest_sid \u003e\u003e 8;\n-\t\t*p++ \u003d pps-\u003eu.ga.highest_sid;\n-\t\t*p++ \u003d pps-\u003eu.ga.err \u003e\u003e 24;\n-\t\t*p++ \u003d pps-\u003eu.ga.err \u003e\u003e 16;\n-\t\t*p++ \u003d pps-\u003eu.ga.err \u003e\u003e 8;\n-\t\t*p++ \u003d pps-\u003eu.ga.err;\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.highest_sid \u003e\u003e 24);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.highest_sid \u003e\u003e 16);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.highest_sid \u003e\u003e 8);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.highest_sid);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.err \u003e\u003e 24);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.err \u003e\u003e 16);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.err \u003e\u003e 8);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.ga.err);\n \t\tq \u003d (unsigned char *)pps-\u003eu.ga.str;\n \t\tn \u003d 0;\n \t\twhile (*q \u0026\u0026 n++ \u003c (int)sizeof(pps-\u003eu.ga.str))\n@@ -855,7 +856,7 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \t\th2n-\u003ewe_told_goaway \u003d 1;\n \t\tn \u003d lws_h2_frame_write(wsi, LWS_H2_FRAME_TYPE_GOAWAY, 0,\n \t\t\t\t LWS_H2_STREAM_ID_MASTER,\n-\t\t\t\t lws_ptr_diff(p, \u0026set[LWS_PRE]),\n+\t\t\t\t (unsigned int)lws_ptr_diff(p, \u0026set[LWS_PRE]),\n \t\t\t\t \u0026set[LWS_PRE]);\n \t\tif (n !\u003d 4) {\n \t\t\tlwsl_info(\u0022send %d %d\u005cn\u0022, n, m);\n@@ -865,10 +866,10 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \n \tcase LWS_H2_PPS_RST_STREAM:\n \t\tlwsl_info(\u0022LWS_H2_PPS_RST_STREAM\u005cn\u0022);\n-\t\t*p++ \u003d pps-\u003eu.rs.err \u003e\u003e 24;\n-\t\t*p++ \u003d pps-\u003eu.rs.err \u003e\u003e 16;\n-\t\t*p++ \u003d pps-\u003eu.rs.err \u003e\u003e 8;\n-\t\t*p++ \u003d pps-\u003eu.rs.err;\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.rs.err \u003e\u003e 24);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.rs.err \u003e\u003e 16);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.rs.err \u003e\u003e 8);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.rs.err);\n \t\tn \u003d lws_h2_frame_write(wsi, LWS_H2_FRAME_TYPE_RST_STREAM,\n \t\t\t\t 0, pps-\u003eu.rs.sid, 4, \u0026set[LWS_PRE]);\n \t\tif (n !\u003d 4) {\n@@ -889,10 +890,10 @@ int lws_h2_do_pps_send(struct lws *wsi)\n \t\tlwsl_info(\u0022Issuing LWS_H2_PPS_UPDATE_WINDOW: sid %d: add %d\u005cn\u0022,\n \t\t\t (int)pps-\u003eu.update_window.sid,\n \t\t\t (int)pps-\u003eu.update_window.credit);\n-\t\t*p++ \u003d (pps-\u003eu.update_window.credit \u003e\u003e 24) \u0026 0x7f; /* 31b */\n-\t\t*p++ \u003d pps-\u003eu.update_window.credit \u003e\u003e 16;\n-\t\t*p++ \u003d pps-\u003eu.update_window.credit \u003e\u003e 8;\n-\t\t*p++ \u003d pps-\u003eu.update_window.credit;\n+\t\t*p++ \u003d (uint8_t)((pps-\u003eu.update_window.credit \u003e\u003e 24) \u0026 0x7f); /* 31b */\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.update_window.credit \u003e\u003e 16);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.update_window.credit \u003e\u003e 8);\n+\t\t*p++ \u003d (uint8_t)(pps-\u003eu.update_window.credit);\n \t\tn \u003d lws_h2_frame_write(wsi, LWS_H2_FRAME_TYPE_WINDOW_UPDATE,\n \t\t\t\t 0, pps-\u003eu.update_window.sid, 4,\n \t\t\t\t \u0026set[LWS_PRE]);\n@@ -1038,7 +1039,7 @@ lws_h2_parse_frame_header(struct lws *wsi)\n \t\t\tn \u003d H2_ERR_STREAM_CLOSED;\n \t\telse\n \t\t\tn \u003d H2_ERR_PROTOCOL_ERROR;\n-\t\tlws_h2_goaway(wsi, n, \u0022invalid rx for state\u0022);\n+\t\tlws_h2_goaway(wsi, (unsigned int)n, \u0022invalid rx for state\u0022);\n \n \t\treturn 0;\n \t}\n@@ -1054,7 +1055,7 @@ lws_h2_parse_frame_header(struct lws *wsi)\n \t\t\tn \u003d H2_ERR_COMPRESSION_ERROR;\n \t\telse\n \t\t\tn \u003d H2_ERR_PROTOCOL_ERROR;\n-\t\tlws_h2_goaway(wsi, n, \u0022Continuation hdrs State\u0022);\n+\t\tlws_h2_goaway(wsi, (unsigned int)n, \u0022Continuation hdrs State\u0022);\n \n \t\treturn 0;\n \t}\n@@ -1478,7 +1479,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \n \t\t\tlwsl_info(\u0022%s: MIGRATING nwsi %s -\u003e swsi %s\u005cn\u0022, __func__,\n \t\t\t\t lws_wsi_tag(wsi), lws_wsi_tag(h2n-\u003eswsi));\n-\t\t\th2n-\u003eswsi-\u003etxc.tx_cr \u003d\n+\t\t\th2n-\u003eswsi-\u003etxc.tx_cr \u003d (int32_t)\n \t\t\t\th2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \t\t\tlwsl_info(\u0022%s: initial tx credit on %s: %d\u005cn\u0022,\n \t\t\t\t __func__, lws_wsi_tag(h2n-\u003eswsi),\n@@ -1487,7 +1488,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \n \t\t\t/* set our initial window size */\n \t\t\tif (!wsi-\u003eh2.initialized) {\n-\t\t\t\twsi-\u003etxc.tx_cr \u003d\n+\t\t\t\twsi-\u003etxc.tx_cr \u003d (int32_t)\n \t\t\t\t h2n-\u003epeer_set.s[H2SET_INITIAL_WINDOW_SIZE];\n \n \t\t\t\tlwsl_info(\u0022%s: initial tx credit for us to \u0022\n@@ -1578,7 +1579,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \n \t\t\tif (!simp) /* coverity */\n \t\t\t\treturn 1;\n-\t\t\th2n-\u003eswsi-\u003ehttp.rx_content_length \u003d atoll(simp);\n+\t\t\th2n-\u003eswsi-\u003ehttp.rx_content_length \u003d (unsigned long long)atoll(simp);\n \t\t\th2n-\u003eswsi-\u003ehttp.rx_content_remain \u003d\n \t\t\t\t\th2n-\u003eswsi-\u003ehttp.rx_content_length;\n \t\t\tlwsl_info(\u0022setting rx_content_length %lld\u005cn\u0022,\n@@ -1591,20 +1592,20 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \t\t\tconst unsigned char *c;\n \n \t\t\tdo {\n-\t\t\t\tc \u003d lws_token_to_string(n);\n+\t\t\t\tc \u003d lws_token_to_string((enum lws_token_indexes)n);\n \t\t\t\tif (!c) {\n \t\t\t\t\tn++;\n \t\t\t\t\tcontinue;\n \t\t\t\t}\n \n-\t\t\t\tlen \u003d lws_hdr_total_length(h2n-\u003eswsi, n);\n+\t\t\t\tlen \u003d lws_hdr_total_length(h2n-\u003eswsi, (enum lws_token_indexes)n);\n \t\t\t\tif (!len || len \u003e (int)sizeof(buf) - 1) {\n \t\t\t\t\tn++;\n \t\t\t\t\tcontinue;\n \t\t\t\t}\n \n \t\t\t\tif (lws_hdr_copy(h2n-\u003eswsi, buf, sizeof buf,\n-\t\t\t\t\t\t n) \u003c 0) {\n+\t\t\t\t\t\t(enum lws_token_indexes)n) \u003c 0) {\n \t\t\t\t\tlwsl_info(\u0022 %s !oversize!\u005cn\u0022,\n \t\t\t\t\t\t (char *)c);\n \t\t\t\t} else {\n@@ -1664,7 +1665,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \t\t\tif (n !\u003d 8 ||\n \t\t\t !lws_hdr_simple_ptr(h2n-\u003eswsi, WSI_TOKEN_TE) ||\n \t\t\t strncmp(lws_hdr_simple_ptr(h2n-\u003eswsi, WSI_TOKEN_TE),\n-\t\t\t\t \u0022trailers\u0022, n)) {\n+\t\t\t\t \u0022trailers\u0022, (unsigned int)n)) {\n \t\t\t\tlws_h2_goaway(wsi, H2_ERR_PROTOCOL_ERROR,\n \t\t\t\t\t \u0022Illegal transfer-encoding\u0022);\n \t\t\t\tbreak;\n@@ -1798,7 +1799,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \t\t LWS_SERVER_OPTION_H2_JUST_FIX_WINDOW_UPDATE_OVERFLOW \u0026\u0026\n \t\t (uint64_t)eff_wsi-\u003etxc.tx_cr + (uint64_t)h2n-\u003ehpack_e_dep \u003e\n \t\t (uint64_t)0x7fffffff)\n-\t\t\th2n-\u003ehpack_e_dep \u003d 0x7fffffff - eff_wsi-\u003etxc.tx_cr;\n+\t\t\th2n-\u003ehpack_e_dep \u003d (uint32_t)(0x7fffffff - eff_wsi-\u003etxc.tx_cr);\n \n \t\tif ((uint64_t)eff_wsi-\u003etxc.tx_cr + (uint64_t)h2n-\u003ehpack_e_dep \u003e\n \t\t (uint64_t)0x7fffffff) {\n@@ -1818,7 +1819,7 @@ lws_h2_parse_end_of_frame(struct lws *wsi)\n \t\t\tbreak;\n \t\t}\n \t\tn \u003d eff_wsi-\u003etxc.tx_cr;\n-\t\teff_wsi-\u003etxc.tx_cr +\u003d h2n-\u003ehpack_e_dep;\n+\t\teff_wsi-\u003etxc.tx_cr +\u003d (int32_t)h2n-\u003ehpack_e_dep;\n \n \t\tlws_wsi_txc_report_manual_txcr_in(eff_wsi,\n \t\t\t\t\t\t (int32_t)h2n-\u003ehpack_e_dep);\n@@ -1993,7 +1994,7 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \t\t\tswitch(h2n-\u003etype) {\n \n \t\t\tcase LWS_H2_FRAME_TYPE_SETTINGS:\n-\t\t\t\tn \u003d (h2n-\u003ecount - 1 - h2n-\u003epreamble) %\n+\t\t\t\tn \u003d (int)(h2n-\u003ecount - 1u - h2n-\u003epreamble) %\n \t\t\t\t LWS_H2_SETTINGS_LEN;\n \t\t\t\th2n-\u003eone_setting[n] \u003d c;\n \t\t\t\tif (n !\u003d LWS_H2_SETTINGS_LEN - 1)\n@@ -2037,7 +2038,7 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \t\t\t\t\tif (h2n-\u003einside - 9 \u003c\n \t\t\t\t\t sizeof(h2n-\u003egoaway_str) - 1)\n \t\t\t\t\t\th2n-\u003egoaway_str[\n-\t\t\t\t\t\t h2n-\u003einside - 9] \u003d c;\n+\t\t\t\t\t\t h2n-\u003einside - 9] \u003d (char)c;\n \t\t\t\t\th2n-\u003egoaway_str[\n \t\t\t\t\t sizeof(h2n-\u003egoaway_str) - 1] \u003d '\u005c0';\n \t\t\t\t\tbreak;\n@@ -2096,7 +2097,9 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \n \t\t\t\tn \u003d (int)lws_ptr_diff_size_t(iend, in) + 1;\n \t\t\t\tif (n \u003e (int)(h2n-\u003elength - h2n-\u003ecount + 1)) {\n-\t\t\t\t\tn \u003d h2n-\u003elength - h2n-\u003ecount + 1;\n+\t\t\t\t\tif (h2n-\u003ecount \u003e h2n-\u003elength)\n+\t\t\t\t\t\tgoto close_swsi_and_return;\n+\t\t\t\t\tn \u003d (int)(h2n-\u003elength - h2n-\u003ecount) + 1;\n \t\t\t\t\tlwsl_debug(\u0022---- restricting len to %d \u0022\n \t\t\t\t\t\t \u0022\u005cn\u0022, n);\n \t\t\t\t}\n@@ -2117,7 +2120,7 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \t\t\t\t\t\th2n-\u003eswsi,\n \t\t\t\t\t LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ,\n \t\t\t\t\t\th2n-\u003eswsi-\u003euser_space,\n-\t\t\t\t\t\tin - 1, n);\n+\t\t\t\t\t\tin - 1, (unsigned int)n);\n \t\t\t\t\t}\n \n \t\t\t\t\tin +\u003d n - 1;\n@@ -2136,7 +2139,7 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \n \t\t\t\tif (lwsi_state(h2n-\u003eswsi) \u003d\u003d LRS_DEFERRING_ACTION) {\n \t\t\t\t\tm \u003d lws_buflist_append_segment(\n-\t\t\t\t\t\t\u0026h2n-\u003eswsi-\u003ebuflist, in - 1, n);\n+\t\t\t\t\t\t\u0026h2n-\u003eswsi-\u003ebuflist, in - 1, (unsigned int)n);\n \t\t\t\t\tif (m \u003c 0)\n \t\t\t\t\t\treturn -1;\n \t\t\t\t\tif (m) {\n@@ -2164,7 +2167,7 @@ lws_h2_parser(struct lws *wsi, unsigned char *in, lws_filepos_t _inlen,\n \t\t\t\t * more waiting leave it for next time around\n \t\t\t\t */\n \n-\t\t\t\tn \u003d lws_read_h1(h2n-\u003eswsi, in - 1, n);\n+\t\t\t\tn \u003d lws_read_h1(h2n-\u003eswsi, in - 1, (unsigned int)n);\n \t\t\t\t// lwsl_notice(\u0022%s: lws_read_h1 %d\u005cn\u0022, __func__, n);\n \t\t\t\th2n-\u003eswsi-\u003eouter_will_close \u003d 0;\n \t\t\t\t/*\n@@ -2350,7 +2353,7 @@ try_frame_start:\n \t\t}\n \t}\n \n-\t*inused \u003d in - oldin;\n+\t*inused \u003d (lws_filepos_t)lws_ptr_diff_size_t(in, oldin);\n \n \treturn 0;\n \n@@ -2362,12 +2365,12 @@ close_swsi_and_return:\n \th2n-\u003ecount \u003d 0;\n \n // already_closed_swsi:\n-\t*inused \u003d in - oldin;\n+\t*inused \u003d (lws_filepos_t)lws_ptr_diff_size_t(in, oldin);\n \n \treturn 2;\n \n fail:\n-\t*inused \u003d in - oldin;\n+\t*inused \u003d (lws_filepos_t)lws_ptr_diff_size_t(in, oldin);\n \n \treturn 1;\n }\n@@ -2390,7 +2393,7 @@ lws_h2_client_handshake(struct lws *wsi)\n \t * receives an unexpected stream identifier MUST respond with a\n \t * connection error (Section 5.4.1) of type PROTOCOL_ERROR.\n \t */\n-\tint sid \u003d nwsi-\u003eh2.h2n-\u003ehighest_sid_opened + 2;\n+\tunsigned int sid \u003d nwsi-\u003eh2.h2n-\u003ehighest_sid_opened + 2;\n \n \tlwsl_debug(\u0022%s\u005cn\u0022, __func__);\n \n@@ -2475,7 +2478,7 @@ lws_h2_client_handshake(struct lws *wsi)\n \n \tif (wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\tLWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER,\n-\t\t\t\twsi-\u003euser_space, \u0026p, (end - p) - 12))\n+\t\t\t\twsi-\u003euser_space, \u0026p, lws_ptr_diff_size_t(end, p) - 12))\n \t\tgoto fail_length;\n \n \tif (lws_finalize_http_header(wsi, \u0026p, end))\n@@ -2496,9 +2499,9 @@ lws_h2_client_handshake(struct lws *wsi)\n \n \t// lwsl_hexdump_notice(start, p - start);\n \n-\tn \u003d lws_write(wsi, start, p - start, m);\n+\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start), (enum lws_write_protocol)m);\n \n-\tif (n !\u003d (p - start)) {\n+\tif (n !\u003d lws_ptr_diff(p, start)) {\n \t\tlwsl_err(\u0022_write returned %d from %ld\u005cn\u0022, n,\n \t\t\t (long)(p - start));\n \t\treturn -1;\n@@ -2542,7 +2545,8 @@ lws_h2_ws_handshake(struct lws *wsi)\n \t\t*end \u003d \u0026buf[sizeof(buf) - 1];\n \tconst struct lws_http_mount *hit;\n \tconst char * uri_ptr;\n-\tint n, m;\n+\tsize_t m;\n+\tint n;\n \n \tif (lws_add_http_header_status(wsi, HTTP_STATUS_OK, \u0026p, end))\n \t\treturn -1;\n@@ -2616,11 +2620,11 @@ lws_h2_ws_handshake(struct lws *wsi)\n \tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\treturn -1;\n \n-\tm \u003d lws_ptr_diff(p, start);\n+\tm \u003d lws_ptr_diff_size_t(p, start);\n \t// lwsl_hexdump_notice(start, m);\n \tn \u003d lws_write(wsi, start, m, LWS_WRITE_HTTP_HEADERS);\n-\tif (n !\u003d m) {\n-\t\tlwsl_err(\u0022_write returned %d from %d\u005cn\u0022, n, m);\n+\tif (n !\u003d (int)m) {\n+\t\tlwsl_err(\u0022_write returned %d from %d\u005cn\u0022, n, (int)m);\n \n \t\treturn -1;\n \t}\n@@ -2674,7 +2678,7 @@ lws_read_h2(struct lws *wsi, unsigned char *buf, lws_filepos_t len)\n \t\t * we were accepting input but now we stopped doing so\n \t\t */\n \t\tif (lws_is_flowcontrolled(wsi)) {\n-\t\t\tlws_rxflow_cache(wsi, buf, 0, (int)len);\n+\t\t\tlws_rxflow_cache(wsi, buf, 0, (size_t)len);\n \t\t\tbuf +\u003d len;\n \t\t\tbreak;\n \t\t}\ndiff --git a/lib/roles/h2/ops-h2.c b/lib/roles/h2/ops-h2.c\nindex 42ed9f5..6e2a81f 100644\n--- a/lib/roles/h2/ops-h2.c\n+++ b/lib/roles/h2/ops-h2.c\n@@ -265,9 +265,9 @@ drain:\n \t\tn \u003d 0;\n \t\tif (lwsi_role_h2(wsi) \u0026\u0026 lwsi_state(wsi) !\u003d LRS_BODY \u0026\u0026\n \t\t lwsi_state(wsi) !\u003d LRS_DISCARD_BODY)\n-\t\t\tn \u003d lws_read_h2(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_read_h2(wsi, ebuf.token, (unsigned int)ebuf.len);\n \t\telse\n-\t\t\tn \u003d lws_read_h1(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_read_h1(wsi, ebuf.token, (unsigned int)ebuf.len);\n \n \t\tif (n \u003c 0) {\n \t\t\t/* we closed wsi */\n@@ -285,11 +285,11 @@ drain:\n \t\t\t\tlws_dll2_remove(\u0026wsi-\u003edll_buflist);\n \t\t\t}\n \t\t} else\n-\t\t\tif (n \u0026\u0026 n !\u003d ebuf.len) {\n+\t\t\tif (n \u0026\u0026 n \u003c ebuf.len \u0026\u0026 ebuf.len \u003e 0) {\n \t\t\t\t// lwsl_notice(\u0022%s: h2 append seg %d\u005cn\u0022, __func__, ebuf.len - n);\n \t\t\t\tm \u003d lws_buflist_append_segment(\u0026wsi-\u003ebuflist,\n \t\t\t\t\t\tebuf.token + n,\n-\t\t\t\t\t\tebuf.len - n);\n+\t\t\t\t\t\t(unsigned int)(ebuf.len - n));\n \t\t\t\tif (m \u003c 0)\n \t\t\t\t\treturn LWS_HPI_RET_PLEASE_CLOSE_ME;\n \t\t\t\tif (m) {\n@@ -323,7 +323,7 @@ drain:\n \t}\n #endif\n \n-\tpending \u003d lws_ssl_pending(wsi);\n+\tpending \u003d (unsigned int)lws_ssl_pending(wsi);\n \tif (pending) {\n \t\t// lwsl_info(\u0022going around\u005cn\u0022);\n \t\tgoto read;\n@@ -430,7 +430,7 @@ rops_write_role_protocol_h2(struct lws *wsi, unsigned char *buf, size_t len,\n \t\tbase \u003d (*wp) \u0026 0x1f;\n \n \t\tif (!len)\n-\t\t\treturn olen;\n+\t\t\treturn (int)olen;\n \t}\n #endif\n \n@@ -481,7 +481,7 @@ rops_write_role_protocol_h2(struct lws *wsi, unsigned char *buf, size_t len,\n \t\twsi-\u003eh2.send_END_STREAM \u003d 1;\n \t}\n \n-\tn \u003d lws_h2_frame_write(wsi, n, flags, wsi-\u003emux.my_sid, (int)len, buf);\n+\tn \u003d lws_h2_frame_write(wsi, n, flags, wsi-\u003emux.my_sid, (unsigned int)len, buf);\n \tif (n \u003c 0)\n \t\treturn n;\n \n@@ -584,7 +584,7 @@ rops_tx_credit_h2(struct lws *wsi, char peer_to_us, int add)\n \t\t\t * We want to tell the peer they can write an additional\n \t\t\t * \u0022add\u0022 bytes to us\n \t\t\t */\n-\t\t\treturn lws_h2_update_peer_txcredit(wsi, -1, add);\n+\t\t\treturn lws_h2_update_peer_txcredit(wsi, (unsigned int)-1, add);\n \t\t}\n \n \t\t/*\n@@ -684,7 +684,7 @@ rops_close_kill_connection_h2(struct lws *wsi, enum lws_close_status reason)\n \t\t\tlwsl_info(\u0022 parent %s: closing children: list:\u005cn\u0022, lws_wsi_tag(wsi));\n \t\t\tlws_wsi_mux_dump_children(wsi);\n \t\t}\n-\t\tlws_wsi_mux_close_children(wsi, reason);\n+\t\tlws_wsi_mux_close_children(wsi, (int)reason);\n \t}\n \n \tif (wsi-\u003eupgraded_to_http2) {\n@@ -1088,7 +1088,7 @@ rops_perform_user_POLLOUT_h2(struct lws *wsi)\n \t\t\t\t\t LWS_WRITE_H2_STREAM_END;\n \n \t\t\tn \u003d lws_write(w, \u0026w-\u003ews-\u003eping_payload_buf[LWS_PRE],\n-\t\t\t\t w-\u003ews-\u003eping_payload_len, write_type);\n+\t\t\t\t w-\u003ews-\u003eping_payload_len, (enum lws_write_protocol)write_type);\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \n@@ -1205,7 +1205,7 @@ rops_alpn_negotiated_h2(struct lws *wsi, const char *alpn)\n \t/* HTTP2 union */\n \n \tlws_hpack_dynamic_size(wsi,\n-\t\t\t wsi-\u003eh2.h2n-\u003eour_set.s[H2SET_HEADER_TABLE_SIZE]);\n+\t\t\t (int)wsi-\u003eh2.h2n-\u003eour_set.s[H2SET_HEADER_TABLE_SIZE]);\n \twsi-\u003etxc.tx_cr \u003d 65535;\n \n \tlwsl_info(\u0022%s: %s: configured for h2\u005cn\u0022, __func__, lws_wsi_tag(wsi));\n@@ -1218,7 +1218,7 @@ rops_issue_keepalive_h2(struct lws *wsi, int isvalid)\n {\n \tstruct lws *nwsi \u003d lws_get_network_wsi(wsi);\n \tstruct lws_h2_protocol_send *pps;\n-\tuint64_t us \u003d lws_now_usecs();\n+\tuint64_t us \u003d (uint64_t)lws_now_usecs();\n \n \tif (isvalid) {\n \t\t_lws_validity_confirmed_role(nwsi);\ndiff --git a/lib/roles/http/client/client-http.c b/lib/roles/http/client/client-http.c\nindex b315de7..ea2cda2 100644\n--- a/lib/roles/http/client/client-http.c\n+++ b/lib/roles/http/client/client-http.c\n@@ -104,7 +104,7 @@ lws_http_client_socket_service(struct lws *wsi, struct lws_pollfd *pollfd)\n \t\t\tgoto bail3;\n \t\t}\n \n-\t\tn \u003d recv(wsi-\u003edesc.sockfd, sb, context-\u003ept_serv_buf_size, 0);\n+\t\tn \u003d (int)recv(wsi-\u003edesc.sockfd, sb, context-\u003ept_serv_buf_size, 0);\n \t\tif (n \u003c 0) {\n \t\t\tif (LWS_ERRNO \u003d\u003d LWS_EAGAIN) {\n \t\t\t\tlwsl_debug(\u0022Proxy read EAGAIN... retrying\u005cn\u0022);\n@@ -207,8 +207,8 @@ start_ws_handshake:\n \t\tif (context-\u003edetailed_latency_cb) {\n \t\t\twsi-\u003edetlat.type \u003d LDLT_TLS_NEG_CLIENT;\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE] \u003d\n-\t\t\t\tlws_now_usecs() -\n-\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\t}\n@@ -238,7 +238,7 @@ start_ws_handshake:\n \n \t\t//\tlwsi_set_state(wsi, LRS_H1C_ISSUE_HANDSHAKE2);\n \t\t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND,\n-\t\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\t\tbreak;\n \t\t}\n@@ -274,7 +274,7 @@ hs2:\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \t\twsi-\u003edetlat.earliest_write_req_pre_write \u003d lws_now_usecs();\n #endif\n-\t\tn \u003d lws_ssl_capable_write(wsi, (unsigned char *)sb, (int)(p - sb));\n+\t\tn \u003d lws_ssl_capable_write(wsi, (unsigned char *)sb, lws_ptr_diff_size_t(p, sb));\n \t\tswitch (n) {\n \t\tcase LWS_SSL_CAPABLE_ERROR:\n \t\t\tlwsl_debug(\u0022ERROR writing to client socket\u005cn\u0022);\n@@ -291,7 +291,7 @@ hs2:\n \t\t\tlwsi_set_state(wsi, LRS_ISSUE_HTTP_BODY);\n \t\t\tlws_set_timeout(wsi,\n \t\t\t\t\tPENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD,\n-\t\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\t\tif (wsi-\u003eflags \u0026 LCCSCF_HTTP_X_WWW_FORM_URLENCODED)\n \t\t\t\tlws_callback_on_writable(wsi);\n@@ -319,7 +319,7 @@ hs2:\n \t\t}\n \n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE,\n-\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t\tlws_callback_on_writable(wsi);\n \n@@ -348,7 +348,7 @@ client_http_body_sent:\n #endif\n \t\tlwsi_set_state(wsi, LRS_WAITING_SERVER_REPLY);\n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE,\n-\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t(int)context-\u003etimeout_secs);\n \t\tbreak;\n \n \tcase LRS_WAITING_SERVER_REPLY:\n@@ -528,7 +528,7 @@ lws_http_transaction_completed_client(struct lws *wsi)\n \twsi-\u003ehttp.ah-\u003eunk_pos \u003d 0;\n \n \tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE,\n-\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n \n \t/* If we're (re)starting on headers, need other implied init */\n \twsi-\u003ehttp.ah-\u003eues \u003d URIES_IDLE;\n@@ -651,7 +651,7 @@ lws_client_interpret_server_handshake(struct lws *wsi)\n #endif\n \tn \u003d atoi(p);\n \tif (ah)\n-\t\tah-\u003ehttp_response \u003d n;\n+\t\tah-\u003ehttp_response \u003d (unsigned int)n;\n \n \tif (!wsi-\u003eclient_no_follow_redirect \u0026\u0026\n #if defined(LWS_WITH_HTTP_PROXY)\n@@ -668,7 +668,7 @@ lws_client_interpret_server_handshake(struct lws *wsi)\n \n \t\tif (wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\t\t LWS_CALLBACK_CLIENT_HTTP_REDIRECT,\n-\t\t\t\t\t wsi-\u003euser_space, p, n)) {\n+\t\t\t\t\t wsi-\u003euser_space, p, (unsigned int)n)) {\n \t\t\tcce \u003d \u0022HS: user code rejected redirect\u0022;\n \t\t\tgoto bail3;\n \t\t}\n@@ -737,7 +737,7 @@ lws_client_interpret_server_handshake(struct lws *wsi)\n \t\t\tq \u003d strrchr(new_path, '/');\n \t\t\tif (q)\n \t\t\t\tlws_strncpy(q + 1, p, sizeof(new_path) -\n-\t\t\t\t\t\t\t(q - new_path) - 1);\n+\t\t\t\t\t\t\t(unsigned int)(q - new_path) - 1);\n \t\t\telse\n \t\t\t\tpath \u003d p;\n \t\t}\n@@ -860,7 +860,7 @@ lws_client_interpret_server_handshake(struct lws *wsi)\n \t\tif (!simp)\n \t\t\tgoto bail2;\n \n-\t\twsi-\u003ehttp.rx_content_length \u003d atoll(simp);\n+\t\twsi-\u003ehttp.rx_content_length \u003d (lws_filepos_t)atoll(simp);\n \t\tlwsl_info(\u0022%s: incoming content length %llu\u005cn\u0022,\n \t\t\t __func__, (unsigned long long)\n \t\t\t\t wsi-\u003ehttp.rx_content_length);\n@@ -982,7 +982,7 @@ bail2:\n \t\t\t\t wsi-\u003ea.protocol-\u003ename : \u0022unknown\u0022, cce);\n \n \t/* closing will free up his parsing allocations */\n-\tlws_close_free_wsi(wsi, close_reason, \u0022c hs interp\u0022);\n+\tlws_close_free_wsi(wsi, (enum lws_close_status)close_reason, \u0022c hs interp\u0022);\n \n \treturn 1;\n }\n@@ -1031,7 +1031,7 @@ lws_client_http_multipart(struct lws *wsi, const char *name,\n \tassert(wsi-\u003ehttp.multipart);\n \n \tif (!name) {\n-\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p),\n+\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p),\n \t\t\t\t\t\u0022\u005cxd\u005cxa--%s--\u005cxd\u005cxa\u0022,\n \t\t\t\t\twsi-\u003ehttp.multipart_boundary);\n \n@@ -1039,22 +1039,22 @@ lws_client_http_multipart(struct lws *wsi, const char *name,\n \t}\n \n \tif (wsi-\u003eclient_subsequent_mime_part)\n-\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p), \u0022\u005cxd\u005cxa\u0022);\n+\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p), \u0022\u005cxd\u005cxa\u0022);\n \twsi-\u003eclient_subsequent_mime_part \u003d 1;\n \n-\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p), \u0022--%s\u005cxd\u005cxa\u0022\n+\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p), \u0022--%s\u005cxd\u005cxa\u0022\n \t\t\t\t \u0022Content-Disposition: form-data; \u0022\n \t\t\t\t \u0022name\u003d\u005c\u0022%s\u005c\u0022\u0022,\n \t\t\t\t wsi-\u003ehttp.multipart_boundary, name);\n \tif (filename)\n-\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p),\n+\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p),\n \t\t\t\t \u0022; filename\u003d\u005c\u0022%s\u005c\u0022\u0022, filename);\n \n \tif (content_type)\n-\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p), \u0022\u005cxd\u005cxa\u0022\n+\t\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p), \u0022\u005cxd\u005cxa\u0022\n \t\t\t\t\u0022Content-Type: %s\u0022, content_type);\n \n-\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff(end, *p), \u0022\u005cxd\u005cxa\u005cxd\u005cxa\u0022);\n+\t*p +\u003d lws_snprintf((char *)(*p), lws_ptr_diff_size_t(end, *p), \u0022\u005cxd\u005cxa\u005cxd\u005cxa\u0022);\n \n \treturn *p \u003d\u003d end;\n }\n@@ -1182,7 +1182,7 @@ lws_generate_client_handshake(struct lws *wsi, char *pkt)\n \tif (wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\tLWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER,\n \t\t\twsi-\u003euser_space, \u0026p,\n-\t\t\t(pkt + wsi-\u003ea.context-\u003ept_serv_buf_size) - p - 12))\n+\t\t\t(unsigned int)((pkt + wsi-\u003ea.context-\u003ept_serv_buf_size) - p - 12)))\n \t\treturn NULL;\n \n \tif (wsi-\u003eflags \u0026 LCCSCF_HTTP_X_WWW_FORM_URLENCODED) {\n@@ -1215,7 +1215,7 @@ lws_http_basic_auth_gen(const char *user, const char *pw, char *buf, size_t len)\n \n \tmemcpy(buf, \u0022Basic \u0022, 6);\n \n-\tn \u003d lws_snprintf(b, sizeof(b), \u0022%s:%s\u0022, user, pw);\n+\tn \u003d (unsigned int)lws_snprintf(b, sizeof(b), \u0022%s:%s\u0022, user, pw);\n \tif (n \u003e\u003d sizeof(b) - 2)\n \t\treturn 2;\n \n@@ -1332,7 +1332,7 @@ spin_chunks:\n \t\tcase ELCP_POST_CR:\n \t\t\tif ((*buf)[0] !\u003d '\u005cx0d') {\n \t\t\t\tlwsl_err(\u0022%s: chunking failure C\u005cn\u0022, __func__);\n-\t\t\t\tlwsl_hexdump_err(*buf, *len);\n+\t\t\t\tlwsl_hexdump_err(*buf, (unsigned int)*len);\n \n \t\t\t\treturn -1;\n \t\t\t}\n@@ -1354,7 +1354,7 @@ spin_chunks:\n \t\tcase ELCP_TRAILER_CR:\n \t\t\tif ((*buf)[0] !\u003d '\u005cx0d') {\n \t\t\t\tlwsl_err(\u0022%s: chunking failure F\u005cn\u0022, __func__);\n-\t\t\t\tlwsl_hexdump_err(*buf, *len);\n+\t\t\t\tlwsl_hexdump_err(*buf, (unsigned int)*len);\n \n \t\t\t\treturn -1;\n \t\t\t}\n@@ -1365,7 +1365,7 @@ spin_chunks:\n \t\tcase ELCP_TRAILER_LF:\n \t\t\tif ((*buf)[0] !\u003d '\u005cx0a') {\n \t\t\t\tlwsl_err(\u0022%s: chunking failure F\u005cn\u0022, __func__);\n-\t\t\t\tlwsl_hexdump_err(*buf, *len);\n+\t\t\t\tlwsl_hexdump_err(*buf, (unsigned int)*len);\n \n \t\t\t\treturn -1;\n \t\t\t}\n@@ -1414,7 +1414,7 @@ spin_chunks:\n \n \t\t\tq \u003d user_callback_handle_rxflow(wsi-\u003ea.protocol-\u003ecallback,\n \t\t\t\twsi, LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ,\n-\t\t\t\twsi-\u003euser_space, *buf, n);\n+\t\t\t\twsi-\u003euser_space, *buf, (unsigned int)n);\n \t\t\tif (q) {\n \t\t\t\tlwsl_info(\u0022%s: RECEIVE_CLIENT_HTTP_READ returned %d\u005cn\u0022,\n \t\t\t\t\t\t__func__, q);\n@@ -1448,7 +1448,7 @@ spin_chunks:\n \n \t/* if we know the content length, decrement the content remaining */\n \tif (wsi-\u003ehttp.rx_content_length \u003e 0)\n-\t\twsi-\u003ehttp.rx_content_remain -\u003d n;\n+\t\twsi-\u003ehttp.rx_content_remain -\u003d (unsigned int)n;\n \n \t// lwsl_notice(\u0022rx_content_remain %lld, rx_content_length %lld, giv %d\u005cn\u0022,\n \t//\t wsi-\u003ehttp.rx_content_remain, wsi-\u003ehttp.rx_content_length,\n@@ -1525,10 +1525,10 @@ lws_client_reset(struct lws **pwsi, int ssl, const char *address, int port,\n \t */\n \n \tfor (n \u003d 0; n \u003c (int)LWS_ARRAY_SIZE(hnames2); n++)\n-\t\tsize +\u003d lws_hdr_total_length(wsi, hnames2[n]) + (size_t)1;\n+\t\tsize +\u003d (unsigned int)lws_hdr_total_length(wsi, hnames2[n]) + 1u;\n \n \tif (size \u003c (size_t)lws_hdr_total_length(wsi, _WSI_TOKEN_CLIENT_URI) + 1)\n-\t\tsize \u003d lws_hdr_total_length(wsi, _WSI_TOKEN_CLIENT_URI) + (size_t)1;\n+\t\tsize \u003d (unsigned int)lws_hdr_total_length(wsi, _WSI_TOKEN_CLIENT_URI) + 1u;\n \n \t/*\n \t * The incoming address and host can be from inside the existing ah\n@@ -1613,7 +1613,7 @@ lws_client_reset(struct lws **pwsi, int ssl, const char *address, int port,\n \n #if defined(LWS_WITH_TLS)\n \tif (!ssl)\n-\t\twsi-\u003etls.use_ssl \u0026\u003d ~LCCSCF_USE_SSL;\n+\t\twsi-\u003etls.use_ssl \u0026\u003d (unsigned int)~LCCSCF_USE_SSL;\n \telse\n \t\twsi-\u003etls.use_ssl |\u003d LCCSCF_USE_SSL;\n #else\n@@ -1638,7 +1638,7 @@ lws_client_reset(struct lws **pwsi, int ssl, const char *address, int port,\n \tif (wsi-\u003ea.protocol)\n \t\tlws_bind_protocol(wsi, wsi-\u003ea.protocol, \u0022client_reset\u0022);\n \twsi-\u003epending_timeout \u003d NO_PENDING_TIMEOUT;\n-\twsi-\u003ec_port \u003d port;\n+\twsi-\u003ec_port \u003d (uint16_t)port;\n \twsi-\u003ehdr_parsing_completed \u003d 0;\n \n \tif (lws_header_table_attach(wsi, 0)) {\n@@ -1668,7 +1668,7 @@ lws_client_reset(struct lws **pwsi, int ssl, const char *address, int port,\n \tfor (n \u003d 0; n \u003c (int)LWS_ARRAY_SIZE(hnames2); n++) {\n \t\tif (lws_hdr_simple_create(wsi, hnames2[n], p))\n \t\t\tgoto bail;\n-\t\tp +\u003d lws_hdr_total_length(wsi, hnames2[n]) + (size_t)1;\n+\t\tp +\u003d lws_hdr_total_length(wsi, hnames2[n]) + 1;\n \t}\n \n \tstash[0] \u003d '/';\ndiff --git a/lib/roles/http/compression/brotli/brotli.c b/lib/roles/http/compression/brotli/brotli.c\nindex c95f5e0..36d7766 100644\n--- a/lib/roles/http/compression/brotli/brotli.c\n+++ b/lib/roles/http/compression/brotli/brotli.c\n@@ -27,7 +27,7 @@\n static int\n lcs_init_compression_brotli(lws_comp_ctx_t *ctx, int decomp)\n {\n-\tctx-\u003eis_decompression \u003d decomp;\n+\tctx-\u003eis_decompression \u003d (unsigned char)!!decomp;\n \n \tif (!decomp) {\n \t\tctx-\u003eu.br_en \u003d BrotliEncoderCreateInstance(NULL, NULL, NULL);\ndiff --git a/lib/roles/http/compression/deflate/deflate.c b/lib/roles/http/compression/deflate/deflate.c\nindex d093406..8e9a1ca 100644\n--- a/lib/roles/http/compression/deflate/deflate.c\n+++ b/lib/roles/http/compression/deflate/deflate.c\n@@ -29,7 +29,7 @@ lcs_init_compression_deflate(lws_comp_ctx_t *ctx, int decomp)\n {\n \tint n;\n \n-\tctx-\u003eis_decompression \u003d decomp;\n+\tctx-\u003eis_decompression \u003d !!decomp;\n \tctx-\u003eu.deflate \u003d lws_malloc(sizeof(*ctx-\u003eu.deflate), __func__);\n \n \tif (!ctx-\u003eu.deflate)\n@@ -63,10 +63,10 @@ lcs_process_deflate(lws_comp_ctx_t *ctx, const void *in, size_t *ilen_iused,\n \tint n;\n \n \tctx-\u003eu.deflate-\u003enext_in \u003d (void *)in;\n-\tctx-\u003eu.deflate-\u003eavail_in \u003d *ilen_iused;\n+\tctx-\u003eu.deflate-\u003eavail_in \u003d (unsigned int)*ilen_iused;\n \n \tctx-\u003eu.deflate-\u003enext_out \u003d out;\n-\tctx-\u003eu.deflate-\u003eavail_out \u003d *olen_oused;\n+\tctx-\u003eu.deflate-\u003eavail_out \u003d (unsigned int)*olen_oused;\n \n \tif (!ctx-\u003eis_decompression)\n \t\tn \u003d deflate(ctx-\u003eu.deflate, Z_SYNC_FLUSH);\ndiff --git a/lib/roles/http/compression/stream.c b/lib/roles/http/compression/stream.c\nindex 824bca7..fcc40d3 100644\n--- a/lib/roles/http/compression/stream.c\n+++ b/lib/roles/http/compression/stream.c\n@@ -52,7 +52,7 @@ lws_http_compression_validate(struct lws *wsi)\n \n \tfor (n \u003d 0; n \u003c LWS_ARRAY_SIZE(lcs_available); n++)\n \t\tif (strstr(a, lcs_available[n]-\u003eencoding_name))\n-\t\t\twsi-\u003ehttp.comp_accept_mask |\u003d 1 \u003c\u003c n;\n+\t\t\twsi-\u003ehttp.comp_accept_mask |\u003d (uint8_t)(1 \u003c\u003c n);\n \n \treturn 0;\n }\n@@ -91,11 +91,11 @@ lws_http_compression_apply(struct lws *wsi, const char *name,\n \twsi-\u003ehttp.comp_ctx.may_have_more \u003d 0;\n \twsi-\u003ehttp.comp_ctx.final_on_input_side \u003d 0;\n \twsi-\u003ehttp.comp_ctx.chunking \u003d 0;\n-\twsi-\u003ehttp.comp_ctx.is_decompression \u003d decomp;\n+\twsi-\u003ehttp.comp_ctx.is_decompression \u003d !!decomp;\n \n \tif (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_ENCODING,\n \t\t\t(unsigned char *)lcs_available[n]-\u003eencoding_name,\n-\t\t\tstrlen(lcs_available[n]-\u003eencoding_name), p, end))\n+\t\t\t(int)strlen(lcs_available[n]-\u003eencoding_name), p, end))\n \t\treturn -1;\n \n \tlwsl_info(\u0022%s: %s: applied %s content-encoding\u005cn\u0022, __func__,\n@@ -151,7 +151,7 @@ lws_http_compression_transform(struct lws *wsi, unsigned char *buf,\n \t\t * to a non-final for now.\n \t\t */\n \t\tctx-\u003efinal_on_input_side \u003d 1;\n-\t\t*wp \u003d LWS_WRITE_HTTP | ((*wp) \u0026 ~0x1f);\n+\t\t*wp \u003d (unsigned int)(LWS_WRITE_HTTP | ((*wp) \u0026 ~0x1fu));\n \t}\n \n \tif (ctx-\u003ebuflist_comp) {\n@@ -190,7 +190,8 @@ lws_http_compression_transform(struct lws *wsi, unsigned char *buf,\n \t}\n \n \tif (!ctx-\u003emay_have_more \u0026\u0026 ctx-\u003efinal_on_input_side)\n-\t\t*wp \u003d LWS_WRITE_HTTP_FINAL | ((*wp) \u0026 ~0x1f);\n+\n+\t\t*wp \u003d (unsigned int)(LWS_WRITE_HTTP_FINAL | ((*wp) \u0026 ~0x1fu));\n \n \tlwsl_debug(\u0022%s: %s: more %d, ilen_iused %d\u005cn\u0022, __func__, lws_wsi_tag(wsi),\n \t\t ctx-\u003emay_have_more, (int)ilen_iused);\ndiff --git a/lib/roles/http/date.c b/lib/roles/http/date.c\nindex 2a2050a..5928d8c 100644\n--- a/lib/roles/http/date.c\n+++ b/lib/roles/http/date.c\n@@ -142,7 +142,7 @@ lws_http_date_parse_unix(const char *b, size_t len, time_t *t)\n int\n lws_http_check_retry_after(struct lws *wsi, lws_usec_t *us_interval_in_out)\n {\n-\tsize_t len \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_RETRY_AFTER);\n+\tsize_t len \u003d (unsigned int)lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_RETRY_AFTER);\n \tchar *p \u003d lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_RETRY_AFTER);\n \tlws_usec_t u;\n \ttime_t t, td;\n@@ -173,7 +173,7 @@ lws_http_check_retry_after(struct lws *wsi, lws_usec_t *us_interval_in_out)\n \t\t */\n \n \t\ttime(\u0026td);\n-\t\tlen \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_DATE);\n+\t\tlen \u003d (unsigned int)lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_DATE);\n \t\tif (len) {\n \t\t\tp \u003d lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_DATE);\n \t\t\t/* if this fails, it leaves td as client time */\ndiff --git a/lib/roles/http/header.c b/lib/roles/http/header.c\nindex 1d55abc..72d3d66 100644\n--- a/lib/roles/http/header.c\n+++ b/lib/roles/http/header.c\n@@ -73,7 +73,7 @@ lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name,\n \tif (*p + length + 3 \u003e\u003d end)\n \t\treturn 1;\n \n-\tmemcpy(*p, value, length);\n+\tmemcpy(*p, value, (unsigned int)length);\n \t*p +\u003d length;\n \t*((*p)++) \u003d '\u005cx0d';\n \t*((*p)++) \u003d '\u005cx0a';\n@@ -114,7 +114,7 @@ lws_finalize_write_http_header(struct lws *wsi, unsigned char *start,\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \twsi-\u003edetlat.earliest_write_req_pre_write \u003d lws_now_usecs();\n #endif\n-\tif (lws_write(wsi, start, len, LWS_WRITE_HTTP_HEADERS) !\u003d len)\n+\tif (lws_write(wsi, start, (unsigned int)len, LWS_WRITE_HTTP_HEADERS) !\u003d len)\n \t\treturn 1;\n \n \treturn 0;\n@@ -232,7 +232,7 @@ lws_add_http_common_headers(struct lws *wsi, unsigned int code,\n \t\t\t\t\t\t (int)strlen(ka[t]), p, end))\n \t\t\t\treturn 1;\n \n-\t\t\twsi-\u003ehttp.conn_type \u003d types[t];\n+\t\t\twsi-\u003ehttp.conn_type \u003d (enum http_conn_type)types[t];\n \t\t}\n \t}\n \n@@ -303,7 +303,7 @@ lws_add_http_header_status(struct lws *wsi, unsigned int _code,\n \tint n;\n \n #ifdef LWS_WITH_ACCESS_LOG\n-\twsi-\u003ehttp.access_log.response \u003d code;\n+\twsi-\u003ehttp.access_log.response \u003d (int)code;\n #endif\n \n #ifdef LWS_WITH_HTTP2\n@@ -471,7 +471,7 @@ lws_return_http_status(struct lws *wsi, unsigned int code,\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \t\twsi-\u003edetlat.earliest_write_req_pre_write \u003d lws_now_usecs();\n #endif\n-\t\tm \u003d lws_write(wsi, start, lws_ptr_diff(p, start),\n+\t\tm \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n \t\t\t LWS_WRITE_HTTP_HEADERS);\n \t\tif (m !\u003d lws_ptr_diff(p, start))\n \t\t\treturn 1;\n@@ -480,10 +480,10 @@ lws_return_http_status(struct lws *wsi, unsigned int code,\n \t\t * ... but stash the body and send it as a priority next\n \t\t * handle_POLLOUT\n \t\t */\n-\t\twsi-\u003ehttp.tx_content_length \u003d len;\n-\t\twsi-\u003ehttp.tx_content_remain \u003d len;\n+\t\twsi-\u003ehttp.tx_content_length \u003d (unsigned int)len;\n+\t\twsi-\u003ehttp.tx_content_remain \u003d (unsigned int)len;\n \n-\t\twsi-\u003eh2.pending_status_body \u003d lws_malloc(len + LWS_PRE + 1,\n+\t\twsi-\u003eh2.pending_status_body \u003d lws_malloc((unsigned int)len + LWS_PRE + 1,\n \t\t\t\t\t\t\t\u0022pending status body\u0022);\n \t\tif (!wsi-\u003eh2.pending_status_body)\n \t\t\treturn -1;\n@@ -501,8 +501,8 @@ lws_return_http_status(struct lws *wsi, unsigned int code,\n \t\t */\n \n \t\tn \u003d lws_ptr_diff(p, start) + len;\n-\t\tmemcpy(p, body, len);\n-\t\tm \u003d lws_write(wsi, start, n, LWS_WRITE_HTTP);\n+\t\tmemcpy(p, body, (unsigned int)len);\n+\t\tm \u003d lws_write(wsi, start, (unsigned int)n, LWS_WRITE_HTTP);\n \t\tif (m !\u003d n)\n \t\t\treturn 1;\n \t}\n@@ -516,7 +516,7 @@ lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len,\n {\n \tunsigned char *start \u003d *p;\n \n-\tif (lws_add_http_header_status(wsi, code, p, end))\n+\tif (lws_add_http_header_status(wsi, (unsigned int)code, p, end))\n \t\treturn -1;\n \n \tif (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_LOCATION, loc, len,\n@@ -538,8 +538,8 @@ lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len,\n \tif (lws_finalize_http_header(wsi, p, end))\n \t\treturn -1;\n \n-\treturn lws_write(wsi, start, *p - start, LWS_WRITE_HTTP_HEADERS |\n-\t\t\t\t\t\t LWS_WRITE_H2_STREAM_END);\n+\treturn lws_write(wsi, start, lws_ptr_diff_size_t(*p, start),\n+\t\t\t LWS_WRITE_HTTP_HEADERS | LWS_WRITE_H2_STREAM_END);\n }\n #endif\n \n@@ -614,19 +614,19 @@ lws_sul_http_ah_lifecheck(lws_sorted_usec_list_t *sul)\n \t\tbuf[0] \u003d '\u005c0';\n \t\tm \u003d 0;\n \t\tdo {\n-\t\t\tc \u003d lws_token_to_string(m);\n+\t\t\tc \u003d lws_token_to_string((enum lws_token_indexes)m);\n \t\t\tif (!c)\n \t\t\t\tbreak;\n \t\t\tif (!(*c))\n \t\t\t\tbreak;\n \n-\t\t\tlen \u003d lws_hdr_total_length(wsi, m);\n+\t\t\tlen \u003d lws_hdr_total_length(wsi, (enum lws_token_indexes)m);\n \t\t\tif (!len || len \u003e (int)sizeof(buf) - 1) {\n \t\t\t\tm++;\n \t\t\t\tcontinue;\n \t\t\t}\n \n-\t\t\tif (lws_hdr_copy(wsi, buf, sizeof buf, m) \u003e 0) {\n+\t\t\tif (lws_hdr_copy(wsi, buf, sizeof buf, (enum lws_token_indexes)m) \u003e 0) {\n \t\t\t\tbuf[sizeof(buf) - 1] \u003d '\u005c0';\n \n \t\t\t\tlwsl_notice(\u0022 %s \u003d %s\u005cn\u0022,\ndiff --git a/lib/roles/http/parsers.c b/lib/roles/http/parsers.c\nindex ecf2f37..8a07401 100644\n--- a/lib/roles/http/parsers.c\n+++ b/lib/roles/http/parsers.c\n@@ -234,7 +234,7 @@ lws_header_table_attach(struct lws *wsi, int autoservice)\n \t\tgoto reset;\n \t}\n \n-\tn \u003d pt-\u003ehttp.ah_count_in_use \u003d\u003d context-\u003emax_http_header_pool;\n+\tn \u003d pt-\u003ehttp.ah_count_in_use \u003d\u003d (int)context-\u003emax_http_header_pool;\n #if defined(LWS_WITH_PEER_LIMITS)\n \tif (!n) {\n \t\tn \u003d lws_peer_confirm_ah_attach_ok(context, wsi-\u003epeer);\n@@ -594,7 +594,7 @@ lws_hdr_custom_length(struct lws *wsi, const char *name, int nlen)\n \t\t\treturn -1;\n \t\tif (nlen \u003d\u003d lws_ser_ru16be(\n \t\t\t(uint8_t *)\u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NLEN]) \u0026\u0026\n-\t\t !strncmp(name, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME], nlen))\n+\t\t !strncmp(name, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME], (unsigned int)nlen))\n \t\t\treturn lws_ser_ru16be(\n \t\t\t\t(uint8_t *)\u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_VLEN]);\n \n@@ -622,12 +622,12 @@ lws_hdr_custom_copy(struct lws *wsi, char *dst, int len, const char *name,\n \t\t\treturn -1;\n \t\tif (nlen \u003d\u003d lws_ser_ru16be(\n \t\t\t(uint8_t *)\u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NLEN]) \u0026\u0026\n-\t\t !strncmp(name, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME], nlen)) {\n+\t\t !strncmp(name, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME], (unsigned int)nlen)) {\n \t\t\tn \u003d lws_ser_ru16be(\n \t\t\t\t(uint8_t *)\u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_VLEN]);\n \t\t\tif (n + 1 \u003e len)\n \t\t\t\treturn -1;\n-\t\t\tstrncpy(dst, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME + nlen], n);\n+\t\t\tstrncpy(dst, \u0026wsi-\u003ehttp.ah-\u003edata[ll + UHO_NAME + (unsigned int)nlen], (unsigned int)n);\n \t\t\tdst[n] \u003d '\u005c0';\n \n \t\t\treturn n;\n@@ -663,7 +663,7 @@ lws_pos_in_bounds(struct lws *wsi)\n \t (unsigned int)wsi-\u003ea.context-\u003emax_http_header_data)\n \t\treturn 0;\n \n-\tif ((int)wsi-\u003ehttp.ah-\u003epos \u003e\u003d wsi-\u003ea.context-\u003emax_http_header_data - 1) {\n+\tif ((int)wsi-\u003ehttp.ah-\u003epos \u003e\u003d (int)wsi-\u003ea.context-\u003emax_http_header_data - 1) {\n \t\tlwsl_err(\u0022Ran out of header data space\u005cn\u0022);\n \t\treturn 1;\n \t}\n@@ -732,7 +732,7 @@ issue_char(struct lws *wsi, unsigned char c)\n \t */\n \tif (!wsi-\u003ehttp.ah-\u003ecurrent_token_limit ||\n \t frag_len \u003c wsi-\u003ehttp.ah-\u003ecurrent_token_limit) {\n-\t\twsi-\u003ehttp.ah-\u003edata[wsi-\u003ehttp.ah-\u003epos++] \u003d c;\n+\t\twsi-\u003ehttp.ah-\u003edata[wsi-\u003ehttp.ah-\u003epos++] \u003d (char)c;\n \t\tif (c)\n \t\t\twsi-\u003ehttp.ah-\u003efrags[wsi-\u003ehttp.ah-\u003enfrag].len++;\n \t\treturn 0;\n@@ -773,21 +773,21 @@ lws_parse_urldecode(struct lws *wsi, uint8_t *_c)\n \t\t}\n \t\tbreak;\n \tcase URIES_SEEN_PERCENT:\n-\t\tif (char_to_hex(c) \u003c 0)\n+\t\tif (char_to_hex((char)c) \u003c 0)\n \t\t\t/* illegal post-% char */\n \t\t\tgoto forbid;\n \n-\t\tah-\u003eesc_stash \u003d c;\n+\t\tah-\u003eesc_stash \u003d (char)c;\n \t\tah-\u003eues \u003d URIES_SEEN_PERCENT_H1;\n \t\tgoto swallow;\n \n \tcase URIES_SEEN_PERCENT_H1:\n-\t\tif (char_to_hex(c) \u003c 0)\n+\t\tif (char_to_hex((char)c) \u003c 0)\n \t\t\t/* illegal post-% char */\n \t\t\tgoto forbid;\n \n-\t\t*_c \u003d (char_to_hex(ah-\u003eesc_stash) \u003c\u003c 4) |\n-\t\t\t\tchar_to_hex(c);\n+\t\t*_c \u003d (uint8_t)(unsigned int)((char_to_hex(ah-\u003eesc_stash) \u003c\u003c 4) |\n+\t\t\t\tchar_to_hex((char)c));\n \t\tc \u003d *_c;\n \t\tenc \u003d 1;\n \t\tah-\u003eues \u003d URIES_IDLE;\n@@ -812,7 +812,7 @@ lws_parse_urldecode(struct lws *wsi, uint8_t *_c)\n \t\t\tif (issue_char(wsi, '\u005c0') \u003c 0)\n \t\t\t\treturn -1;\n \t\t\t/* link to next fragment */\n-\t\t\tah-\u003efrags[ah-\u003enfrag].nfrag \u003d ah-\u003enfrag + 1;\n+\t\t\tah-\u003efrags[ah-\u003enfrag].nfrag \u003d (uint8_t)(ah-\u003enfrag + 1);\n \t\t\tah-\u003enfrag++;\n \t\t\tif (ah-\u003enfrag \u003e\u003d LWS_ARRAY_SIZE(ah-\u003efrags))\n \t\t\t\tgoto excessive;\n@@ -981,7 +981,7 @@ lws_parse(struct lws *wsi, unsigned char *buf, int *len)\n \t\t\t\tbreak;\n \t\t\tif (c \u003d\u003d '\u005cn') {\n \t\t\t\tlws_ser_wu16be((uint8_t *)\u0026ah-\u003edata[ah-\u003eunk_pos + 2],\n-\t\t\t\t\t ah-\u003epos - ah-\u003eunk_value_pos);\n+\t\t\t\t\t (uint16_t)(ah-\u003epos - ah-\u003eunk_value_pos));\n \t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_NAME_PART;\n \t\t\t\tah-\u003eunk_pos \u003d 0;\n \t\t\t\tah-\u003elextable_pos \u003d 0;\n@@ -995,7 +995,7 @@ lws_parse(struct lws *wsi, unsigned char *buf, int *len)\n \t\t\t\tif (lws_pos_in_bounds(wsi))\n \t\t\t\t\treturn LPR_FAIL;\n \n-\t\t\t\tah-\u003edata[ah-\u003epos++] \u003d c;\n+\t\t\t\tah-\u003edata[ah-\u003epos++] \u003d (char)c;\n \t\t\t}\n \t\t\tpos \u003d ah-\u003elextable_pos;\n \t\t\tbreak;\n@@ -1073,7 +1073,8 @@ check_eol:\n \t\t\t\tif (c \u003d\u003d '\u005cx0a') {\n \t\t\t\t\t/* broken peer */\n \t\t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_NAME_PART;\n-\t\t\t\t\tah-\u003eunk_pos \u003d ah-\u003elextable_pos \u003d 0;\n+\t\t\t\t\tah-\u003eunk_pos \u003d 0;\n+\t\t\t\t\tah-\u003elextable_pos \u003d 0;\n \t\t\t\t} else\n \t\t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_SKIPPING_SAW_CR;\n \n@@ -1081,7 +1082,7 @@ check_eol:\n \t\t\t\tlwsl_parser(\u0022*\u005cn\u0022);\n \t\t\t}\n \n-\t\t\tn \u003d issue_char(wsi, c);\n+\t\t\tn \u003d (unsigned int)issue_char(wsi, c);\n \t\t\tif ((int)n \u003c 0)\n \t\t\t\treturn LPR_FAIL;\n \t\t\tif (n \u003e 0)\n@@ -1107,7 +1108,7 @@ swallow:\n \t\t\t\tgoto set_parsing_complete;\n \n \t\t\tif (c \u003e\u003d 'A' \u0026\u0026 c \u003c\u003d 'Z')\n-\t\t\t\tc +\u003d 'a' - 'A';\n+\t\t\t\tc \u003d (unsigned char)(c + 'a' - 'A');\n \t\t\t/*\n \t\t\t * ...in case it's an unknown header, speculatively\n \t\t\t * store it as the name comes in. If we recognize it as\n@@ -1134,7 +1135,7 @@ swallow:\n \t\t\tif (lws_pos_in_bounds(wsi))\n \t\t\t\treturn LPR_FAIL;\n \n-\t\t\tah-\u003edata[ah-\u003epos++] \u003d c;\n+\t\t\tah-\u003edata[ah-\u003epos++] \u003d (char)c;\n \t\t\tpos \u003d ah-\u003elextable_pos;\n \n #if defined(LWS_WITH_CUSTOM_HEADERS)\n@@ -1161,7 +1162,7 @@ swallow:\n \t\t\t\tah-\u003eunk_ll_tail \u003d ah-\u003eunk_pos;\n \n #if defined(_DEBUG)\n-\t\t\t\tuhlen \u003d ah-\u003epos - (ah-\u003eunk_pos + UHO_NAME);\n+\t\t\t\tuhlen \u003d (int)(ah-\u003epos - (ah-\u003eunk_pos + UHO_NAME));\n \t\t\t\tlws_strnncpy(dotstar,\n \t\t\t\t\t\u0026ah-\u003edata[ah-\u003eunk_pos + UHO_NAME],\n \t\t\t\t\tuhlen, sizeof(dotstar));\n@@ -1174,7 +1175,7 @@ swallow:\n \t\t\t\t/* set the unknown header name part length */\n \n \t\t\t\tlws_ser_wu16be((uint8_t *)\u0026ah-\u003edata[ah-\u003eunk_pos],\n-\t\t\t\t\t (ah-\u003epos - ah-\u003eunk_pos) - UHO_NAME);\n+\t\t\t\t\t (uint16_t)((ah-\u003epos - ah-\u003eunk_pos) - UHO_NAME));\n \n \t\t\t\tah-\u003eunk_value_pos \u003d ah-\u003epos;\n \n@@ -1202,7 +1203,7 @@ nope:\n \t\t\t\t\tif (lextable_h1[pos] \u003d\u003d FAIL_CHAR)\n \t\t\t\t\t\tgoto nope;\n \n-\t\t\t\t\tah-\u003elextable_pos \u003d pos;\n+\t\t\t\t\tah-\u003elextable_pos \u003d (int16_t)pos;\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \n@@ -1222,14 +1223,14 @@ nope:\n \t\t\t\t\t\tah-\u003eunk_pos \u003d 0;\n \t\t\t\t\t}\n \n-\t\t\t\t\tah-\u003elextable_pos \u003d pos;\n+\t\t\t\t\tah-\u003elextable_pos \u003d (int16_t)pos;\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \n \t\t\t\tif (lextable_h1[pos] \u003d\u003d c) { /* goto */\n-\t\t\t\t\tah-\u003elextable_pos \u003d pos +\n+\t\t\t\t\tah-\u003elextable_pos \u003d (int16_t)(pos +\n \t\t\t\t\t\t(lextable_h1[pos + 1]) +\n-\t\t\t\t\t\t(lextable_h1[pos + 2] \u003c\u003c 8);\n+\t\t\t\t\t\t(lextable_h1[pos + 2] \u003c\u003c 8));\n \t\t\t\t\tbreak;\n \t\t\t\t}\n \n@@ -1343,7 +1344,7 @@ nope:\n \t\t\t\t\tn \u003d WSI_TOKEN_ORIGIN;\n #endif\n \n-\t\t\t\tah-\u003eparser_state \u003d (enum lws_token_indexes)\n+\t\t\t\tah-\u003eparser_state \u003d (uint8_t)\n \t\t\t\t\t\t\t(WSI_TOKEN_GET_URI + n);\n \t\t\t\tah-\u003eups \u003d URIPS_IDLE;\n \n@@ -1405,7 +1406,8 @@ excessive:\n \t\t\tif (c \u003d\u003d '\u005cx0a') {\n \t\t\t\t/* broken peer */\n \t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_NAME_PART;\n-\t\t\t\tah-\u003eunk_pos \u003d ah-\u003elextable_pos \u003d 0;\n+\t\t\t\tah-\u003eunk_pos \u003d 0;\n+\t\t\t\tah-\u003elextable_pos \u003d 0;\n \t\t\t}\n \n \t\t\tif (c \u003d\u003d '\u005cx0d')\n@@ -1418,7 +1420,8 @@ excessive:\n \t\t\t\tgoto forbid;\n \t\t\tif (c \u003d\u003d '\u005cx0a') {\n \t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_NAME_PART;\n-\t\t\t\tah-\u003eunk_pos \u003d ah-\u003elextable_pos \u003d 0;\n+\t\t\t\tah-\u003eunk_pos \u003d 0;\n+\t\t\t\tah-\u003elextable_pos \u003d 0;\n \t\t\t} else\n \t\t\t\tah-\u003eparser_state \u003d WSI_TOKEN_SKIPPING;\n \t\t\tbreak;\n@@ -1441,7 +1444,7 @@ set_parsing_complete:\n #if defined(LWS_ROLE_WS)\n \t\tconst char *pv \u003d lws_hdr_simple_ptr(wsi, WSI_TOKEN_VERSION);\n \t\tif (pv)\n-\t\t\twsi-\u003erx_frame_type \u003d atoi(pv);\n+\t\t\twsi-\u003erx_frame_type \u003d (char)atoi(pv);\n \n \t\tlwsl_parser(\u0022v%02d hdrs done\u005cn\u0022, wsi-\u003erx_frame_type);\n #endif\n@@ -1479,7 +1482,7 @@ lws_http_cookie_get(struct lws *wsi, const char *name, char *buf,\n \tp +\u003d bl;\n \tn -\u003d bl;\n \twhile (n-- \u003e bl) {\n-\t\tif (*p \u003d\u003d '\u003d' \u0026\u0026 !memcmp(p - bl, name, bl)) {\n+\t\tif (*p \u003d\u003d '\u003d' \u0026\u0026 !memcmp(p - bl, name, (unsigned int)bl)) {\n \t\t\tp++;\n \t\t\twhile (*p !\u003d ';' \u0026\u0026 n-- \u0026\u0026 max) {\n \t\t\t\t*buf++ \u003d *p++;\n@@ -1489,7 +1492,7 @@ lws_http_cookie_get(struct lws *wsi, const char *name, char *buf,\n \t\t\t\treturn 2;\n \n \t\t\t*buf \u003d '\u005c0';\n-\t\t\t*max_len \u003d lws_ptr_diff(buf, bo);\n+\t\t\t*max_len \u003d lws_ptr_diff_size_t(buf, bo);\n \n \t\t\treturn 0;\n \t\t}\ndiff --git a/lib/roles/http/server/access-log.c b/lib/roles/http/server/access-log.c\nindex 9a29ae9..9623d6f 100644\n--- a/lib/roles/http/server/access-log.c\n+++ b/lib/roles/http/server/access-log.c\n@@ -60,7 +60,7 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int uri_len, int met\n \tif (wsi-\u003eaccess_log_pending)\n \t\tlws_access_log(wsi);\n \n-\twsi-\u003ehttp.access_log.header_log \u003d lws_malloc(l, \u0022access log\u0022);\n+\twsi-\u003ehttp.access_log.header_log \u003d lws_malloc((unsigned int)l, \u0022access log\u0022);\n \tif (!wsi-\u003ehttp.access_log.header_log)\n \t\treturn;\n \n@@ -84,7 +84,7 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int uri_len, int met\n \tif (m \u003e (int)sizeof(uri) - 1)\n \t\tm \u003d sizeof(uri) - 1;\n \n-\tstrncpy(uri, uri_ptr, m);\n+\tstrncpy(uri, uri_ptr, (unsigned int)m);\n \turi[m] \u003d '\u005c0';\n \n \tnwsi \u003d lws_get_network_wsi(wsi);\n@@ -94,7 +94,7 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int uri_len, int met\n \telse\n \t\tstrncpy(ta, \u0022unknown\u0022, sizeof(ta));\n \n-\tlws_snprintf(wsi-\u003ehttp.access_log.header_log, l,\n+\tlws_snprintf(wsi-\u003ehttp.access_log.header_log, (size_t)l,\n \t\t \u0022%s - - [%s] \u005c\u0022%s %s %s\u005c\u0022\u0022,\n \t\t ta, da, me, uri, hver[wsi-\u003ehttp.request_version]);\n \n@@ -103,7 +103,7 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int uri_len, int met\n \tl \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_USER_AGENT);\n \tif (l) {\n \t\twsi-\u003ehttp.access_log.user_agent \u003d\n-\t\t\t\tlws_malloc(l + 5, \u0022access log\u0022);\n+\t\t\t\tlws_malloc((unsigned int)l + 5, \u0022access log\u0022);\n \t\tif (!wsi-\u003ehttp.access_log.user_agent) {\n \t\t\tlwsl_err(\u0022OOM getting user agent\u005cn\u0022);\n \t\t\tlws_free_set_NULL(wsi-\u003ehttp.access_log.header_log);\n@@ -119,7 +119,7 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int uri_len, int met\n \t}\n \tl \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_REFERER);\n \tif (l) {\n-\t\twsi-\u003ehttp.access_log.referrer \u003d lws_malloc(l + 5, \u0022referrer\u0022);\n+\t\twsi-\u003ehttp.access_log.referrer \u003d lws_malloc((unsigned int)l + 5, \u0022referrer\u0022);\n \t\tif (!wsi-\u003ehttp.access_log.referrer) {\n \t\t\tlwsl_err(\u0022OOM getting referrer\u005cn\u0022);\n \t\t\tlws_free_set_NULL(wsi-\u003ehttp.access_log.user_agent);\n@@ -172,15 +172,15 @@ lws_access_log(struct lws *wsi)\n \t\t\t wsi-\u003ehttp.access_log.header_log,\n \t\t\t wsi-\u003ehttp.access_log.response,\n \t\t\t wsi-\u003ehttp.access_log.sent, p1);\n-\tif (strlen(p) \u003e sizeof(ass) - 6 - l) {\n-\t\tp[sizeof(ass) - 6 - l] \u003d '\u005c0';\n+\tif (strlen(p) \u003e sizeof(ass) - 6 - (unsigned int)l) {\n+\t\tp[sizeof(ass) - 6 - (unsigned int)l] \u003d '\u005c0';\n \t\tl--;\n \t}\n-\tl +\u003d lws_snprintf(ass + l, sizeof(ass) - 1 - l, \u0022\u005c\u0022 \u005c\u0022%s\u005c\u0022\u005cn\u0022, p);\n+\tl +\u003d lws_snprintf(ass + (unsigned int)l, sizeof(ass) - 1 - (unsigned int)l, \u0022\u005c\u0022 \u005c\u0022%s\u005c\u0022\u005cn\u0022, p);\n \n \tass[sizeof(ass) - 1] \u003d '\u005c0';\n \n-\tif (write(wsi-\u003ea.vhost-\u003elog_fd, ass, l) !\u003d l)\n+\tif ((int)write(wsi-\u003ea.vhost-\u003elog_fd, ass, (size_t)l) !\u003d l)\n \t\tlwsl_err(\u0022Failed to write log\u005cn\u0022);\n \n \tif (wsi-\u003ehttp.access_log.header_log) {\ndiff --git a/lib/roles/http/server/fops-zip.c b/lib/roles/http/server/fops-zip.c\nindex 015563b..832dcfc 100644\n--- a/lib/roles/http/server/fops-zip.c\n+++ b/lib/roles/http/server/fops-zip.c\n@@ -234,7 +234,7 @@ lws_fops_zip_scan(lws_fops_zip_t priv, const char *name, int len)\n \t\t\treturn LWS_FZ_ERR_NAME_TOO_LONG;\n \n \t\tif (priv-\u003ezip_fop_fd-\u003efops-\u003eLWS_FOP_READ(priv-\u003ezip_fop_fd,\n-\t\t\t\t\t\t\t\u0026amount, buf, len))\n+\t\t\t\t\t\t\t\u0026amount, buf, (unsigned int)len))\n \t\t\treturn LWS_FZ_ERR_NAME_READ;\n \t\tif ((int)amount !\u003d len)\n \t\t\treturn LWS_FZ_ERR_NAME_READ;\n@@ -267,7 +267,7 @@ lws_fops_zip_scan(lws_fops_zip_t priv, const char *name, int len)\n \t\t\treturn LWS_FZ_ERR_CONTENT_SANITY;\n \n \t\tif (lws_vfs_file_seek_set(priv-\u003ezip_fop_fd,\n-\t\t\t\t\t priv-\u003econtent_start) \u003c 0)\n+\t\t\t\t\t (lws_fileofs_t)priv-\u003econtent_start) \u003c 0)\n \t\t\treturn LWS_FZ_ERR_CONTENT_SEEK;\n \n \t\t/* we are aligned at the start of the content */\n@@ -278,11 +278,11 @@ lws_fops_zip_scan(lws_fops_zip_t priv, const char *name, int len)\n \n next:\n \t\tif (i \u0026\u0026 lws_vfs_file_seek_set(priv-\u003ezip_fop_fd,\n-\t\t\t\t\t priv-\u003econtent_start +\n-\t\t\t\t\t ZC_DIRECTORY_LENGTH +\n+\t\t\t\t\t (lws_fileofs_t)priv-\u003econtent_start +\n+\t\t\t\t\t (ZC_DIRECTORY_LENGTH +\n \t\t\t\t\t priv-\u003ehdr.filename_len +\n \t\t\t\t\t priv-\u003ehdr.extra +\n-\t\t\t\t\t priv-\u003ehdr.file_com_len) \u003c 0)\n+\t\t\t\t\t priv-\u003ehdr.file_com_len)) \u003c 0)\n \t\t\treturn LWS_FZ_ERR_SCAN_SEEK;\n \t}\n \n@@ -306,7 +306,7 @@ lws_fops_zip_reset_inflate(lws_fops_zip_t priv)\n \t\treturn LWS_FZ_ERR_ZLIB_INIT;\n \t}\n \n-\tif (lws_vfs_file_seek_set(priv-\u003ezip_fop_fd, priv-\u003econtent_start) \u003c 0)\n+\tif (lws_vfs_file_seek_set(priv-\u003ezip_fop_fd, (lws_fileofs_t)priv-\u003econtent_start) \u003c 0)\n \t\treturn LWS_FZ_ERR_CONTENT_SEEK;\n \n \tpriv-\u003eexp_uncomp_pos \u003d 0;\n@@ -338,7 +338,7 @@ lws_fops_zip_open(const struct lws_plat_file_ops *fops, const char *vfs_path,\n \tm \u003d sizeof(rp) - 1;\n \tif ((vpath - vfs_path - 1) \u003c m)\n \t\tm \u003d lws_ptr_diff(vpath, vfs_path) - 1;\n-\tlws_strncpy(rp, vfs_path, m + 1);\n+\tlws_strncpy(rp, vfs_path, (unsigned int)m + 1);\n \n \t/* open the zip file itself using the incoming fops, not fops_zip */\n \n@@ -488,9 +488,9 @@ lws_fops_zip_close(lws_fop_fd_t *fd)\n static lws_fileofs_t\n lws_fops_zip_seek_cur(lws_fop_fd_t fd, lws_fileofs_t offset_from_cur_pos)\n {\n-\tfd-\u003epos +\u003d offset_from_cur_pos;\n+\tfd-\u003epos \u003d (lws_filepos_t)((lws_fileofs_t)fd-\u003epos + offset_from_cur_pos);\n \n-\treturn fd-\u003epos;\n+\treturn (lws_fileofs_t)fd-\u003epos;\n }\n \n static int\ndiff --git a/lib/roles/http/server/lejp-conf.c b/lib/roles/http/server/lejp-conf.c\nindex 6db7afc..6970c19 100644\n--- a/lib/roles/http/server/lejp-conf.c\n+++ b/lib/roles/http/server/lejp-conf.c\n@@ -297,10 +297,10 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)\n \n \tswitch (ctx-\u003epath_match - 1) {\n \tcase LEJPGP_UID:\n-\t\ta-\u003einfo-\u003euid \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003euid \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPGP_GID:\n-\t\ta-\u003einfo-\u003egid \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003egid \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPGP_USERNAME:\n \t\ta-\u003einfo-\u003eusername \u003d a-\u003ep;\n@@ -309,7 +309,7 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)\n \t\ta-\u003einfo-\u003egroupname \u003d a-\u003ep;\n \t\tbreak;\n \tcase LEJPGP_COUNT_THREADS:\n-\t\ta-\u003einfo-\u003ecount_threads \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003ecount_threads \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LWJPGP_INIT_SSL:\n \t\tif (arg_to_bool(ctx-\u003ebuf))\n@@ -332,7 +332,7 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)\n \t\treturn 0;\n \n \tcase LWJPGP_TIMEOUT_SECS:\n-\t\ta-\u003einfo-\u003etimeout_secs \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003etimeout_secs \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \n #if defined(LWS_WITH_TLS)\n@@ -343,11 +343,11 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)\n \n #if defined(LWS_WITH_PEER_LIMITS)\n \tcase LWJPGP_IP_LIMIT_AH:\n-\t\ta-\u003einfo-\u003eip_limit_ah \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003eip_limit_ah \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \n \tcase LWJPGP_IP_LIMIT_WSI:\n-\t\ta-\u003einfo-\u003eip_limit_wsi \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003einfo-\u003eip_limit_wsi \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n #endif\n \n@@ -360,7 +360,7 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason)\n \t}\n \n dostring:\n-\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, a-\u003eend - a-\u003ep, \u0022%s\u0022, ctx-\u003ebuf);\n+\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, lws_ptr_diff_size_t(a-\u003eend, a-\u003ep), \u0022%s\u0022, ctx-\u003ebuf);\n \t*(a-\u003ep)++ \u003d '\u005c0';\n \n \treturn 0;\n@@ -594,7 +594,7 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason)\n \t\t\tif (!strncmp(a-\u003em.origin, mount_protocols[n],\n \t\t\t strlen(mount_protocols[n]))) {\n \t\t\t\tlwsl_info(\u0022----%s\u005cn\u0022, a-\u003em.origin);\n-\t\t\t\tm-\u003eorigin_protocol \u003d n;\n+\t\t\t\tm-\u003eorigin_protocol \u003d (uint8_t)(unsigned int)n;\n \t\t\t\tm-\u003eorigin \u003d a-\u003em.origin +\n \t\t\t\t\t strlen(mount_protocols[n]);\n \t\t\t\tbreak;\n@@ -629,18 +629,18 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason)\n \t\tbreak;\n \tcase LEJPVP_UNIXSKT:\n \t\tif (arg_to_bool(ctx-\u003ebuf))\n-\t\t\ta-\u003einfo-\u003eoptions |\u003d LWS_SERVER_OPTION_UNIX_SOCK;\n+\t\t\ta-\u003einfo-\u003eoptions |\u003d (uint64_t)LWS_SERVER_OPTION_UNIX_SOCK;\n \t\telse\n-\t\t\ta-\u003einfo-\u003eoptions \u0026\u003d ~(LWS_SERVER_OPTION_UNIX_SOCK);\n+\t\t\ta-\u003einfo-\u003eoptions \u0026\u003d (uint64_t)~(LWS_SERVER_OPTION_UNIX_SOCK);\n \t\treturn 0;\n \tcase LEJPVP_UNIXSKT_PERMS:\n \t\ta-\u003einfo-\u003eunix_socket_perms \u003d a-\u003ep;\n \t\tbreak;\n \tcase LEJPVP_STS:\n \t\tif (arg_to_bool(ctx-\u003ebuf))\n-\t\t\ta-\u003einfo-\u003eoptions |\u003d LWS_SERVER_OPTION_STS;\n+\t\t\ta-\u003einfo-\u003eoptions |\u003d (uint64_t)LWS_SERVER_OPTION_STS;\n \t\telse\n-\t\t\ta-\u003einfo-\u003eoptions \u0026\u003d ~(LWS_SERVER_OPTION_STS);\n+\t\t\ta-\u003einfo-\u003eoptions \u0026\u003d (uint64_t)~(LWS_SERVER_OPTION_STS);\n \t\treturn 0;\n #if defined(LWS_WITH_TLS)\n \tcase LEJPVP_HOST_SSL_KEY:\n@@ -671,19 +671,19 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason)\n \t\ta-\u003em.def \u003d a-\u003ep;\n \t\tbreak;\n \tcase LEJPVP_DEFAULT_AUTH_MASK:\n-\t\ta-\u003em.auth_mask \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003em.auth_mask \u003d (unsigned int)atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPVP_MOUNT_CACHE_MAX_AGE:\n \t\ta-\u003em.cache_max_age \u003d atoi(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPVP_MOUNT_CACHE_REUSE:\n-\t\ta-\u003em.cache_reusable \u003d arg_to_bool(ctx-\u003ebuf);\n+\t\ta-\u003em.cache_reusable \u003d !!arg_to_bool(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPVP_MOUNT_CACHE_REVALIDATE:\n-\t\ta-\u003em.cache_revalidate \u003d arg_to_bool(ctx-\u003ebuf);\n+\t\ta-\u003em.cache_revalidate \u003d !!arg_to_bool(ctx-\u003ebuf);\n \t\treturn 0;\n \tcase LEJPVP_MOUNT_CACHE_INTERMEDIARIES:\n-\t\ta-\u003em.cache_intermediaries \u003d arg_to_bool(ctx-\u003ebuf);;\n+\t\ta-\u003em.cache_intermediaries \u003d !!arg_to_bool(ctx-\u003ebuf);;\n \t\treturn 0;\n \tcase LEJPVP_MOUNT_BASIC_AUTH:\n #if defined(LWS_WITH_HTTP_BASIC_AUTH)\n@@ -783,7 +783,7 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason)\n \t\tbreak;\n \n \tcase LEJPVP_ENABLE_CLIENT_SSL:\n-\t\ta-\u003eenable_client_ssl \u003d arg_to_bool(ctx-\u003ebuf);\n+\t\ta-\u003eenable_client_ssl \u003d !!arg_to_bool(ctx-\u003ebuf);\n \t\treturn 0;\n #if defined(LWS_WITH_TLS) \u0026\u0026 defined(LWS_WITH_CLIENT)\n \tcase LEJPVP_CLIENT_SSL_KEY:\n@@ -906,14 +906,14 @@ dostring:\n \t\tn \u003d lws_ptr_diff(p1, p);\n \t\tif (n \u003e a-\u003eend - a-\u003ep)\n \t\t\tn \u003d lws_ptr_diff(a-\u003eend, a-\u003ep);\n-\t\tlws_strncpy(a-\u003ep, p, n + 1);\n+\t\tlws_strncpy(a-\u003ep, p, (unsigned int)n + 1u);\n \t\ta-\u003ep +\u003d n;\n-\t\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, a-\u003eend - a-\u003ep, \u0022%s\u0022,\n+\t\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, lws_ptr_diff_size_t(a-\u003eend, a-\u003ep), \u0022%s\u0022,\n \t\t\t\t LWS_INSTALL_DATADIR);\n-\t\tp +\u003d n + strlen(ESC_INSTALL_DATADIR);\n+\t\tp +\u003d n + (int)strlen(ESC_INSTALL_DATADIR);\n \t}\n \n-\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, a-\u003eend - a-\u003ep, \u0022%s\u0022, p);\n+\ta-\u003ep +\u003d lws_snprintf(a-\u003ep, lws_ptr_diff_size_t(a-\u003eend, a-\u003ep), \u0022%s\u0022, p);\n \tif (reason \u003d\u003d LEJPCB_VAL_STR_END)\n \t\t*(a-\u003ep)++ \u003d '\u005c0';\n \n@@ -938,10 +938,10 @@ lwsws_get_config(void *user, const char *f, const char * const *paths,\n \t\treturn 2;\n \t}\n \tlwsl_info(\u0022%s: %s\u005cn\u0022, __func__, f);\n-\tlejp_construct(\u0026ctx, cb, user, paths, count_paths);\n+\tlejp_construct(\u0026ctx, cb, user, paths, (uint8_t)(unsigned int)count_paths);\n \n \tdo {\n-\t\tn \u003d read(fd, buf, sizeof(buf));\n+\t\tn \u003d (int)read(fd, buf, sizeof(buf));\n \t\tif (!n)\n \t\t\tbreak;\n \n@@ -949,7 +949,7 @@ lwsws_get_config(void *user, const char *f, const char * const *paths,\n \t} while (m \u003d\u003d LEJP_CONTINUE);\n \n \tclose(fd);\n-\tn \u003d ctx.line;\n+\tn \u003d (int32_t)ctx.line;\n \tlejp_destruct(\u0026ctx);\n \n \tif (m \u003c 0) {\ndiff --git a/lib/roles/http/server/lws-spa.c b/lib/roles/http/server/lws-spa.c\nindex ef85f69..18325ab 100644\n--- a/lib/roles/http/server/lws-spa.c\n+++ b/lib/roles/http/server/lws-spa.c\n@@ -193,7 +193,7 @@ lws_urldecode_s_process(struct lws_urldecode_stateful *s, const char *in,\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\tif (s-\u003epos \u003e\u003d (int)sizeof(s-\u003ename) - 1) {\n-\t\t\t\tlwsl_hexdump_notice(s-\u003ename, s-\u003epos);\n+\t\t\t\tlwsl_hexdump_notice(s-\u003ename, (size_t)s-\u003epos);\n \t\t\t\tlwsl_notice(\u0022Name too long...\u005cn\u0022);\n \t\t\t\treturn -1;\n \t\t\t}\n@@ -238,7 +238,7 @@ lws_urldecode_s_process(struct lws_urldecode_stateful *s, const char *in,\n \t\t\t\treturn -1;\n \n \t\t\tin++;\n-\t\t\ts-\u003eout[s-\u003epos++] \u003d s-\u003esum | n;\n+\t\t\ts-\u003eout[s-\u003epos++] \u003d (char)(s-\u003esum | n);\n \t\t\ts-\u003estate \u003d US_IDLE;\n \t\t\tbreak;\n \n@@ -275,7 +275,8 @@ retry_as_first:\n \t\t\t\t\tn \u003d 2;\n \t\t\t\tif (s-\u003emp \u003e\u003d n) {\n \t\t\t\t\tmemcpy(s-\u003eout + s-\u003epos,\n-\t\t\t\t\t s-\u003emime_boundary + n, s-\u003emp - n);\n+\t\t\t\t\t s-\u003emime_boundary + n,\n+\t\t\t\t\t (unsigned int)(s-\u003emp - n));\n \t\t\t\t\ts-\u003epos +\u003d s-\u003emp;\n \t\t\t\t\ts-\u003emp \u003d 0;\n \t\t\t\t\tgoto retry_as_first;\n@@ -290,7 +291,7 @@ retry_as_first:\n \t\tcase MT_HNAME:\n \t\t\tc \u003d*in;\n \t\t\tif (c \u003e\u003d 'A' \u0026\u0026 c \u003c\u003d 'Z')\n-\t\t\t\tc +\u003d 'a' - 'A';\n+\t\t\t\tc \u003d (char)(c + 'a' - 'A');\n \t\t\tif (!s-\u003emp)\n \t\t\t\t/* initially, any of them might match */\n \t\t\t\ts-\u003ematchable \u003d (1 \u003c\u003c LWS_ARRAY_SIZE(mp_hdrs)) - 1; \n@@ -304,13 +305,13 @@ retry_as_first:\n \n \t\t\t\tif (s-\u003emp \u003e\u003d mp_hdrs[n].hdr_len) {\n \t\t\t\t\t/* he went past the end of it */\n-\t\t\t\t\ts-\u003ematchable \u0026\u003d ~(1 \u003c\u003c n);\n+\t\t\t\t\ts-\u003ematchable \u0026\u003d (uint8_t)~(1 \u003c\u003c n);\n \t\t\t\t\tcontinue;\n \t\t\t\t}\n \n \t\t\t\tif (c !\u003d mp_hdrs[n].hdr[s-\u003emp]) {\n \t\t\t\t\t/* mismatched a char */\n-\t\t\t\t\ts-\u003ematchable \u0026\u003d ~(1 \u003c\u003c n);\n+\t\t\t\t\ts-\u003ematchable \u0026\u003d (uint8_t)~(1 \u003c\u003c n);\n \t\t\t\t\tcontinue;\n \t\t\t\t}\n \n@@ -342,7 +343,7 @@ retry_as_first:\n \t\t\tif (hit \u003d\u003d 2)\n \t\t\t\ts-\u003estate \u003d MT_LOOK_BOUND_IN;\n \t\t\telse\n-\t\t\t\ts-\u003estate +\u003d hit + 1;\n+\t\t\t\ts-\u003estate +\u003d (unsigned int)hit + 1u;\n \t\t\tbreak;\n \n \t\tcase MT_DISP:\n@@ -503,7 +504,7 @@ lws_urldecode_spa_cb(struct lws_spa *spa, const char *name, char **buf, int len,\n \t\tif (spa-\u003ei.opt_cb) {\n \t\t\tn \u003d spa-\u003ei.opt_cb(spa-\u003ei.opt_data, name,\n \t\t\t\t\tspa-\u003es-\u003econtent_disp_filename,\n-\t\t\t\t\tbuf ? *buf : NULL, len, final);\n+\t\t\t\t\tbuf ? *buf : NULL, len, (enum lws_spa_fileupload_states)final);\n \n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n@@ -529,12 +530,12 @@ lws_urldecode_spa_cb(struct lws_spa *spa, const char *name, char **buf, int len,\n \n \t\tspa-\u003es-\u003eout_len -\u003d len + 1;\n \t} else {\n-\t\tspa-\u003eparams[n] \u003d lwsac_use(spa-\u003ei.ac, len + 1,\n+\t\tspa-\u003eparams[n] \u003d lwsac_use(spa-\u003ei.ac, (unsigned int)len + 1,\n \t\t\t\t\t spa-\u003ei.ac_chunk_size);\n \t\tif (!spa-\u003eparams[n])\n \t\t\treturn -1;\n \n-\t\tmemcpy(spa-\u003eparams[n], *buf, len);\n+\t\tmemcpy(spa-\u003eparams[n], *buf, (unsigned int)len);\n \t\tspa-\u003eparams[n][len] \u003d '\u005c0';\n \t}\n \n@@ -561,10 +562,10 @@ lws_spa_create_via_info(struct lws *wsi, const lws_spa_create_info_t *i)\n \t\tspa-\u003ei.max_storage \u003d 512;\n \n \tif (i-\u003eac)\n-\t\tspa-\u003estorage \u003d lwsac_use(i-\u003eac, spa-\u003ei.max_storage,\n+\t\tspa-\u003estorage \u003d lwsac_use(i-\u003eac, (unsigned int)spa-\u003ei.max_storage,\n \t\t\t\t\t i-\u003eac_chunk_size);\n \telse\n-\t\tspa-\u003estorage \u003d lws_malloc(spa-\u003ei.max_storage, \u0022spa\u0022);\n+\t\tspa-\u003estorage \u003d lws_malloc((unsigned int)spa-\u003ei.max_storage, \u0022spa\u0022);\n \n \tif (!spa-\u003estorage)\n \t\tgoto bail2;\n@@ -574,9 +575,9 @@ lws_spa_create_via_info(struct lws *wsi, const lws_spa_create_info_t *i)\n \tif (i-\u003ecount_params) {\n \t\tif (i-\u003eac)\n \t\t\tspa-\u003eparams \u003d lwsac_use_zero(i-\u003eac,\n-\t\t\t\tsizeof(char *) * i-\u003ecount_params, i-\u003eac_chunk_size);\n+\t\t\t\tsizeof(char *) * (unsigned int)i-\u003ecount_params, i-\u003eac_chunk_size);\n \t\telse\n-\t\t\tspa-\u003eparams \u003d lws_zalloc(sizeof(char *) * i-\u003ecount_params,\n+\t\t\tspa-\u003eparams \u003d lws_zalloc(sizeof(char *) * (unsigned int)i-\u003ecount_params,\n \t\t\t\t\t \u0022spa params\u0022);\n \t\tif (!spa-\u003eparams)\n \t\t\tgoto bail3;\n@@ -590,9 +591,9 @@ lws_spa_create_via_info(struct lws *wsi, const lws_spa_create_info_t *i)\n \tif (i-\u003ecount_params) {\n \t\tif (i-\u003eac)\n \t\t\tspa-\u003eparam_length \u003d lwsac_use_zero(i-\u003eac,\n-\t\t\t\tsizeof(int) * i-\u003ecount_params, i-\u003eac_chunk_size);\n+\t\t\t\tsizeof(int) * (unsigned int)i-\u003ecount_params, i-\u003eac_chunk_size);\n \t\telse\n-\t\t\tspa-\u003eparam_length \u003d lws_zalloc(sizeof(int) * i-\u003ecount_params,\n+\t\t\tspa-\u003eparam_length \u003d lws_zalloc(sizeof(int) * (unsigned int)i-\u003ecount_params,\n \t\t\t\t\t\t\u0022spa param len\u0022);\n \t\tif (!spa-\u003eparam_length)\n \t\t\tgoto bail5;\ndiff --git a/lib/roles/http/server/ranges.c b/lib/roles/http/server/ranges.c\nindex e1adddb..15026b5 100644\n--- a/lib/roles/http/server/ranges.c\n+++ b/lib/roles/http/server/ranges.c\n@@ -111,7 +111,7 @@ lws_ranges_next(struct lws_range_parsing *rp)\n \t\t\t\trp-\u003estate \u003d LWSRS_SYNTAX;\n \t\t\t\treturn 0;\n \t\t\t}\n-\t\t\trp-\u003estart \u003d (rp-\u003estart * 10) + (c - '0');\n+\t\t\trp-\u003estart \u003d (unsigned long long)(((unsigned long long)rp-\u003estart * 10) + (unsigned long long)(c - '0'));\n \t\t\trp-\u003estart_valid \u003d 1;\n \t\t\tbreak;\n \n@@ -153,7 +153,7 @@ lws_ranges_next(struct lws_range_parsing *rp)\n \t\t\t\trp-\u003estate \u003d LWSRS_SYNTAX;\n \t\t\t\treturn 0;\n \t\t\t}\n-\t\t\trp-\u003eend \u003d (rp-\u003eend * 10) + (c - '0');\n+\t\t\trp-\u003eend \u003d (unsigned long long)(((unsigned long long)rp-\u003eend * 10) + (unsigned long long)(c - '0'));\n \t\t\trp-\u003eend_valid \u003d 1;\n \t\t\tbreak;\n \t\t}\ndiff --git a/lib/roles/http/server/server.c b/lib/roles/http/server/server.c\nindex edd0d3d..93679bc 100644\n--- a/lib/roles/http/server/server.c\n+++ b/lib/roles/http/server/server.c\n@@ -369,7 +369,7 @@ lws_select_vhost(struct lws_context *context, int port, const char *servername)\n \n \twhile (vhost) {\n \t\tif (port \u003d\u003d vhost-\u003elisten_port \u0026\u0026\n-\t\t !strncmp(vhost-\u003ename, servername, colon)) {\n+\t\t !strncmp(vhost-\u003ename, servername, (unsigned int)colon)) {\n \t\t\tlwsl_info(\u0022SNI: Found: %s\u005cn\u0022, servername);\n \t\t\treturn vhost;\n \t\t}\n@@ -389,7 +389,7 @@ lws_select_vhost(struct lws_context *context, int port, const char *servername)\n \t\tif (port \u0026\u0026 port \u003d\u003d vhost-\u003elisten_port \u0026\u0026\n \t\t m \u003c\u003d (colon - 2) \u0026\u0026\n \t\t servername[colon - m - 1] \u003d\u003d '.' \u0026\u0026\n-\t\t !strncmp(vhost-\u003ename, servername + colon - m, m)) {\n+\t\t !strncmp(vhost-\u003ename, servername + colon - m, (unsigned int)m)) {\n \t\t\tlwsl_info(\u0022SNI: Found %s on wildcard: %s\u005cn\u0022,\n \t\t\t\t servername, vhost-\u003ename);\n \t\t\treturn vhost;\n@@ -590,7 +590,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,\n \n #if !defined(WIN32) \u0026\u0026 !defined(LWS_PLAT_FREERTOS)\n \t\tif ((S_IFMT \u0026 st.st_mode) \u003d\u003d S_IFLNK) {\n-\t\t\tlen \u003d readlink(path, sym, sizeof(sym) - 1);\n+\t\t\tlen \u003d (size_t)readlink(path, sym, sizeof(sym) - 1);\n \t\t\tif (len) {\n \t\t\t\tlwsl_err(\u0022Failed to read link %s\u005cn\u0022, path);\n \t\t\t\tgoto notfound;\n@@ -675,10 +675,10 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,\n \t\t\tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\t\t\treturn -1;\n \n-\t\t\tn \u003d lws_write(wsi, start, p - start,\n+\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n \t\t\t\t LWS_WRITE_HTTP_HEADERS |\n \t\t\t\t LWS_WRITE_H2_STREAM_END);\n-\t\t\tif (n !\u003d (p - start)) {\n+\t\t\tif (n !\u003d lws_ptr_diff(p, start)) {\n \t\t\t\tlwsl_err(\u0022_write returned %d from %ld\u005cn\u0022, n,\n \t\t\t\t\t (long)(p - start));\n \t\t\t\treturn -1;\n@@ -721,7 +721,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,\n \twhile (pvo) {\n \t\tn \u003d (int)strlen(path);\n \t\tif (n \u003e (int)strlen(pvo-\u003ename) \u0026\u0026\n-\t\t !strcmp(\u0026path[n - strlen(pvo-\u003ename)], pvo-\u003ename)) {\n+\t\t !strcmp(\u0026path[(unsigned int)n - strlen(pvo-\u003ename)], pvo-\u003ename)) {\n \t\t\twsi-\u003einterpreting \u003d 1;\n \t\t\tif (!wsi-\u003emux_substream)\n \t\t\t\twsi-\u003esending_chunked \u003d 1;\n@@ -839,7 +839,7 @@ lws_find_string_in_file(const char *filename, const char *string, int stringlen)\n \n \twhile (1) {\n \t\tif (pos \u003d\u003d n) {\n-\t\t\tn \u003d read(fd, buf, sizeof(buf));\n+\t\t\tn \u003d (int)read(fd, buf, sizeof(buf));\n \t\t\tif (n \u003c\u003d 0) {\n \t\t\t\tif (match \u003d\u003d stringlen)\n \t\t\t\t\thit \u003d 1;\n@@ -898,7 +898,7 @@ lws_unauthorised_basic_auth(struct lws *wsi)\n \tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\treturn -1;\n \n-\tn \u003d lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS |\n+\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start), LWS_WRITE_HTTP_HEADERS |\n \t\t\t\t\t LWS_WRITE_H2_STREAM_END);\n \tif (n \u003c 0)\n \t\treturn -1;\n@@ -1051,7 +1051,7 @@ lws_check_basic_auth(struct lws *wsi, const char *basic_auth_login_file,\n \tcase LWSAUTHM_BASIC_AUTH_CALLBACK:\n \t\tbar \u003d wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\tLWS_CALLBACK_VERIFY_BASIC_AUTHORIZATION,\n-\t\t\t\twsi-\u003euser_space, plain, m);\n+\t\t\t\twsi-\u003euser_space, plain, (unsigned int)m);\n \t\tif (!bar)\n \t\t\treturn LCBA_FAILED_AUTH;\n \t\tbreak;\n@@ -1066,9 +1066,9 @@ lws_check_basic_auth(struct lws *wsi, const char *basic_auth_login_file,\n \t */\n \n \t*pcolon \u003d '\u005c0';\n-\twsi-\u003ehttp.ah-\u003efrags[fi].len \u003d lws_ptr_diff(pcolon, plain);\n+\twsi-\u003ehttp.ah-\u003efrags[fi].len \u003d (uint16_t)lws_ptr_diff_size_t(pcolon, \u0026plain[0]);\n \tpcolon \u003d lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_AUTHORIZATION);\n-\tstrncpy(pcolon, plain, ml - 1);\n+\tstrncpy(pcolon, plain, (unsigned int)(ml - 1));\n \tpcolon[ml - 1] \u003d '\u005c0';\n \tlwsl_info(\u0022%s: basic auth accepted for %s\u005cn\u0022, __func__,\n \t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_AUTHORIZATION));\n@@ -1149,7 +1149,7 @@ lws_http_proxy_start(struct lws *wsi, const struct lws_http_mount *hit,\n \t\t\tn \u003d sizeof(ads) - 2;\n \t}\n \n-\tmemcpy(ads, hit-\u003eorigin, n);\n+\tmemcpy(ads, hit-\u003eorigin, (unsigned int)n);\n \tads[n] \u003d '\u005c0';\n \n \ti.address \u003d ads;\n@@ -1456,7 +1456,7 @@ lws_http_action(struct lws *wsi)\n \t\t\t sizeof(content_length_str) - 1,\n \t\t\t WSI_TOKEN_HTTP_CONTENT_LENGTH) \u003e 0) {\n \t\twsi-\u003ehttp.rx_content_remain \u003d wsi-\u003ehttp.rx_content_length \u003d\n-\t\t\t\t\t\tatoll(content_length_str);\n+\t\t\t\t(lws_filepos_t)atoll(content_length_str);\n \t\tif (!wsi-\u003ehttp.rx_content_length) {\n \t\t\twsi-\u003ehttp.content_length_explicitly_zero \u003d 1;\n \t\t\tlwsl_debug(\u0022%s: explicit 0 content-length\u005cn\u0022, __func__);\n@@ -1500,8 +1500,8 @@ lws_http_action(struct lws *wsi)\n \t\twsi-\u003ehttp.conn_type \u003d conn_type;\n \t}\n \n-\tn \u003d wsi-\u003ea.protocol-\u003ecallback(wsi, LWS_CALLBACK_FILTER_HTTP_CONNECTION,\n-\t\t\t\t wsi-\u003euser_space, uri_ptr, uri_len);\n+\tn \u003d (unsigned int)wsi-\u003ea.protocol-\u003ecallback(wsi, LWS_CALLBACK_FILTER_HTTP_CONNECTION,\n+\t\t\t\t wsi-\u003euser_space, uri_ptr, (unsigned int)uri_len);\n \tif (n) {\n \t\tlwsl_info(\u0022LWS_CALLBACK_HTTP closing\u005cn\u0022);\n \n@@ -1513,7 +1513,7 @@ lws_http_action(struct lws *wsi)\n \t */\n \tif (!wsi-\u003emux_stream_immortal)\n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_HTTP_CONTENT,\n-\t\t\t\twsi-\u003ea.context-\u003etimeout_secs);\n+\t\t\t\t(int)wsi-\u003ea.context-\u003etimeout_secs);\n #if defined(LWS_WITH_TLS)\n \tif (wsi-\u003etls.redirect_to_https) {\n \t\t/*\n@@ -1526,14 +1526,14 @@ lws_http_action(struct lws *wsi)\n \t\t\t *end \u003d p + wsi-\u003ea.context-\u003ept_serv_buf_size -\n \t\t\t\t LWS_PRE;\n \n-\t\tn \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HOST);\n+\t\tn \u003d (unsigned int)lws_hdr_total_length(wsi, WSI_TOKEN_HOST);\n \t\tif (!n || n \u003e 128)\n \t\t\tgoto bail_nuke_ah;\n \n \t\tif (!lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST))\n \t\t\tgoto bail_nuke_ah;\n \n-\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p), \u0022https://\u0022);\n+\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022https://\u0022);\n \t\tmemcpy(p, lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST), n);\n \t\tp +\u003d n;\n \t\t*p++ \u003d '/';\n@@ -1542,13 +1542,13 @@ lws_http_action(struct lws *wsi)\n \n \t\tif (uri_ptr[0])\n \t\t\tp--;\n-\t\tmemcpy(p, uri_ptr, uri_len);\n+\t\tmemcpy(p, uri_ptr, (unsigned int)uri_len);\n \t\tp +\u003d uri_len;\n \n \t\tn \u003d 0;\n \t\twhile (lws_hdr_copy_fragment(wsi, (char *)p + 1,\n \t\t\t\t\t lws_ptr_diff(end, p) - 2,\n-\t\t\t\t\t WSI_TOKEN_HTTP_URI_ARGS, n) \u003e 0) {\n+\t\t\t\t\t WSI_TOKEN_HTTP_URI_ARGS, (int)n) \u003e 0) {\n \t\t\t*p \u003d n ? '\u0026' : '?';\n \t\t\tp +\u003d strlen((char *)p);\n \t\t\tif (p \u003e\u003d end - 2)\n@@ -1556,11 +1556,11 @@ lws_http_action(struct lws *wsi)\n \t\t\tn++;\n \t\t}\n \n-\t\tn \u003d lws_ptr_diff(p, start);\n+\t\tn \u003d (unsigned int)lws_ptr_diff(p, start);\n \n \t\tp +\u003d LWS_PRE;\n-\t\tn \u003d lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY,\n-\t\t\t\t start, n, \u0026p, end);\n+\t\tn \u003d (unsigned int)lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY,\n+\t\t\t\t start, (int)n, \u0026p, end);\n \t\tif ((int)n \u003c 0)\n \t\t\tgoto bail_nuke_ah;\n \n@@ -1587,7 +1587,7 @@ lws_http_action(struct lws *wsi)\n \t\tlwsi_set_state(wsi, LRS_DOING_TRANSACTION);\n \n \t\tm \u003d wsi-\u003ea.protocol-\u003ecallback(wsi, LWS_CALLBACK_HTTP,\n-\t\t\t\t wsi-\u003euser_space, uri_ptr, uri_len);\n+\t\t\t\t wsi-\u003euser_space, uri_ptr, (unsigned int)uri_len);\n \n \t\tgoto after;\n \t}\n@@ -1595,9 +1595,9 @@ lws_http_action(struct lws *wsi)\n #if defined(LWS_WITH_FILE_OPS)\n \ts \u003d uri_ptr + hit-\u003emountpoint_len;\n #endif\n-\tn \u003d lws_http_redirect_hit(pt, wsi, hit, uri_ptr, uri_len, \u0026ha);\n+\tn \u003d (unsigned int)lws_http_redirect_hit(pt, wsi, hit, uri_ptr, uri_len, \u0026ha);\n \tif (ha)\n-\t\treturn n;\n+\t\treturn (int)n;\n \n #if defined(LWS_WITH_HTTP_BASIC_AUTH)\n \n@@ -1627,10 +1627,10 @@ lws_http_action(struct lws *wsi)\n \n \tif (hit-\u003eorigin_protocol \u003d\u003d LWSMPRO_HTTPS ||\n \t hit-\u003eorigin_protocol \u003d\u003d LWSMPRO_HTTP) {\n-\t\tn \u003d lws_http_proxy_start(wsi, hit, uri_ptr, 0);\n+\t\tn \u003d (unsigned int)lws_http_proxy_start(wsi, hit, uri_ptr, 0);\n \t\t// lwsl_notice(\u0022proxy start says %d\u005cn\u0022, n);\n \t\tif (n)\n-\t\t\treturn n;\n+\t\t\treturn (int)n;\n \n \t\tgoto deal_body;\n \t}\n@@ -1667,7 +1667,7 @@ lws_http_action(struct lws *wsi)\n \t\targs.final \u003d 0; /* used to signal callback dealt with it */\n \t\targs.chunked \u003d 0;\n \n-\t\tn \u003d wsi-\u003ea.protocol-\u003ecallback(wsi,\n+\t\tn \u003d (unsigned int)wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\t\t LWS_CALLBACK_CHECK_ACCESS_RIGHTS,\n \t\t\t\t\t wsi-\u003euser_space, \u0026args, 0);\n \t\tif (n) {\n@@ -1687,7 +1687,7 @@ lws_http_action(struct lws *wsi)\n \t\t\tm \u003d wsi-\u003ea.protocol-\u003ecallback(wsi, LWS_CALLBACK_HTTP,\n \t\t\t\t\t wsi-\u003euser_space,\n \t\t\t\t\t uri_ptr + hit-\u003emountpoint_len,\n-\t\t\t\t\t uri_len - hit-\u003emountpoint_len);\n+\t\t\t\t\t (unsigned int)uri_len - hit-\u003emountpoint_len);\n \t\t\tgoto after;\n \t\t}\n \t}\n@@ -1705,9 +1705,9 @@ lws_http_action(struct lws *wsi)\n \n \t\tn \u003d 5;\n \t\tif (hit-\u003ecgi_timeout)\n-\t\t\tn \u003d hit-\u003ecgi_timeout;\n+\t\t\tn \u003d (unsigned int)hit-\u003ecgi_timeout;\n \n-\t\tn \u003d lws_cgi(wsi, cmd, hit-\u003emountpoint_len, n,\n+\t\tn \u003d (unsigned int)lws_cgi(wsi, cmd, hit-\u003emountpoint_len, (int)n,\n \t\t\t hit-\u003ecgienv);\n \t\tif (n) {\n \t\t\tlwsl_err(\u0022%s: cgi failed\u005cn\u0022, __func__);\n@@ -1719,14 +1719,14 @@ lws_http_action(struct lws *wsi)\n #endif\n \n #if defined(LWS_WITH_FILE_OPS)\n-\tn \u003d uri_len - lws_ptr_diff(s, uri_ptr);\n+\tn \u003d (unsigned int)(uri_len - lws_ptr_diff(s, uri_ptr));\n \tif (s[0] \u003d\u003d '\u005c0' || (n \u003d\u003d 1 \u0026\u0026 s[n - 1] \u003d\u003d '/'))\n \t\ts \u003d (char *)hit-\u003edef;\n \tif (!s)\n \t\ts \u003d \u0022index.html\u0022;\n #endif\n \n-\twsi-\u003ecache_secs \u003d hit-\u003ecache_max_age;\n+\twsi-\u003ecache_secs \u003d (unsigned int)hit-\u003ecache_max_age;\n \twsi-\u003ecache_reuse \u003d hit-\u003ecache_reusable;\n \twsi-\u003ecache_revalidate \u003d hit-\u003ecache_revalidate;\n \twsi-\u003ecache_intermediaries \u003d hit-\u003ecache_intermediaries;\n@@ -1759,10 +1759,10 @@ lws_http_action(struct lws *wsi)\n \t\t\tm \u003d pp-\u003ecallback(wsi, LWS_CALLBACK_HTTP,\n \t\t\t\t\t wsi-\u003euser_space,\n \t\t\t\t\t uri_ptr + hit-\u003emountpoint_len,\n-\t\t\t\t\t uri_len - hit-\u003emountpoint_len);\n+\t\t\t\t\t (size_t)(uri_len - hit-\u003emountpoint_len));\n \t\t} else\n \t\t\tm \u003d wsi-\u003ea.protocol-\u003ecallback(wsi, LWS_CALLBACK_HTTP,\n-\t\t\t\t wsi-\u003euser_space, uri_ptr, uri_len);\n+\t\t\t\t wsi-\u003euser_space, uri_ptr, (size_t)uri_len);\n \t}\n \n after:\n@@ -1842,7 +1842,7 @@ deal_body:\n \t\t\tbreak;\n \n \t\tlwsl_debug(\u0022%s: consuming %d\u005cn\u0022, __func__, (int)ebuf.len);\n-\t\tm \u003d lws_read_h1(wsi, ebuf.token, ebuf.len);\n+\t\tm \u003d lws_read_h1(wsi, ebuf.token, (lws_filepos_t)ebuf.len);\n \t\tif (m \u003c 0)\n \t\t\treturn -1;\n \n@@ -1891,13 +1891,13 @@ lws_confirm_host_header(struct lws *wsi)\n \t\tlwsl_info(\u0022%s: missing or oversize host header\u005cn\u0022, __func__);\n \t\treturn 1;\n \t}\n-\tts.len \u003d n;\n+\tts.len \u003d (size_t)n;\n \n \tif (lws_tokenize(\u0026ts) !\u003d LWS_TOKZE_TOKEN)\n \t\tgoto bad_format;\n \n \tif (strncmp(ts.token, wsi-\u003ea.vhost-\u003ename, ts.token_len)) {\n-\t\tbuf[(ts.token - buf) + ts.token_len] \u003d '\u005c0';\n+\t\tbuf[(size_t)(ts.token - buf) + ts.token_len] \u003d '\u005c0';\n \t\tlwsl_info(\u0022%s: '%s' in host hdr but vhost name %s\u005cn\u0022,\n \t\t\t __func__, ts.token, wsi-\u003ea.vhost-\u003ename);\n \t\treturn 1;\n@@ -1971,13 +1971,13 @@ lws_http_to_fallback(struct lws *wsi, unsigned char *obuf, size_t olen)\n \t\t ipbuf, role ? role-\u003ename : \u0022null\u0022, protocol-\u003ename, n,\n \t\t wsi-\u003ehttp.ah);\n \n-\tif ((wsi-\u003ea.protocol-\u003ecallback)(wsi, n, wsi-\u003euser_space, NULL, 0))\n+\tif ((wsi-\u003ea.protocol-\u003ecallback)(wsi, (enum lws_callback_reasons)n, wsi-\u003euser_space, NULL, 0))\n \t\treturn 1;\n \n \tn \u003d LWS_CALLBACK_RAW_RX;\n \tif (wsi-\u003erole_ops-\u003erx_cb[lwsi_role_server(wsi)])\n \t\tn \u003d wsi-\u003erole_ops-\u003erx_cb[lwsi_role_server(wsi)];\n-\tif (wsi-\u003ea.protocol-\u003ecallback(wsi, n, wsi-\u003euser_space, obuf, olen))\n+\tif (wsi-\u003ea.protocol-\u003ecallback(wsi, (enum lws_callback_reasons)n, wsi-\u003euser_space, obuf, olen))\n \t\treturn 1;\n \n \treturn 0;\n@@ -2019,7 +2019,7 @@ lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len)\n \t\tm \u003d lws_parse(wsi, *buf, \u0026i);\n \t\tlwsl_info(\u0022%s: parsed count %d\u005cn\u0022, __func__, (int)len - i);\n \t\t(*buf) +\u003d (int)len - i;\n-\t\tlen \u003d i;\n+\t\tlen \u003d (unsigned int)i;\n \n \t\tif (m \u003d\u003d LPR_DO_FALLBACK) {\n \n@@ -2107,7 +2107,7 @@ raw_transition:\n \t\t\t\t\tif (msg)\n \t\t\t\t\t\tmsg++;\n \t\t\t\t\tlws_return_http_status(wsi,\n-\t\t\t\t\t\tatoi(rej-\u003evalue), msg);\n+\t\t\t\t\t\t(unsigned int)atoi(rej-\u003evalue), msg);\n #ifdef LWS_WITH_ACCESS_LOG\n \t\t\t\t\tmeth \u003d lws_http_get_uri_and_method(wsi,\n \t\t\t\t\t\t\t\u0026uri_ptr, \u0026uri_len);\n@@ -2288,14 +2288,14 @@ upgrade_h2c:\n \n \t\tlws_h2_settings(wsi, \u0026wsi-\u003eh2.h2n-\u003epeer_set, (uint8_t *)tbuf, n);\n \n-\t\tlws_hpack_dynamic_size(wsi, wsi-\u003eh2.h2n-\u003epeer_set.s[\n+\t\tlws_hpack_dynamic_size(wsi, (int)wsi-\u003eh2.h2n-\u003epeer_set.s[\n \t\t H2SET_HEADER_TABLE_SIZE]);\n \n \t\tstrcpy(tbuf, \u0022HTTP/1.1 101 Switching Protocols\u005cx0d\u005cx0a\u0022\n \t\t\t \u0022Connection: Upgrade\u005cx0d\u005cx0a\u0022\n \t\t\t \u0022Upgrade: h2c\u005cx0d\u005cx0a\u005cx0d\u005cx0a\u0022);\n \t\tm \u003d (int)strlen(tbuf);\n-\t\tn \u003d lws_issue_raw(wsi, (unsigned char *)tbuf, m);\n+\t\tn \u003d lws_issue_raw(wsi, (unsigned char *)tbuf, (unsigned int)m);\n \t\tif (n !\u003d m) {\n \t\t\tlwsl_debug(\u0022http2 switch: ERROR writing to socket\u005cn\u0022);\n \t\t\treturn 1;\n@@ -2452,7 +2452,7 @@ lws_http_transaction_completed(struct lws *wsi)\n \tn \u003d NO_PENDING_TIMEOUT;\n \tif (wsi-\u003ea.vhost-\u003ekeepalive_timeout)\n \t\tn \u003d PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE;\n-\tlws_set_timeout(wsi, n, wsi-\u003ea.vhost-\u003ekeepalive_timeout);\n+\tlws_set_timeout(wsi, (enum pending_timeout)n, wsi-\u003ea.vhost-\u003ekeepalive_timeout);\n \n \t/*\n \t * We already know we are on http1.1 / keepalive and the next thing\n@@ -2599,7 +2599,7 @@ lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,\n \t\tn \u003d HTTP_STATUS_PARTIAL_CONTENT;\n #endif\n \n-\tif (lws_add_http_header_status(wsi, n, \u0026p, end))\n+\tif (lws_add_http_header_status(wsi, (unsigned int)n, \u0026p, end))\n \t\tgoto bail;\n \n \tif ((wsi-\u003ehttp.fop_fd-\u003eflags \u0026 (LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP |\n@@ -2673,13 +2673,14 @@ lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,\n \t\t\t\t\t\u0022bytes %llu-%llu/%llu\u0022,\n \t\t\t\t\trp-\u003estart, rp-\u003eend, rp-\u003eextent);\n \n-\t\t\ttotal_content_length +\u003d\n+\t\t\ttotal_content_length \u003d total_content_length +\n+\t\t\t\t\t(lws_filepos_t)(\n \t\t\t\t6 /* header _lws\u005cr\u005cn */ +\n \t\t\t\t/* Content-Type: xxx/xxx\u005cr\u005cn */\n-\t\t\t\t14 + strlen(content_type) + 2 +\n+\t\t\t\t14 + (int)strlen(content_type) + 2 +\n \t\t\t\t/* Content-Range: xxxx\u005cr\u005cn */\n \t\t\t\t15 + n + 2 +\n-\t\t\t\t2; /* /r/n */\n+\t\t\t\t2); /* /r/n */\n \t\t}\n \n \t\tlws_ranges_reset(rp);\n@@ -2783,14 +2784,14 @@ lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,\n \tif (other_headers) {\n \t\tif ((end - p) \u003c other_headers_len)\n \t\t\tgoto bail;\n-\t\tmemcpy(p, other_headers, other_headers_len);\n+\t\tmemcpy(p, other_headers, (unsigned int)other_headers_len);\n \t\tp +\u003d other_headers_len;\n \t}\n \n \tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\tgoto bail;\n \n-\tret \u003d lws_write(wsi, response, p - response, LWS_WRITE_HTTP_HEADERS);\n+\tret \u003d lws_write(wsi, response, lws_ptr_diff_size_t(p, response), LWS_WRITE_HTTP_HEADERS);\n \tif (ret !\u003d (p - response)) {\n \t\tlwsl_err(\u0022_write returned %d from %ld\u005cn\u0022, ret,\n \t\t\t (long)(p - response));\n@@ -2884,8 +2885,8 @@ int lws_serve_http_file_fragment(struct lws *wsi)\n \t\t\t\t wsi-\u003ehttp.range.start);\n \n \t\t\tif ((long long)lws_vfs_file_seek_cur(wsi-\u003ehttp.fop_fd,\n-\t\t\t\t\t\t wsi-\u003ehttp.range.start -\n-\t\t\t\t\t\t wsi-\u003ehttp.filepos) \u003c 0)\n+\t\t\t\t\t\t (lws_fileofs_t)wsi-\u003ehttp.range.start -\n+\t\t\t\t\t\t (lws_fileofs_t)wsi-\u003ehttp.filepos) \u003c 0)\n \t\t\t\tgoto file_had_it;\n \n \t\t\twsi-\u003ehttp.filepos \u003d wsi-\u003ehttp.range.start;\n@@ -2912,7 +2913,7 @@ int lws_serve_http_file_fragment(struct lws *wsi)\n \t\t}\n #endif\n \n-\t\tposs \u003d context-\u003ept_serv_buf_size - n -\n+\t\tposs \u003d context-\u003ept_serv_buf_size - (unsigned int)n -\n \t\t\t\tLWS_H2_FRAME_HEADER_LENGTH;\n \n \t\tif (wsi-\u003ehttp.tx_content_length)\n@@ -2928,7 +2929,7 @@ int lws_serve_http_file_fragment(struct lws *wsi)\n \t\t\tposs \u003d wsi-\u003ea.protocol-\u003etx_packet_size;\n \n \t\tif (lws_rops_fidx(wsi-\u003erole_ops, LWS_ROPS_tx_credit)) {\n-\t\t\tlws_filepos_t txc \u003d lws_rops_func_fidx(wsi-\u003erole_ops,\n+\t\t\tlws_filepos_t txc \u003d (unsigned int)lws_rops_func_fidx(wsi-\u003erole_ops,\n \t\t\t\t\t\t\t LWS_ROPS_tx_credit).\n \t\t\t\t\ttx_credit(wsi, LWSTXCR_US_TO_PEER, 0);\n \n@@ -2979,14 +2980,14 @@ int lws_serve_http_file_fragment(struct lws *wsi)\n \n \t\tif (n) {\n \t\t\tlws_set_timeout(wsi, PENDING_TIMEOUT_HTTP_CONTENT,\n-\t\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\t\tif (wsi-\u003einterpreting) {\n \t\t\t\targs.p \u003d (char *)p;\n \t\t\t\targs.len \u003d n;\n-\t\t\t\targs.max_len \u003d (unsigned int)poss + 128;\n-\t\t\t\targs.final \u003d wsi-\u003ehttp.filepos + n \u003d\u003d\n-\t\t\t\t\t wsi-\u003ehttp.filelen;\n+\t\t\t\targs.max_len \u003d (int)(unsigned int)poss + 128;\n+\t\t\t\targs.final \u003d wsi-\u003ehttp.filepos + (unsigned int)n \u003d\u003d\n+\t\t\t\t\t\t\twsi-\u003ehttp.filelen;\n \t\t\t\targs.chunked \u003d wsi-\u003esending_chunked;\n \t\t\t\tif (user_callback_handle_rxflow(\n \t\t\t\t wsi-\u003ea.vhost-\u003eprotocols[\n@@ -3009,7 +3010,7 @@ int lws_serve_http_file_fragment(struct lws *wsi)\n \t\t\t\tlwsl_debug(\u0022added trailing boundary\u005cn\u0022);\n \t\t\t}\n #endif\n-\t\t\tm \u003d lws_write(wsi, p, n, wsi-\u003ehttp.filepos + amount \u003d\u003d\n+\t\t\tm \u003d lws_write(wsi, p, (unsigned int)n, wsi-\u003ehttp.filepos + amount \u003d\u003d\n \t\t\t\t\twsi-\u003ehttp.filelen ?\n \t\t\t\t\t LWS_WRITE_HTTP_FINAL : LWS_WRITE_HTTP);\n \t\t\tif (m \u003c 0)\n@@ -3157,14 +3158,14 @@ lws_chunked_html_process(struct lws_process_html_args *args,\n \t\t\tif (s-\u003epos \u003d\u003d sizeof(s-\u003eswallow) - 1)\n \t\t\t\tgoto skip;\n \t\t\tfor (n \u003d 0; n \u003c s-\u003ecount_vars; n++)\n-\t\t\t\tif (!strncmp(s-\u003eswallow, s-\u003evars[n], s-\u003epos)) {\n+\t\t\t\tif (!strncmp(s-\u003eswallow, s-\u003evars[n], (unsigned int)s-\u003epos)) {\n \t\t\t\t\thits++;\n \t\t\t\t\thit \u003d n;\n \t\t\t\t}\n \t\t\tif (!hits) {\n skip:\n \t\t\t\ts-\u003eswallow[s-\u003epos] \u003d '\u005c0';\n-\t\t\t\tmemcpy(s-\u003estart, s-\u003eswallow, s-\u003epos);\n+\t\t\t\tmemcpy(s-\u003estart, s-\u003eswallow, (unsigned int)s-\u003epos);\n \t\t\t\targs-\u003elen++;\n \t\t\t\ts-\u003epos \u003d 0;\n \t\t\t\tsp \u003d s-\u003estart + 1;\n@@ -3178,10 +3179,10 @@ skip:\n \t\t\t\ts-\u003eswallow[s-\u003epos] \u003d '\u005c0';\n \t\t\t\tif (n !\u003d s-\u003epos) {\n \t\t\t\t\tmemmove(s-\u003estart + n, s-\u003estart + s-\u003epos,\n-\t\t\t\t\t\told_len - (sp - args-\u003ep) - 1);\n+\t\t\t\t\t\t(unsigned int)(old_len - (sp - args-\u003ep) - 1));\n \t\t\t\t\told_len +\u003d (n - s-\u003epos) + 1;\n \t\t\t\t}\n-\t\t\t\tmemcpy(s-\u003estart, pc, n);\n+\t\t\t\tmemcpy(s-\u003estart, pc, (unsigned int)n);\n \t\t\t\targs-\u003elen++;\n \t\t\t\tsp \u003d s-\u003estart + 1;\n \n@@ -3203,7 +3204,7 @@ skip:\n \t\tn \u003d sprintf(buffer, \u0022%X\u005cx0d\u005cx0a\u0022, args-\u003elen);\n \n \t\targs-\u003ep -\u003d n;\n-\t\tmemcpy(args-\u003ep, buffer, n);\n+\t\tmemcpy(args-\u003ep, buffer, (unsigned int)n);\n \t\targs-\u003elen +\u003d n;\n \n \t\tif (args-\u003efinal) {\ndiff --git a/lib/roles/listen/ops-listen.c b/lib/roles/listen/ops-listen.c\nindex e8fdbe7..a4bbaa3 100644\n--- a/lib/roles/listen/ops-listen.c\n+++ b/lib/roles/listen/ops-listen.c\n@@ -144,7 +144,7 @@ rops_handle_POLLIN_listen(struct lws_context_per_thread *pt, struct lws *wsi,\n \t\t\topts \u0026\u003d ~LWS_ADOPT_ALLOW_SSL;\n \n \t\tfd.sockfd \u003d filt.accept_fd;\n-\t\tcwsi \u003d lws_adopt_descriptor_vhost(wsi-\u003ea.vhost, opts, fd,\n+\t\tcwsi \u003d lws_adopt_descriptor_vhost(wsi-\u003ea.vhost, (lws_adoption_type)opts, fd,\n \t\t\t\twsi-\u003ea.vhost-\u003elisten_accept_protocol, NULL);\n \t\tif (!cwsi) {\n \t\t\tlwsl_info(\u0022%s: vh %s: adopt failed\u005cn\u0022, __func__,\ndiff --git a/lib/roles/mqtt/client/client-mqtt-handshake.c b/lib/roles/mqtt/client/client-mqtt-handshake.c\nindex 9bc2acc..d395ea0 100644\n--- a/lib/roles/mqtt/client/client-mqtt-handshake.c\n+++ b/lib/roles/mqtt/client/client-mqtt-handshake.c\n@@ -33,8 +33,8 @@ lws_mqtt_client_send_connect(struct lws *wsi)\n \t/* static int */\n \t/* \tlws_mqttc_abs_writeable(lws_abs_protocol_inst_t *api, size_t budget) */\n \tconst lws_mqttc_t *c \u003d \u0026wsi-\u003emqtt-\u003eclient;\n-\tuint8_t b[256 + LWS_PRE], *start \u003d b + LWS_PRE, *p \u003d start,\n-\t\tlen \u003d MQTT_CONNECT_MSG_BASE_LEN;\n+\tuint8_t b[256 + LWS_PRE], *start \u003d b + LWS_PRE, *p \u003d start;\n+\tunsigned int len \u003d MQTT_CONNECT_MSG_BASE_LEN;\n \n \tswitch (lwsi_state(wsi)) {\n \tcase LRS_MQTTC_IDLE:\n@@ -56,13 +56,13 @@ lws_mqtt_client_send_connect(struct lws *wsi)\n \t\t */\n \t\tlen +\u003d c-\u003eid-\u003elen;\n \t\tif (c-\u003econn_flags \u0026 LMQCFT_USERNAME \u0026\u0026 c-\u003eusername) {\n-\t\t\tlen +\u003d c-\u003eusername-\u003elen + 2;\n+\t\t\tlen \u003d len + (unsigned int)c-\u003eusername-\u003elen + 2;\n \t\t\tif (c-\u003econn_flags \u0026 LMQCFT_PASSWORD)\n-\t\t\t\tlen +\u003d (c-\u003epassword ? c-\u003epassword-\u003elen : 0) + 2;\n+\t\t\t\tlen +\u003d (unsigned int)(c-\u003epassword ? c-\u003epassword-\u003elen : 0) + 2u;\n \t\t}\n \t\tif (c-\u003econn_flags \u0026 LMQCFT_WILL_FLAG \u0026\u0026 c-\u003ewill.topic) {\n-\t\t\tlen +\u003d c-\u003ewill.topic-\u003elen + 2;\n-\t\t\tlen +\u003d (c-\u003ewill.message ? c-\u003ewill.message-\u003elen : 0) + 2;\n+\t\t\tlen \u003d len + (unsigned int)c-\u003ewill.topic-\u003elen + 2;\n+\t\t\tlen +\u003d (c-\u003ewill.message ? c-\u003ewill.message-\u003elen : 0) + 2u;\n \t\t}\n \t\tp +\u003d lws_mqtt_vbi_encode(len, p);\n \n@@ -167,7 +167,7 @@ lws_mqtt_client_send_connect(struct lws *wsi)\n \t/*\n \t * Perform the actual write\n \t */\n-\tif (lws_write(wsi, (unsigned char *)\u0026b[LWS_PRE], lws_ptr_diff(p, start),\n+\tif (lws_write(wsi, (unsigned char *)\u0026b[LWS_PRE], lws_ptr_diff_size_t(p, start),\n \t\t LWS_WRITE_BINARY) !\u003d lws_ptr_diff(p, start)) {\n \t\tlwsl_notice(\u0022%s: write failed\u005cn\u0022, __func__);\n \ndiff --git a/lib/roles/mqtt/client/client-mqtt.c b/lib/roles/mqtt/client/client-mqtt.c\nindex 902ad6f..8e87218 100644\n--- a/lib/roles/mqtt/client/client-mqtt.c\n+++ b/lib/roles/mqtt/client/client-mqtt.c\n@@ -92,7 +92,7 @@ lws_read_mqtt(struct lws *wsi, unsigned char *buf, lws_filepos_t len)\n {\n \tlws_mqttc_t *c \u003d \u0026wsi-\u003emqtt-\u003eclient;\n \n-\treturn _lws_mqtt_rx_parser(wsi, \u0026c-\u003epar, buf, len);\n+\treturn _lws_mqtt_rx_parser(wsi, \u0026c-\u003epar, buf, (size_t)len);\n }\n \n int\n@@ -137,8 +137,8 @@ lws_create_client_mqtt_object(const struct lws_client_connect_info *i,\n \t\t\tif (!c-\u003ewill.message)\n \t\t\t\tgoto oom2;\n \t\t}\n-\t\tc-\u003econn_flags |\u003d (cp-\u003ewill_param.qos \u003c\u003c 3) \u0026 LMQCFT_WILL_QOS_MASK;\n-\t\tc-\u003econn_flags |\u003d (!!cp-\u003ewill_param.retain) * LMQCFT_WILL_RETAIN;\n+\t\tc-\u003econn_flags \u003d (uint8_t)(unsigned int)(c-\u003econn_flags | ((cp-\u003ewill_param.qos \u003c\u003c 3) \u0026 LMQCFT_WILL_QOS_MASK));\n+\t\tc-\u003econn_flags |\u003d (uint8_t)((!!cp-\u003ewill_param.retain) * LMQCFT_WILL_RETAIN);\n \t}\n \n \tif (cp-\u003eusername \u0026\u0026\n@@ -181,7 +181,7 @@ lws_mqtt_client_socket_service(struct lws *wsi, struct lws_pollfd *pollfd,\n \tint n \u003d 0, m \u003d 0;\n \tstruct lws_tokens ebuf;\n \tint buffered \u003d 0;\n-\tchar pending \u003d 0;\n+\tint pending \u003d 0;\n #if defined(LWS_WITH_TLS)\n \tchar erbuf[128];\n #endif\n@@ -268,8 +268,8 @@ lws_mqtt_client_socket_service(struct lws *wsi, struct lws_pollfd *pollfd,\n \t\tif (context-\u003edetailed_latency_cb) {\n \t\t\twsi-\u003edetlat.type \u003d LDLT_TLS_NEG_CLIENT;\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE] \u003d\n-\t\t\t\tlws_now_usecs() -\n-\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\t}\n@@ -282,7 +282,7 @@ start_ws_handshake:\n #endif\n \t\tlwsi_set_state(wsi, LRS_MQTTC_IDLE);\n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND,\n-\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\t/* fallthru */\n \n@@ -308,17 +308,17 @@ start_ws_handshake:\n \tcase LRS_MQTTC_AWAIT_CONNACK:\n \t\tbuffered \u003d 0;\n \t\tebuf.token \u003d pt-\u003eserv_buf;\n-\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((unsigned int)ebuf.len \u003e wsi-\u003ea.context-\u003ept_serv_buf_size)\n-\t\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((int)pending \u003e ebuf.len)\n-\t\t\tpending \u003d ebuf.len;\n+\t\t\tpending \u003d (char)ebuf.len;\n \n \t\tebuf.len \u003d lws_ssl_capable_read(wsi, ebuf.token,\n-\t\t\t\t\t\tpending ? (int)pending :\n-\t\t\t\t\t\tebuf.len);\n+\t\t\t\t\t\t(unsigned int)(pending ? pending :\n+\t\t\t\t\t\tebuf.len));\n \t\tswitch (ebuf.len) {\n \t\tcase 0:\n \t\t\tlwsl_info(\u0022%s: zero length read\u005cn\u0022,\n@@ -336,7 +336,7 @@ start_ws_handshake:\n \t\tif (ebuf.len \u003c 0)\n \t\t\tn \u003d -1;\n \t\telse\n-\t\t\tn \u003d lws_read_mqtt(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_read_mqtt(wsi, ebuf.token, (unsigned int)ebuf.len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022%s: Parsing packet failed\u005cn\u0022, __func__);\n \t\t\tgoto fail;\ndiff --git a/lib/roles/mqtt/mqtt.c b/lib/roles/mqtt/mqtt.c\nindex c6ef724..b505292 100644\n--- a/lib/roles/mqtt/mqtt.c\n+++ b/lib/roles/mqtt/mqtt.c\n@@ -224,7 +224,7 @@ lws_mqttc_state_transition(lws_mqttc_t *c, lwsgs_mqtt_states_t s)\n static int\n lws_mqtt_pconsume(lws_mqtt_parser_t *par, int consumed)\n {\n-\tpar-\u003econsumed +\u003d consumed;\n+\tpar-\u003econsumed +\u003d (unsigned int)consumed;\n \n \tif (par-\u003econsumed \u003e par-\u003eprops_len)\n \t\treturn -1;\n@@ -575,7 +575,7 @@ _lws_mqtt_rx_parser(struct lws *wsi, lws_mqtt_parser_t *par,\n \t\t\t\tgoto oom;\n \t\t\tpub \u003d (lws_mqtt_publish_param_t *)wsi-\u003emqtt-\u003erx_cpkt_param;\n \n-\t\t\tpub-\u003etopic_len \u003d par-\u003en;\n+\t\t\tpub-\u003etopic_len \u003d (uint16_t)par-\u003en;\n \n \t\t\t/* Topic Name */\n \t\t\tpub-\u003etopic \u003d (char *)lws_zalloc((size_t)pub-\u003etopic_len + 1,\n@@ -594,7 +594,7 @@ _lws_mqtt_rx_parser(struct lws *wsi, lws_mqtt_parser_t *par,\n \t\t\tpub-\u003epayload_pos \u003d 0;\n \n \t\t\tpub-\u003epayload_len \u003d par-\u003ecpkt_remlen -\n-\t\t\t\t(2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0));\n+\t\t\t\t(unsigned int)(2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0));\n \n \t\t\tswitch (pub-\u003eqos) {\n \t\t\tcase QOS0:\n@@ -634,7 +634,7 @@ _lws_mqtt_rx_parser(struct lws *wsi, lws_mqtt_parser_t *par,\n \t\t\tpar-\u003estate \u003d LMQCPP_PAYLOAD;\n \t\t\tpub-\u003epayload_pos \u003d 0;\n \t\t\tpub-\u003epayload_len \u003d par-\u003ecpkt_remlen -\n-\t\t\t\t(2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0));\n+\t\t\t\t(unsigned int)(2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0));\n \t\t\tif (pub-\u003epayload_len \u003d\u003d 0)\n \t\t\t\tgoto cmd_completion;\n \n@@ -719,7 +719,7 @@ _lws_mqtt_rx_parser(struct lws *wsi, lws_mqtt_parser_t *par,\n \t\t\t (par-\u003ecpkt_flags \u0026 LMQCFT_SESSION_PRESENT))\n \t\t\t\tgoto send_protocol_error_and_close;\n \n-\t\t\twsi-\u003emqtt-\u003esession_resumed \u003d (par-\u003ecpkt_flags \u0026\n+\t\t\twsi-\u003emqtt-\u003esession_resumed \u003d ((unsigned int)par-\u003ecpkt_flags \u0026\n \t\t\t\t\t\t LMQCFT_SESSION_PRESENT);\n \n \t\t\t/* Move on to Connect Return Code */\n@@ -1275,7 +1275,7 @@ bail1:\n \t\t\t\t\tif (lws_mqtt_find_sub(w-\u003emqtt,\n \t\t\t\t\t\t\t pub-\u003etopic))\n \t\t\t\t\t\tif (w-\u003ea.protocol-\u003ecallback(\n-\t\t\t\t\t\t\t w, n,\n+\t\t\t\t\t\t\t w, (enum lws_callback_reasons)n,\n \t\t\t\t\t\t\t w-\u003euser_space,\n \t\t\t\t\t\t\t (void *)pub,\n \t\t\t\t\t\t\t chunk))\n@@ -1325,7 +1325,7 @@ bail1:\n \t\t\tcase LMSPR_NEED_MORE:\n \t\t\t\tbreak;\n \t\t\tcase LMSPR_COMPLETED:\n-\t\t\t\tpar-\u003econsumed +\u003d par-\u003evbit.consumed;\n+\t\t\t\tpar-\u003econsumed \u003d (uint32_t)((unsigned int)par-\u003econsumed + (unsigned int)par-\u003evbit.consumed);\n \t\t\t\tif (par-\u003evbit.value \u003e\n \t\t\t\t LWS_ARRAY_SIZE(property_valid)) {\n \t\t\t\t\tlwsl_notice(\u0022%s: undef prop id 0x%x\u005cn\u0022,\n@@ -1341,11 +1341,11 @@ bail1:\n \t\t\t\t\tgoto send_protocol_error_and_close;\n \t\t\t\t}\n \t\t\t\tpar-\u003eprop_id \u003d par-\u003evbit.value;\n-\t\t\t\tpar-\u003eflag_prop_multi \u003d\n+\t\t\t\tpar-\u003eflag_prop_multi \u003d !!(\n \t\t\t\t\tpar-\u003eprops_seen[par-\u003eprop_id \u003e\u003e 3] \u0026\n-\t\t\t\t\t(1 \u003c\u003c (par-\u003eprop_id \u0026 7));\n+\t\t\t\t\t(1 \u003c\u003c (par-\u003eprop_id \u0026 7)));\n \t\t\t\tpar-\u003eprops_seen[par-\u003eprop_id \u003e\u003e 3] |\u003d\n-\t\t\t\t\t\t(1 \u003c\u003c (par-\u003eprop_id \u0026 7));\n+\t\t\t\t\t\t(uint8_t)(1 \u003c\u003c (par-\u003eprop_id \u0026 7));\n \t\t\t\t/*\n \t\t\t\t * even if it's not a vbi property arg,\n \t\t\t\t * .consumed of this will be zero the first time\n@@ -1515,7 +1515,7 @@ lws_mqtt_fill_fixed_header(uint8_t *p, lws_mqtt_control_packet_t ctrl_pkt_type,\n \tlws_mqtt_fixed_hdr_t hdr;\n \n \thdr.bits \u003d 0;\n-\thdr.flags.ctrl_pkt_type \u003d (uint8_t) ctrl_pkt_type;\n+\thdr.flags.ctrl_pkt_type \u003d ctrl_pkt_type \u0026 0xf;\n \n \tswitch(ctrl_pkt_type) {\n \tcase LMQCP_PUBLISH:\n@@ -1531,7 +1531,7 @@ lws_mqtt_fill_fixed_header(uint8_t *p, lws_mqtt_control_packet_t ctrl_pkt_type,\n \t\t\t\t __func__, qos);\n \t\t\treturn -1;\n \t\t}\n-\t\thdr.flags.qos \u003d (uint8_t)qos;\n+\t\thdr.flags.qos \u003d qos \u0026 3;\n \t\thdr.flags.retain \u003d !!retain;\n \t\tbreak;\n \n@@ -1640,7 +1640,7 @@ lws_mqtt_client_send_publish(struct lws *wsi, lws_mqtt_publish_param_t *pub,\n \t * Topic len field + Topic len + Packet ID\n \t * (for QOS\u003e0) + Payload len\n \t */\n-\tvh_len \u003d 2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0);\n+\tvh_len \u003d (unsigned int)(2 + pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0));\n \trem_len \u003d vh_len + pub-\u003epayload_len;\n \tlwsl_debug(\u0022%s: Remaining len \u003d %d\u005cn\u0022, __func__, (int) rem_len);\n \n@@ -1663,7 +1663,7 @@ lws_mqtt_client_send_publish(struct lws *wsi, lws_mqtt_publish_param_t *pub,\n \t * chuncked payload)\n \t */\n \tlws_mqtt_str_init(\u0026mqtt_vh_payload, (uint8_t *)p,\n-\t\t\t (pub-\u003etopic_len + ((pub-\u003eqos) ? 2 : 0) + len),\n+\t\t\t (uint16_t)(unsigned int)(pub-\u003etopic_len + ((pub-\u003eqos) ? 2u : 0u) + len),\n \t\t\t 0);\n \n \tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n@@ -1692,7 +1692,7 @@ lws_mqtt_client_send_publish(struct lws *wsi, lws_mqtt_publish_param_t *pub,\n \tif (pub-\u003epayload_len \u0026\u0026 len) {\n \t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n \t\tmemcpy(p, buf, len);\n-\t\tif (lws_mqtt_str_advance(\u0026mqtt_vh_payload, len))\n+\t\tif (lws_mqtt_str_advance(\u0026mqtt_vh_payload, (int)len))\n \t\t\treturn 1;\n \t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n \t}\n@@ -1704,7 +1704,7 @@ do_write:\n \n \t// lwsl_hexdump_err(start, lws_ptr_diff(p, start));\n \n-\tif (lws_write(nwsi, start, lws_ptr_diff(p, start), LWS_WRITE_BINARY) !\u003d\n+\tif (lws_write(nwsi, start, lws_ptr_diff_size_t(p, start), LWS_WRITE_BINARY) !\u003d\n \t\t\tlws_ptr_diff(p, start)) {\n \t\tlwsl_err(\u0022%s: write failed\u005cn\u0022, __func__);\n \t\treturn 1;\n@@ -1845,7 +1845,7 @@ lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub)\n \t\t\tif (!exists[n])\n \t\t\t\trem_len +\u003d (2 + (uint32_t)strlen(sub-\u003etopic[n].name) + (uint32_t)1);\n \n-\t\twsi-\u003emqtt-\u003esub_size \u003d rem_len;\n+\t\twsi-\u003emqtt-\u003esub_size \u003d (uint16_t)rem_len;\n \n #if defined(_DEBUG)\n \t\tlwsl_debug(\u0022%s: Number of topics \u003d %d, Remaining len \u003d %d\u005cn\u0022,\n@@ -1854,14 +1854,14 @@ lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub)\n \n \t\tp +\u003d lws_mqtt_vbi_encode(rem_len, p);\n \n-\t\tif ((rem_len + lws_ptr_diff(p, start)) \u003e\u003d\n+\t\tif ((rem_len + lws_ptr_diff_size_t(p, start)) \u003e\u003d\n \t\t\t\t\t wsi-\u003ea.context-\u003ept_serv_buf_size) {\n \t\t\tlwsl_err(\u0022%s: Payload is too big\u005cn\u0022, __func__);\n \t\t\treturn 1;\n \t\t}\n \n \t\t/* Init lws_mqtt_str */\n-\t\tlws_mqtt_str_init(\u0026mqtt_vh_payload, (uint8_t *)p, rem_len, 0);\n+\t\tlws_mqtt_str_init(\u0026mqtt_vh_payload, (uint8_t *)p, (uint16_t)rem_len, 0);\n \t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n \n \t\t/* Packet ID */\n@@ -1909,7 +1909,7 @@ lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub)\n \t\t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n \n \t\t\t/* QoS */\n-\t\t\t*p \u003d sub-\u003etopic[n].qos;\n+\t\t\t*p \u003d (uint8_t)sub-\u003etopic[n].qos;\n \t\t\tif (lws_mqtt_str_advance(\u0026mqtt_vh_payload, 1))\n \t\t\t\treturn 1;\n \t\t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n@@ -1920,7 +1920,7 @@ lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub)\n \t\treturn 1;\n \t}\n \n-\tif (lws_write(nwsi, start, lws_ptr_diff(p, start), LWS_WRITE_BINARY) !\u003d\n+\tif (lws_write(nwsi, start, lws_ptr_diff_size_t(p, start), LWS_WRITE_BINARY) !\u003d\n \t\t\t\t\tlws_ptr_diff(p, start))\n \t\treturn 1;\n \n@@ -2010,21 +2010,21 @@ lws_mqtt_client_send_unsubcribe(struct lws *wsi,\n \t\t\tif (send_unsub[n])\n \t\t\t\trem_len +\u003d (2 + (uint32_t)strlen(unsub-\u003etopic[n].name));\n \n-\t\twsi-\u003emqtt-\u003esub_size \u003d rem_len;\n+\t\twsi-\u003emqtt-\u003esub_size \u003d (uint16_t)rem_len;\n \n \t\tlwsl_debug(\u0022%s: Number of topics \u003d %d, Remaining len \u003d %d\u005cn\u0022,\n \t\t\t __func__, (int)tops, (int)rem_len);\n \n \t\tp +\u003d lws_mqtt_vbi_encode(rem_len, p);\n \n-\t\tif ((rem_len + lws_ptr_diff(p, start)) \u003e\u003d\n+\t\tif ((rem_len + lws_ptr_diff_size_t(p, start)) \u003e\u003d\n \t\t\t\t\t wsi-\u003ea.context-\u003ept_serv_buf_size) {\n \t\t\tlwsl_err(\u0022%s: Payload is too big\u005cn\u0022, __func__);\n \t\t\treturn 1;\n \t\t}\n \n \t\t/* Init lws_mqtt_str */\n-\t\tlws_mqtt_str_init(\u0026mqtt_vh_payload, (uint8_t *)p, rem_len, 0);\n+\t\tlws_mqtt_str_init(\u0026mqtt_vh_payload, (uint8_t *)p, (uint16_t)rem_len, 0);\n \t\tp \u003d lws_mqtt_str_next(\u0026mqtt_vh_payload, NULL);\n \n \t\t/* Packet ID */\n@@ -2069,7 +2069,7 @@ lws_mqtt_client_send_unsubcribe(struct lws *wsi,\n \t\treturn 1;\n \t}\n \n-\tif (lws_write(nwsi, start, lws_ptr_diff(p, start), LWS_WRITE_BINARY) !\u003d\n+\tif (lws_write(nwsi, start, lws_ptr_diff_size_t(p, start), LWS_WRITE_BINARY) !\u003d\n \t\t\t\t\tlws_ptr_diff(p, start))\n \t\treturn 1;\n \ndiff --git a/lib/roles/mqtt/ops-mqtt.c b/lib/roles/mqtt/ops-mqtt.c\nindex fbaa835..6b812d2 100644\n--- a/lib/roles/mqtt/ops-mqtt.c\n+++ b/lib/roles/mqtt/ops-mqtt.c\n@@ -119,17 +119,17 @@ read:\n \n \t\tbuffered \u003d 0;\n \t\tebuf.token \u003d pt-\u003eserv_buf;\n-\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((unsigned int)ebuf.len \u003e wsi-\u003ea.context-\u003ept_serv_buf_size)\n-\t\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((int)pending \u003e ebuf.len)\n-\t\t\tpending \u003d ebuf.len;\n+\t\t\tpending \u003d (unsigned int)ebuf.len;\n \n \t\tebuf.len \u003d lws_ssl_capable_read(wsi, ebuf.token,\n-\t\t\t\t\t\tpending ? (int)pending :\n-\t\t\t\t\t\tebuf.len);\n+\t\t\t\t\t\tpending ? pending :\n+\t\t\t\t\t\t(unsigned int)ebuf.len);\n \t\tswitch (ebuf.len) {\n \t\tcase 0:\n \t\t\tlwsl_info(\u0022%s: zero length read\u005cn\u0022,\n@@ -155,7 +155,7 @@ drain:\n \t/* service incoming data */\n \t//lws_buflist_describe(\u0026wsi-\u003ebuflist, wsi, __func__);\n \tif (ebuf.len) {\n-\t\tn \u003d lws_read_mqtt(wsi, ebuf.token, ebuf.len);\n+\t\tn \u003d lws_read_mqtt(wsi, ebuf.token, (unsigned int)ebuf.len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_notice(\u0022%s: lws_read_mqtt returned %d\u005cn\u0022,\n \t\t\t\t\t__func__, n);\n@@ -172,7 +172,7 @@ drain:\n \tebuf.token \u003d NULL;\n \tebuf.len \u003d 0;\n \n-\tpending \u003d lws_ssl_pending(wsi);\n+\tpending \u003d (unsigned int)lws_ssl_pending(wsi);\n \tif (pending) {\n \t\tpending \u003d pending \u003e wsi-\u003ea.context-\u003ept_serv_buf_size ?\n \t\t\twsi-\u003ea.context-\u003ept_serv_buf_size : pending;\n@@ -541,7 +541,7 @@ rops_close_kill_connection_mqtt(struct lws *wsi, enum lws_close_status reason)\n \t\t\tlws_wsi_mux_dump_children(wsi);\n \t\t}\n \n-\t\tlws_wsi_mux_close_children(wsi, reason);\n+\t\tlws_wsi_mux_close_children(wsi, (int)reason);\n \t}\n \n \tif ((\ndiff --git a/lib/roles/mqtt/primitives.c b/lib/roles/mqtt/primitives.c\nindex 0fd8e5c..7842187 100644\n--- a/lib/roles/mqtt/primitives.c\n+++ b/lib/roles/mqtt/primitives.c\n@@ -100,8 +100,8 @@ lws_mqtt_vbi_r(lws_mqtt_vbi *vbi, const uint8_t **in, size_t *len)\n \n \t\t(*len)--;\n \t\tvbi-\u003econsumed++;\n-\t\tvbi-\u003evalue +\u003d (u \u0026 0x7f) \u003c\u003c multiplier;\n-\t\tmultiplier +\u003d 7;\n+\t\tvbi-\u003evalue \u003d vbi-\u003evalue + (uint32_t)((u \u0026 0x7f) \u003c\u003c multiplier);\n+\t\tmultiplier \u003d (uint8_t)(multiplier + 7);\n \t\tif (!(u \u0026 0x80))\n \t\t\treturn LMSPR_COMPLETED; /* finished */\n \t}\n@@ -208,7 +208,7 @@ uint8_t *\n lws_mqtt_str_next(lws_mqtt_str_t *s, uint16_t *budget)\n {\n \tif (budget)\n-\t\t*budget \u003d s-\u003elimit - s-\u003epos;\n+\t\t*budget \u003d (uint16_t)(s-\u003elimit - s-\u003epos);\n \n \treturn \u0026s-\u003ebuf[s-\u003epos];\n }\n@@ -222,8 +222,8 @@ lws_mqtt_str_advance(lws_mqtt_str_t *s, int n)\n \t\treturn 1;\n \t}\n \n-\ts-\u003epos +\u003d n;\n-\ts-\u003elen +\u003d n;\n+\ts-\u003epos \u003d (uint16_t)(s-\u003epos + (uint16_t)n);\n+\ts-\u003elen \u003d (uint16_t)(s-\u003elen + (uint16_t)n);\n \n \treturn 0;\n }\n@@ -266,7 +266,7 @@ lws_mqtt_str_parse(lws_mqtt_str_t *s, const uint8_t **in, size_t *len)\n \n \t/* handle the length + allocation if needed */\n \twhile (*len \u0026\u0026 !s-\u003elen_valid \u0026\u0026 s-\u003epos \u003c 2) {\n-\t\ts-\u003elen \u003d (s-\u003elen \u003c\u003c 8) | *((*in)++);\n+\t\ts-\u003elen \u003d (uint16_t)((s-\u003elen \u003c\u003c 8) | *((*in)++));\n \t\t(*len)--;\n \t\toin \u003d *in;\n \t\tif (++s-\u003epos \u003d\u003d 2) {\n@@ -291,17 +291,17 @@ lws_mqtt_str_parse(lws_mqtt_str_t *s, const uint8_t **in, size_t *len)\n \n \t/* handle copying bulk data into allocation */\n \tif (s-\u003elen_valid \u0026\u0026 *len) {\n-\t\tuint16_t span \u003d s-\u003elen - s-\u003epos;\n+\t\tuint16_t span \u003d (uint16_t)(s-\u003elen - s-\u003epos);\n \n \t\tif (span \u003e *len)\n \t\t\tspan \u003d (uint16_t)*len;\n \n \t\tmemcpy(s-\u003ebuf + s-\u003epos, *in, span);\n \t\t*in +\u003d span;\n-\t\ts-\u003epos +\u003d span;\n+\t\ts-\u003epos \u003d (uint16_t)(s-\u003epos + (uint16_t)span);\n \t}\n \n-\t*len -\u003d *in - oin;\n+\t*len -\u003d (unsigned long)(*in - oin);\n \n \treturn s-\u003ebuf \u0026\u0026 s-\u003epos \u003d\u003d s-\u003elen ? LMSPR_COMPLETED : LMSPR_NEED_MORE;\n }\ndiff --git a/lib/roles/netlink/ops-netlink.c b/lib/roles/netlink/ops-netlink.c\nindex 52ed066..f167e3b 100644\n--- a/lib/roles/netlink/ops-netlink.c\n+++ b/lib/roles/netlink/ops-netlink.c\n@@ -64,7 +64,7 @@ rops_handle_POLLIN_netlink(struct lws_context_per_thread *pt, struct lws *wsi,\n \tstruct nlmsghdr\t\t*h;\n \tstruct msghdr\t\tmsg;\n \tstruct iovec\t\tiov;\n-\tint\t\t\tn;\n+\tunsigned int\t\t\tn;\n \n \tif (!(pollfd-\u003erevents \u0026 LWS_POLLIN))\n \t\treturn LWS_HPI_RET_HANDLED;\n@@ -91,31 +91,17 @@ rops_handle_POLLIN_netlink(struct lws_context_per_thread *pt, struct lws *wsi,\n \tmsg.msg_iov\t\t\u003d \u0026iov;\n \tmsg.msg_iovlen\t\t\u003d 1;\n \n-\tn \u003d recvmsg(wsi-\u003edesc.sockfd, \u0026msg, 0);\n-\tif (n \u003c 0)\n+\tn \u003d (unsigned int)recvmsg(wsi-\u003edesc.sockfd, \u0026msg, 0);\n+\tif ((int)n \u003c 0)\n \t\treturn LWS_HPI_RET_PLEASE_CLOSE_ME;\n \n \th \u003d (struct nlmsghdr *)s;\n \n-/*\n- * On some platforms nlh-\u003enlmsg_len is a uint32_t but len is expected to be\n- * an int. This causes the last comparison to blow with\n- *\n- * comparison of integers of different signs: '__u32' (aka 'unsigned int') and\n- * 'int' [-Werror,-Wsign-compare]\n- *\n- * rtnetlink messages cannot be huge, solve it by casting nmmsg_len to int\n- */\n-\n-#define LWS_NLMSG_OK(nlh, len) ((len) \u003e\u003d (int) sizeof(struct nlmsghdr) \u0026\u0026 \u005c\n-\t\t\t (nlh)-\u003enlmsg_len \u003e\u003d sizeof(struct nlmsghdr) \u0026\u0026 \u005c\n-\t\t\t (int)(nlh)-\u003enlmsg_len \u003c\u003d (len))\n-\n-\tfor ( ; LWS_NLMSG_OK(h, n); h \u003d NLMSG_NEXT(h, n)) {\n+\tfor ( ; NLMSG_OK(h, n); h \u003d NLMSG_NEXT(h, n)) {\n \t\tstruct ifaddrmsg *ifam;\n \t\tstruct rtattr *ra;\n \t\tstruct rtmsg *rm;\n-\t\tint ra_len;\n+\t\tunsigned int ra_len;\n \t\tuint8_t *p;\n \n \t\t/*\n@@ -157,18 +143,23 @@ rops_handle_POLLIN_netlink(struct lws_context_per_thread *pt, struct lws *wsi,\n \n \t\t\trobj.source_ads \u003d 1;\n \t\t\trobj.dest_len \u003d ifam-\u003eifa_prefixlen;\n-\t\t\trobj.if_idx \u003d ifam-\u003eifa_index;\n+\t\t\trobj.if_idx \u003d (int)ifam-\u003eifa_index;\n \t\t\trobj.scope \u003d ifam-\u003eifa_scope;\n \t\t\trobj.ifa_flags \u003d ifam-\u003eifa_flags;\n \t\t\trobj.dest.sa4.sin_family \u003d ifam-\u003eifa_family;\n \n \t\t\t/* address attributes */\n \t\t\tra \u003d (struct rtattr *)IFA_RTA(ifam);\n-\t\t\tra_len \u003d IFA_PAYLOAD(h);\n+\t\t\tra_len \u003d (unsigned int)IFA_PAYLOAD(h);\n \t\t} else {\n+\n+\t\t\tif (h-\u003enlmsg_type !\u003d RTM_NEWROUTE \u0026\u0026\n+\t\t\t h-\u003enlmsg_type !\u003d RTM_DELROUTE)\n+\t\t\t\tcontinue;\n+\n \t\t\t/* route attributes */\n \t\t\tra \u003d (struct rtattr *)RTM_RTA(rm);\n-\t\t\tra_len \u003d RTM_PAYLOAD(h);\n+\t\t\tra_len \u003d (unsigned int)RTM_PAYLOAD(h);\n \t\t}\n \n \t\trobj.proto \u003d rm-\u003ertm_protocol;\n@@ -370,7 +361,7 @@ rops_pt_init_destroy_netlink(struct lws_context *context,\n \n \tmemset(\u0026sanl, 0, sizeof(sanl));\n \tsanl.nl_family\t\t\u003d AF_NETLINK;\n-\tsanl.nl_pid\t\t\u003d getpid();\n+\tsanl.nl_pid\t\t\u003d (uint32_t)getpid();\n \tsanl.nl_groups\t\t\u003d RTMGRP_LINK | RTMGRP_IPV4_ROUTE\n #if defined(LWS_WITH_IPV6)\n \t\t\t\t | RTMGRP_IPV6_ROUTE\n@@ -408,7 +399,7 @@ rops_pt_init_destroy_netlink(struct lws_context *context,\n \treq.hdr.nlmsg_type\t\u003d RTM_GETROUTE;\n \treq.hdr.nlmsg_flags\t\u003d NLM_F_REQUEST | NLM_F_DUMP;\n \treq.hdr.nlmsg_seq\t\u003d 1;\n-\treq.hdr.nlmsg_pid\t\u003d getpid();\n+\treq.hdr.nlmsg_pid\t\u003d (uint32_t)getpid();\n \treq.gen.rtm_family\t\u003d AF_PACKET;\n \treq.gen.rtm_table\t\u003d RT_TABLE_DEFAULT;\n \n@@ -419,7 +410,7 @@ rops_pt_init_destroy_netlink(struct lws_context *context,\n \tmsg.msg_name\t\t\u003d \u0026sanl;\n \tmsg.msg_namelen\t\t\u003d sizeof(sanl);\n \n-\tn \u003d sendmsg(wsi-\u003edesc.sockfd, (struct msghdr *)\u0026msg, 0);\n+\tn \u003d (int)sendmsg(wsi-\u003edesc.sockfd, (struct msghdr *)\u0026msg, 0);\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: rt dump req failed... permissions? errno %d\u005cn\u0022,\n \t\t\t\t__func__, LWS_ERRNO);\ndiff --git a/lib/roles/pipe/ops-pipe.c b/lib/roles/pipe/ops-pipe.c\nindex 7f68c8e..d678135 100644\n--- a/lib/roles/pipe/ops-pipe.c\n+++ b/lib/roles/pipe/ops-pipe.c\n@@ -47,7 +47,7 @@ rops_handle_POLLIN_pipe(struct lws_context_per_thread *pt, struct lws *wsi,\n \t * We really don't care about the number of bytes, but coverity\n \t * thinks we should.\n \t */\n-\tn \u003d read(wsi-\u003edesc.sockfd, s, sizeof(s));\n+\tn \u003d (int)read(wsi-\u003edesc.sockfd, s, sizeof(s));\n \t(void)n;\n \tif (n \u003c 0)\n \t\treturn LWS_HPI_RET_PLEASE_CLOSE_ME;\ndiff --git a/lib/roles/private-lib-roles.h b/lib/roles/private-lib-roles.h\nindex 1b79aef..1c7adb6 100644\n--- a/lib/roles/private-lib-roles.h\n+++ b/lib/roles/private-lib-roles.h\n@@ -64,7 +64,7 @@ enum lwsi_role {\n \tLWSI_ROLE_ENCAP_MASK\t\u003d\t\t\t (0x0f00 \u003c\u003c _RS),\n };\n \n-#define lwsi_role(wsi) (wsi-\u003ewsistate \u0026 LWSI_ROLE_MASK)\n+#define lwsi_role(wsi) (wsi-\u003ewsistate \u0026 (unsigned int)LWSI_ROLE_MASK)\n #if !defined (_DEBUG)\n #define lwsi_set_role(wsi, role) wsi-\u003ewsistate \u003d \u005c\n \t\t\t\t(wsi-\u003ewsistate \u0026 (~LWSI_ROLE_MASK)) | role\n@@ -162,7 +162,7 @@ enum lwsi_state {\n #define lwsi_state_can_handle_POLLOUT(wsi) (wsi-\u003ewsistate \u0026 LWSIFS_POCB)\n #if !defined (_DEBUG)\n #define lwsi_set_state(wsi, lrs) wsi-\u003ewsistate \u003d \u005c\n-\t\t\t (wsi-\u003ewsistate \u0026 (~LRS_MASK)) | lrs\n+\t\t\t (wsi-\u003ewsistate \u0026 (lws_wsi_state_t)(~LRS_MASK)) | lrs\n #else\n void lwsi_set_state(struct lws *wsi, lws_wsi_state_t lrs);\n #endif\ndiff --git a/lib/roles/raw-proxy/ops-raw-proxy.c b/lib/roles/raw-proxy/ops-raw-proxy.c\nindex 3c81fc8..93e5cb5 100644\n--- a/lib/roles/raw-proxy/ops-raw-proxy.c\n+++ b/lib/roles/raw-proxy/ops-raw-proxy.c\n@@ -85,7 +85,7 @@ rops_handle_POLLIN_raw_proxy(struct lws_context_per_thread *pt, struct lws *wsi,\n \t\t\t\t\t\t LWS_CALLBACK_RAW_PROXY_CLI_RX :\n \t\t\t\t\t\t LWS_CALLBACK_RAW_PROXY_SRV_RX,\n \t\t\t\t\t\twsi-\u003euser_space, ebuf.token,\n-\t\t\t\t\t\tebuf.len);\n+\t\t\t\t\t\t(size_t)ebuf.len);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_info(\u0022LWS_CALLBACK_RAW_PROXY_*_RX fail\u005cn\u0022);\n \t\t\tgoto fail;\ndiff --git a/lib/roles/raw-skt/ops-raw-skt.c b/lib/roles/raw-skt/ops-raw-skt.c\nindex 53c0674..37a0842 100644\n--- a/lib/roles/raw-skt/ops-raw-skt.c\n+++ b/lib/roles/raw-skt/ops-raw-skt.c\n@@ -160,7 +160,7 @@ rops_handle_POLLIN_raw_skt(struct lws_context_per_thread *pt, struct lws *wsi,\n \t\t\tn \u003d user_callback_handle_rxflow(wsi-\u003ea.protocol-\u003ecallback,\n \t\t\t\t\t\t\twsi, LWS_CALLBACK_RAW_RX,\n \t\t\t\t\t\t\twsi-\u003euser_space, ebuf.token,\n-\t\t\t\t\t\t\tebuf.len);\n+\t\t\t\t\t\t\t(unsigned int)ebuf.len);\n #if defined(LWS_WITH_UDP) || defined(LWS_WITH_SOCKS5)\n post_rx:\n #endif\ndiff --git a/lib/roles/ws/client-parser-ws.c b/lib/roles/ws/client-parser-ws.c\nindex 317ca0c..8fc6ef4 100644\n--- a/lib/roles/ws/client-parser-ws.c\n+++ b/lib/roles/ws/client-parser-ws.c\n@@ -213,7 +213,7 @@ int lws_ws_client_rx_sm(struct lws *wsi, unsigned char c)\n \t\tbreak;\n \n \tcase LWS_RXPS_04_FRAME_HDR_LEN16_2:\n-\t\twsi-\u003ews-\u003erx_packet_length \u003d c \u003c\u003c 8;\n+\t\twsi-\u003ews-\u003erx_packet_length \u003d (size_t)((unsigned int)c \u003c\u003c 8);\n \t\twsi-\u003elws_rx_parse_state \u003d LWS_RXPS_04_FRAME_HDR_LEN16_1;\n \t\tbreak;\n \n@@ -406,7 +406,7 @@ spill:\n \t\t\tlwsl_parser(\u0022client sees server close len \u003d %d\u005cn\u0022,\n \t\t\t\t\t\t (int)wsi-\u003ews-\u003erx_ubuf_head);\n \t\t\tif (wsi-\u003ews-\u003erx_ubuf_head \u003e\u003d 2) {\n-\t\t\t\tclose_code \u003d (pp[0] \u003c\u003c 8) | pp[1];\n+\t\t\t\tclose_code \u003d (unsigned short)((pp[0] \u003c\u003c 8) | pp[1]);\n \t\t\t\tif (close_code \u003c 1000 ||\n \t\t\t\t close_code \u003d\u003d 1004 ||\n \t\t\t\t close_code \u003d\u003d 1005 ||\n@@ -431,7 +431,7 @@ spill:\n \t\t\tmemcpy(wsi-\u003ews-\u003eping_payload_buf + LWS_PRE, pp,\n \t\t\t wsi-\u003ews-\u003erx_ubuf_head);\n \t\t\twsi-\u003ews-\u003eclose_in_ping_buffer_len \u003d\n-\t\t\t\t\twsi-\u003ews-\u003erx_ubuf_head;\n+\t\t\t\t\t(uint8_t)wsi-\u003ews-\u003erx_ubuf_head;\n \n \t\t\tlwsl_info(\u0022%s: scheduling return close as ack\u005cn\u0022,\n \t\t\t\t __func__);\n@@ -472,7 +472,7 @@ spill:\n \t\t\t \u0026wsi-\u003ews-\u003erx_ubuf[LWS_PRE],\n \t\t\t wsi-\u003ews-\u003erx_ubuf_head);\n \n-\t\t\twsi-\u003ews-\u003eping_payload_len \u003d wsi-\u003ews-\u003erx_ubuf_head;\n+\t\t\twsi-\u003ews-\u003eping_payload_len \u003d (uint8_t)wsi-\u003ews-\u003erx_ubuf_head;\n \t\t\twsi-\u003ews-\u003eping_pending_flag \u003d 1;\n \n \t\t\t/* get it sent as soon as possible */\n@@ -523,7 +523,7 @@ ping_drop:\n \t\t\tgoto already_done;\n \n \t\tpmdrx.eb_in.token \u003d \u0026wsi-\u003ews-\u003erx_ubuf[LWS_PRE];\n-\t\tpmdrx.eb_in.len \u003d wsi-\u003ews-\u003erx_ubuf_head;\n+\t\tpmdrx.eb_in.len \u003d (int)wsi-\u003ews-\u003erx_ubuf_head;\n \n \t\t/* for the non-pm-deflate case */\n \n@@ -583,7 +583,7 @@ drain_extension:\n \n \t\t\t\tif (lws_check_utf8(\u0026wsi-\u003ews-\u003eutf8,\n \t\t\t\t\t\t pmdrx.eb_out.token,\n-\t\t\t\t\t\t pmdrx.eb_out.len)) {\n+\t\t\t\t\t\t (unsigned int)pmdrx.eb_out.len)) {\n \t\t\t\t\tlws_close_reason(wsi,\n \t\t\t\t\t\tLWS_CLOSE_STATUS_INVALID_PAYLOAD,\n \t\t\t\t\t\t(uint8_t *)\u0022bad utf8\u0022, 8);\n@@ -605,7 +605,7 @@ drain_extension:\n utf8_fail:\n \t\t\t\t\tlwsl_info(\u0022utf8 error\u005cn\u0022);\n \t\t\t\t\tlwsl_hexdump_info(pmdrx.eb_out.token,\n-\t\t\t\t\t\t\t pmdrx.eb_out.len);\n+\t\t\t\t\t\t\t (unsigned int)pmdrx.eb_out.len);\n \n \t\t\t\t\treturn -1;\n \t\t\t\t}\n@@ -655,7 +655,7 @@ utf8_fail:\n \t\t\tm \u003d wsi-\u003ea.protocol-\u003ecallback(wsi,\n \t\t\t\t\t(enum lws_callback_reasons)callback_action,\n \t\t\t\t\twsi-\u003euser_space, pmdrx.eb_out.token,\n-\t\t\t\t\tpmdrx.eb_out.len);\n+\t\t\t\t\t(unsigned int)pmdrx.eb_out.len);\n \n \t\t\twsi-\u003ews-\u003efirst_fragment \u003d 0;\n \ndiff --git a/lib/roles/ws/client-ws.c b/lib/roles/ws/client-ws.c\nindex 6cd38ea..af733cc 100644\n--- a/lib/roles/ws/client-ws.c\n+++ b/lib/roles/ws/client-ws.c\n@@ -36,7 +36,7 @@ strtolower(char *s)\n \t\tint tolower_optee(int c);\n \t\t*s \u003d tolower_optee((int)*s);\n #else\n-\t\t*s \u003d tolower((int)*s);\n+\t\t*s \u003d (char)tolower((int)*s);\n #endif\n \t\ts++;\n \t}\n@@ -60,7 +60,7 @@ lws_create_client_ws_object(const struct lws_client_connect_info *i,\n \t i-\u003eietf_version_or_minus_one)\n \t\tv \u003d i-\u003eietf_version_or_minus_one;\n \n-\twsi-\u003ews-\u003eietf_spec_revision \u003d v;\n+\twsi-\u003ews-\u003eietf_spec_revision \u003d (uint8_t)v;\n \n \treturn 0;\n }\n@@ -94,7 +94,7 @@ lws_ws_handshake_client(struct lws *wsi, unsigned char **buf, size_t len)\n \t\t\t * effectively \u0022putting it back in the cache\u0022, we have\n \t\t\t * to place it at the cache head, not the tail as usual.\n \t\t\t */\n-\t\t\tif (lws_rxflow_cache(wsi, *buf, 0, (int)len) \u003d\u003d\n+\t\t\tif (lws_rxflow_cache(wsi, *buf, 0, len) \u003d\u003d\n \t\t\t\t\t\t\tLWSRXFC_TRIMMED) {\n \t\t\t\t/*\n \t\t\t\t * we dealt with it by trimming the existing\n@@ -222,7 +222,7 @@ lws_generate_client_ws_handshake(struct lws *wsi, char *p, const char *conn1)\n \tn \u003d sprintf(buf, \u0022%s258EAFA5-E914-47DA-95CA-C5AB0DC85B11\u0022,\n \t\t\t key_b64);\n \n-\tlws_SHA1((unsigned char *)buf, n, (unsigned char *)hash);\n+\tlws_SHA1((unsigned char *)buf, (unsigned int)n, (unsigned char *)hash);\n \n \tlws_b64_encode_string(hash, 20,\n \t\t wsi-\u003ehttp.ah-\u003einitial_handshake_hash_base64,\n@@ -306,7 +306,7 @@ lws_client_ws_upgrade(struct lws *wsi, const char **cce)\n \tn \u003d lws_hdr_copy(wsi, buf, sizeof(buf) - 1, WSI_TOKEN_CONNECTION);\n \tif (n \u003c\u003d 0) /* won't fit, or absent */\n \t\tgoto bad_conn_format;\n-\tts.len \u003d n;\n+\tts.len \u003d (unsigned int)n;\n \n \tdo {\n \t\te \u003d lws_tokenize(\u0026ts);\n@@ -365,7 +365,7 @@ bad_conn_format:\n \tlen \u003d (int)strlen(p);\n \n \twhile (pc \u0026\u0026 *pc \u0026\u0026 !okay) {\n-\t\tif (!strncmp(pc, p, len) \u0026\u0026\n+\t\tif (!strncmp(pc, p, (unsigned int)len) \u0026\u0026\n \t\t (pc[len] \u003d\u003d ',' || pc[len] \u003d\u003d '\u005c0')) {\n \t\t\tokay \u003d 1;\n \t\t\tcontinue;\n@@ -463,7 +463,7 @@ check_extensions:\n \t * and go through matching them or identifying bogons\n \t */\n \n-\tif (lws_hdr_copy(wsi, sb, context-\u003ept_serv_buf_size,\n+\tif (lws_hdr_copy(wsi, sb, (int)context-\u003ept_serv_buf_size,\n \t\t\t WSI_TOKEN_EXTENSIONS) \u003c 0) {\n \t\tlwsl_warn(\u0022ext list from server failed to copy\u005cn\u0022);\n \t\t*cce \u003d \u0022HS: EXT: list too big\u0022;\n@@ -648,16 +648,16 @@ check_accept:\n \t */\n \tn \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \tif (!n)\n-\t\tn \u003d context-\u003ept_serv_buf_size;\n+\t\tn \u003d (int)context-\u003ept_serv_buf_size;\n \tn +\u003d LWS_PRE;\n-\twsi-\u003ews-\u003erx_ubuf \u003d lws_malloc(n + 4 /* 0x0000ffff zlib */,\n+\twsi-\u003ews-\u003erx_ubuf \u003d lws_malloc((unsigned int)n + 4 /* 0x0000ffff zlib */,\n \t\t\t\t\u0022client frame buffer\u0022);\n \tif (!wsi-\u003ews-\u003erx_ubuf) {\n \t\tlwsl_err(\u0022Out of Mem allocating rx buffer %d\u005cn\u0022, n);\n \t\t*cce \u003d \u0022HS: OOM\u0022;\n \t\tgoto bail2;\n \t}\n-\twsi-\u003ews-\u003erx_ubuf_alloc \u003d n;\n+\twsi-\u003ews-\u003erx_ubuf_alloc \u003d (unsigned int)n;\n \n \tlwsl_debug(\u0022handshake OK for protocol %s\u005cn\u0022, wsi-\u003ea.protocol-\u003ename);\n \ndiff --git a/lib/roles/ws/ext/extension-permessage-deflate.c b/lib/roles/ws/ext/extension-permessage-deflate.c\nindex de7fc1d..c442f7c 100644\n--- a/lib/roles/ws/ext/extension-permessage-deflate.c\n+++ b/lib/roles/ws/ext/extension-permessage-deflate.c\n@@ -52,7 +52,7 @@ lws_extension_pmdeflate_restrict_args(struct lws *wsi,\n \n \t/* cap the RX buf at the nearest power of 2 to protocol rx buf */\n \n-\tn \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\tn \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \tif (wsi-\u003ea.protocol-\u003erx_buffer_size)\n \t\tn \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \n@@ -61,7 +61,7 @@ lws_extension_pmdeflate_restrict_args(struct lws *wsi,\n \t\textra++;\n \n \tif (extra \u003c priv-\u003eargs[PMD_RX_BUF_PWR2]) {\n-\t\tpriv-\u003eargs[PMD_RX_BUF_PWR2] \u003d extra;\n+\t\tpriv-\u003eargs[PMD_RX_BUF_PWR2] \u003d (unsigned char)extra;\n \t\tlwsl_info(\u0022 Capping pmd rx to %d\u005cn\u0022, 1 \u003c\u003c extra);\n \t}\n }\n@@ -108,7 +108,7 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\tlwsl_ext(\u0022%s: option set: idx %d, %s, len %d\u005cn\u0022, __func__,\n \t\t\t oa-\u003eoption_index, oa-\u003estart, oa-\u003elen);\n \t\tif (oa-\u003estart)\n-\t\t\tpriv-\u003eargs[oa-\u003eoption_index] \u003d atoi(oa-\u003estart);\n+\t\t\tpriv-\u003eargs[oa-\u003eoption_index] \u003d (unsigned char)atoi(oa-\u003estart);\n \t\telse\n \t\t\tpriv-\u003eargs[oa-\u003eoption_index] \u003d 1;\n \n@@ -129,7 +129,7 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \tcase LWS_EXT_CB_CLIENT_CONSTRUCT:\n \tcase LWS_EXT_CB_CONSTRUCT:\n \n-\t\tn \u003d context-\u003ept_serv_buf_size;\n+\t\tn \u003d (int)context-\u003ept_serv_buf_size;\n \t\tif (wsi-\u003ea.protocol-\u003erx_buffer_size)\n \t\t\tn \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \n@@ -231,8 +231,8 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\t\tpriv-\u003erx_init \u003d 1;\n \t\t\tif (!priv-\u003ebuf_rx_inflated)\n \t\t\t\tpriv-\u003ebuf_rx_inflated \u003d lws_malloc(\n-\t\t\t\t\tLWS_PRE + 7 + 5 +\n-\t\t\t\t\t (1 \u003c\u003c priv-\u003eargs[PMD_RX_BUF_PWR2]),\n+\t\t\t\t\t(unsigned int)(LWS_PRE + 7 + 5 +\n+\t\t\t\t\t (1 \u003c\u003c priv-\u003eargs[PMD_RX_BUF_PWR2])),\n \t\t\t\t\t \u0022pmd rx inflate buf\u0022);\n \t\t\tif (!priv-\u003ebuf_rx_inflated) {\n \t\t\t\tlwsl_err(\u0022%s: OOM\u005cn\u0022, __func__);\n@@ -255,12 +255,12 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n #endif\n \t\tif (!priv-\u003erx.avail_in \u0026\u0026 pmdrx-\u003eeb_in.token \u0026\u0026 pmdrx-\u003eeb_in.len) {\n \t\t\tpriv-\u003erx.next_in \u003d (unsigned char *)pmdrx-\u003eeb_in.token;\n-\t\t\tpriv-\u003erx.avail_in \u003d pmdrx-\u003eeb_in.len;\n+\t\t\tpriv-\u003erx.avail_in \u003d (uInt)pmdrx-\u003eeb_in.len;\n \t\t}\n \n \t\tpriv-\u003erx.next_out \u003d priv-\u003ebuf_rx_inflated + LWS_PRE;\n \t\tpmdrx-\u003eeb_out.token \u003d priv-\u003erx.next_out;\n-\t\tpriv-\u003erx.avail_out \u003d 1 \u003c\u003c priv-\u003eargs[PMD_RX_BUF_PWR2];\n+\t\tpriv-\u003erx.avail_out \u003d (uInt)(1 \u003c\u003c priv-\u003eargs[PMD_RX_BUF_PWR2]);\n \n \t\t/* so... if...\n \t\t *\n@@ -310,8 +310,8 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\t */\n \n \t\tpmdrx-\u003eeb_in.token \u003d pmdrx-\u003eeb_in.token +\n-\t\t\t\t (pmdrx-\u003eeb_in.len - priv-\u003erx.avail_in);\n-\t\tpmdrx-\u003eeb_in.len \u003d priv-\u003erx.avail_in;\n+\t\t\t\t ((unsigned int)pmdrx-\u003eeb_in.len - (unsigned int)priv-\u003erx.avail_in);\n+\t\tpmdrx-\u003eeb_in.len \u003d (int)priv-\u003erx.avail_in;\n \n \t\tlwsl_debug(\u0022%s: %d %d %d %d %d\u005cn\u0022, __func__,\n \t\t\t\tpriv-\u003erx.avail_in,\n@@ -353,7 +353,7 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \n \t\tpmdrx-\u003eeb_out.len \u003d lws_ptr_diff(priv-\u003erx.next_out,\n \t\t\t\t\t\t pmdrx-\u003eeb_out.token);\n-\t\tpriv-\u003ecount_rx_between_fin +\u003d pmdrx-\u003eeb_out.len;\n+\t\tpriv-\u003ecount_rx_between_fin \u003d priv-\u003ecount_rx_between_fin + (size_t)pmdrx-\u003eeb_out.len;\n \n \t\tlwsl_ext(\u0022 %s: RX leaving with new effbuff len %d, \u0022\n \t\t\t \u0022rx.avail_in\u003d%d, TOTAL RX since FIN %lu\u005cn\u0022,\n@@ -400,8 +400,8 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\t}\n \n \t\tif (!priv-\u003ebuf_tx_deflated)\n-\t\t\tpriv-\u003ebuf_tx_deflated \u003d lws_malloc(LWS_PRE + 7 + 5 +\n-\t\t\t\t\t (1 \u003c\u003c priv-\u003eargs[PMD_TX_BUF_PWR2]),\n+\t\t\tpriv-\u003ebuf_tx_deflated \u003d lws_malloc((unsigned int)(LWS_PRE + 7 + 5 +\n+\t\t\t\t\t (1 \u003c\u003c priv-\u003eargs[PMD_TX_BUF_PWR2])),\n \t\t\t\t\t \u0022pmd tx deflate buf\u0022);\n \t\tif (!priv-\u003ebuf_tx_deflated) {\n \t\t\tlwsl_err(\u0022%s: OOM\u005cn\u0022, __func__);\n@@ -414,22 +414,23 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \n \t\t\tassert(!priv-\u003etx.avail_in);\n \n-\t\t\tpriv-\u003ecount_tx_between_fin +\u003d pmdrx-\u003eeb_in.len;\n+\t\t\tpriv-\u003ecount_tx_between_fin \u003d priv-\u003ecount_tx_between_fin + (size_t)pmdrx-\u003eeb_in.len;\n \t\t\tlwsl_ext(\u0022%s: TX: eb_in length %d, \u0022\n \t\t\t\t \u0022TOTAL TX since FIN: %d\u005cn\u0022, __func__,\n \t\t\t\t pmdrx-\u003eeb_in.len,\n \t\t\t\t (int)priv-\u003ecount_tx_between_fin);\n \t\t\tpriv-\u003etx.next_in \u003d (unsigned char *)pmdrx-\u003eeb_in.token;\n-\t\t\tpriv-\u003etx.avail_in \u003d pmdrx-\u003eeb_in.len;\n+\t\t\tpriv-\u003etx.avail_in \u003d (uInt)pmdrx-\u003eeb_in.len;\n \t\t}\n \n \t\tpriv-\u003etx.next_out \u003d priv-\u003ebuf_tx_deflated + LWS_PRE + 5;\n \t\tpmdrx-\u003eeb_out.token \u003d priv-\u003etx.next_out;\n-\t\tpriv-\u003etx.avail_out \u003d 1 \u003c\u003c priv-\u003eargs[PMD_TX_BUF_PWR2];\n+\t\tpriv-\u003etx.avail_out \u003d (uInt)(1 \u003c\u003c priv-\u003eargs[PMD_TX_BUF_PWR2]);\n \n-\t\tpen \u003d penbits \u003d 0;\n+\t\tpen \u003d 0;\n+\t\tpenbits \u003d 0;\n \t\tdeflatePending(\u0026priv-\u003etx, \u0026pen, \u0026penbits);\n-\t\tpen |\u003d penbits;\n+\t\tpen \u003d pen | (unsigned int)penbits;\n \n \t\tif (!priv-\u003etx.avail_in \u0026\u0026 (len \u0026 LWS_WRITE_NO_FIN)) {\n \t\t\tlwsl_ext(\u0022%s: no available in, pen: %u\u005cn\u0022, __func__, pen);\n@@ -492,8 +493,8 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\t */\n \n \t\tpmdrx-\u003eeb_in.token \u003d pmdrx-\u003eeb_in.token +\n-\t\t\t\t\t(pmdrx-\u003eeb_in.len - priv-\u003etx.avail_in);\n-\t\tpmdrx-\u003eeb_in.len \u003d priv-\u003etx.avail_in;\n+\t\t\t\t\t((unsigned int)pmdrx-\u003eeb_in.len - (unsigned int)priv-\u003etx.avail_in);\n+\t\tpmdrx-\u003eeb_in.len \u003d (int)priv-\u003etx.avail_in;\n \n \t\tpriv-\u003ecompressed_out \u003d 1;\n \t\tpmdrx-\u003eeb_out.len \u003d lws_ptr_diff(priv-\u003etx.next_out,\n@@ -522,8 +523,8 @@ lws_extension_callback_pm_deflate(struct lws_context *context,\n \t\t * use of CONTINUATION when the first real write does come.\n \t\t */\n \t\tif (priv-\u003etx_first_frame_type \u0026 0xf) {\n-\t\t\t*pmdrx-\u003eeb_in.token \u003d ((*pmdrx-\u003eeb_in.token) \u0026 ~0xf) |\n-\t\t\t\t\t(priv-\u003etx_first_frame_type \u0026 0xf);\n+\t\t\t*pmdrx-\u003eeb_in.token \u003d (unsigned char)((((unsigned char)*pmdrx-\u003eeb_in.token) \u0026 (unsigned char)~0xf) |\n+\t\t\t\t((unsigned char)priv-\u003etx_first_frame_type \u0026 (unsigned char)0xf));\n \t\t\t/*\n \t\t\t * We have now written the \u0022first\u0022 fragment, only\n \t\t\t * do that once\ndiff --git a/lib/roles/ws/ext/extension.c b/lib/roles/ws/ext/extension.c\nindex 9ec95eb..38fd299 100644\n--- a/lib/roles/ws/ext/extension.c\n+++ b/lib/roles/ws/ext/extension.c\n@@ -65,7 +65,7 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,\n \t\t\t\tlen \u003d 1;\n \t\t\t\tbreak;\n \t\t\t}\n-\t\t\tmatch_map \u003d (1 \u003c\u003c count_options) - 1;\n+\t\t\tmatch_map \u003d (unsigned int)(1 \u003c\u003c count_options) - 1;\n \t\t\tleap \u003d LEAPS_EAT_NAME;\n \t\t\tw \u003d 0;\n \n@@ -87,7 +87,7 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,\n \n \t\t\t\tif (*in \u003d\u003d opts[n].name[w]) {\n \t\t\t\t\tif (!opts[n].name[w + 1]) {\n-\t\t\t\t\t\toa.option_index \u003d n;\n+\t\t\t\t\t\toa.option_index \u003d (int)n;\n \t\t\t\t\t\tlwsl_ext(\u0022hit %d\u005cn\u0022,\n \t\t\t\t\t\t\t oa.option_index);\n \t\t\t\t\t\tleap \u003d LEAPS_SEEK_VAL;\n@@ -96,7 +96,7 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,\n \t\t\t\t\t\tbreak;\n \t\t\t\t\t}\n \t\t\t\t} else {\n-\t\t\t\t\tmatch_map \u0026\u003d ~(1 \u003c\u003c n);\n+\t\t\t\t\tmatch_map \u0026\u003d (unsigned int)~(1 \u003c\u003c n);\n \t\t\t\t\tif (!match_map) {\n \t\t\t\t\t\tlwsl_ext(\u0022empty match map\u005cn\u0022);\n \t\t\t\t\t\treturn -1;\n@@ -198,7 +198,7 @@ int lws_ext_cb_active(struct lws *wsi, int reason, void *arg, int len)\n \tfor (n \u003d 0; n \u003c wsi-\u003ews-\u003ecount_act_ext; n++) {\n \t\tm \u003d wsi-\u003ews-\u003eactive_extensions[n]-\u003ecallback(\n \t\t\tlws_get_context(wsi), wsi-\u003ews-\u003eactive_extensions[n],\n-\t\t\twsi, reason, wsi-\u003ews-\u003eact_ext_user[n], arg, len);\n+\t\t\twsi, (enum lws_extension_callback_reasons)reason, wsi-\u003ews-\u003eact_ext_user[n], arg, (size_t)len);\n \t\tif (m \u003c 0) {\n \t\t\tlwsl_ext(\u0022Ext '%s' failed to handle callback %d!\u005cn\u0022,\n \t\t\t\t wsi-\u003ews-\u003eactive_extensions[n]-\u003ename, reason);\n@@ -226,8 +226,8 @@ int lws_ext_cb_all_exts(struct lws_context *context, struct lws *wsi,\n \text \u003d wsi-\u003ea.vhost-\u003ews.extensions;\n \n \twhile (ext \u0026\u0026 ext-\u003ecallback \u0026\u0026 !handled) {\n-\t\tm \u003d ext-\u003ecallback(context, ext, wsi, reason,\n-\t\t\t\t (void *)(lws_intptr_t)n, arg, len);\n+\t\tm \u003d ext-\u003ecallback(context, ext, wsi, (enum lws_extension_callback_reasons)reason,\n+\t\t\t\t (void *)(lws_intptr_t)n, arg, (size_t)len);\n \t\tif (m \u003c 0) {\n \t\t\tlwsl_ext(\u0022Ext '%s' failed to handle callback %d!\u005cn\u0022,\n \t\t\t\t wsi-\u003ews-\u003eactive_extensions[n]-\u003ename, reason);\n@@ -282,7 +282,7 @@ lws_issue_raw_ext_access(struct lws *wsi, unsigned char *buf, size_t len)\n \t\t/* assuming they left us something to send, send it */\n \n \t\tif (ebuf.len) {\n-\t\t\tn \u003d lws_issue_raw(wsi, ebuf.token, ebuf.len);\n+\t\t\tn \u003d lws_issue_raw(wsi, ebuf.token, (size_t)ebuf.len);\n \t\t\tif (n \u003c 0) {\n \t\t\t\tlwsl_info(\u0022closing from ext access\u005cn\u0022);\n \t\t\t\treturn -1;\n@@ -290,7 +290,7 @@ lws_issue_raw_ext_access(struct lws *wsi, unsigned char *buf, size_t len)\n \n \t\t\t/* always either sent it all or privately buffered */\n \t\t\tif (wsi-\u003ews-\u003eclean_buffer)\n-\t\t\t\tlen \u003d n;\n+\t\t\t\tlen \u003d (size_t)n;\n \n \t\t\tlwsl_ext(\u0022%s: written %d bytes to client\u005cn\u0022,\n \t\t\t\t __func__, n);\ndiff --git a/lib/roles/ws/ops-ws.c b/lib/roles/ws/ops-ws.c\nindex dff2490..fc1bfe7 100644\n--- a/lib/roles/ws/ops-ws.c\n+++ b/lib/roles/ws/ops-ws.c\n@@ -278,7 +278,7 @@ handle_first:\n \t\tbreak;\n \n \tcase LWS_RXPS_04_FRAME_HDR_LEN16_2:\n-\t\twsi-\u003ews-\u003erx_packet_length \u003d c \u003c\u003c 8;\n+\t\twsi-\u003ews-\u003erx_packet_length \u003d (size_t)(c \u003c\u003c 8);\n \t\twsi-\u003elws_rx_parse_state \u003d LWS_RXPS_04_FRAME_HDR_LEN16_1;\n \t\tbreak;\n \n@@ -481,7 +481,7 @@ spill:\n \t\t\t}\n \n \t\t\tif (wsi-\u003ews-\u003erx_ubuf_head \u003e\u003d 2) {\n-\t\t\t\tclose_code \u003d (pp[0] \u003c\u003c 8) | pp[1];\n+\t\t\t\tclose_code \u003d (unsigned short)((pp[0] \u003c\u003c 8) | pp[1]);\n \t\t\t\tif (close_code \u003c 1000 ||\n \t\t\t\t close_code \u003d\u003d 1004 ||\n \t\t\t\t close_code \u003d\u003d 1005 ||\n@@ -535,7 +535,7 @@ process_as_ping:\n \t\t\t \u0026wsi-\u003ews-\u003erx_ubuf[LWS_PRE],\n \t\t\t\twsi-\u003ews-\u003erx_ubuf_head);\n \n-\t\t\twsi-\u003ews-\u003eping_payload_len \u003d wsi-\u003ews-\u003erx_ubuf_head;\n+\t\t\twsi-\u003ews-\u003eping_payload_len \u003d (uint8_t)wsi-\u003ews-\u003erx_ubuf_head;\n \t\t\twsi-\u003ews-\u003eping_pending_flag \u003d 1;\n \n \t\t\t/* get it sent as soon as possible */\n@@ -582,7 +582,7 @@ ping_drop:\n \t\t */\n \n \t\tpmdrx.eb_in.token \u003d \u0026wsi-\u003ews-\u003erx_ubuf[LWS_PRE];\n-\t\tpmdrx.eb_in.len \u003d wsi-\u003ews-\u003erx_ubuf_head;\n+\t\tpmdrx.eb_in.len \u003d (int)wsi-\u003ews-\u003erx_ubuf_head;\n \n \t\t/* for the non-pm-deflate case */\n \n@@ -616,7 +616,7 @@ drain_extension:\n \t\t\tlwsl_debug(\u0022%s: ext says %d / ebuf.len %d\u005cn\u0022, __func__,\n \t\t\t\t n, pmdrx.eb_out.len);\n \t\t\tif (wsi-\u003ews-\u003erx_draining_ext)\n-\t\t\t\talready_processed \u0026\u003d ~ALREADY_PROCESSED_NO_CB;\n+\t\t\t\talready_processed \u0026\u003d (char)~ALREADY_PROCESSED_NO_CB;\n #endif\n \n \t\t\t/*\n@@ -662,7 +662,7 @@ drain_extension:\n \t\t\t wsi-\u003ews-\u003echeck_utf8 \u0026\u0026 !wsi-\u003ews-\u003edefeat_check_utf8) {\n \t\t\t\tif (lws_check_utf8(\u0026wsi-\u003ews-\u003eutf8,\n \t\t\t\t\t\t pmdrx.eb_out.token,\n-\t\t\t\t\t\t pmdrx.eb_out.len)) {\n+\t\t\t\t\t\t (size_t)pmdrx.eb_out.len)) {\n \t\t\t\t\tlws_close_reason(wsi,\n \t\t\t\t\t\tLWS_CLOSE_STATUS_INVALID_PAYLOAD,\n \t\t\t\t\t\t(uint8_t *)\u0022bad utf8\u0022, 8);\n@@ -684,7 +684,7 @@ drain_extension:\n utf8_fail:\n \t\t\t\t\tlwsl_notice(\u0022utf8 error\u005cn\u0022);\n \t\t\t\t\tlwsl_hexdump_notice(pmdrx.eb_out.token,\n-\t\t\t\t\t\t\t pmdrx.eb_out.len);\n+\t\t\t\t\t\t\t (size_t)pmdrx.eb_out.len);\n \n \t\t\t\t\treturn -1;\n \t\t\t\t}\n@@ -720,7 +720,7 @@ utf8_fail:\n \t\t\t\t\t\t\t callback_action,\n \t\t\t\t\t\twsi-\u003euser_space,\n \t\t\t\t\t\tpmdrx.eb_out.token,\n-\t\t\t\t\t\tpmdrx.eb_out.len);\n+\t\t\t\t\t\t(size_t)pmdrx.eb_out.len);\n \t\t\t\t}\n \t\t\t\twsi-\u003ews-\u003efirst_fragment \u003d 0;\n \t\t\t}\n@@ -840,14 +840,14 @@ lws_server_init_wsi_for_ws(struct lws *wsi)\n \n \tn \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \tif (!n)\n-\t\tn \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\tn \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \tn +\u003d LWS_PRE;\n-\twsi-\u003ews-\u003erx_ubuf \u003d lws_malloc(n + 4 /* 0x0000ffff zlib */, \u0022rx_ubuf\u0022);\n+\twsi-\u003ews-\u003erx_ubuf \u003d lws_malloc((unsigned int)n + 4 /* 0x0000ffff zlib */, \u0022rx_ubuf\u0022);\n \tif (!wsi-\u003ews-\u003erx_ubuf) {\n \t\tlwsl_err(\u0022Out of Mem allocating rx buffer %d\u005cn\u0022, n);\n \t\treturn 1;\n \t}\n-\twsi-\u003ews-\u003erx_ubuf_alloc \u003d n;\n+\twsi-\u003ews-\u003erx_ubuf_alloc \u003d (uint32_t)n;\n \n \t/* notify user code that we're ready to roll */\n \n@@ -919,14 +919,14 @@ lws_close_reason(struct lws *wsi, enum lws_close_status status,\n \n \tstart \u003d p \u003d \u0026wsi-\u003ews-\u003eping_payload_buf[LWS_PRE];\n \n-\t*p++ \u003d (((int)status) \u003e\u003e 8) \u0026 0xff;\n-\t*p++ \u003d ((int)status) \u0026 0xff;\n+\t*p++ \u003d (uint8_t)((((int)status) \u003e\u003e 8) \u0026 0xff);\n+\t*p++ \u003d (uint8_t)(((int)status) \u0026 0xff);\n \n \tif (buf)\n \t\twhile (len-- \u0026\u0026 p \u003c start + budget)\n \t\t\t*p++ \u003d *buf++;\n \n-\twsi-\u003ews-\u003eclose_in_ping_buffer_len \u003d lws_ptr_diff(p, start);\n+\twsi-\u003ews-\u003eclose_in_ping_buffer_len \u003d (uint8_t)lws_ptr_diff(p, start);\n }\n \n static int\n@@ -1123,19 +1123,19 @@ read:\n \t\tbuffered \u003d 0;\n \t\tebuf.token \u003d pt-\u003eserv_buf;\n \t\tif (lwsi_role_ws(wsi))\n-\t\t\tebuf.len \u003d wsi-\u003ews-\u003erx_ubuf_alloc;\n+\t\t\tebuf.len \u003d (int)wsi-\u003ews-\u003erx_ubuf_alloc;\n \t\telse\n-\t\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((unsigned int)ebuf.len \u003e wsi-\u003ea.context-\u003ept_serv_buf_size)\n-\t\t\tebuf.len \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n+\t\t\tebuf.len \u003d (int)wsi-\u003ea.context-\u003ept_serv_buf_size;\n \n \t\tif ((int)pending \u003e ebuf.len)\n-\t\t\tpending \u003d ebuf.len;\n+\t\t\tpending \u003d (unsigned int)ebuf.len;\n \n \t\tebuf.len \u003d lws_ssl_capable_read(wsi, ebuf.token,\n-\t\t\t\t\t\tpending ? (int)pending :\n-\t\t\t\t\t\tebuf.len);\n+\t\t\t\t\t\t(size_t)(pending ? pending :\n+\t\t\t\t\t\t(unsigned int)ebuf.len));\n \t\tswitch (ebuf.len) {\n \t\tcase 0:\n \t\t\tlwsl_info(\u0022%s: zero length read\u005cn\u0022,\n@@ -1175,16 +1175,16 @@ drain:\n \n \t\t/* service incoming data */\n \t\t//lws_buflist_describe(\u0026wsi-\u003ebuflist, wsi, __func__);\n-\t\tif (ebuf.len) {\n+\t\tif (ebuf.len \u003e 0) {\n #if defined(LWS_ROLE_H2)\n \t\t\tif (lwsi_role_h2(wsi) \u0026\u0026 lwsi_state(wsi) !\u003d LRS_BODY \u0026\u0026\n \t\t\t lwsi_state(wsi) !\u003d LRS_DISCARD_BODY)\n \t\t\t\tn \u003d lws_read_h2(wsi, ebuf.token,\n-\t\t\t\t\t ebuf.len);\n+\t\t\t\t\t (unsigned int)ebuf.len);\n \t\t\telse\n #endif\n \t\t\t\tn \u003d lws_read_h1(wsi, ebuf.token,\n-\t\t\t\t\t ebuf.len);\n+\t\t\t\t\t (unsigned int)ebuf.len);\n \n \t\t\tif (n \u003c 0) {\n \t\t\t\t/* we closed wsi */\n@@ -1211,7 +1211,7 @@ drain:\n \t\tlws_header_table_detach(wsi, 0);\n \t}\n \n-\tpending \u003d lws_ssl_pending(wsi);\n+\tpending \u003d (unsigned int)lws_ssl_pending(wsi);\n \n #if defined(LWS_WITH_CLIENT)\n \tif (!pending \u0026\u0026 (wsi-\u003eflags \u0026 LCCSCF_PRIORITIZE_READS) \u0026\u0026\n@@ -1307,7 +1307,7 @@ int rops_handle_POLLOUT_ws(struct lws *wsi)\n \t\t}\n \n \t\tn \u003d lws_write(wsi, \u0026wsi-\u003ews-\u003eping_payload_buf[LWS_PRE],\n-\t\t\t wsi-\u003ews-\u003eping_payload_len, write_type);\n+\t\t\t wsi-\u003ews-\u003eping_payload_len, (enum lws_write_protocol)write_type);\n \t\tif (n \u003c 0)\n \t\t\treturn LWS_HP_RET_BAIL_DIE;\n \n@@ -1411,7 +1411,7 @@ int rops_handle_POLLOUT_ws(struct lws *wsi)\n \n \t\tif (pmdrx.eb_in.len) {\n \t\t\tn \u003d lws_issue_raw(wsi, (unsigned char *)pmdrx.eb_in.token,\n-\t\t\t\t\tpmdrx.eb_in.len);\n+\t\t\t\t\t(unsigned int)pmdrx.eb_in.len);\n \t\t\tif (n \u003c 0) {\n \t\t\t\tlwsl_info(\u0022closing from POLLOUT spill\u005cn\u0022);\n \t\t\t\treturn LWS_HP_RET_BAIL_DIE;\n@@ -1475,8 +1475,9 @@ rops_service_flag_pending_ws(struct lws_context *context, int tsi)\n \t */\n \twsi \u003d pt-\u003ews.rx_draining_ext_list;\n \twhile (wsi \u0026\u0026 wsi-\u003eposition_in_fds_table !\u003d LWS_NO_FDS_POS) {\n-\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\u003d\n-\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026 LWS_POLLIN;\n+\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u003d\n+\t\t\t(short)((short)pt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\n+\t\t\t(short)(pt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026 LWS_POLLIN));\n \t\tif (pt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u0026 LWS_POLLIN)\n \t\t\tforced \u003d 1;\n \n@@ -1615,7 +1616,7 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n \t\t */\n \n \t\tif (!(wpt \u0026 LWS_WRITE_NO_FIN) \u0026\u0026 len)\n-\t\t\t*wp \u0026\u003d ~LWS_WRITE_NO_FIN;\n+\t\t\t*wp \u0026\u003d (enum lws_write_protocol)~LWS_WRITE_NO_FIN;\n \n \t\tlwsl_ext(\u0022FORCED draining wp to 0x%02X \u0022\n \t\t\t \u0022(stashed 0x%02X, incoming 0x%02X)\u005cn\u0022, *wp,\n@@ -1669,7 +1670,7 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n \t\tbreak;\n \tdefault:\n #if !defined(LWS_WITHOUT_EXTENSIONS)\n-\t\tn \u003d lws_ext_cb_active(wsi, LWS_EXT_CB_PAYLOAD_TX, \u0026pmdrx, *wp);\n+\t\tn \u003d lws_ext_cb_active(wsi, (int)LWS_EXT_CB_PAYLOAD_TX, \u0026pmdrx, (int)*wp);\n \t\tif (n \u003c 0)\n \t\t\treturn -1;\n \t\tlwsl_ext(\u0022%s: defl ext ret %d, ext in remaining %d, \u0022\n@@ -1694,7 +1695,7 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n \t\t\t * action that has provoked generation of these\n \t\t\t * fragments, so the last guy can use its FIN state.\n \t\t\t */\n-\t\t\twsi-\u003ews-\u003etx_draining_stashed_wp \u003d *wp;\n+\t\t\twsi-\u003ews-\u003etx_draining_stashed_wp \u003d (uint8_t)*wp;\n \t\t\t/*\n \t\t\t * Despite what we may have thought, this is definitely\n \t\t\t * NOT the last fragment, because the extension asserted\n@@ -1710,7 +1711,7 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n #endif\n \t\tif (pmdrx.eb_out.len \u0026\u0026 wsi-\u003ews-\u003estashed_write_pending) {\n \t\t\twsi-\u003ews-\u003estashed_write_pending \u003d 0;\n-\t\t\t*wp \u003d ((*wp) \u0026 0xc0) | (int)wsi-\u003ews-\u003estashed_write_type;\n+\t\t\t*wp \u003d (unsigned int)(((*wp) \u0026 0xc0) | (unsigned int)wsi-\u003ews-\u003estashed_write_type);\n \t\t}\n \t}\n \n@@ -1740,7 +1741,7 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n \t}\n \n \tbuf \u003d pmdrx.eb_out.token;\n-\tlen \u003d pmdrx.eb_out.len;\n+\tlen \u003d (unsigned int)pmdrx.eb_out.len;\n \n \tif (!buf) {\n \t\tlwsl_err(\u0022null buf (%d)\u005cn\u0022, (int)len);\n@@ -1785,24 +1786,24 @@ rops_write_role_protocol_ws(struct lws *wsi, unsigned char *buf, size_t len,\n \n \t\tif (len \u003c 126) {\n \t\t\tpre +\u003d 2;\n-\t\t\tbuf[-pre] \u003d n;\n+\t\t\tbuf[-pre] \u003d (uint8_t)n;\n \t\t\tbuf[-pre + 1] \u003d (unsigned char)(len | is_masked_bit);\n \t\t} else {\n \t\t\tif (len \u003c 65536) {\n \t\t\t\tpre +\u003d 4;\n-\t\t\t\tbuf[-pre] \u003d n;\n-\t\t\t\tbuf[-pre + 1] \u003d 126 | is_masked_bit;\n+\t\t\t\tbuf[-pre] \u003d (uint8_t)n;\n+\t\t\t\tbuf[-pre + 1] \u003d (uint8_t)(126 | is_masked_bit);\n \t\t\t\tbuf[-pre + 2] \u003d (unsigned char)(len \u003e\u003e 8);\n \t\t\t\tbuf[-pre + 3] \u003d (unsigned char)len;\n \t\t\t} else {\n \t\t\t\tpre +\u003d 10;\n-\t\t\t\tbuf[-pre] \u003d n;\n-\t\t\t\tbuf[-pre + 1] \u003d 127 | is_masked_bit;\n+\t\t\t\tbuf[-pre] \u003d (uint8_t)n;\n+\t\t\t\tbuf[-pre + 1] \u003d (uint8_t)(127 | is_masked_bit);\n #if defined __LP64__\n \t\t\t\t\tbuf[-pre + 2] \u003d (len \u003e\u003e 56) \u0026 0x7f;\n-\t\t\t\t\tbuf[-pre + 3] \u003d len \u003e\u003e 48;\n-\t\t\t\t\tbuf[-pre + 4] \u003d len \u003e\u003e 40;\n-\t\t\t\t\tbuf[-pre + 5] \u003d len \u003e\u003e 32;\n+\t\t\t\t\tbuf[-pre + 3] \u003d (uint8_t)(len \u003e\u003e 48);\n+\t\t\t\t\tbuf[-pre + 4] \u003d (uint8_t)(len \u003e\u003e 40);\n+\t\t\t\t\tbuf[-pre + 5] \u003d (uint8_t)(len \u003e\u003e 32);\n #else\n \t\t\t\t\tbuf[-pre + 2] \u003d 0;\n \t\t\t\t\tbuf[-pre + 3] \u003d 0;\n@@ -1853,7 +1854,7 @@ do_more_inside_frame:\n \t\treturn lws_rops_func_fidx(encap-\u003erole_ops,\n \t\t\t\t LWS_ROPS_write_role_protocol).\n \t\t\t\t\twrite_role_protocol(wsi, buf - pre,\n-\t\t\t\t\t\t\t len + pre, wp);\n+\t\t\t\t\t\t\t len + (unsigned int)pre, wp);\n \t}\n \n \tswitch ((*wp) \u0026 0x1f) {\n@@ -1885,7 +1886,7 @@ do_more_inside_frame:\n \t\t\t * consumed.\n \t\t\t */\n \n-\t\t\tn \u003d lws_issue_raw_ext_access(wsi, buf - pre, len + pre);\n+\t\t\tn \u003d lws_issue_raw_ext_access(wsi, buf - pre, len + (unsigned int)pre);\n \t\t\twsi-\u003ews-\u003einside_frame \u003d 1;\n \t\t\tif (n \u003c\u003d 0)\n \t\t\t\treturn n;\n@@ -1912,7 +1913,7 @@ do_more_inside_frame:\n \t}\n \n send_raw:\n-\treturn lws_issue_raw(wsi, (unsigned char *)buf - pre, len + pre);\n+\treturn lws_issue_raw(wsi, (unsigned char *)buf - pre, len + (unsigned int)pre);\n }\n \n static int\n@@ -1971,13 +1972,13 @@ rops_init_vhost_ws(struct lws_vhost *vh,\n \t\t * ones that came from plugins\n \t\t */\n \t\tvh-\u003ews.extensions \u003d lws_zalloc(sizeof(struct lws_extension) *\n-\t\t\t\t (m + vh-\u003econtext-\u003eplugin_extension_count + 1),\n+\t\t\t\t (unsigned int)(m + vh-\u003econtext-\u003eplugin_extension_count + 1),\n \t\t\t\t \u0022extensions\u0022);\n \t\tif (!vh-\u003ews.extensions)\n \t\t\treturn 1;\n \n \t\tmemcpy((struct lws_extension *)vh-\u003ews.extensions, info-\u003eextensions,\n-\t\t sizeof(struct lws_extension) * m);\n+\t\t sizeof(struct lws_extension) * (unsigned int)m);\n \t\tplugin \u003d vh-\u003econtext-\u003eplugin_list;\n \t\twhile (plugin) {\n \t\t\tconst lws_plugin_protocol_t *plpr \u003d\n@@ -1986,7 +1987,7 @@ rops_init_vhost_ws(struct lws_vhost *vh,\n \t\t\tmemcpy((struct lws_extension *)\u0026vh-\u003ews.extensions[m],\n \t\t\t\tplpr-\u003eextensions,\n \t\t\t sizeof(struct lws_extension) *\n-\t\t\t plpr-\u003ecount_extensions);\n+\t\t\t (unsigned int)plpr-\u003ecount_extensions);\n \t\t\tm +\u003d plpr-\u003ecount_extensions;\n \t\t\tplugin \u003d plugin-\u003elist;\n \t\t}\n@@ -2055,7 +2056,7 @@ rops_issue_keepalive_ws(struct lws *wsi, int isvalid)\n \tif (isvalid)\n \t\t_lws_validity_confirmed_role(wsi);\n \telse {\n-\t\tus \u003d lws_now_usecs();\n+\t\tus \u003d (uint64_t)lws_now_usecs();\n \t\tmemcpy(\u0026wsi-\u003ews-\u003eping_payload_buf[LWS_PRE], \u0026us, 8);\n \t\twsi-\u003ews-\u003esend_check_ping \u003d 1;\n \t\tlws_callback_on_writable(wsi);\ndiff --git a/lib/roles/ws/server-ws.c b/lib/roles/ws/server-ws.c\nindex 5f01b00..b8469a4 100644\n--- a/lib/roles/ws/server-ws.c\n+++ b/lib/roles/ws/server-ws.c\n@@ -53,7 +53,7 @@ lws_extension_server_handshake(struct lws *wsi, char **p, int budget)\n \t * and go through them\n \t */\n \n-\tif (lws_hdr_copy(wsi, (char *)pt-\u003eserv_buf, context-\u003ept_serv_buf_size,\n+\tif (lws_hdr_copy(wsi, (char *)pt-\u003eserv_buf, (int)context-\u003ept_serv_buf_size,\n \t\t\t WSI_TOKEN_EXTENSIONS) \u003c 0)\n \t\treturn 1;\n \n@@ -177,7 +177,7 @@ lws_extension_server_handshake(struct lws *wsi, char **p, int budget)\n \t\t\telse\n \t\t\t\tLWS_CPYAPP(*p,\n \t\t\t\t\t \u0022\u005cx0d\u005cx0aSec-WebSocket-Extensions: \u0022);\n-\t\t\t*p +\u003d lws_snprintf(*p, (end - *p), \u0022%s\u0022, ext_name);\n+\t\t\t*p +\u003d lws_snprintf(*p, lws_ptr_diff_size_t(end, *p), \u0022%s\u0022, ext_name);\n \n \t\t\t/*\n \t\t\t * The client may send a bunch of different option\n@@ -216,10 +216,10 @@ lws_extension_server_handshake(struct lws *wsi, char **p, int budget)\n \t\t\t\t\t\tLWS_EXT_CB_OPTION_SET,\n \t\t\t\t\t\twsi-\u003ews-\u003eact_ext_user[\n \t\t\t\t\t\t\twsi-\u003ews-\u003ecount_act_ext],\n-\t\t\t\t\t\t\t \u0026oa, (end - *p))) {\n+\t\t\t\t\t\t\t \u0026oa, lws_ptr_diff_size_t(end, *p))) {\n \n \t\t\t\t\t\t*p +\u003d lws_snprintf(*p,\n-\t\t\t\t\t\t\t\t (end - *p),\n+\t\t\t\t\t\t\t\t lws_ptr_diff_size_t(end, *p),\n \t\t\t\t\t\t\t \u0022; %s\u0022, po-\u003ename);\n \t\t\t\t\t\tlwsl_debug(\u0022adding option %s\u005cn\u0022,\n \t\t\t\t\t\t\t po-\u003ename);\n@@ -339,7 +339,7 @@ lws_process_ws_upgrade2(struct lws *wsi)\n \t}\n \n \tif (lws_hdr_total_length(wsi, WSI_TOKEN_VERSION))\n-\t\twsi-\u003ews-\u003eietf_spec_revision \u003d\n+\t\twsi-\u003ews-\u003eietf_spec_revision \u003d (uint8_t)\n \t\t\t atoi(lws_hdr_simple_ptr(wsi, WSI_TOKEN_VERSION));\n \n \t/* allocate wsi-\u003euser storage */\n@@ -465,7 +465,7 @@ lws_process_ws_upgrade(struct lws *wsi)\n \t\tn \u003d lws_hdr_copy(wsi, buf, sizeof(buf) - 1, WSI_TOKEN_CONNECTION);\n \t\tif (n \u003c\u003d 0)\n \t\t\tgoto bad_conn_format;\n-\t\tts.len \u003d n;\n+\t\tts.len \u003d (unsigned int)n;\n \n \t\tdo {\n \t\t\te \u003d lws_tokenize(\u0026ts);\n@@ -534,7 +534,7 @@ lws_process_ws_upgrade(struct lws *wsi)\n \t\tlwsl_err(\u0022%s: protocol list too long\u005cn\u0022, __func__);\n \t\treturn 1;\n \t}\n-\tts.len \u003d n;\n+\tts.len \u003d (unsigned int)n;\n \tif (!ts.len) {\n \t\tint n \u003d wsi-\u003ea.vhost-\u003edefault_protocol_index;\n \t\t/*\n@@ -665,10 +665,10 @@ handshake_0405(struct lws_context *context, struct lws *wsi)\n \t\t \u0022%s258EAFA5-E914-47DA-95CA-C5AB0DC85B11\u0022,\n \t\t lws_hdr_simple_ptr(wsi, WSI_TOKEN_KEY));\n \n-\tlws_SHA1(pt-\u003eserv_buf, n, hash);\n+\tlws_SHA1(pt-\u003eserv_buf, (unsigned int)n, hash);\n \n \taccept_len \u003d lws_b64_encode_string((char *)hash, 20,\n-\t\t\t(char *)pt-\u003eserv_buf, context-\u003ept_serv_buf_size);\n+\t\t\t(char *)pt-\u003eserv_buf, (int)context-\u003ept_serv_buf_size);\n \tif (accept_len \u003c 0) {\n \t\tlwsl_warn(\u0022Base64 encoded hash too long\u005cn\u0022);\n \t\tgoto bail;\n@@ -763,9 +763,9 @@ handshake_0405(struct lws_context *context, struct lws *wsi)\n #if defined(DEBUG)\n \tfwrite(response, 1, p - response, stderr);\n #endif\n-\tn \u003d lws_write(wsi, (unsigned char *)response, p - response,\n+\tn \u003d lws_write(wsi, (unsigned char *)response, lws_ptr_diff_size_t(p, response),\n \t\t LWS_WRITE_HTTP_HEADERS);\n-\tif (n !\u003d (p - response)) {\n+\tif (n !\u003d lws_ptr_diff(p, response)) {\n \t\tlwsl_info(\u0022%s: ERROR writing to socket %d\u005cn\u0022, __func__, n);\n \t\tgoto bail;\n \t}\n@@ -808,7 +808,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \tunsigned int avail \u003d (unsigned int)len;\n \tuint8_t *buffer \u003d *buf, mask[4];\n #if !defined(LWS_WITHOUT_EXTENSIONS)\n-\tunsigned int old_packet_length \u003d (int)wsi-\u003ews-\u003erx_packet_length;\n+\tunsigned int old_packet_length \u003d (unsigned int)wsi-\u003ews-\u003erx_packet_length;\n #endif\n \tint n \u003d 0;\n \n@@ -825,7 +825,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n #endif\n \t{\n \t\tif (wsi-\u003ea.protocol-\u003erx_buffer_size)\n-\t\t\tavail \u003d (int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n+\t\t\tavail \u003d (unsigned int)wsi-\u003ea.protocol-\u003erx_buffer_size;\n \t\telse\n \t\t\tavail \u003d wsi-\u003ea.context-\u003ept_serv_buf_size;\n \t}\n@@ -842,9 +842,9 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \t\treturn 0;\n \n \tpmdrx.eb_in.token \u003d buffer;\n-\tpmdrx.eb_in.len \u003d avail;\n+\tpmdrx.eb_in.len \u003d (int)avail;\n \tpmdrx.eb_out.token \u003d buffer;\n-\tpmdrx.eb_out.len \u003d avail;\n+\tpmdrx.eb_out.len \u003d (int)avail;\n \n \tif (!wsi-\u003ews-\u003eall_zero_nonce) {\n \n@@ -852,7 +852,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \t\t\tmask[n] \u003d wsi-\u003ews-\u003emask[(wsi-\u003ews-\u003emask_idx + n) \u0026 3];\n \n \t\t/* deal with 4-byte chunks using unwrapped loop */\n-\t\tn \u003d avail \u003e\u003e 2;\n+\t\tn \u003d (int)(avail \u003e\u003e 2);\n \t\twhile (n--) {\n \t\t\t*(buffer) \u003d *(buffer) ^ mask[0];\n \t\t\tbuffer++;\n@@ -924,7 +924,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \t\t\t\t\t\twsi-\u003euser_space, NULL, 0))\n \t\t\treturn -1;\n \n-\t\treturn avail;\n+\t\treturn (int)avail;\n \t}\n \n \t/*\n@@ -932,7 +932,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \t * length receive. Otherwise we're more willing.\n \t */\n \tif (wsi-\u003ews-\u003ecount_act_ext \u0026\u0026 !pmdrx.eb_out.len)\n-\t\treturn avail;\n+\t\treturn (int)avail;\n \n \tif (n \u003d\u003d PMDR_HAS_PENDING)\n \t\t/* extension had more... main loop will come back */\n@@ -945,7 +945,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \t wsi-\u003ews-\u003echeck_utf8 \u0026\u0026 !wsi-\u003ews-\u003edefeat_check_utf8) {\n \t\tif (lws_check_utf8(\u0026wsi-\u003ews-\u003eutf8,\n \t\t\t\t pmdrx.eb_out.token,\n-\t\t\t\t pmdrx.eb_out.len)) {\n+\t\t\t\t (unsigned int)pmdrx.eb_out.len)) {\n \t\t\tlws_close_reason(wsi, LWS_CLOSE_STATUS_INVALID_PAYLOAD,\n \t\t\t\t\t (uint8_t *)\u0022bad utf8\u0022, 8);\n \t\t\tgoto utf8_fail;\n@@ -960,7 +960,7 @@ lws_ws_frame_rest_is_payload(struct lws *wsi, uint8_t **buf, size_t len)\n \n utf8_fail:\n \t\t\tlwsl_info(\u0022utf8 error\u005cn\u0022);\n-\t\t\tlwsl_hexdump_info(pmdrx.eb_out.token, pmdrx.eb_out.len);\n+\t\t\tlwsl_hexdump_info(pmdrx.eb_out.token, (size_t)pmdrx.eb_out.len);\n \n \t\t\treturn -1;\n \t\t}\n@@ -971,7 +971,7 @@ utf8_fail:\n \t\t\t\t\t\tLWS_CALLBACK_RECEIVE,\n \t\t\t\t\t\twsi-\u003euser_space,\n \t\t\t\t\t\tpmdrx.eb_out.token,\n-\t\t\t\t\t\tpmdrx.eb_out.len))\n+\t\t\t\t\t\t(unsigned int)pmdrx.eb_out.len))\n \t\t\treturn -1;\n \n \twsi-\u003ews-\u003efirst_fragment \u003d 0;\n@@ -982,7 +982,7 @@ utf8_fail:\n \t\t wsi-\u003ews-\u003erx_draining_ext);\n #endif\n \n-\treturn avail; /* how much we used from the input */\n+\treturn (int)avail; /* how much we used from the input */\n }\n \n \n@@ -1014,7 +1014,7 @@ lws_parse_ws(struct lws *wsi, unsigned char **buf, size_t len)\n \t\t\t * effectively \u0022putting it back in the cache\u0022, we have\n \t\t\t * leave it where it is, already pointed to by the head.\n \t\t\t */\n-\t\t\tif (lws_rxflow_cache(wsi, *buf, 0, (int)len) \u003d\u003d\n+\t\t\tif (lws_rxflow_cache(wsi, *buf, 0, len) \u003d\u003d\n \t\t\t\t\t\t\tLWSRXFC_TRIMMED) {\n \t\t\t\t/*\n \t\t\t\t * We dealt with it by trimming the existing\n@@ -1051,7 +1051,7 @@ lws_parse_ws(struct lws *wsi, unsigned char **buf, size_t len)\n \t\t\tbulk \u003d 1;\n \t\t\tm \u003d lws_ws_frame_rest_is_payload(wsi, buf, len);\n \t\t\tassert((int)lws_ptr_diff(*buf, bin) \u003c\u003d (int)len);\n-\t\t\tlen -\u003d lws_ptr_diff(*buf, bin);\n+\t\t\tlen -\u003d lws_ptr_diff_size_t(*buf, bin);\n \n \t\t\tif (!m) {\n \ndiff --git a/lib/secure-streams/policy-json.c b/lib/secure-streams/policy-json.c\nindex f77c281..175f533 100644\n--- a/lib/secure-streams/policy-json.c\n+++ b/lib/secure-streams/policy-json.c\n@@ -253,13 +253,13 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t// lwsl_notice(\u0022%s: allocating respmap %d\u005cn\u0022, __func__, a-\u003ecount);\n \n \t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.http.respmap \u003d lwsac_use_zero(\u0026a-\u003eac,\n-\t\t\tsizeof(lws_ss_http_respmap_t) * a-\u003ecount, POL_AC_GRAIN);\n+\t\t\tsizeof(lws_ss_http_respmap_t) * (unsigned int)a-\u003ecount, POL_AC_GRAIN);\n \n \t\tif (!a-\u003ecurr[LTY_POLICY].p-\u003eu.http.respmap)\n \t\t\tgoto oom;\n \n \t\tmemcpy((void *)a-\u003ecurr[LTY_POLICY].p-\u003eu.http.respmap,\n-\t\t a-\u003erespmap, sizeof(lws_ss_http_respmap_t) * a-\u003ecount);\n+\t\t a-\u003erespmap, sizeof(lws_ss_http_respmap_t) * (unsigned int)a-\u003ecount);\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.http.count_respmap \u003d (uint8_t)a-\u003ecount;\n \t\ta-\u003ecount \u003d 0;\n \t\ta-\u003epending_respmap \u003d 0;\n@@ -276,11 +276,11 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t * The struct *x is in the lwsac... the ca_der it points to\n \t\t * is individually allocated from the heap\n \t\t */\n-\t\ta-\u003ecurr[LTY_X509].x-\u003eca_der \u003d lws_malloc(a-\u003ecount, \u0022ssx509\u0022);\n+\t\ta-\u003ecurr[LTY_X509].x-\u003eca_der \u003d lws_malloc((unsigned int)a-\u003ecount, \u0022ssx509\u0022);\n \t\tif (!a-\u003ecurr[LTY_X509].x-\u003eca_der)\n \t\t\tgoto oom;\n-\t\tmemcpy((uint8_t *)a-\u003ecurr[LTY_X509].x-\u003eca_der, a-\u003ep, a-\u003ecount);\n-\t\ta-\u003ecurr[LTY_X509].x-\u003eca_der_len \u003d a-\u003ecount;\n+\t\tmemcpy((uint8_t *)a-\u003ecurr[LTY_X509].x-\u003eca_der, a-\u003ep, (unsigned int)a-\u003ecount);\n+\t\ta-\u003ecurr[LTY_X509].x-\u003eca_der_len \u003d (unsigned int)a-\u003ecount;\n \n \t\t/*\n \t\t * ... and then we can free the temp buffer\n@@ -305,8 +305,8 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t\twhile (p2) {\n \t\t\t\tif (!strncmp(p2-\u003estreamtype,\n \t\t\t\t\t ctx-\u003epath + ctx-\u003est[ctx-\u003esp].p,\n-\t\t\t\t\t ctx-\u003epath_match_len -\n-\t\t\t\t\t\t ctx-\u003est[ctx-\u003esp].p)) {\n+\t\t\t\t\t (unsigned int)(ctx-\u003epath_match_len -\n+\t\t\t\t\t\t ctx-\u003est[ctx-\u003esp].p))) {\n \t\t\t\t\tlwsl_info(\u0022%s: overriding s[] %s\u005cn\u0022,\n \t\t\t\t\t\t __func__, p2-\u003estreamtype);\n \t\t\t\t\tbreak;\n@@ -382,23 +382,23 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t}\n \n \t\t((uint32_t *)b-\u003eretry_ms_table)\n-\t\t\t\t[b-\u003eretry_ms_table_count++] \u003d atoi(ctx-\u003ebuf);\n+\t\t\t\t[b-\u003eretry_ms_table_count++] \u003d (uint32_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_CONCEAL:\n-\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.conceal_count \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.conceal_count \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_JITTERPC:\n-\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.jitter_percent \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.jitter_percent \u003d (uint8_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_VALIDPING_S:\n-\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.secs_since_valid_ping \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.secs_since_valid_ping \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_VALIDHUP_S:\n-\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.secs_since_valid_hangup \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_BACKOFF].b-\u003er.secs_since_valid_hangup \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_CERTS:\n@@ -407,7 +407,7 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t\tgoto oom;\n \t\t}\n \t\tinl \u003d ctx-\u003enpos;\n-\t\toutl \u003d MAX_CERT_TEMP - a-\u003ecount;\n+\t\toutl \u003d MAX_CERT_TEMP - (unsigned int)a-\u003ecount;\n \n \t\tlws_b64_decode_stateful(\u0026a-\u003eb64, ctx-\u003ebuf, \u0026inl,\n \t\t\t\t\ta-\u003ep + a-\u003ecount, \u0026outl,\n@@ -518,7 +518,7 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tgoto string2;\n \n \tcase LSSPPT_PORT:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eport \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eport \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_PROXY_BUFLEN:\n@@ -571,15 +571,15 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tbreak;\n \n \tcase LSSPPT_TLS_CLIENT_CERT:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eclient_cert \u003d atoi(ctx-\u003ebuf) + 1;\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eclient_cert \u003d (uint8_t)(atoi(ctx-\u003ebuf) + 1);\n \t\tbreak;\n \n \tcase LSSPPT_HTTP_EXPECT:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.http.resp_expect \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.http.resp_expect \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_DEFAULT_TIMEOUT_MS:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003etimeout_ms \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003etimeout_ms \u003d (uint32_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_OPPORTUNISTIC:\n@@ -659,7 +659,7 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tpmd \u003d a-\u003ecurr[LTY_POLICY].p-\u003emetadata;\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003emetadata \u003d lwsac_use_zero(\u0026a-\u003eac,\n \t\t\tsizeof(lws_ss_metadata_t) + ctx-\u003enpos +\n-\t\t\t(ctx-\u003epath_match_len - ctx-\u003est[ctx-\u003esp - 2].p + 1) + 2,\n+\t\t\t(unsigned int)(ctx-\u003epath_match_len - ctx-\u003est[ctx-\u003esp - 2].p + 1) + 2,\n \t\t\tPOL_AC_GRAIN);\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003emetadata-\u003enext \u003d pmd;\n \n@@ -667,7 +667,7 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t\t\tsizeof(lws_ss_metadata_t);\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003emetadata-\u003ename \u003d q;\n \t\tmemcpy(q, ctx-\u003epath + ctx-\u003est[ctx-\u003esp - 2].p + 1,\n-\t\t ctx-\u003epath_match_len - ctx-\u003est[ctx-\u003esp - 2].p);\n+\t\t (unsigned int)(ctx-\u003epath_match_len - ctx-\u003est[ctx-\u003esp - 2].p));\n \n \t\tq +\u003d ctx-\u003epath_match_len - ctx-\u003est[ctx-\u003esp - 2].p;\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003emetadata-\u003evalue__may_own_heap \u003d q;\n@@ -696,9 +696,9 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\t\tlwsl_err(\u0022%s: respmap too big\u005cn\u0022, __func__);\n \t\t\treturn -1;\n \t\t}\n-\t\ta-\u003erespmap[a-\u003ecount].resp \u003d\n+\t\ta-\u003erespmap[a-\u003ecount].resp \u003d (uint16_t)\n \t\t\t\tatoi(ctx-\u003epath + ctx-\u003est[ctx-\u003esp - 2].p + 1);\n-\t\ta-\u003erespmap[a-\u003ecount].state \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003erespmap[a-\u003ecount].state \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\ta-\u003epending_respmap \u003d 1;\n \t\ta-\u003ecount++;\n \t\tbreak;\n@@ -782,11 +782,11 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tgoto string2;\n \n \tcase LSSPPT_MQTT_QOS:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.qos \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.qos \u003d (uint8_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_MQTT_KEEPALIVE:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.keep_alive \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.keep_alive \u003d (uint16_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \n \tcase LSSPPT_MQTT_CLEAN_START:\n@@ -802,7 +802,7 @@ lws_ss_policy_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tgoto string2;\n \n \tcase LSSPPT_MQTT_WILL_QOS:\n-\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.will_qos \u003d atoi(ctx-\u003ebuf);\n+\t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.will_qos \u003d (uint8_t)atoi(ctx-\u003ebuf);\n \t\tbreak;\n \tcase LSSPPT_MQTT_WILL_RETAIN:\n \t\ta-\u003ecurr[LTY_POLICY].p-\u003eu.mqtt.will_retain \u003d\n@@ -834,13 +834,13 @@ string2:\n \t * If we can do const string folding, reuse the existing string rather\n \t * than make a new entry\n \t */\n-\textant \u003d lwsac_scan_extant(a-\u003eac, (uint8_t *)ctx-\u003ebuf, ctx-\u003enpos, 1);\n+\textant \u003d lwsac_scan_extant(a-\u003eac, (uint8_t *)ctx-\u003ebuf, (size_t)ctx-\u003enpos, 1);\n \tif (extant) {\n \t\t*pp \u003d (char *)extant;\n \n \t\treturn 0;\n \t}\n-\t*pp \u003d lwsac_use_backfill(\u0026a-\u003eac, ctx-\u003enpos + 1, POL_AC_GRAIN);\n+\t*pp \u003d lwsac_use_backfill(\u0026a-\u003eac, (size_t)(ctx-\u003enpos + 1), POL_AC_GRAIN);\n \tif (!*pp)\n \t\tgoto oom;\n \tmemcpy(*pp, ctx-\u003ebuf, ctx-\u003enpos);\n@@ -850,11 +850,11 @@ string2:\n \n string1:\n \tn \u003d ctx-\u003est[ctx-\u003esp].p;\n-\t*pp \u003d lwsac_use_backfill(\u0026a-\u003eac, ctx-\u003epath_match_len + 1 - n,\n+\t*pp \u003d lwsac_use_backfill(\u0026a-\u003eac, (size_t)ctx-\u003epath_match_len + (size_t)1 - (size_t)n,\n \t\t\t\t POL_AC_GRAIN);\n \tif (!*pp)\n \t\tgoto oom;\n-\tmemcpy(*pp, ctx-\u003epath + n, ctx-\u003epath_match_len - n);\n+\tmemcpy(*pp, ctx-\u003epath + n, ctx-\u003epath_match_len - (unsigned int)n);\n \t(*pp)[ctx-\u003epath_match_len - n] \u003d '\u005c0';\n \n \treturn 0;\ndiff --git a/lib/secure-streams/protocols/ss-h1.c b/lib/secure-streams/protocols/ss-h1.c\nindex 7130790..c573241 100644\n--- a/lib/secure-streams/protocols/ss-h1.c\n+++ b/lib/secure-streams/protocols/ss-h1.c\n@@ -77,9 +77,9 @@ ss_http_multipart_parser(lws_ss_handle_t *h, void *in, size_t len)\n \t\t\t (h-\u003eu.http.any ? 2 : 0) + 1)\n \t\t\t\th-\u003einfo.rx(ss_to_userobj(h),\n \t\t\t\t\t \u0026q[pending_issue],\n-\t\t\t\t\t n - pending_issue -\n+\t\t\t\t\t (unsigned int)(n - pending_issue -\n \t\t\t\t\t h-\u003eu.http.boundary_len - 1 -\n-\t\t\t\t\t (h-\u003eu.http.any ? 2 : 0) /* crlf */,\n+\t\t\t\t\t (h-\u003eu.http.any ? 2 : 0) /* crlf */),\n \t\t\t\t (!h-\u003eu.http.som ? LWSSS_FLAG_SOM : 0) |\n \t\t\t\t LWSSS_FLAG_EOM | LWSSS_FLAG_RELATED_END);\n \n@@ -125,9 +125,9 @@ ss_http_multipart_parser(lws_ss_handle_t *h, void *in, size_t len)\n \t\t\tif (n \u003e\u003d pending_issue + h-\u003eu.http.boundary_len +\n \t\t\t (h-\u003eu.http.any ? 2 : 0))\n \t\t\t\th-\u003einfo.rx(ss_to_userobj(h), \u0026q[pending_issue],\n-\t\t\t\t\t n - pending_issue -\n+\t\t\t\t\t (unsigned int)(n - pending_issue -\n \t\t\t\t\t h-\u003eu.http.boundary_len -\n-\t\t\t\t\t (h-\u003eu.http.any ? 2 /* crlf */ : 0),\n+\t\t\t\t\t (h-\u003eu.http.any ? 2 /* crlf */ : 0)),\n \t\t\t\t\t (!h-\u003eu.http.som ? LWSSS_FLAG_SOM : 0) |\n \t\t\t\t\t LWSSS_FLAG_EOM);\n \t\t}\n@@ -142,7 +142,8 @@ around:\n \t}\n \n \tif (pending_issue !\u003d n) {\n-\t\th-\u003einfo.rx(ss_to_userobj(h), \u0026q[pending_issue], n - pending_issue,\n+\t\th-\u003einfo.rx(ss_to_userobj(h), \u0026q[pending_issue],\n+\t\t\t\t(unsigned int)(n - pending_issue),\n \t\t\t (!h-\u003eu.http.som ? LWSSS_FLAG_SOM : 0));\n \t\th-\u003eu.http.any \u003d 1;\n \t\th-\u003eu.http.som \u003d 1;\n@@ -268,7 +269,7 @@ lws_extract_metadata(lws_ss_handle_t *h, struct lws *wsi)\n \t\t\t\t * set the related metadata name to it then\n \t\t\t\t */\n \n-\t\t\t\t_lws_ss_set_metadata(omd, polmd-\u003ename, cp, n);\n+\t\t\t\t_lws_ss_set_metadata(omd, polmd-\u003ename, cp, (unsigned int)n);\n \n #if defined(LWS_WITH_SECURE_STREAMS_PROXY_API)\n \t\t\t\t/*\n@@ -299,7 +300,7 @@ lws_extract_metadata(lws_ss_handle_t *h, struct lws *wsi)\n \t\t\t\t\t\t polmd-\u003evalue_length);\n \t\t\t\tif (n \u003e 0) {\n \n-\t\t\t\t\tp \u003d lws_malloc(n + 1, __func__);\n+\t\t\t\t\tp \u003d lws_malloc((unsigned int)n + 1, __func__);\n \t\t\t\t\tif (!p)\n \t\t\t\t\t\treturn 1;\n \n@@ -491,7 +492,7 @@ secstream_h1(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\t */\n \t\t\tint n \u003d lws_ss_http_resp_to_state(h, status);\n \t\t\tif (n) {\n-\t\t\t\tr \u003d lws_ss_event_helper(h, n);\n+\t\t\t\tr \u003d lws_ss_event_helper(h, (lws_ss_constate_t)n);\n \t\t\t\tif (r !\u003d LWSSSSRET_OK)\n \t\t\t\t\treturn _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, wsi,\n \t\t\t\t\t\t\t\t\t\u0026h);\n@@ -627,17 +628,17 @@ malformed:\n \t\t\tif (!ab)\n \t\t\t\treturn -1;\n \n-\t\t\tbuflen \u003d sizeof(buf) - o - 2;\n+\t\t\tbuflen \u003d sizeof(buf) - (unsigned int)o - 2u;\n \t\t\tn \u003d lws_system_blob_get(ab, buf + o, \u0026buflen, 0);\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \n-\t\t\tbuf[o + buflen] \u003d '\u005c0';\n+\t\t\tbuf[(unsigned int)o + buflen] \u003d '\u005c0';\n \t\t\tlwsl_debug(\u0022%s: adding blob %d: %s\u005cn\u0022, __func__, m, buf);\n \n \t\t\tif (lws_add_http_header_by_name(wsi,\n \t\t\t\t (uint8_t *)h-\u003epolicy-\u003eu.http.blob_header[m],\n-\t\t\t\t buf, (int)(buflen + o), p, end))\n+\t\t\t\t buf, (int)((int)buflen + o), p, end))\n \t\t\t\treturn -1;\n \t\t}\n \n@@ -756,9 +757,9 @@ malformed:\n \t\t\th-\u003etxn_resp_pending \u003d 0;\n \n \t\t\tif (lws_add_http_common_headers(wsi,\n-\t\t\t\t\th-\u003etxn_resp_set ?\n+\t\t\t\t\t(unsigned int)(h-\u003etxn_resp_set ?\n \t\t\t\t\t\t(h-\u003etxn_resp ? h-\u003etxn_resp : 200) :\n-\t\t\t\t\t\tHTTP_STATUS_NOT_FOUND,\n+\t\t\t\t\t\tHTTP_STATUS_NOT_FOUND),\n \t\t\t\t\tNULL, h-\u003ewsi-\u003ehttp.writeable_len,\n \t\t\t\t\t\u0026p, end))\n \t\t\t\treturn 1;\n@@ -800,13 +801,13 @@ malformed:\n \t\t\t\th-\u003erideshare-\u003eu.http.multipart_content_type,\n \t\t\t\t(char **)\u0026p, (char *)end);\n \n-\t\tbuflen \u003d lws_ptr_diff(end, p);\n+\t\tbuflen \u003d lws_ptr_diff_size_t(end, p);\n \t\tif (h-\u003epolicy-\u003eu.http.multipart_name)\n \t\t\tbuflen -\u003d 24; /* allow space for end of multipart */\n #else\n-\t\tbuflen \u003d lws_ptr_diff(end, p);\n+\t\tbuflen \u003d lws_ptr_diff_size_t(end, p);\n #endif\n-\t\tr \u003d h-\u003einfo.tx(ss_to_userobj(h), h-\u003etxord++, p, \u0026buflen, \u0026f);\n+\t\tr \u003d h-\u003einfo.tx(ss_to_userobj(h), h-\u003etxord++, p, \u0026buflen, \u0026f);\n \t\tif (r \u003d\u003d LWSSSSRET_TX_DONT_SEND)\n \t\t\treturn 0;\n \t\tif (r \u003c 0)\n@@ -852,7 +853,7 @@ malformed:\n \t\tlwsl_info(\u0022%s: lws_write %d %d\u005cn\u0022, __func__,\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\tif (lws_write(wsi, buf + LWS_PRE, lws_ptr_diff_size_t(p, buf + LWS_PRE),\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@@ -888,11 +889,11 @@ malformed:\n \t\t\tif (m) {\n \t\t\t\tlws_ss_set_metadata(h, \u0022method\u0022,\n \t\t\t\t\t\t lws_hdr_simple_ptr(wsi,\n-\t\t\t\t\t\t WSI_TOKEN_HTTP_COLON_METHOD), m);\n+\t\t\t\t\t\t WSI_TOKEN_HTTP_COLON_METHOD), (unsigned int)m);\n \t\t\t\tm \u003d lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_COLON_PATH);\n \t\t\t\tlws_ss_set_metadata(h, \u0022path\u0022,\n \t\t\t\t\t\t lws_hdr_simple_ptr(wsi,\n-\t\t\t\t\t\t WSI_TOKEN_HTTP_COLON_PATH), m);\n+\t\t\t\t\t\t WSI_TOKEN_HTTP_COLON_PATH), (unsigned int)m);\n \t\t\t} else\n #endif\n \t\t\t{\n@@ -900,14 +901,14 @@ malformed:\n \t\t\t\tif (m) {\n \t\t\t\t\tlws_ss_set_metadata(h, \u0022path\u0022,\n \t\t\t\t\t\t\tlws_hdr_simple_ptr(wsi,\n-\t\t\t\t\t\t\t\tWSI_TOKEN_GET_URI), m);\n+\t\t\t\t\t\t\t\tWSI_TOKEN_GET_URI), (unsigned int)m);\n \t\t\t\t\tlws_ss_set_metadata(h, \u0022method\u0022, \u0022GET\u0022, 3);\n \t\t\t\t} else {\n \t\t\t\t\tm \u003d lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI);\n \t\t\t\t\tif (m) {\n \t\t\t\t\t\tlws_ss_set_metadata(h, \u0022path\u0022,\n \t\t\t\t\t\t\t\tlws_hdr_simple_ptr(wsi,\n-\t\t\t\t\t\t\t\t\tWSI_TOKEN_POST_URI), m);\n+\t\t\t\t\t\t\t\t\tWSI_TOKEN_POST_URI), (unsigned int)m);\n \t\t\t\t\t\tlws_ss_set_metadata(h, \u0022method\u0022, \u0022POST\u0022, 4);\n \t\t\t\t\t}\n \t\t\t\t}\ndiff --git a/lib/secure-streams/protocols/ss-h2.c b/lib/secure-streams/protocols/ss-h2.c\nindex 96d3098..2bd772d 100644\n--- a/lib/secure-streams/protocols/ss-h2.c\n+++ b/lib/secure-streams/protocols/ss-h2.c\n@@ -189,7 +189,7 @@ secstream_tx_credit_add_h2(lws_ss_handle_t *h, int add)\n {\n \tlwsl_info(\u0022%s: %s: add %d\u005cn\u0022, __func__, lws_ss_tag(h), add);\n \tif (h-\u003ewsi)\n-\t\treturn lws_h2_update_peer_txcredit(h-\u003ewsi, LWS_H2_STREAM_SID, add);\n+\t\treturn lws_h2_update_peer_txcredit(h-\u003ewsi, (unsigned int)LWS_H2_STREAM_SID, add);\n \n \treturn 0;\n }\ndiff --git a/lib/secure-streams/protocols/ss-mqtt.c b/lib/secure-streams/protocols/ss-mqtt.c\nindex 83b4eb9..1e1d1cd 100644\n--- a/lib/secure-streams/protocols/ss-mqtt.c\n+++ b/lib/secure-streams/protocols/ss-mqtt.c\n@@ -205,13 +205,13 @@ secstream_mqtt(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\tlwsl_notice(\u0022%s, expbuf - %s\u005cn\u0022, __func__, expbuf);\n \t\tmqpp.topic \u003d (char *)expbuf;\n \n-\t\tmqpp.topic_len \u003d strlen(mqpp.topic);\n-\t\tmqpp.packet_id \u003d h-\u003etxord - 1;\n+\t\tmqpp.topic_len \u003d (uint16_t)strlen(mqpp.topic);\n+\t\tmqpp.packet_id \u003d (uint16_t)(h-\u003etxord - 1);\n \t\tmqpp.payload \u003d buf + LWS_PRE;\n \t\tif (h-\u003ewriteable_len)\n-\t\t\tmqpp.payload_len \u003d h-\u003ewriteable_len;\n+\t\t\tmqpp.payload_len \u003d (uint32_t)h-\u003ewriteable_len;\n \t\telse\n-\t\t\tmqpp.payload_len \u003d buflen;\n+\t\t\tmqpp.payload_len \u003d (uint32_t)buflen;\n \n \t\tlwsl_notice(\u0022%s: payload len %d\u005cn\u0022, __func__,\n \t\t\t\t(int)mqpp.payload_len);\n@@ -219,7 +219,8 @@ secstream_mqtt(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\tmqpp.qos \u003d h-\u003epolicy-\u003eu.mqtt.qos;\n \n \t\tif (lws_mqtt_client_send_publish(wsi, \u0026mqpp,\n-\t\t\t\t\t\t (const char *)buf + LWS_PRE, buflen,\n+\t\t\t\t\t\t (const char *)buf + LWS_PRE,\n+\t\t\t\t\t\t (uint32_t)buflen,\n \t\t\t\t\t\t f \u0026 LWSSS_FLAG_EOM)) {\n \t\t\tlwsl_notice(\u0022%s: failed to publish\u005cn\u0022, __func__);\n \ndiff --git a/lib/secure-streams/protocols/ss-raw.c b/lib/secure-streams/protocols/ss-raw.c\nindex f0e2ae4..aa020a2 100644\n--- a/lib/secure-streams/protocols/ss-raw.c\n+++ b/lib/secure-streams/protocols/ss-raw.c\n@@ -118,7 +118,7 @@ secstream_raw(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\tif (!h || !h-\u003einfo.tx)\n \t\t\treturn 0;\n \n-\t\tbuflen \u003d lws_ptr_diff(end, p);\n+\t\tbuflen \u003d lws_ptr_diff_size_t(end, p);\n \t\tr \u003d h-\u003einfo.tx(ss_to_userobj(h), h-\u003etxord++, p, \u0026buflen, \u0026f);\n \t\tif (r \u003d\u003d LWSSSSRET_TX_DONT_SEND)\n \t\t\treturn 0;\n@@ -131,8 +131,8 @@ secstream_raw(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t */\n \n \t\tp +\u003d buflen;\n-\t\tif (lws_write(wsi, buf + LWS_PRE, lws_ptr_diff(p, buf + LWS_PRE),\n-\t\t\t LWS_WRITE_HTTP) !\u003d (int)lws_ptr_diff(p, buf + LWS_PRE)) {\n+\t\tif (lws_write(wsi, buf + LWS_PRE, lws_ptr_diff_size_t(p, buf + LWS_PRE),\n+\t\t\t LWS_WRITE_HTTP) !\u003d 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 \t\t}\ndiff --git a/lib/secure-streams/protocols/ss-ws.c b/lib/secure-streams/protocols/ss-ws.c\nindex 1f0eae1..fb25a28 100644\n--- a/lib/secure-streams/protocols/ss-ws.c\n+++ b/lib/secure-streams/protocols/ss-ws.c\n@@ -154,7 +154,7 @@ secstream_ws(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\t\t\t!!(f \u0026 LWSSS_FLAG_SOM),\n \t\t\t\t\t!!(f \u0026 LWSSS_FLAG_EOM));\n \n-\t\tn \u003d lws_write(wsi, buf + LWS_PRE, buflen, f1);\n+\t\tn \u003d lws_write(wsi, buf + LWS_PRE, buflen, (enum lws_write_protocol)f1);\n \t\tif (n \u003c (int)buflen) {\n \t\t\tlwsl_info(\u0022%s: write failed %d %d\u005cn\u0022, __func__,\n \t\t\t\t\tn, (int)buflen);\ndiff --git a/lib/secure-streams/secure-streams-client.c b/lib/secure-streams/secure-streams-client.c\nindex 17c6535..8fbd2ec 100644\n--- a/lib/secure-streams/secure-streams-client.c\n+++ b/lib/secure-streams/secure-streams-client.c\n@@ -79,7 +79,7 @@ lws_sspc_serialize_metadata(lws_sspc_metadata_t *md, uint8_t *p, uint8_t *end)\n \n \t\tp[0] \u003d LWSSS_SER_TXPRE_TXCR_UPDATE;\n \t\tlws_ser_wu16be(\u0026p[1], 4);\n-\t\tlws_ser_wu32be(\u0026p[3], md-\u003etx_cr_adjust);\n+\t\tlws_ser_wu32be(\u0026p[3], (uint32_t)md-\u003etx_cr_adjust);\n \n \t\tn \u003d 7;\n \n@@ -88,19 +88,19 @@ lws_sspc_serialize_metadata(lws_sspc_metadata_t *md, uint8_t *p, uint8_t *end)\n \t\tlwsl_info(\u0022%s: sending metadata\u005cn\u0022, __func__);\n \n \t\tp[0] \u003d LWSSS_SER_TXPRE_METADATA;\n-\t\ttxc \u003d strlen(md-\u003ename);\n-\t\tn \u003d txc + 1 + md-\u003elen;\n+\t\ttxc \u003d (int)strlen(md-\u003ename);\n+\t\tn \u003d txc + 1 + (int)md-\u003elen;\n \t\tif (n \u003e 0xffff)\n \t\t\t/* we can't serialize this metadata in 16b length */\n \t\t\treturn -1;\n \t\tif (n \u003e lws_ptr_diff(end, \u0026p[4]))\n \t\t\t/* we don't have space for this metadata */\n \t\t\treturn -1;\n-\t\tlws_ser_wu16be(\u0026p[1], n);\n-\t\tp[3] \u003d txc;\n-\t\tmemcpy(\u0026p[4], md-\u003ename, txc);\n+\t\tlws_ser_wu16be(\u0026p[1], (uint16_t)n);\n+\t\tp[3] \u003d (uint8_t)txc;\n+\t\tmemcpy(\u0026p[4], md-\u003ename, (unsigned int)txc);\n \t\tmemcpy(\u0026p[4 + txc], \u0026md[1], md-\u003elen);\n-\t\tn \u003d 4 + txc + md-\u003elen;\n+\t\tn \u003d 4 + txc + (int)md-\u003elen;\n \t}\n \n \tlws_dll2_remove(\u0026md-\u003elist);\n@@ -248,11 +248,11 @@ callback_sspc_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t * We are negotating the opening of a particular\n \t\t\t * streamtype\n \t\t\t */\n-\t\t\tn \u003d strlen(h-\u003essi.streamtype) + 4;\n+\t\t\tn \u003d (int)strlen(h-\u003essi.streamtype) + 4;\n \n \t\t\ts[0] \u003d LWSSS_SER_TXPRE_STREAMTYPE;\n-\t\t\tlws_ser_wu16be(\u0026s[1], n);\n-\t\t\tlws_ser_wu32be(\u0026s[3], h-\u003etxc.peer_tx_cr_est);\n+\t\t\tlws_ser_wu16be(\u0026s[1], (uint16_t)n);\n+\t\t\tlws_ser_wu32be(\u0026s[3], (uint32_t)h-\u003etxc.peer_tx_cr_est);\n \t\t\t//h-\u003etxcr_out \u003d txc;\n \t\t\tlws_strncpy((char *)\u0026s[7], h-\u003essi.streamtype, sizeof(s) - 7);\n \t\t\tn +\u003d 3;\n@@ -288,7 +288,7 @@ callback_sspc_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t __func__, (unsigned int)h-\u003ewriteable_len);\n \t\t\t\ts[0] \u003d LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT;\n \t\t\t\tlws_ser_wu16be(\u0026s[1], 4);\n-\t\t\t\tlws_ser_wu32be(\u0026s[3], h-\u003ewriteable_len);\n+\t\t\t\tlws_ser_wu32be(\u0026s[3], (uint32_t)h-\u003ewriteable_len);\n \t\t\t\th-\u003epending_writeable_len \u003d 0;\n \t\t\t\tn \u003d 7;\n \t\t\t\tgoto req_write_and_issue;\n@@ -339,7 +339,7 @@ callback_sspc_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t __func__, (unsigned int)h-\u003ewriteable_len);\n \t\t\t\ts[0] \u003d LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT;\n \t\t\t\tlws_ser_wu16be(\u0026s[1], 4);\n-\t\t\t\tlws_ser_wu32be(\u0026s[3], h-\u003ewriteable_len);\n+\t\t\t\tlws_ser_wu32be(\u0026s[3], (uint32_t)h-\u003ewriteable_len);\n \t\t\t\th-\u003epending_writeable_len \u003d 0;\n \t\t\t\tn \u003d 7;\n \t\t\t\tgoto req_write_and_issue;\n@@ -370,18 +370,18 @@ callback_sspc_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tbreak;\n \t\t\t}\n \n-\t\t\th-\u003etxc.tx_cr -\u003d len;\n+\t\t\th-\u003etxc.tx_cr \u003d h-\u003etxc.tx_cr - (int)len;\n \n \t\t\tcp \u003d p;\n-\t\t\tn \u003d len + 19;\n+\t\t\tn \u003d (int)(len + 19);\n \t\t\tus \u003d lws_now_usecs();\n \t\t\tp[0] \u003d LWSSS_SER_TXPRE_TX_PAYLOAD;\n-\t\t\tlws_ser_wu16be(\u0026p[1], len + 19 - 3);\n-\t\t\tlws_ser_wu32be(\u0026p[3], flags);\n+\t\t\tlws_ser_wu16be(\u0026p[1], (uint16_t)(len + 19 - 3));\n+\t\t\tlws_ser_wu32be(\u0026p[3], (uint32_t)flags);\n \t\t\t/* time spent here waiting to send this */\n-\t\t\tlws_ser_wu32be(\u0026p[7], us - h-\u003eus_earliest_write_req);\n+\t\t\tlws_ser_wu32be(\u0026p[7], (uint32_t)(us - h-\u003eus_earliest_write_req));\n \t\t\t/* ust that the client write happened */\n-\t\t\tlws_ser_wu64be(\u0026p[11], us);\n+\t\t\tlws_ser_wu64be(\u0026p[11], (uint64_t)us);\n \t\t\th-\u003eus_earliest_write_req \u003d 0;\n \n \t\t\tif (flags \u0026 LWSSS_FLAG_EOM)\n@@ -400,7 +400,7 @@ do_write_nz:\n \t\t\tbreak;\n \n do_write:\n-\t\tn \u003d lws_write(wsi, (uint8_t *)cp, n, LWS_WRITE_RAW);\n+\t\tn \u003d lws_write(wsi, (uint8_t *)cp, (unsigned int)n, LWS_WRITE_RAW);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_notice(\u0022%s: WRITEABLE: %d\u005cn\u0022, __func__, n);\n \ndiff --git a/lib/secure-streams/secure-streams-process.c b/lib/secure-streams/secure-streams-process.c\nindex 0d17515..724d4b1 100644\n--- a/lib/secure-streams/secure-streams-process.c\n+++ b/lib/secure-streams/secure-streams-process.c\n@@ -503,13 +503,13 @@ callback_ss_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\twhile (rsp) {\n \t\t\t\t\tif (n !\u003d 4 \u0026\u0026 n \u003c (int)sizeof(s) - 2)\n \t\t\t\t\t\ts[n++] \u003d ',';\n-\t\t\t\t\tn +\u003d lws_snprintf(\u0026s[n], sizeof(s) - n,\n+\t\t\t\t\tn +\u003d lws_snprintf(\u0026s[n], sizeof(s) - (unsigned int)n,\n \t\t\t\t\t\t\t\u0022%s\u0022, rsp-\u003estreamtype);\n \t\t\t\t\trsp \u003d lws_ss_policy_lookup(wsi-\u003ea.context,\n \t\t\t\t\t\trsp-\u003erideshare_streamtype);\n \t\t\t\t}\n \t\t\t}\n-\t\t\ts[2] \u003d n - 3;\n+\t\t\ts[2] \u003d (char)(n - 3);\n \t\t\tconn-\u003estate \u003d LPCSPROX_OPERATIONAL;\n \t\t\tlws_set_timeout(wsi, 0, 0);\n \t\t\tbreak;\n@@ -536,8 +536,8 @@ callback_ss_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\tmd-\u003epending_onward \u003d 0;\n \t\t\t\t\tp \u003d (uint8_t *)s;\n \t\t\t\t\tp[0] \u003d LWSSS_SER_RXPRE_METADATA;\n-\t\t\t\t\tlws_ser_wu16be(\u0026p[1], 1 + naml +\n-\t\t\t\t\t\t\t md-\u003elength);\n+\t\t\t\t\tlws_ser_wu16be(\u0026p[1], (uint16_t)(1 + naml +\n+\t\t\t\t\t\t\t md-\u003elength));\n \t\t\t\t\tp[3] \u003d (uint8_t)naml;\n \t\t\t\t\tmemcpy(\u0026p[4], md-\u003ename, naml);\n \t\t\t\t\tp +\u003d 4 + naml;\n@@ -601,7 +601,7 @@ again:\n \t\tif (!n)\n \t\t\tbreak;\n \n-\t\tn \u003d lws_write(wsi, (uint8_t *)cp, n, LWS_WRITE_RAW);\n+\t\tn \u003d lws_write(wsi, (uint8_t *)cp, (unsigned int)n, LWS_WRITE_RAW);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_info(\u0022%s: WRITEABLE: %d\u005cn\u0022, __func__, n);\n \ndiff --git a/lib/secure-streams/secure-streams-serialize.c b/lib/secure-streams/secure-streams-serialize.c\nindex 3ab4e7e..1783d58 100644\n--- a/lib/secure-streams/secure-streams-serialize.c\n+++ b/lib/secure-streams/secure-streams-serialize.c\n@@ -109,7 +109,7 @@ lws_ss_serialize_state_transition(lws_ss_conn_states_t *state, int new_state)\n #if defined(_DEBUG)\n \tlwsl_info(\u0022%s: %s -\u003e %s\u005cn\u0022, __func__, sn[*state], sn[new_state]);\n #endif\n-\t*state \u003d new_state;\n+\t*state \u003d (lws_ss_conn_states_t)new_state;\n }\n \n \n@@ -134,7 +134,7 @@ lws_ss_serialize_rx_payload(struct lws_dsh *dsh, const uint8_t *buf,\n \t\tassert(rsp);\n \t\tif (!rsp)\n \t\t\treturn 1;\n-\t\tl \u003d strlen(rsp);\n+\t\tl \u003d (int)strlen(rsp);\n \t\test +\u003d 1 + l;\n \t} else\n \t\tassert(!rsp);\n@@ -143,10 +143,10 @@ lws_ss_serialize_rx_payload(struct lws_dsh *dsh, const uint8_t *buf,\n \t// lwsl_hexdump_info(buf, len);\n \n \tpre[0] \u003d LWSSS_SER_RXPRE_RX_PAYLOAD;\n-\tlws_ser_wu16be(\u0026pre[1], len + est - 3);\n-\tlws_ser_wu32be(\u0026pre[3], flags);\n+\tlws_ser_wu16be(\u0026pre[1], (uint16_t)(len + (size_t)est - 3));\n+\tlws_ser_wu32be(\u0026pre[3], (uint32_t)flags);\n \tlws_ser_wu32be(\u0026pre[7], 0);\t/* write will compute latency here... */\n-\tlws_ser_wu64be(\u0026pre[11], us);\t/* ... and set this to the write time */\n+\tlws_ser_wu64be(\u0026pre[11], (uint64_t)us);\t/* ... and set this to the write time */\n \n \t/*\n \t * If we are on a non-default rideshare, append the non-default name to\n@@ -155,10 +155,10 @@ lws_ss_serialize_rx_payload(struct lws_dsh *dsh, const uint8_t *buf,\n \n \tif (flags \u0026 LWSSS_FLAG_RIDESHARE) {\n \t\tpre[19] \u003d (uint8_t)l;\n-\t\tmemcpy(\u0026pre[20], rsp, l);\n+\t\tmemcpy(\u0026pre[20], rsp, (unsigned int)l);\n \t}\n \n-\tif (lws_dsh_alloc_tail(dsh, KIND_SS_TO_P, pre, est, buf, len)) {\n+\tif (lws_dsh_alloc_tail(dsh, KIND_SS_TO_P, pre, (unsigned int)est, buf, len)) {\n \t\tlwsl_err(\u0022%s: unable to alloc in dsh 1\u005cn\u0022, __func__);\n \n \t\treturn 1;\n@@ -205,7 +205,7 @@ lws_ss_deserialize_tx_payload(struct lws_dsh *dsh, struct lws *wsi,\n \t\treturn 1;\n \t}\n \n-\t*len \u003d lws_ser_ru16be(\u0026p[1]) - (23 - 3);\n+\t*len \u003d (size_t)(lws_ser_ru16be(\u0026p[1]) - (23 - 3));\n \tif (*len !\u003d si - 23) {\n \t\t/*\n \t\t * We cannot accept any length that doesn't reflect the actual\n@@ -219,7 +219,7 @@ lws_ss_deserialize_tx_payload(struct lws_dsh *dsh, struct lws *wsi,\n \n \tmemcpy(buf, p + 23, si - 23);\n \n-\t*flags \u003d lws_ser_ru32be(\u0026p[3]);\n+\t*flags \u003d (int)lws_ser_ru32be(\u0026p[3]);\n \n #if defined(LWS_WITH_DETAILED_LATENCY)\n \tif (wsi \u0026\u0026 wsi-\u003ea.context-\u003edetailed_latency_cb) {\n@@ -265,7 +265,7 @@ lws_ss_serialize_state(struct lws_dsh *dsh, lws_ss_constate_t state,\n \tuint8_t pre[12];\n \tint n \u003d 4;\n \n-\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tpre[0] \u003d LWSSS_SER_RXPRE_CONNSTATE;\n@@ -282,7 +282,7 @@ lws_ss_serialize_state(struct lws_dsh *dsh, lws_ss_constate_t state,\n \n \tlws_ser_wu32be(\u0026pre[n], ack);\n \n-\tif (lws_dsh_alloc_tail(dsh, KIND_SS_TO_P, pre, n + 4, NULL, 0)) {\n+\tif (lws_dsh_alloc_tail(dsh, KIND_SS_TO_P, pre, (unsigned int)n + 4, NULL, 0)) {\n \t\tlwsl_err(\u0022%s: unable to alloc in dsh 2\u005cn\u0022, __func__);\n \n \t\treturn 1;\n@@ -306,7 +306,7 @@ lws_ss_serialize_txcr(struct lws_dsh *dsh, int txcr)\n \tpre[0] \u003d LWSSS_SER_RXPRE_TXCR_UPDATE;\n \tpre[1] \u003d 0;\n \tpre[2] \u003d 4;\n-\tlws_ser_wu32be(\u0026pre[3], txcr);\n+\tlws_ser_wu32be(\u0026pre[3], (uint32_t)txcr);\n \n \tif (lws_dsh_alloc_tail(dsh, KIND_SS_TO_P, pre, 7, NULL, 0)) {\n \t\tlwsl_err(\u0022%s: unable to alloc in dsh 2\u005cn\u0022, __func__);\n@@ -376,12 +376,12 @@ lws_ss_deserialize_parse(struct lws_ss_serialization_parser *par,\n \t\t\tbreak;\n \n \t\tcase RPAR_LEN_MSB: /* this is remaining frame length */\n-\t\t\tpar-\u003erem \u003d (*cp++) \u003c\u003c 8;\n+\t\t\tpar-\u003erem \u003d (uint16_t)((*cp++) \u003c\u003c 8);\n \t\t\tpar-\u003eps++;\n \t\t\tbreak;\n \n \t\tcase RPAR_LEN_LSB:\n-\t\t\tpar-\u003erem |\u003d *cp++;\n+\t\t\tpar-\u003erem |\u003d (uint16_t)*cp++;\n \t\t\tswitch (par-\u003etype) {\n \n \t\t\t/* event loop side */\n@@ -603,7 +603,7 @@ lws_ss_deserialize_parse(struct lws_ss_serialization_parser *par,\n \t\t\tbreak;\n \n \t\tcase RPAR_RIDESHARE:\n-\t\t\tpar-\u003erideshare[par-\u003ectr++] \u003d *cp++;\n+\t\t\tpar-\u003erideshare[par-\u003ectr++] \u003d (char)*cp++;\n \t\t\tif (!par-\u003erem--)\n \t\t\t\tgoto hangup;\n \t\t\tif (par-\u003ectr !\u003d par-\u003eslen)\n@@ -679,17 +679,17 @@ payload_ff:\n \n \t\t\t\tp \u003d pre;\n \t\t\t\tpre[0] \u003d LWSSS_SER_TXPRE_TX_PAYLOAD;\n-\t\t\t\tlws_ser_wu16be(\u0026p[1], n + 23 - 3);\n+\t\t\t\tlws_ser_wu16be(\u0026p[1], (uint16_t)((unsigned int)n + 23 - 3));\n \t\t\t\tlws_ser_wu32be(\u0026p[3], flags);\n \t\t\t\t/* us held at client before written */\n \t\t\t\tlws_ser_wu32be(\u0026p[7], par-\u003eusd_phandling);\n \t\t\t\t/* us taken for transit to proxy */\n-\t\t\t\tlws_ser_wu32be(\u0026p[11], us - par-\u003eust_pwait);\n+\t\t\t\tlws_ser_wu32be(\u0026p[11], (uint32_t)(us - (lws_usec_t)par-\u003eust_pwait));\n \t\t\t\t/* time used later to find proxy hold time */\n-\t\t\t\tlws_ser_wu64be(\u0026p[15], us);\n+\t\t\t\tlws_ser_wu64be(\u0026p[15], (uint64_t)us);\n \n \t\t\t\tif (lws_dsh_alloc_tail(dsh, KIND_C_TO_P, pre,\n-\t\t\t\t\t\t 23, cp, n)) {\n+\t\t\t\t\t\t 23, cp, (unsigned int)n)) {\n \t\t\t\t\tlwsl_err(\u0022%s: unable to alloc in dsh 3\u005cn\u0022,\n \t\t\t\t\t\t __func__);\n \n@@ -717,7 +717,7 @@ payload_ff:\n \t\t\t\tif (client_pss_to_sspc_h(pss, ssi)) {\n \t\t\t\t\t/* we still have an sspc handle */\n \t\t\t\t\tint ret \u003d ssi-\u003erx(client_pss_to_userdata(pss),\n-\t\t\t\t\t\t(uint8_t *)cp, n, flags);\n+\t\t\t\t\t\t(uint8_t *)cp, (unsigned int)n, (int)flags);\n \t\t\t\t\tswitch (ret) {\n \t\t\t\t\tcase LWSSSSRET_OK:\n \t\t\t\t\t\tbreak;\n@@ -748,8 +748,8 @@ payload_ff:\n \n \t\t\tif (n) {\n \t\t\t\tcp +\u003d n;\n-\t\t\t\tpar-\u003erem -\u003d n;\n-\t\t\t\tlen \u003d (len + 1) - n;\n+\t\t\t\tpar-\u003erem \u003d (uint16_t)(par-\u003erem - (uint16_t)(unsigned int)n);\n+\t\t\t\tlen \u003d (len + 1) - (unsigned int)n;\n \t\t\t\t/*\n \t\t\t\t * if we didn't consume it all, we'll come\n \t\t\t\t * around again and produce more dsh entries up\n@@ -877,7 +877,7 @@ payload_ff:\n \t\t\t\t} else {\n \n \t\t\t\t\tif (!par-\u003etemp32)\n-\t\t\t\t\t\tpar-\u003etemp32 \u003d\n+\t\t\t\t\t\tpar-\u003etemp32 \u003d (int)\n \t\t\t\t\t\t proxy_pss_to_ss_h(pss)-\u003e\n \t\t\t\t\t\t\t policy-\u003etimeout_ms;\n \n@@ -885,7 +885,7 @@ payload_ff:\n \t\t\t\t\t\t__func__, par-\u003etemp32);\n \n \t\t\t\t\tlws_ss_start_timeout(\n-\t\t\t\t\t\tproxy_pss_to_ss_h(pss),\n+\t\t\t\t\t\tproxy_pss_to_ss_h(pss), (unsigned int)\n \t\t\t\t\t\t\t\tpar-\u003etemp32);\n \t\t\t\t}\n \t\t\t}\n@@ -913,7 +913,7 @@ payload_ff:\n \n \t\t\tif (proxy_pss_to_ss_h(pss))\n \t\t\t\tlws_ss_request_tx_len(proxy_pss_to_ss_h(pss),\n-\t\t\t\t\t\t\tpar-\u003etemp32);\n+\t\t\t\t\t\t\t(unsigned long)par-\u003etemp32);\n \n \t\t\tpar-\u003eps \u003d RPAR_TYPE;\n \t\t\tbreak;\n@@ -933,7 +933,7 @@ payload_ff:\n \t\t\t/* both client and proxy */\n \t\t\tif (!--par-\u003erem)\n \t\t\t\tgoto hangup;\n-\t\t\tpar-\u003emetadata_name[par-\u003ectr++] \u003d *cp++;\n+\t\t\tpar-\u003emetadata_name[par-\u003ectr++] \u003d (char)*cp++;\n \t\t\tif (par-\u003ectr !\u003d par-\u003eslen)\n \t\t\t\tbreak;\n \t\t\tpar-\u003emetadata_name[par-\u003ectr] \u003d '\u005c0';\n@@ -1021,7 +1021,7 @@ payload_ff:\n \t\t\t\tlws_free_set_NULL(par-\u003essmd-\u003evalue__may_own_heap);\n \t\t\tpar-\u003essmd-\u003evalue_on_lws_heap \u003d 0;\n \n-\t\t\tpar-\u003essmd-\u003evalue__may_own_heap \u003d lws_malloc(par-\u003erem + 1, \u0022metadata\u0022);\n+\t\t\tpar-\u003essmd-\u003evalue__may_own_heap \u003d lws_malloc((unsigned int)par-\u003erem + 1, \u0022metadata\u0022);\n \t\t\tif (!par-\u003essmd-\u003evalue__may_own_heap) {\n \t\t\t\tlwsl_err(\u0022%s: OOM mdv\u005cn\u0022, __func__);\n \t\t\t\tgoto hangup;\n@@ -1080,7 +1080,7 @@ payload_ff:\n \t\t\t * client\n \t\t\t */\n \n-\t\t\tpar-\u003estreamtype[par-\u003ectr++] \u003d *cp++;\n+\t\t\tpar-\u003estreamtype[par-\u003ectr++] \u003d (char)*cp++;\n \t\t\tif (--par-\u003erem)\n \t\t\t\tbreak;\n \n@@ -1214,7 +1214,7 @@ payload_ff:\n \t\t\t\t\tgoto hangup;\n \t\t\t\th-\u003erideshare_ofs[++par-\u003ersl_idx] \u003d par-\u003ersl_pos;\n \t\t\t} else\n-\t\t\t\th-\u003erideshare_list[par-\u003ersl_pos++] \u003d *cp++;\n+\t\t\t\th-\u003erideshare_list[par-\u003ersl_pos++] \u003d (char)*cp++;\n \t\t\tif (!--par-\u003erem)\n \t\t\t\tpar-\u003eps \u003d RPAR_TYPE;\n \t\t\tbreak;\n@@ -1226,22 +1226,22 @@ payload_ff:\n \t\t\tbreak;\n \n \t\tcase RPAR_ORD3:\n-\t\t\tpar-\u003eflags \u003d (*cp++) \u003c\u003c 24;\n+\t\t\tpar-\u003eflags \u003d (uint32_t)((*cp++) \u003c\u003c 24);\n \t\t\tpar-\u003eps++;\n \t\t\tbreak;\n \n \t\tcase RPAR_ORD2:\n-\t\t\tpar-\u003eflags |\u003d (*cp++) \u003c\u003c 16;\n+\t\t\tpar-\u003eflags |\u003d (uint32_t)((*cp++) \u003c\u003c 16);\n \t\t\tpar-\u003eps++;\n \t\t\tbreak;\n \n \t\tcase RPAR_ORD1:\n-\t\t\tpar-\u003eflags |\u003d (*cp++) \u003c\u003c 8;\n+\t\t\tpar-\u003eflags |\u003d (uint32_t)((*cp++) \u003c\u003c 8);\n \t\t\tpar-\u003eps++;\n \t\t\tbreak;\n \n \t\tcase RPAR_ORD0:\n-\t\t\tpar-\u003eflags |\u003d *cp++;\n+\t\t\tpar-\u003eflags |\u003d (uint32_t)(*cp++);\n \t\t\tpar-\u003eps++;\n \t\t\tpar-\u003eps \u003d RPAR_TYPE;\n \ndiff --git a/lib/secure-streams/secure-streams.c b/lib/secure-streams/secure-streams.c\nindex 66ea5c1..7e1aa4d 100644\n--- a/lib/secure-streams/secure-streams.c\n+++ b/lib/secure-streams/secure-streams.c\n@@ -229,7 +229,7 @@ _lws_ss_backoff(lws_ss_handle_t *h, lws_usec_t us_override)\n \t/* Only increase our planned backoff, or go with it */\n \n \tif (us_override \u003c (lws_usec_t)ms * LWS_US_PER_MS)\n-\t\tus_override \u003d ms * LWS_US_PER_MS;\n+\t\tus_override \u003d (lws_usec_t)(ms * LWS_US_PER_MS);\n \n \th-\u003eseqstate \u003d SSSEQ_RECONNECT_WAIT;\n \tlws_ss_set_timeout_us(h, us_override);\n@@ -274,7 +274,7 @@ lws_smd_ss_cb(void *opaque, lws_smd_class_t _class,\n \t */\n \n \tlws_ser_wu64be(p, _class);\n-\tlws_ser_wu64be(p + 8, timestamp);\n+\tlws_ser_wu64be(p + 8, (uint64_t)timestamp);\n \n \tif (h-\u003einfo.rx)\n \t\th-\u003einfo.rx((void *)\u0026h[1], p, len + LWS_SMD_SS_RX_HEADER_LEN,\n@@ -362,7 +362,7 @@ _lws_ss_client_connect(lws_ss_handle_t *h, int is_retry, void *conn_if_sspc_onw)\n \t\th-\u003eu.smd.smd_peer \u003d lws_smd_register(h-\u003econtext, h,\n \t\t\t\t\t(h-\u003einfo.flags \u0026 LWSSSINFLAGS_PROXIED) ?\n \t\t\t\t\t\tLWSSMDREG_FLAG_PROXIED_SS : 0,\n-\t\t\t\t\th-\u003einfo.manual_initial_tx_credit,\n+\t\t\t\t\t(lws_smd_class_t)h-\u003einfo.manual_initial_tx_credit,\n \t\t\t\t\tlws_smd_ss_cb);\n \t\tif (!h-\u003eu.smd.smd_peer)\n \t\t\treturn LWSSSSRET_TX_DONT_SEND;\n@@ -623,7 +623,7 @@ lws_ss_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi,\n \th-\u003einfo \u003d *ssi;\n \th-\u003epolicy \u003d pol;\n \th-\u003econtext \u003d context;\n-\th-\u003etsi \u003d tsi;\n+\th-\u003etsi \u003d (uint8_t)tsi;\n \th-\u003eseq \u003d seq_owner;\n \n \tif (h-\u003einfo.flags \u0026 LWSSSINFLAGS_PROXIED)\n@@ -675,7 +675,7 @@ lws_ss_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi,\n \t\tmemcpy(p, ssi-\u003estreamtype, strlen(ssi-\u003estreamtype) + 1);\n \t/* don't mark accepted ss as being the server */\n \tif (ssi-\u003eflags \u0026 LWSSSINFLAGS_SERVER)\n-\t\th-\u003einfo.flags \u0026\u003d ~LWSSSINFLAGS_SERVER;\n+\t\th-\u003einfo.flags \u0026\u003d (uint8_t)~LWSSSINFLAGS_SERVER;\n \th-\u003einfo.streamtype \u003d p;\n \n \tlws_pt_lock(pt, __func__);\n@@ -710,7 +710,7 @@ lws_ss_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi,\n \t\t * format as well)\n \t\t */\n \t\th-\u003eu.smd.smd_peer \u003d lws_smd_register(context, h, 0,\n-\t\t\t\t\t\t ssi-\u003emanual_initial_tx_credit,\n+\t\t\t\t\t\t (lws_smd_class_t)ssi-\u003emanual_initial_tx_credit,\n \t\t\t\t\t\t lws_smd_ss_cb);\n \t\tif (!h-\u003eu.smd.smd_peer)\n \t\t\tgoto late_bail;\ndiff --git a/lib/secure-streams/system/auth-api.amazon.com/auth.c b/lib/secure-streams/system/auth-api.amazon.com/auth.c\nindex 62d15bf..6caaef5 100644\n--- a/lib/secure-streams/system/auth-api.amazon.com/auth.c\n+++ b/lib/secure-streams/system/auth-api.amazon.com/auth.c\n@@ -101,7 +101,7 @@ auth_api_amazon_com_parser_cb(struct lejp_ctx *ctx, char reason)\n \t\tm-\u003eexpires_secs \u003d atoi(ctx-\u003ebuf);\n \t\tlws_sul_schedule(context, 0, \u0026context-\u003esul_api_amazon_com,\n \t\t\t\t lws_ss_sys_auth_api_amazon_com_renew,\n-\t\t\t\t (uint64_t)m-\u003eexpires_secs * LWS_US_PER_SEC);\n+\t\t\t\t (lws_usec_t)m-\u003eexpires_secs * LWS_US_PER_SEC);\n \t\tbreak;\n \t}\n \n@@ -206,7 +206,7 @@ ss_api_amazon_auth_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tlws_system_blob_t *ab;\n \tsize_t s;\n \n-\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tab \u003d lws_system_get_blob(context, LWS_SYSBLOB_TYPE_AUTH, AUTH_IDX_ROOT);\ndiff --git a/lib/secure-streams/system/captive-portal-detect/captive-portal-detect.c b/lib/secure-streams/system/captive-portal-detect/captive-portal-detect.c\nindex 9090dd4..04900f0 100644\n--- a/lib/secure-streams/system/captive-portal-detect/captive-portal-detect.c\n+++ b/lib/secure-streams/system/captive-portal-detect/captive-portal-detect.c\n@@ -41,7 +41,7 @@ ss_cpd_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tss_cpd_t *m \u003d (ss_cpd_t *)userobj;\n \tstruct lws_context *cx \u003d (struct lws_context *)m-\u003eopaque_data;\n \n-\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\ndiff --git a/lib/secure-streams/system/fetch-policy/fetch-policy.c b/lib/secure-streams/system/fetch-policy/fetch-policy.c\nindex e84174d..dd2ec63 100644\n--- a/lib/secure-streams/system/fetch-policy/fetch-policy.c\n+++ b/lib/secure-streams/system/fetch-policy/fetch-policy.c\n@@ -97,7 +97,7 @@ ss_fetch_policy_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tss_fetch_policy_t *m \u003d (ss_fetch_policy_t *)userobj;\n \tstruct lws_context *context \u003d (struct lws_context *)m-\u003eopaque_data;\n \n-\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_info(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\ndiff --git a/lib/system/async-dns/async-dns-parse.c b/lib/system/async-dns/async-dns-parse.c\nindex c4068cf..24db2c6 100644\n--- a/lib/system/async-dns/async-dns-parse.c\n+++ b/lib/system/async-dns/async-dns-parse.c\n@@ -30,7 +30,7 @@\n \n static int\n lws_adns_parse_label(const uint8_t *pkt, int len, const uint8_t *ls, int budget,\n-\t\t char **dest, int dl)\n+\t\t char **dest, size_t dl)\n {\n \tconst uint8_t *e \u003d pkt + len, *ols \u003d ls;\n \tchar pointer \u003d 0, first \u003d 1;\n@@ -87,7 +87,7 @@ again1:\n \t\treturn -1;\n \t}\n \n-\tif (ll + 2 \u003e dl) {\n+\tif ((unsigned int)ll + 2 \u003e dl) {\n \t\tlwsl_notice(\u0022%s: qname too large\u005cn\u0022, __func__);\n \n \t\treturn -1;\n@@ -204,7 +204,7 @@ start:\n \n \t\tn \u003d lws_adns_parse_label(pkt, len, p, len, \u0026sp,\n \t\t\t\t\t sizeof(stack[0].name) -\n-\t\t\t\t\t lws_ptr_diff(sp, stack[0].name));\n+\t\t\t\t\t lws_ptr_diff_size_t(sp, stack[0].name));\n \t\t/* includes case name won't fit */\n \t\tif (n \u003c 0)\n \t\t\treturn -1;\n@@ -262,7 +262,7 @@ start:\n \t\t\tm--;\n \n \t\tif (n \u003c 1 || n !\u003d m ||\n-\t\t strncmp(stack[0].name, stack[stp].name, n)) {\n+\t\t strncmp(stack[0].name, stack[stp].name, (unsigned int)n)) {\n \t\t\tlwsl_notice(\u0022%s: skipping %s vs %s\u005cn\u0022, __func__,\n \t\t\t\t\tstack[0].name, stack[stp].name);\n \t\t\tgoto skip;\n@@ -331,7 +331,7 @@ do_cb:\n \t\t\t/* get the cname alias */\n \t\t\tn \u003d lws_adns_parse_label(pkt, len, p, rrpaylen, \u0026sp,\n \t\t\t\t\t\t sizeof(stack[stp].name) -\n-\t\t\t\t\t\t lws_ptr_diff(sp, stack[stp].name));\n+\t\t\t\t\t\t lws_ptr_diff_size_t(sp, stack[stp].name));\n \t\t\t/* includes case name won't fit */\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n@@ -416,7 +416,7 @@ skip:\n \t\tchar *cp \u003d (char *)\u0026q[1];\n \n \t\twhile (stack[stp].name[n])\n-\t\t\t*cp++ \u003d tolower(stack[stp].name[n++]);\n+\t\t\t*cp++ \u003d (char)tolower(stack[stp].name[n++]);\n \t\t/* trim the following . if any */\n \t\tif (n \u0026\u0026 cp[-1] \u003d\u003d '.')\n \t\t\tcp--;\n@@ -493,7 +493,7 @@ lws_async_dns_store(const char *name, void *opaque, uint32_t ttl,\n \n \t\ti \u003d sizeof(*in6);\n \t\tmemset(in6, 0, i);\n-\t\tin6-\u003esin6_family \u003d adst-\u003epos-\u003eai_family;\n+\t\tin6-\u003esin6_family \u003d (sa_family_t)adst-\u003epos-\u003eai_family;\n \t\tmemcpy(in6-\u003esin6_addr.s6_addr, payload, 16);\n \t\tadst-\u003eflags |\u003d 2;\n \t} else\n@@ -503,7 +503,7 @@ lws_async_dns_store(const char *name, void *opaque, uint32_t ttl,\n \n \t\ti \u003d sizeof(*in);\n \t\tmemset(in, 0, i);\n-\t\tin-\u003esin_family \u003d adst-\u003epos-\u003eai_family;\n+\t\tin-\u003esin_family \u003d (sa_family_t)adst-\u003epos-\u003eai_family;\n \t\tmemcpy(\u0026in-\u003esin_addr.s_addr, payload, 4);\n \t\tadst-\u003eflags |\u003d 1;\n \t}\n@@ -568,7 +568,7 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len)\n \t\tgoto fail_out;\n \t}\n \n-\tq-\u003eresponded |\u003d n;\n+\tq-\u003eresponded |\u003d (uint8_t)n;\n \n \t/* we want to confirm the results against what we last requested... */\n \n@@ -585,7 +585,7 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len)\n \n \tncname \u003d (int)strlen(nmcname) + 1;\n \n-\test \u003d sizeof(lws_adns_cache_t) + ncname;\n+\test \u003d sizeof(lws_adns_cache_t) + (unsigned int)ncname;\n \tif (lws_ser_ru16be(pkt + DHO_NANSWERS)) {\n \t\tint ir \u003d lws_adns_iterate(q, pkt, (int)len, nmcname,\n \t\t\t\t\t lws_async_dns_estimate, \u0026est);\n@@ -612,7 +612,7 @@ lws_adns_parse_udp(lws_async_dns_t *dns, const uint8_t *pkt, size_t len)\n \n \t/* place it at end, no need to care about alignment padding */\n \tadst.name \u003d ((const char *)c) + est - n;\n-\tmemcpy((char *)adst.name, nm, n);\n+\tmemcpy((char *)adst.name, nm, (unsigned int)n);\n \n \t/*\n \t * Then walk the packet again, placing the objects we accounted for\ndiff --git a/lib/system/async-dns/async-dns.c b/lib/system/async-dns/async-dns.c\nindex c8b9174..bacd0af 100644\n--- a/lib/system/async-dns/async-dns.c\n+++ b/lib/system/async-dns/async-dns.c\n@@ -195,13 +195,13 @@ lws_async_dns_writeable(struct lws *wsi, lws_adns_q_t *q)\n \n \tdo {\n \t\tif (*name \u003d\u003d '.' || !*name) {\n-\t\t\t*pl \u003d lws_ptr_diff(p, pl + 1);\n+\t\t\t*pl \u003d (uint8_t)(unsigned int)lws_ptr_diff(p, pl + 1);\n \t\t\tpl \u003d p;\n \t\t\t*p++ \u003d 0; /* also serves as terminal length */\n \t\t\tif (!*name++)\n \t\t\t\tbreak;\n \t\t} else\n-\t\t\t*p++ \u003d *name++;\n+\t\t\t*p++ \u003d (uint8_t)*name++;\n \t} while (p + 6 \u003c e);\n \n \tif (p + 6 \u003e\u003d e) {\n@@ -219,7 +219,7 @@ lws_async_dns_writeable(struct lws *wsi, lws_adns_q_t *q)\n \tassert(p \u003c pkt + sizeof(pkt) - LWS_PRE);\n \tn \u003d lws_ptr_diff(p, pkt + LWS_PRE);\n \n-\tm \u003d lws_write(wsi, pkt + LWS_PRE, n, 0);\n+\tm \u003d lws_write(wsi, pkt + LWS_PRE, (unsigned int)n, 0);\n \tif (m !\u003d n) {\n \t\tlwsl_notice(\u0022%s: dns write failed %d %d errno %d\u005cn\u0022, __func__,\n \t\t\t m, n, errno);\n@@ -647,7 +647,7 @@ lws_async_dns_query(struct lws_context *context, int tsi, const char *name,\n \t\tai-\u003eai_family \u003d sa46-\u003esa4.sin_family \u003d AF_INET;\n \t\tai-\u003eai_addrlen \u003d sizeof(sa46-\u003esa4);\n \t\tai-\u003eai_addr \u003d (struct sockaddr *)\u0026sa46-\u003esa4;\n-\t\tmemcpy(\u0026sa46-\u003esa4.sin_addr, ads, m);\n+\t\tmemcpy(\u0026sa46-\u003esa4.sin_addr, ads, (unsigned int)m);\n \n \t\tlws_async_dns_complete(\u0026tmq.tq, c);\n \n@@ -659,7 +659,7 @@ lws_async_dns_query(struct lws_context *context, int tsi, const char *name,\n \t\tai-\u003eai_family \u003d sa46-\u003esa6.sin6_family \u003d AF_INET6;\n \t\tai-\u003eai_addrlen \u003d sizeof(sa46-\u003esa6);\n \t\tai-\u003eai_addr \u003d (struct sockaddr *)\u0026sa46-\u003esa6;\n-\t\tmemcpy(\u0026sa46-\u003esa6.sin6_addr, ads, m);\n+\t\tmemcpy(\u0026sa46-\u003esa6.sin6_addr, ads, (unsigned int)m);\n \n \t\tlws_async_dns_complete(\u0026tmq.tq, c);\n \n@@ -725,7 +725,7 @@ lws_async_dns_query(struct lws_context *context, int tsi, const char *name,\n \n \tq-\u003etid \u0026\u003d 0xfffe;\n \tq-\u003econtext \u003d context;\n-\tq-\u003etsi \u003d tsi;\n+\tq-\u003etsi \u003d (uint8_t)tsi;\n \tq-\u003eopaque \u003d opaque;\n \tq-\u003edns \u003d dns;\n \n@@ -745,7 +745,7 @@ lws_async_dns_query(struct lws_context *context, int tsi, const char *name,\n \n \tp \u003d (char *)\u0026q[1];\n \twhile (nlen--) {\n-\t\t*p++ \u003d tolower(*name++);\n+\t\t*p++ \u003d (char)tolower(*name++);\n \t\tp[DNS_MAX - 1] \u003d p[-1];\n \t}\n \t*p \u003d '\u005c0';\ndiff --git a/lib/system/dhcpclient/dhcpclient.c b/lib/system/dhcpclient/dhcpclient.c\nindex 1db442f..438757a 100644\n--- a/lib/system/dhcpclient/dhcpclient.c\n+++ b/lib/system/dhcpclient/dhcpclient.c\n@@ -235,7 +235,7 @@ lws_dhcpc_retry_write(struct lws_sorted_usec_list *sul)\n }\n \n static int\n-lws_dhcpc_prep(uint8_t *start, int bufsiz, lws_dhcpc_req_t *r, int op)\n+lws_dhcpc_prep(uint8_t *start, unsigned int bufsiz, lws_dhcpc_req_t *r, int op)\n {\n \tuint8_t *p \u003d start;\n \n@@ -266,7 +266,7 @@ lws_dhcpc_prep(uint8_t *start, int bufsiz, lws_dhcpc_req_t *r, int op)\n \n \t*p++ \u003d LWSDHCPOPT_MESSAGE_TYPE;\n \t*p++ \u003d 1;\t/* length */\n-\t*p++ \u003d op;\n+\t*p++ \u003d (uint8_t)op;\n \n \tswitch (op) {\n \tcase LWSDHCPDISCOVER:\n@@ -419,7 +419,7 @@ callback_dhcpc(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\t\t\tm \u003d IPV4_DNS_SRV_1;\n \t\t\t\t\twhile (l \u0026\u0026 m - IPV4_DNS_SRV_1 \u003c 4) {\n \t\t\t\t\t\tr-\u003eipv4[m++] \u003d lws_ser_ru32be(p);\n-\t\t\t\t\t\tl -\u003d 4;\n+\t\t\t\t\t\tl \u003d (uint8_t)(l - 4);\n \t\t\t\t\t\tp +\u003d 4;\n \t\t\t\t\t}\n \t\t\t\t\tbreak;\n@@ -427,7 +427,7 @@ callback_dhcpc(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\t\t\tm \u003d l;\n \t\t\t\t\tif (m \u003e (int)sizeof(r-\u003edomain) - 1)\n \t\t\t\t\t\tm \u003d sizeof(r-\u003edomain) - 1;\n-\t\t\t\t\tmemcpy(r-\u003edomain, p, m);\n+\t\t\t\t\tmemcpy(r-\u003edomain, p, (unsigned int)m);\n \t\t\t\t\tr-\u003edomain[m] \u003d '\u005c0';\n \t\t\t\t\tbreak;\n \n@@ -470,7 +470,7 @@ broken:\n \t\t\t\t\t\t dhcp_entry_names[n],\n \t\t\t\t\t\t r-\u003eipv4[n]);\n \t\t\t\telse {\n-\t\t\t\t\tm \u003d ntohl(r-\u003eipv4[n]);\n+\t\t\t\t\tm \u003d (int)ntohl(r-\u003eipv4[n]);\n \t\t\t\t\tlws_write_numeric_address((uint8_t *)\u0026m,\n \t\t\t\t\t\t\t 4,(char *)pkt, 20);\n \t\t\t\t\tlwsl_info(\u0022%s: %s: %s\u005cn\u0022, __func__,\n@@ -594,8 +594,8 @@ broken:\n \n \t\t\t/* fallthru */\n bcast:\n-\t\t\tn \u003d lws_dhcpc_prep(p + 28, sizeof(pkt) - LWS_PRE - 28,\n-\t\t\t\t\t r, n);\n+\t\t\tn \u003d lws_dhcpc_prep(p + 28, (unsigned int)\n+\t\t\t\t\t(sizeof(pkt) - LWS_PRE - 28), r, n);\n \t\t\tif (n \u003c 0) {\n \t\t\t\tlwsl_err(\u0022%s: failed to prep\u005cn\u0022, __func__);\n \t\t\t\tbreak;\n@@ -603,7 +603,7 @@ bcast:\n \n \t\t\tm \u003d lws_plat_rawudp_broadcast(p, rawdisc,\n \t\t\t\t\t\t LWS_ARRAY_SIZE(rawdisc),\n-\t\t\t\t\t\t n + 28,\n+\t\t\t\t\t\t (size_t)(n + 28),\n \t\t\t\t\t\t r-\u003ewsi_raw-\u003edesc.sockfd,\n \t\t\t\t\t\t (const char *)\u0026r[1]);\n \t\t\tif (m \u003c 0)\n@@ -709,13 +709,13 @@ lws_dhcpc_request(struct lws_context *context, const char *iface, int af,\n \n \t/* nope... let's create a request object as he asks */\n \n-\tn \u003d strlen(iface);\n-\tr \u003d lws_zalloc(sizeof(*r) + n + 1, __func__);\n+\tn \u003d (int)strlen(iface);\n+\tr \u003d lws_zalloc(sizeof(*r) + (unsigned int)n + 1u, __func__);\n \tif (!r)\n \t\treturn 1;\n \n-\tmemcpy(\u0026r[1], iface, n + 1);\n-\tr-\u003eaf \u003d af;\n+\tmemcpy(\u0026r[1], iface, (unsigned int)n + 1);\n+\tr-\u003eaf \u003d (uint8_t)af;\n \tr-\u003ecb \u003d cb;\n \tr-\u003eopaque \u003d opaque;\n \tr-\u003econtext \u003d context;\ndiff --git a/lib/system/ntpclient/ntpclient.c b/lib/system/ntpclient/ntpclient.c\nindex 3d5d43a..86536c8 100644\n--- a/lib/system/ntpclient/ntpclient.c\n+++ b/lib/system/ntpclient/ntpclient.c\n@@ -203,7 +203,7 @@ do_close:\n \t\t * and add in the ns\n \t\t */\n \n-\t\tns \u003d lws_ser_ru32be(((uint8_t *)in) + 40) - 2208988800;\n+\t\tns \u003d (uint64_t)lws_ser_ru32be(((uint8_t *)in) + 40) - (uint64_t)2208988800;\n \t\tns \u003d (ns * 1000000000) + lws_ser_ru32be(((uint8_t *)in) + 44);\n \n \t\t/*\n@@ -212,7 +212,7 @@ do_close:\n \n \t\tgettimeofday(\u0026t1, NULL);\n \n-\t\tdelta_us \u003d (ns / 1000) -\n+\t\tdelta_us \u003d ((int64_t)ns / 1000) -\n \t\t\t\t((t1.tv_sec * LWS_US_PER_SEC) + t1.tv_usec);\n \n \t\tlwsl_notice(\u0022%s: Unix time: %llu, step: %lldus\u005cn\u0022, __func__,\n@@ -233,7 +233,7 @@ do_close:\n #endif\n \t\tif (lws_system_get_ops(wsi-\u003ea.context) \u0026\u0026\n \t\t lws_system_get_ops(wsi-\u003ea.context)-\u003eset_clock)\n-\t\t\tlws_system_get_ops(wsi-\u003ea.context)-\u003eset_clock(ns / 1000);\n+\t\t\tlws_system_get_ops(wsi-\u003ea.context)-\u003eset_clock((int64_t)ns / 1000);\n \n \t\tv-\u003eset_time \u003d 1;\n \t\tlws_state_transition_steps(\u0026wsi-\u003ea.context-\u003emgr_system,\ndiff --git a/lib/system/smd/smd.c b/lib/system/smd/smd.c\nindex 83232e9..37a1b9a 100644\n--- a/lib/system/smd/smd.c\n+++ b/lib/system/smd/smd.c\n@@ -141,7 +141,7 @@ lws_smd_msg_send(struct lws_context *ctx, void *pay)\n \tif (!ctx-\u003esmd.delivering)\n \t\tlws_mutex_lock(ctx-\u003esmd.lock_peers); /* +++++++++++++++ peers */\n \n-\tmsg-\u003erefcount \u003d _lws_smd_msg_assess_peers_interested(\u0026ctx-\u003esmd, msg);\n+\tmsg-\u003erefcount \u003d (uint16_t)_lws_smd_msg_assess_peers_interested(\u0026ctx-\u003esmd, msg);\n \n \tlws_mutex_lock(ctx-\u003esmd.lock_messages); /* +++++++++++++++++ messages */\n \tlws_dll2_add_tail(\u0026msg-\u003elist, \u0026ctx-\u003esmd.owner_messages);\n@@ -199,7 +199,7 @@ lws_smd_msg_printf(struct lws_context *ctx, lws_smd_class_t _class,\n \t\t\t\t\t\t\t\tsizeof(*msg));\n \tmsg-\u003elength \u003d (uint16_t)n;\n \tva_start(ap, format);\n-\tvsnprintf((char*)p, n + 2, format, ap);\n+\tvsnprintf((char *)p, (unsigned int)n + 2, format, ap);\n \tva_end(ap);\n \n \t/*\n@@ -384,7 +384,7 @@ lws_smd_msg_distribute(struct lws_context *ctx)\n \t\t\tlws_smd_peer_t *pr \u003d lws_container_of(p, lws_smd_peer_t, list);\n \n \t\t\t/* may destroy pr if zombie, hence _safe iterator */\n-\t\t\tmore |\u003d _lws_smd_msg_deliver_peer(ctx, pr);\n+\t\t\tmore |\u003d (char)!!_lws_smd_msg_deliver_peer(ctx, pr);\n \n \t\t} lws_end_foreach_dll_safe(p, p1);\n \ndiff --git a/lib/system/system.c b/lib/system/system.c\nindex 035f762..824ac68 100644\n--- a/lib/system/system.c\n+++ b/lib/system/system.c\n@@ -99,7 +99,7 @@ lws_system_blob_get(lws_system_blob_t *b, uint8_t *buf, size_t *len, size_t ofs)\n \tif (n \u003c 0)\n \t\treturn -2;\n \n-\t*len \u003d n;\n+\t*len \u003d (unsigned int)n;\n \n \treturn 0;\n }\n@@ -141,7 +141,7 @@ lws_system_get_blob(struct lws_context *context, lws_system_blob_item_t type,\n \t idx \u003e\u003d (int)LWS_ARRAY_SIZE(context-\u003esystem_blobs))\n \t\treturn NULL;\n \n-\treturn \u0026context-\u003esystem_blobs[type + idx];\n+\treturn \u0026context-\u003esystem_blobs[type + (unsigned int)idx];\n }\n \n #if defined(LWS_WITH_NETWORK)\ndiff --git a/lib/tls/lws-genec-common.c b/lib/tls/lws-genec-common.c\nindex df536be..0ea3fb0 100644\n--- a/lib/tls/lws-genec-common.c\n+++ b/lib/tls/lws-genec-common.c\n@@ -51,7 +51,8 @@ lws_genec_confirm_curve_allowed_by_tls_id(const char *allowed, int id,\n {\n \tstruct lws_tokenize ts;\n \tlws_tokenize_elem e;\n-\tint n, len;\n+\tsize_t len;\n+\tint n;\n \n \tlws_tokenize_init(\u0026ts, allowed, LWS_TOKENIZE_F_COMMA_SEP_LIST |\n \t\t\t\t LWS_TOKENIZE_F_MINUS_NONTERM);\n@@ -68,8 +69,8 @@ lws_genec_confirm_curve_allowed_by_tls_id(const char *allowed, int id,\n \t\t\t\t}\n \t\t\t\tlwsl_info(\u0022match curve %s\u005cn\u0022,\n \t\t\t\t\t lws_ec_curves[n].name);\n-\t\t\t\tlen \u003d (int)strlen(lws_ec_curves[n].name);\n-\t\t\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d len;\n+\t\t\t\tlen \u003d strlen(lws_ec_curves[n].name);\n+\t\t\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d (uint32_t)len;\n \t\t\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_CRV].buf \u003d\n \t\t\t\t\t\tlws_malloc(len + 1, \u0022cert crv\u0022);\n \t\t\t\tif (!jwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_CRV].buf) {\ndiff --git a/lib/tls/mbedtls/lws-genaes.c b/lib/tls/mbedtls/lws-genaes.c\nindex 4f4b85d..0bde745 100644\n--- a/lib/tls/mbedtls/lws-genaes.c\n+++ b/lib/tls/mbedtls/lws-genaes.c\n@@ -34,8 +34,8 @@ static int operation_map[] \u003d { MBEDTLS_AES_ENCRYPT, MBEDTLS_AES_DECRYPT };\n static unsigned int\n _write_pkcs7_pad(uint8_t *p, int len)\n {\n-\tunsigned int n \u003d 0, padlen \u003d LWS_AES_CBC_BLOCKLEN * (len /\n-\t\t\t\t\tLWS_AES_CBC_BLOCKLEN + 1) - len;\n+\tunsigned int n \u003d 0, padlen \u003d LWS_AES_CBC_BLOCKLEN * ((unsigned int)len /\n+\t\t\t\t\tLWS_AES_CBC_BLOCKLEN + 1) - (unsigned int)len;\n \n \tp +\u003d len;\n \n@@ -54,7 +54,7 @@ lws_genaes_create(struct lws_genaes_ctx *ctx, enum enum_aes_operation op,\n \n \tctx-\u003emode \u003d mode;\n \tctx-\u003ek \u003d el;\n-\tctx-\u003eop \u003d operation_map[op];\n+\tctx-\u003eop \u003d (enum enum_aes_operation)operation_map[op];\n \tctx-\u003eunderway \u003d 0;\n \tctx-\u003epadding \u003d padding \u003d\u003d LWS_GAESP_WITH_PADDING;\n \n@@ -139,12 +139,12 @@ lws_genaes_destroy(struct lws_genaes_ctx *ctx, unsigned char *tag, size_t tlen)\n \t\t\tlwsl_notice(\u0022%s: mbedtls_gcm_finish: -0x%x\u005cn\u0022,\n \t\t\t\t __func__, -n);\n \t\tif (tag \u0026\u0026 ctx-\u003eop \u003d\u003d MBEDTLS_AES_DECRYPT \u0026\u0026 !n) {\n-\t\t\tif (lws_timingsafe_bcmp(ctx-\u003etag, tag, ctx-\u003etaglen)) {\n+\t\t\tif (lws_timingsafe_bcmp(ctx-\u003etag, tag, (unsigned int)ctx-\u003etaglen)) {\n \t\t\t\tlwsl_err(\u0022%s: lws_genaes_crypt tag \u0022\n \t\t\t\t\t \u0022mismatch (bad first)\u005cn\u0022,\n \t\t\t\t\t\t__func__);\n \t\t\t\tlwsl_hexdump_notice(tag, tlen);\n-\t\t\t\tlwsl_hexdump_notice(ctx-\u003etag, ctx-\u003etaglen);\n+\t\t\t\tlwsl_hexdump_notice(ctx-\u003etag, (unsigned int)ctx-\u003etaglen);\n \t\t\t\tn \u003d -1;\n \t\t\t}\n \t\t}\n@@ -200,8 +200,8 @@ lws_genaes_rfc3394_wrap(int wrap, int cek_bits, const uint8_t *kek,\n \t\t * A[0] \u003d IV \u003d A6A6A6A6A6A6A6A6\n \t\t */\n \t\tmemset(out, 0xa6, 8);\n-\t\tmemcpy(out + 8, in, 8 * c64);\n-\t\tn \u003d mbedtls_aes_setkey_enc(\u0026ctx, kek, kek_bits);\n+\t\tmemcpy(out + 8, in, 8 * (unsigned int)c64);\n+\t\tn \u003d mbedtls_aes_setkey_enc(\u0026ctx, kek, (unsigned int)kek_bits);\n \t} else {\n \t\t/*\n \t\t * 2.2.2 Key Unwrap\n@@ -217,8 +217,8 @@ lws_genaes_rfc3394_wrap(int wrap, int cek_bits, const uint8_t *kek,\n \t\t * Outputs: Plaintext, n 64-bit values {P1, P2, ..., Pn}.\n \t\t */\n \t\tmemcpy(a, in, 8);\n-\t\tmemcpy(out, in + 8, 8 * c64);\n-\t\tn \u003d mbedtls_aes_setkey_dec(\u0026ctx, kek, kek_bits);\n+\t\tmemcpy(out, in + 8, 8 * (unsigned int)c64);\n+\t\tn \u003d mbedtls_aes_setkey_dec(\u0026ctx, kek, (unsigned int)kek_bits);\n \t}\n \n \tif (n \u003c 0) {\n@@ -236,7 +236,7 @@ lws_genaes_rfc3394_wrap(int wrap, int cek_bits, const uint8_t *kek,\n \t\t\t\t\tgoto bail;\n \n \t\t\t\tmemcpy(out, b, 8);\n-\t\t\t\tout[7] ^\u003d c64 * n + m;\n+\t\t\t\tout[7] ^\u003d (uint8_t)(c64 * n + m);\n \t\t\t\tmemcpy(r, b + 8, 8);\n \t\t\t\tr +\u003d 8;\n \t\t\t}\n@@ -250,7 +250,7 @@ lws_genaes_rfc3394_wrap(int wrap, int cek_bits, const uint8_t *kek,\n \t\t\tuint8_t *r \u003d out + (c64 - 1) * 8;\n \t\t\tfor (m \u003d c64; m \u003e\u003d 1; m--) {\n \t\t\t\tmemcpy(b, a, 8);\n-\t\t\t\tb[7] ^\u003d c64 * n + m;\n+\t\t\t\tb[7] ^\u003d (uint8_t)(c64 * n + m);\n \t\t\t\tmemcpy(b + 8, r, 8);\n \t\t\t\tif (mbedtls_internal_aes_decrypt(\u0026ctx, b, b))\n \t\t\t\t\tgoto bail;\n@@ -289,9 +289,9 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n #if defined(LWS_HAVE_mbedtls_internal_aes_encrypt)\n \t\t/* a key of length ctx-\u003ek-\u003elen is wrapped by a 128-bit KEK */\n \t\tn \u003d lws_genaes_rfc3394_wrap(ctx-\u003eop \u003d\u003d MBEDTLS_AES_ENCRYPT,\n-\t\t\t\tctx-\u003eop \u003d\u003d MBEDTLS_AES_ENCRYPT ? len * 8 :\n-\t\t\t\t\t\t(len - 8) * 8, ctx-\u003ek-\u003ebuf,\n-\t\t\t\t\t\tctx-\u003ek-\u003elen * 8,\n+\t\t\t\t(ctx-\u003eop \u003d\u003d MBEDTLS_AES_ENCRYPT ? (int)len * 8 :\n+\t\t\t\t\t\t((int)len - 8) * 8), ctx-\u003ek-\u003ebuf,\n+\t\t\t\t\t\t(int)ctx-\u003ek-\u003elen * 8,\n \t\t\t\tin, out);\n \t\tbreak;\n #else\n@@ -319,25 +319,25 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n \t\t\t\treturn -1;\n \n \t\t\tmemcpy(padin, in, len);\n-\t\t\tlen +\u003d _write_pkcs7_pad((uint8_t *)padin, len);\n-\t\t\tn \u003d mbedtls_aes_crypt_cbc(\u0026ctx-\u003eu.ctx, ctx-\u003eop, len, iv,\n+\t\t\tlen +\u003d _write_pkcs7_pad((uint8_t *)padin, (int)len);\n+\t\t\tn \u003d mbedtls_aes_crypt_cbc(\u0026ctx-\u003eu.ctx, (int)ctx-\u003eop, len, iv,\n \t\t\t\t\t\t padin, out);\n \t\t\tlws_free(padin);\n \t\t} else\n-\t\t\tn \u003d mbedtls_aes_crypt_cbc(\u0026ctx-\u003eu.ctx, ctx-\u003eop, len, iv,\n+\t\t\tn \u003d mbedtls_aes_crypt_cbc(\u0026ctx-\u003eu.ctx, (int)ctx-\u003eop, len, iv,\n in, out);\n \n \t\tbreak;\n \n \tcase LWS_GAESM_CFB128:\n \t\tmemcpy(iv, iv_or_nonce_ctr_or_data_unit_16, 16);\n-\t\tn \u003d mbedtls_aes_crypt_cfb128(\u0026ctx-\u003eu.ctx, ctx-\u003eop, len,\n+\t\tn \u003d mbedtls_aes_crypt_cfb128(\u0026ctx-\u003eu.ctx, (int)ctx-\u003eop, len,\n \t\t\t\t\t nc_or_iv_off, iv, in, out);\n \t\tbreak;\n \n \tcase LWS_GAESM_CFB8:\n \t\tmemcpy(iv, iv_or_nonce_ctr_or_data_unit_16, 16);\n-\t\tn \u003d mbedtls_aes_crypt_cfb8(\u0026ctx-\u003eu.ctx, ctx-\u003eop, len, iv,\n+\t\tn \u003d mbedtls_aes_crypt_cfb8(\u0026ctx-\u003eu.ctx, (int)ctx-\u003eop, len, iv,\n \t\t\t\t\t in, out);\n \t\tbreak;\n \n@@ -351,7 +351,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n \t\tbreak;\n \n \tcase LWS_GAESM_ECB:\n-\t\tn \u003d mbedtls_aes_crypt_ecb(\u0026ctx-\u003eu.ctx, ctx-\u003eop, in, out);\n+\t\tn \u003d mbedtls_aes_crypt_ecb(\u0026ctx-\u003eu.ctx, (int)ctx-\u003eop, in, out);\n \t\tbreak;\n \n \tcase LWS_GAESM_OFB:\n@@ -367,7 +367,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n \tcase LWS_GAESM_XTS:\n #if defined(MBEDTLS_CIPHER_MODE_XTS)\n \t\tmemcpy(iv, iv_or_nonce_ctr_or_data_unit_16, 16);\n-\t\tn \u003d mbedtls_aes_crypt_xts(\u0026ctx-\u003eu.ctx_xts, ctx-\u003eop, len, iv,\n+\t\tn \u003d mbedtls_aes_crypt_xts(\u0026ctx-\u003eu.ctx_xts, (int)ctx-\u003eop, len, iv,\n \t\t\t\t\t in, out);\n \t\tbreak;\n #else\n@@ -377,7 +377,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n \t\tif (!ctx-\u003eunderway) {\n \t\t\tctx-\u003eunderway \u003d 1;\n \n-\t\t\tmemcpy(ctx-\u003etag, stream_block_16, taglen);\n+\t\t\tmemcpy(ctx-\u003etag, stream_block_16, (unsigned int)taglen);\n \t\t\tctx-\u003etaglen \u003d taglen;\n \n \t\t\t/*\n@@ -388,7 +388,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len,\n \t\t\t * additional data len: len\n \t\t\t */\n \n-\t\t\tn \u003d mbedtls_gcm_starts(\u0026ctx-\u003eu.ctx_gcm, ctx-\u003eop,\n+\t\t\tn \u003d mbedtls_gcm_starts(\u0026ctx-\u003eu.ctx_gcm, (int)ctx-\u003eop,\n \t\t\t\t\t iv_or_nonce_ctr_or_data_unit_16,\n \t\t\t\t\t *nc_or_iv_off, in, len);\n \t\t\tif (n) {\ndiff --git a/lib/tls/mbedtls/lws-gencrypto.c b/lib/tls/mbedtls/lws-gencrypto.c\nindex fb89ab3..c5d5f3d 100644\n--- a/lib/tls/mbedtls/lws-gencrypto.c\n+++ b/lib/tls/mbedtls/lws-gencrypto.c\n@@ -30,7 +30,7 @@\n mbedtls_md_type_t\n lws_gencrypto_mbedtls_hash_to_MD_TYPE(enum lws_genhash_types hash_type)\n {\n-\tmbedtls_md_type_t h \u003d -1;\n+\tmbedtls_md_type_t h \u003d (mbedtls_md_type_t)-1;\n \n \tswitch (hash_type) {\n \tcase LWS_GENHASH_TYPE_MD5:\ndiff --git a/lib/tls/mbedtls/lws-genec.c b/lib/tls/mbedtls/lws-genec.c\nindex 88f6605..ef95c31 100644\n--- a/lib/tls/mbedtls/lws-genec.c\n+++ b/lib/tls/mbedtls/lws-genec.c\n@@ -76,7 +76,7 @@ lws_genec_keypair_import(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side,\n \t\treturn -23;\n \n \tmbedtls_ecp_keypair_init(\u0026kp);\n-\tif (mbedtls_ecp_group_load(\u0026kp.grp, curve-\u003etls_lib_nid))\n+\tif (mbedtls_ecp_group_load(\u0026kp.grp, (mbedtls_ecp_group_id)curve-\u003etls_lib_nid))\n \t\tgoto bail1;\n \n \tctx-\u003ehas_private \u003d !!el[LWS_GENCRYPTO_EC_KEYEL_D].len;\n@@ -243,7 +243,7 @@ lws_genecdh_new_keypair(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side,\n \t}\n \n \tmbedtls_ecdsa_init(\u0026ecdsa);\n-\tn \u003d mbedtls_ecdsa_genkey(\u0026ecdsa, curve-\u003etls_lib_nid,\n+\tn \u003d mbedtls_ecdsa_genkey(\u0026ecdsa, (mbedtls_ecp_group_id)curve-\u003etls_lib_nid,\n \t\t\t\t lws_gencrypto_mbedtls_rngf,\n \t\t\t\t ctx-\u003econtext);\n \tif (n) {\n@@ -269,7 +269,7 @@ lws_genecdh_new_keypair(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side,\n \tmpi[1] \u003d \u0026kp-\u003ed;\n \tmpi[2] \u003d \u0026kp-\u003eQ.Y;\n \n-\tel[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d strlen(curve_name) + 1;\n+\tel[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d (uint32_t)strlen(curve_name) + 1;\n \tel[LWS_GENCRYPTO_EC_KEYEL_CRV].buf \u003d\n \t\t\tlws_malloc(el[LWS_GENCRYPTO_EC_KEYEL_CRV].len, \u0022ec\u0022);\n \tif (!el[LWS_GENCRYPTO_EC_KEYEL_CRV].buf)\n@@ -325,7 +325,7 @@ lws_genecdsa_new_keypair(struct lws_genec_ctx *ctx, const char *curve_name,\n \t}\n \n \t//mbedtls_ecdsa_init(ctx-\u003eu.ctx_ecdsa);\n-\tn \u003d mbedtls_ecdsa_genkey(ctx-\u003eu.ctx_ecdsa, curve-\u003etls_lib_nid,\n+\tn \u003d mbedtls_ecdsa_genkey(ctx-\u003eu.ctx_ecdsa, (mbedtls_ecp_group_id)curve-\u003etls_lib_nid,\n \t\t\t\t lws_gencrypto_mbedtls_rngf, ctx-\u003econtext);\n \tif (n) {\n \t\tlwsl_err(\u0022mbedtls_ecdsa_genkey failed 0x%x\u005cn\u0022, -n);\n@@ -343,7 +343,7 @@ lws_genecdsa_new_keypair(struct lws_genec_ctx *ctx, const char *curve_name,\n \tmpi[1] \u003d \u0026kp-\u003ed;\n \tmpi[2] \u003d \u0026kp-\u003eQ.Y;\n \n-\tel[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d strlen(curve_name) + 1;\n+\tel[LWS_GENCRYPTO_EC_KEYEL_CRV].len \u003d (uint32_t)strlen(curve_name) + 1;\n \tel[LWS_GENCRYPTO_EC_KEYEL_CRV].buf \u003d\n \t\t\tlws_malloc(el[LWS_GENCRYPTO_EC_KEYEL_CRV].len, \u0022ec\u0022);\n \tif (!el[LWS_GENCRYPTO_EC_KEYEL_CRV].buf)\n@@ -422,10 +422,10 @@ lws_genecdsa_hash_sign_jws(struct lws_genec_ctx *ctx, const uint8_t *in,\n \t\tgoto bail2;\n \t}\n \n-\tif (mbedtls_mpi_write_binary(\u0026mpi_r, sig, keybytes))\n+\tif (mbedtls_mpi_write_binary(\u0026mpi_r, sig, (unsigned int)keybytes))\n \t\tgoto bail2;\n \tmbedtls_mpi_free(\u0026mpi_r);\n-\tif (mbedtls_mpi_write_binary(\u0026mpi_s, sig + keybytes, keybytes))\n+\tif (mbedtls_mpi_write_binary(\u0026mpi_s, sig + keybytes, (unsigned int)keybytes))\n \t\tgoto bail1;\n \tmbedtls_mpi_free(\u0026mpi_s);\n \n@@ -471,9 +471,9 @@ lws_genecdsa_hash_sig_verify_jws(struct lws_genec_ctx *ctx, const uint8_t *in,\n \tmbedtls_mpi_init(\u0026mpi_r);\n \tmbedtls_mpi_init(\u0026mpi_s);\n \n-\tif (mbedtls_mpi_read_binary(\u0026mpi_r, sig, keybytes))\n+\tif (mbedtls_mpi_read_binary(\u0026mpi_r, sig, (unsigned int)keybytes))\n \t\treturn -1;\n-\tif (mbedtls_mpi_read_binary(\u0026mpi_s, sig + keybytes, keybytes))\n+\tif (mbedtls_mpi_read_binary(\u0026mpi_s, sig + keybytes, (unsigned int)keybytes))\n \t\tgoto bail1;\n \n \tn \u003d mbedtls_ecdsa_verify(\u0026ctx-\u003eu.ctx_ecdsa-\u003egrp, in, hlen,\n@@ -511,7 +511,7 @@ lws_genecdh_compute_shared_secret(struct lws_genec_ctx *ctx, uint8_t *ss,\n \t\treturn -1;\n \t}\n \n-\tn \u003d mbedtls_ecdh_calc_secret(ctx-\u003eu.ctx_ecdh, \u0026st, ss, *ss_len,\n+\tn \u003d mbedtls_ecdh_calc_secret(ctx-\u003eu.ctx_ecdh, \u0026st, ss, (size_t)*ss_len,\n \t\t\tlws_gencrypto_mbedtls_rngf, ctx-\u003econtext);\n \tif (n)\n \t\treturn -1;\ndiff --git a/lib/tls/mbedtls/lws-genhash.c b/lib/tls/mbedtls/lws-genhash.c\nindex b983686..8f578a9 100644\n--- a/lib/tls/mbedtls/lws-genhash.c\n+++ b/lib/tls/mbedtls/lws-genhash.c\n@@ -36,7 +36,7 @@\n int\n lws_genhash_init(struct lws_genhash_ctx *ctx, enum lws_genhash_types type)\n {\n-\tctx-\u003etype \u003d type;\n+\tctx-\u003etype \u003d (uint8_t)type;\n \n \tswitch (ctx-\u003etype) {\n \tcase LWS_GENHASH_TYPE_MD5:\n@@ -240,7 +240,7 @@ lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type,\n {\n \tint t;\n \n-\tctx-\u003etype \u003d type;\n+\tctx-\u003etype \u003d (uint8_t)type;\n \n \tswitch (type) {\n \tcase LWS_GENHMAC_TYPE_SHA256:\n@@ -256,7 +256,7 @@ lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type,\n \t\treturn -1;\n \t}\n \n-\tctx-\u003ehmac \u003d mbedtls_md_info_from_type(t);\n+\tctx-\u003ehmac \u003d mbedtls_md_info_from_type((mbedtls_md_type_t)t);\n \tif (!ctx-\u003ehmac)\n \t\treturn -1;\n \ndiff --git a/lib/tls/mbedtls/lws-genrsa.c b/lib/tls/mbedtls/lws-genrsa.c\nindex 5269d12..e5d9ba0 100644\n--- a/lib/tls/mbedtls/lws-genrsa.c\n+++ b/lib/tls/mbedtls/lws-genrsa.c\n@@ -59,7 +59,7 @@ lws_genrsa_create(struct lws_genrsa_ctx *ctx, struct lws_gencrypto_keyelem *el,\n \tmbedtls_rsa_init(ctx-\u003ectx, mode_map[mode], 0);\n \n \tctx-\u003ectx-\u003epadding \u003d mode_map[mode];\n-\tctx-\u003ectx-\u003ehash_id \u003d lws_gencrypto_mbedtls_hash_to_MD_TYPE(oaep_hashid);\n+\tctx-\u003ectx-\u003ehash_id \u003d (int)lws_gencrypto_mbedtls_hash_to_MD_TYPE(oaep_hashid);\n \n \t{\n \t\tint n;\n@@ -134,7 +134,7 @@ lws_genrsa_new_keypair(struct lws_context *context, struct lws_genrsa_ctx *ctx,\n \n \tmbedtls_rsa_init(ctx-\u003ectx, mode_map[mode], 0);\n \n-\tn \u003d mbedtls_rsa_gen_key(ctx-\u003ectx, _rngf, context, bits, 65537);\n+\tn \u003d mbedtls_rsa_gen_key(ctx-\u003ectx, _rngf, context, (unsigned int)bits, 65537);\n \tif (n) {\n \t\tlwsl_err(\u0022mbedtls_rsa_gen_key failed 0x%x\u005cn\u0022, -n);\n \t\tgoto cleanup_1;\n@@ -153,7 +153,7 @@ lws_genrsa_new_keypair(struct lws_context *context, struct lws_genrsa_ctx *ctx,\n \t\t\t\t\tmbedtls_mpi_size(mpi[n]), \u0022genrsakey\u0022);\n \t\t\t\tif (!el[n].buf)\n \t\t\t\t\tgoto cleanup;\n-\t\t\t\tel[n].len \u003d mbedtls_mpi_size(mpi[n]);\n+\t\t\t\tel[n].len \u003d (uint32_t)mbedtls_mpi_size(mpi[n]);\n \t\t\t\tif (mbedtls_mpi_write_binary(mpi[n], el[n].buf,\n \t\t\t\t\t\t\t el[n].len))\n \t\t\t\t\tgoto cleanup;\n@@ -209,7 +209,7 @@ lws_genrsa_public_decrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\treturn -1;\n \t}\n \n-\treturn olen;\n+\treturn (int)olen;\n }\n \n int\n@@ -249,7 +249,7 @@ lws_genrsa_private_decrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\treturn -1;\n \t}\n \n-\treturn olen;\n+\treturn (int)olen;\n }\n \n int\n@@ -286,7 +286,7 @@ lws_genrsa_public_encrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\treturn -1;\n \t}\n \n-\treturn mbedtls_mpi_size(\u0026ctx-\u003ectx-\u003eN);\n+\treturn (int)mbedtls_mpi_size(\u0026ctx-\u003ectx-\u003eN);\n }\n \n int\n@@ -323,7 +323,7 @@ lws_genrsa_private_encrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\treturn -1;\n \t}\n \n-\treturn mbedtls_mpi_size(\u0026ctx-\u003ectx-\u003eN);\n+\treturn (int)mbedtls_mpi_size(\u0026ctx-\u003ectx-\u003eN);\n }\n \n int\n@@ -331,7 +331,7 @@ lws_genrsa_hash_sig_verify(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\t\t enum lws_genhash_types hash_type, const uint8_t *sig,\n \t\t\t size_t sig_len)\n {\n-\tint n, h \u003d lws_gencrypto_mbedtls_hash_to_MD_TYPE(hash_type);\n+\tint n, h \u003d (int)lws_gencrypto_mbedtls_hash_to_MD_TYPE(hash_type);\n \n \tif (h \u003c 0)\n \t\treturn -1;\n@@ -344,12 +344,12 @@ lws_genrsa_hash_sig_verify(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \tcase LGRSAM_PKCS1_1_5:\n \t\tn \u003d mbedtls_rsa_rsassa_pkcs1_v15_verify(ctx-\u003ectx, NULL, NULL,\n \t\t\t\t\t\t\tMBEDTLS_RSA_PUBLIC,\n-\t\t\t\t\t\t\th, 0, in, sig);\n+\t\t\t\t\t\t\t(mbedtls_md_type_t)h, 0, in, sig);\n \t\tbreak;\n \tcase LGRSAM_PKCS1_OAEP_PSS:\n \t\tn \u003d mbedtls_rsa_rsassa_pss_verify(ctx-\u003ectx, NULL, NULL,\n \t\t\t\t\t\t MBEDTLS_RSA_PUBLIC,\n-\t\t\t\t\t\t h, 0, in, sig);\n+\t\t\t\t\t\t (mbedtls_md_type_t)h, 0, in, sig);\n \t\tbreak;\n \tdefault:\n \t\treturn -1;\n@@ -368,7 +368,7 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\t enum lws_genhash_types hash_type, uint8_t *sig,\n \t\t size_t sig_len)\n {\n-\tint n, h \u003d lws_gencrypto_mbedtls_hash_to_MD_TYPE(hash_type);\n+\tint n, h \u003d (int)lws_gencrypto_mbedtls_hash_to_MD_TYPE(hash_type);\n \n \tif (h \u003c 0)\n \t\treturn -1;\n@@ -388,12 +388,12 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \tcase LGRSAM_PKCS1_1_5:\n \t\tn \u003d mbedtls_rsa_rsassa_pkcs1_v15_sign(ctx-\u003ectx, NULL, NULL,\n \t\t\t\t\t\t MBEDTLS_RSA_PRIVATE,\n-\t\t\t\t\t\t h, 0, in, sig);\n+\t\t\t\t\t\t (mbedtls_md_type_t)h, 0, in, sig);\n \t\tbreak;\n \tcase LGRSAM_PKCS1_OAEP_PSS:\n \t\tn \u003d mbedtls_rsa_rsassa_pss_sign(ctx-\u003ectx, NULL, NULL,\n \t\t\t\t\t\tMBEDTLS_RSA_PRIVATE,\n-\t\t\t\t\t\th, 0, in, sig);\n+\t\t\t\t\t\t(mbedtls_md_type_t)h, 0, in, sig);\n \t\tbreak;\n \tdefault:\n \t\treturn -1;\n@@ -405,7 +405,7 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\treturn -1;\n \t}\n \n-\treturn ctx-\u003ectx-\u003elen;\n+\treturn (int)ctx-\u003ectx-\u003elen;\n }\n \n int\n@@ -446,44 +446,44 @@ lws_genrsa_render_pkey_asn1(struct lws_genrsa_ctx *ctx, int _private,\n \t*p++ \u003d 0x00;\n \n \tfor (n \u003d 0; n \u003c LWS_GENCRYPTO_RSA_KEYEL_COUNT; n++) {\n-\t\tint m \u003d mbedtls_mpi_size(mpi[n]);\n+\t\tint m \u003d (int)mbedtls_mpi_size(mpi[n]);\n \t\tuint8_t *elen;\n \n \t\t*p++ \u003d 0x02;\n \t\telen \u003d p;\n \t\tif (m \u003c 0x7f)\n-\t\t\t*p++ \u003d m;\n+\t\t\t*p++ \u003d (uint8_t)m;\n \t\telse {\n \t\t\t*p++ \u003d 0x82;\n-\t\t\t*p++ \u003d m \u003e\u003e 8;\n-\t\t\t*p++ \u003d m \u0026 0xff;\n+\t\t\t*p++ \u003d (uint8_t)(m \u003e\u003e 8);\n+\t\t\t*p++ \u003d (uint8_t)(m \u0026 0xff);\n \t\t}\n \n \t\tif (p + m \u003e end)\n \t\t\treturn -1;\n \n-\t\tif (mbedtls_mpi_write_binary(mpi[n], p, m))\n+\t\tif (mbedtls_mpi_write_binary(mpi[n], p, (unsigned int)m))\n \t\t\treturn -1;\n \t\tif (p[0] \u0026 0x80) {\n \t\t\tp[0] \u003d 0x00;\n-\t\t\tif (mbedtls_mpi_write_binary(mpi[n], \u0026p[1], m))\n+\t\t\tif (mbedtls_mpi_write_binary(mpi[n], \u0026p[1], (unsigned int)m))\n \t\t\t\treturn -1;\n \t\t\tm++;\n \t\t}\n \t\tif (m \u003c 0x7f)\n-\t\t\t*elen \u003d m;\n+\t\t\t*elen \u003d (uint8_t)m;\n \t\telse {\n \t\t\t*elen++ \u003d 0x82;\n-\t\t\t*elen++ \u003d m \u003e\u003e 8;\n-\t\t\t*elen \u003d m \u0026 0xff;\n+\t\t\t*elen++ \u003d (uint8_t)(m \u003e\u003e 8);\n+\t\t\t*elen \u003d (uint8_t)(m \u0026 0xff);\n \t\t}\n \t\tp +\u003d m;\n \t}\n \n \tn \u003d lws_ptr_diff(p, pkey_asn1);\n \n-\t*totlen++ \u003d (n - 4) \u003e\u003e 8;\n-\t*totlen \u003d (n - 4) \u0026 0xff;\n+\t*totlen++ \u003d (uint8_t)((n - 4) \u003e\u003e 8);\n+\t*totlen \u003d (uint8_t)((n - 4) \u0026 0xff);\n \n \treturn n;\n }\ndiff --git a/lib/tls/mbedtls/mbedtls-client.c b/lib/tls/mbedtls/mbedtls-client.c\nindex 97e6009..f370be1 100644\n--- a/lib/tls/mbedtls/mbedtls-client.c\n+++ b/lib/tls/mbedtls/mbedtls-client.c\n@@ -92,7 +92,7 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \tlwsl_info(\u0022%s: %s: client conn sending ALPN list '%s'\u005cn\u0022,\n \t\t __func__, lws_wsi_tag(wsi), alpn_comma);\n \n-\tprotos.len \u003d lws_alpn_comma_to_openssl(alpn_comma, protos.data,\n+\tprotos.len \u003d (uint8_t)lws_alpn_comma_to_openssl(alpn_comma, protos.data,\n \t\t\t\t\t sizeof(protos.data) - 1);\n \n \t/* with mbedtls, protos is not pointed to after exit from this call */\n@@ -137,7 +137,7 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \t\t\tgoto no_client_cert;\n \t\tsize \u003d (size_t) flen;\n \n-\t\terr \u003d SSL_use_certificate_ASN1(wsi-\u003etls.ssl, data, size);\n+\t\terr \u003d SSL_use_certificate_ASN1(wsi-\u003etls.ssl, data, (int)size);\n \t\tlws_free_set_NULL(data);\n \t\tif (err !\u003d 1)\n \t\t\tgoto no_client_cert;\n@@ -160,7 +160,7 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \t\t\tgoto no_client_cert;\n \t\tsize \u003d (size_t) flen;\n \n-\t\terr \u003d SSL_use_PrivateKey_ASN1(0, wsi-\u003etls.ssl, data, size);\n+\t\terr \u003d SSL_use_PrivateKey_ASN1(0, wsi-\u003etls.ssl, data, (int)size);\n \t\tlws_free_set_NULL(data);\n \t\tif (err !\u003d 1)\n \t\t\tgoto no_client_cert;\n@@ -186,7 +186,7 @@ int ERR_get_error(void)\n }\n \n enum lws_ssl_capable_status\n-lws_tls_client_connect(struct lws *wsi, char *errbuf, int elen)\n+lws_tls_client_connect(struct lws *wsi, char *errbuf, size_t elen)\n {\n \tint m, n \u003d SSL_connect(wsi-\u003etls.ssl);\n \tconst unsigned char *prot;\n@@ -216,7 +216,7 @@ lws_tls_client_connect(struct lws *wsi, char *errbuf, int elen)\n }\n \n int\n-lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len)\n+lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, size_t ebuf_len)\n {\n \tint n;\n \tX509 *peer \u003d SSL_get_peer_certificate(wsi-\u003etls.ssl);\n@@ -231,7 +231,7 @@ lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len)\n \t}\n \tlwsl_info(\u0022peer provided cert\u005cn\u0022);\n \n-\tn \u003d SSL_get_verify_result(wsi-\u003etls.ssl);\n+\tn \u003d (int)SSL_get_verify_result(wsi-\u003etls.ssl);\n lwsl_debug(\u0022get_verify says %d\u005cn\u0022, n);\n \n \tif (n \u003d\u003d X509_V_OK)\n@@ -258,7 +258,7 @@ lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len)\n \t}\n \tlws_snprintf(ebuf, ebuf_len,\n \t\t\u0022server's cert didn't look good, (use_ssl 0x%x) X509_V_ERR \u003d %d: %s\u005cn\u0022,\n-\t\t(unsigned int)wsi-\u003etls.use_ssl, n, ERR_error_string(n, sb));\n+\t\t(unsigned int)wsi-\u003etls.use_ssl, n, ERR_error_string((unsigned long)n, sb));\n \tlwsl_info(\u0022%s\u005cn\u0022, ebuf);\n \tlws_tls_err_describe_clear();\n \n@@ -286,7 +286,7 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \tint n;\n \n \tif (!method) {\n-\t\terror \u003d ERR_get_error();\n+\t\terror \u003d (unsigned long)ERR_get_error();\n \t\tlwsl_err(\u0022problem creating ssl method %lu: %s\u005cn\u0022,\n \t\t\terror, ERR_error_string(error,\n \t\t\t\t (char *)vh-\u003econtext-\u003ept[0].serv_buf));\n@@ -295,7 +295,7 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t/* create context */\n \tvh-\u003etls.ssl_client_ctx \u003d SSL_CTX_new(method);\n \tif (!vh-\u003etls.ssl_client_ctx) {\n-\t\terror \u003d ERR_get_error();\n+\t\terror \u003d (unsigned long)ERR_get_error();\n \t\tlwsl_err(\u0022problem creating ssl context %lu: %s\u005cn\u0022,\n \t\t\terror, ERR_error_string(error,\n \t\t\t\t (char *)vh-\u003econtext-\u003ept[0].serv_buf));\n@@ -314,12 +314,12 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\t\tlwsl_err(\u0022Load CA cert file %s failed\u005cn\u0022, ca_filepath);\n \t\t\treturn 1;\n \t\t}\n-\t\tvh-\u003etls.x509_client_CA \u003d d2i_X509(NULL, buf, len);\n+\t\tvh-\u003etls.x509_client_CA \u003d d2i_X509(NULL, buf, (long)len);\n \t\tfree(buf);\n \t\tlwsl_notice(\u0022Loading client CA for verification %s\u005cn\u0022, ca_filepath);\n #endif\n \t} else {\n-\t\tvh-\u003etls.x509_client_CA \u003d d2i_X509(NULL, (uint8_t*)ca_mem, ca_mem_len);\n+\t\tvh-\u003etls.x509_client_CA \u003d d2i_X509(NULL, (uint8_t*)ca_mem, (long)ca_mem_len);\n \t\tlwsl_notice(\u0022%s: using mem client CA cert %d\u005cn\u0022,\n \t\t\t __func__, ca_mem_len);\n \t}\n@@ -354,10 +354,10 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\tbuf[amount++] \u003d '\u005c0';\n \n \t\tSSL_CTX_use_PrivateKey_ASN1(0, vh-\u003etls.ssl_client_ctx,\n-\t\t\t\tbuf, amount);\n+\t\t\t\tbuf, (long)amount);\n \n \t\tn \u003d SSL_CTX_use_certificate_ASN1(vh-\u003etls.ssl_client_ctx,\n-\t\t\t\tamount, buf);\n+\t\t\t\t(int)amount, buf);\n \t\tlws_free(buf);\n \t\tif (n \u003c 1) {\n \t\t\tlwsl_err(\u0022problem %d getting cert '%s'\u005cn\u0022, n,\n@@ -371,9 +371,9 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t} else if (cert_mem \u0026\u0026 cert_mem_len) {\n \t\t/* lwsl_hexdump_notice(cert_mem, cert_mem_len - 1); */\n \t\tSSL_CTX_use_PrivateKey_ASN1(0, vh-\u003etls.ssl_client_ctx,\n-\t\t\t\tcert_mem, cert_mem_len - 1);\n+\t\t\t\tcert_mem, (long)cert_mem_len - 1);\n \t\tn \u003d SSL_CTX_use_certificate_ASN1(vh-\u003etls.ssl_client_ctx,\n-\t\t\t\t\t\t cert_mem_len, cert_mem);\n+\t\t\t\t\t\t (int)cert_mem_len, cert_mem);\n \t\tif (n \u003c 1) {\n \t\t\tlwsl_err(\u0022%s: (mbedtls) problem interpreting client cert\u005cn\u0022,\n \t\t\t\t __func__);\n@@ -391,7 +391,7 @@ int\n lws_tls_client_vhost_extra_cert_mem(struct lws_vhost *vh,\n const uint8_t *der, size_t der_len)\n {\n-\tif (SSL_CTX_add_client_CA_ASN1(vh-\u003etls.ssl_client_ctx, der_len, der) !\u003d 1) {\n+\tif (SSL_CTX_add_client_CA_ASN1(vh-\u003etls.ssl_client_ctx, (int)der_len, der) !\u003d 1) {\n \t\tlwsl_err(\u0022%s: failed\u005cn\u0022, __func__);\n \t\t\treturn 1;\n \t}\ndiff --git a/lib/tls/mbedtls/mbedtls-server.c b/lib/tls/mbedtls/mbedtls-server.c\nindex 80307f7..1b9d6f5 100644\n--- a/lib/tls/mbedtls/mbedtls-server.c\n+++ b/lib/tls/mbedtls/mbedtls-server.c\n@@ -125,7 +125,7 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\treturn 0;\n \t}\n \n-\tn \u003d lws_tls_generic_cert_checks(vhost, cert, private_key);\n+\tn \u003d (int)lws_tls_generic_cert_checks(vhost, cert, private_key);\n \n \tif (n \u003d\u003d LWS_TLS_EXTANT_NO \u0026\u0026 (!mem_cert || !mem_privkey))\n \t\treturn 0;\n@@ -161,7 +161,7 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\treturn 1;\n \t}\n \n-\terr \u003d SSL_CTX_use_certificate_ASN1(vhost-\u003etls.ssl_ctx, flen, p);\n+\terr \u003d SSL_CTX_use_certificate_ASN1(vhost-\u003etls.ssl_ctx, (int)flen, p);\n \tlws_free_set_NULL(p);\n \tif (!err) {\n \t\tlwsl_err(\u0022Problem loading cert\u005cn\u0022);\n@@ -176,7 +176,7 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\treturn 1;\n \t}\n \n-\terr \u003d SSL_CTX_use_PrivateKey_ASN1(0, vhost-\u003etls.ssl_ctx, p, flen);\n+\terr \u003d SSL_CTX_use_PrivateKey_ASN1(0, vhost-\u003etls.ssl_ctx, p, (long)flen);\n \tlws_free_set_NULL(p);\n \tif (!err) {\n \t\tlwsl_err(\u0022Problem loading key\u005cn\u0022);\n@@ -464,7 +464,7 @@ lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a,\n \t\t\t const char *san_b)\n {\n \tint buflen \u003d 0x560;\n-\tuint8_t *buf \u003d lws_malloc(buflen, \u0022tmp cert buf\u0022), *p \u003d buf, *pkey_asn1;\n+\tuint8_t *buf \u003d lws_malloc((unsigned int)buflen, \u0022tmp cert buf\u0022), *p \u003d buf, *pkey_asn1;\n \tstruct lws_genrsa_ctx ctx;\n \tstruct lws_gencrypto_keyelem el[LWS_GENCRYPTO_RSA_KEYEL_COUNT];\n \tuint8_t digest[32];\n@@ -483,31 +483,31 @@ lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a,\n \t}\n \n \tn \u003d sizeof(ss_cert_leadin);\n-\tmemcpy(p, ss_cert_leadin, n);\n+\tmemcpy(p, ss_cert_leadin, (unsigned int)n);\n \tp +\u003d n;\n \n \tadj \u003d (0x0556 - 0x401) + (keybits / 4) + 1;\n-\tbuf[2] \u003d adj \u003e\u003e 8;\n-\tbuf[3] \u003d adj \u0026 0xff;\n+\tbuf[2] \u003d (uint8_t)(adj \u003e\u003e 8);\n+\tbuf[3] \u003d (uint8_t)(adj \u0026 0xff);\n \n \tadj \u003d (0x033e - 0x201) + (keybits / 8) + 1;\n-\tbuf[6] \u003d adj \u003e\u003e 8;\n-\tbuf[7] \u003d adj \u0026 0xff;\n+\tbuf[6] \u003d (uint8_t)(adj \u003e\u003e 8);\n+\tbuf[7] \u003d (uint8_t)(adj \u0026 0xff);\n \n \tadj \u003d (0x0222 - 0x201) + (keybits / 8) + 1;\n-\tbuf[0xc3] \u003d adj \u003e\u003e 8;\n-\tbuf[0xc4] \u003d adj \u0026 0xff;\n+\tbuf[0xc3] \u003d (uint8_t)(adj \u003e\u003e 8);\n+\tbuf[0xc4] \u003d (uint8_t)(adj \u0026 0xff);\n \n \tadj \u003d (0x020f - 0x201) + (keybits / 8) + 1;\n-\tbuf[0xd6] \u003d adj \u003e\u003e 8;\n-\tbuf[0xd7] \u003d adj \u0026 0xff;\n+\tbuf[0xd6] \u003d (uint8_t)(adj \u003e\u003e 8);\n+\tbuf[0xd7] \u003d (uint8_t)(adj \u0026 0xff);\n \n \tadj \u003d (0x020a - 0x201) + (keybits / 8) + 1;\n-\tbuf[0xdb] \u003d adj \u003e\u003e 8;\n-\tbuf[0xdc] \u003d adj \u0026 0xff;\n+\tbuf[0xdb] \u003d (uint8_t)(adj \u003e\u003e 8);\n+\tbuf[0xdc] \u003d (uint8_t)(adj \u0026 0xff);\n \n-\t*p++ \u003d ((keybits / 8) + 1) \u003e\u003e 8;\n-\t*p++ \u003d ((keybits / 8) + 1) \u0026 0xff;\n+\t*p++ \u003d (uint8_t)(((keybits / 8) + 1) \u003e\u003e 8);\n+\t*p++ \u003d (uint8_t)(((keybits / 8) + 1) \u0026 0xff);\n \n \t/* we need to drop 1 + (keybits / 8) bytes of n in here, 00 + key */\n \n@@ -524,8 +524,8 @@ lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a,\n \tp +\u003d SAN_A_LENGTH;\n \tmemcpy(p, ss_cert_sig_leadin, sizeof(ss_cert_sig_leadin));\n \n-\tp[17] \u003d ((keybits / 8) + 1) \u003e\u003e 8;\n-\tp[18] \u003d ((keybits / 8) + 1) \u0026 0xff;\n+\tp[17] \u003d (uint8_t)(((keybits / 8) + 1) \u003e\u003e 8);\n+\tp[18] \u003d (uint8_t)(((keybits / 8) + 1) \u0026 0xff);\n \n \tp +\u003d sizeof(ss_cert_sig_leadin);\n \n@@ -534,7 +534,7 @@ lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a,\n \tif (lws_genhash_init(\u0026hash_ctx, LWS_GENHASH_TYPE_SHA256))\n \t\tgoto bail2;\n \n-\tif (lws_genhash_update(\u0026hash_ctx, buf, lws_ptr_diff(p, buf))) {\n+\tif (lws_genhash_update(\u0026hash_ctx, buf, lws_ptr_diff_size_t(p, buf))) {\n \t\tlws_genhash_destroy(\u0026hash_ctx, NULL);\n \n \t\tgoto bail2;\n@@ -545,16 +545,16 @@ lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a,\n \t/* sign the hash */\n \n \tn \u003d lws_genrsa_hash_sign(\u0026ctx, digest, LWS_GENHASH_TYPE_SHA256, p,\n-\t\t\t\t buflen - lws_ptr_diff(p, buf));\n+\t\t\t\t (size_t)((size_t)buflen - lws_ptr_diff_size_t(p, buf)));\n \tif (n \u003c 0)\n \t\tgoto bail2;\n \tp +\u003d n;\n \n-\tpkey_asn1 \u003d lws_malloc(pkey_asn1_len, \u0022mbed crt tmp\u0022);\n+\tpkey_asn1 \u003d lws_malloc((unsigned int)pkey_asn1_len, \u0022mbed crt tmp\u0022);\n \tif (!pkey_asn1)\n \t\tgoto bail2;\n \n-\tm \u003d lws_genrsa_render_pkey_asn1(\u0026ctx, 1, pkey_asn1, pkey_asn1_len);\n+\tm \u003d lws_genrsa_render_pkey_asn1(\u0026ctx, 1, pkey_asn1, (size_t)pkey_asn1_len);\n \tif (m \u003c 0) {\n \t\tlws_free(pkey_asn1);\n \t\tgoto bail2;\n@@ -627,7 +627,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \tmbedtls_pk_context mpk;\n \tint buf_size \u003d 4096, n;\n \tchar subject[200], *p \u003d subject, *end \u003d p + sizeof(subject) - 1;\n-\tuint8_t *buf \u003d malloc(buf_size); /* malloc because given to user code */\n+\tuint8_t *buf \u003d malloc((unsigned int)buf_size); /* malloc because given to user code */\n \n \tif (!buf)\n \t\treturn -1;\n@@ -641,7 +641,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t}\n \n \tn \u003d mbedtls_rsa_gen_key(mbedtls_pk_rsa(mpk), _rngf, context,\n-\t\t\t\tlws_plat_recommended_rsa_bits(), 65537);\n+\t\t\t\t(unsigned int)lws_plat_recommended_rsa_bits(), 65537);\n \tif (n) {\n \t\tlwsl_notice(\u0022%s: failed to generate keys\u005cn\u0022, __func__);\n \n@@ -654,7 +654,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t\tif (p !\u003d subject)\n \t\t\t*p++ \u003d ',';\n \t\tif (elements[n])\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s\u003d%s\u0022, x5[n],\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022%s\u003d%s\u0022, x5[n],\n \t\t\t\t\t elements[n]);\n \t}\n \n@@ -669,7 +669,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t * return value to determine where you should start\n \t * using the buffer\n \t */\n-\tn \u003d mbedtls_x509write_csr_der(\u0026csr, buf, buf_size, _rngf, context);\n+\tn \u003d mbedtls_x509write_csr_der(\u0026csr, buf, (size_t)buf_size, _rngf, context);\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: write csr der failed\u005cn\u0022, __func__);\n \t\tgoto fail1;\n@@ -677,7 +677,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \n \t/* we have it in DER, we need it in b64URL */\n \n-\tn \u003d lws_jws_base64_enc((char *)(buf + buf_size) - n, n,\n+\tn \u003d lws_jws_base64_enc((char *)(buf + buf_size) - n, (size_t)n,\n \t\t\t (char *)dcsr, csr_len);\n \tif (n \u003c 0)\n \t\tgoto fail1;\n@@ -688,7 +688,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t * one step\n \t */\n \n-\tif (mbedtls_pk_write_key_pem(\u0026mpk, buf, buf_size)) {\n+\tif (mbedtls_pk_write_key_pem(\u0026mpk, buf, (size_t)buf_size)) {\n \t\tlwsl_notice(\u0022write key pem failed\u005cn\u0022);\n \t\tgoto fail1;\n \t}\ndiff --git a/lib/tls/mbedtls/mbedtls-ssl.c b/lib/tls/mbedtls/mbedtls-ssl.c\nindex 91aab7e..daf5152 100644\n--- a/lib/tls/mbedtls/mbedtls-ssl.c\n+++ b/lib/tls/mbedtls/mbedtls-ssl.c\n@@ -42,7 +42,7 @@ lws_ssl_destroy(struct lws_vhost *vhost)\n }\n \n int\n-lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tstruct lws_context *context \u003d wsi-\u003ea.context;\n \tstruct lws_context_per_thread *pt \u003d \u0026context-\u003ept[(int)wsi-\u003etsi];\n@@ -54,7 +54,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \tlws_stats_bump(pt, LWSSTATS_C_API_READ, 1);\n \n \terrno \u003d 0;\n-\tn \u003d SSL_read(wsi-\u003etls.ssl, buf, len);\n+\tn \u003d SSL_read(wsi-\u003etls.ssl, buf, (int)len);\n #if defined(LWS_PLAT_FREERTOS)\n \tif (!n \u0026\u0026 errno \u003d\u003d LWS_ENOTCONN) {\n \t\tlwsl_debug(\u0022%s: SSL_read ENOTCONN\u005cn\u0022, lws_wsi_tag(wsi));\n@@ -115,11 +115,11 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \tlwsl_hexdump_notice(buf, n);\n #endif\n \n-\tlws_stats_bump(pt, LWSSTATS_B_READ, n);\n+\tlws_stats_bump(pt, LWSSTATS_B_READ, (uint64_t)n);\n \n #if defined(LWS_WITH_SERVER_STATUS)\n \tif (wsi-\u003ea.vhost)\n-\t\twsi-\u003ea.vhost-\u003econn_stats.rx +\u003d n;\n+\t\twsi-\u003ea.vhost-\u003econn_stats.rx \u003d wsi-\u003ea.vhost-\u003econn_stats.rx + (unsigned long long)n;\n #endif\n #if defined(LWS_WITH_DETAILED_LATENCY)\n \tif (context-\u003edetailed_latency_cb) {\n@@ -139,7 +139,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \t * Because these won't signal at the network layer with POLLIN\n \t * and if we don't realize, this data will sit there forever\n \t */\n-\tif (n !\u003d len)\n+\tif (n !\u003d (int)len)\n \t\tgoto bail;\n \tif (!wsi-\u003etls.ssl)\n \t\tgoto bail;\n@@ -168,7 +168,7 @@ lws_ssl_pending(struct lws *wsi)\n }\n \n int\n-lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tint n, m;\n \n@@ -178,14 +178,14 @@ lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len)\n \t * paths before sending data into the tls tunnel, where you can dump it\n \t * and see what is being sent.\n \t */\n-\tlwsl_notice(\u0022%s: len %d\u005cn\u0022, __func__, len);\n+\tlwsl_notice(\u0022%s: len %d\u005cn\u0022, __func__, (int)len);\n \tlwsl_hexdump_notice(buf, len);\n #endif\n \n \tif (!wsi-\u003etls.ssl)\n \t\treturn lws_ssl_capable_write_no_ssl(wsi, buf, len);\n \n-\tn \u003d SSL_write(wsi-\u003etls.ssl, buf, len);\n+\tn \u003d SSL_write(wsi-\u003etls.ssl, buf, (int)len);\n \tif (n \u003e 0)\n \t\treturn n;\n \ndiff --git a/lib/tls/mbedtls/mbedtls-x509.c b/lib/tls/mbedtls/mbedtls-x509.c\nindex 54d47b1..523d553 100644\n--- a/lib/tls/mbedtls/mbedtls-x509.c\n+++ b/lib/tls/mbedtls/mbedtls-x509.c\n@@ -80,7 +80,7 @@ lws_tls_mbedtls_get_x509_name(mbedtls_x509_name *name,\n \n \t\tmemcpy(\u0026buf-\u003ens.name[0], name-\u003eval.p, name-\u003eval.len);\n \t\tbuf-\u003ens.name[name-\u003eval.len] \u003d '\u005c0';\n-\t\tbuf-\u003ens.len \u003d name-\u003eval.len;\n+\t\tbuf-\u003ens.len \u003d (int)name-\u003eval.len;\n \n \t\treturn 0;\n \t}\n@@ -280,7 +280,7 @@ int\n lws_x509_public_to_jwk(struct lws_jwk *jwk, struct lws_x509_cert *x509,\n \t\t const char *curves, int rsa_min_bits)\n {\n-\tint kt \u003d mbedtls_pk_get_type(\u0026x509-\u003ecert.pk), n, count \u003d 0, ret \u003d -1;\n+\tint kt \u003d (int)mbedtls_pk_get_type(\u0026x509-\u003ecert.pk), n, count \u003d 0, ret \u003d -1;\n \tmbedtls_rsa_context *rsactx;\n \tmbedtls_ecp_keypair *ecpctx;\n \tmbedtls_mpi *mpi[LWS_GENCRYPTO_RSA_KEYEL_COUNT];\n@@ -315,7 +315,7 @@ lws_x509_public_to_jwk(struct lws_jwk *jwk, struct lws_x509_cert *x509,\n \t\tmpi[LWS_GENCRYPTO_EC_KEYEL_Y] \u003d \u0026ecpctx-\u003eQ.Y;\n \n \t\tif (lws_genec_confirm_curve_allowed_by_tls_id(curves,\n-\t\t\t\tecpctx-\u003egrp.id, jwk))\n+\t\t\t\t(int)ecpctx-\u003egrp.id, jwk))\n \t\t\t/* already logged */\n \t\t\tgoto bail;\n \n@@ -335,7 +335,7 @@ lws_x509_public_to_jwk(struct lws_jwk *jwk, struct lws_x509_cert *x509,\n \t\tjwk-\u003ee[n].buf \u003d lws_malloc(mbedtls_mpi_size(mpi[n]), \u0022certjwk\u0022);\n \t\tif (!jwk-\u003ee[n].buf)\n \t\t\tgoto bail;\n-\t\tjwk-\u003ee[n].len \u003d mbedtls_mpi_size(mpi[n]);\n+\t\tjwk-\u003ee[n].len \u003d (uint32_t)mbedtls_mpi_size(mpi[n]);\n \t\tmbedtls_mpi_write_binary(mpi[n], jwk-\u003ee[n].buf, jwk-\u003ee[n].len);\n \t}\n \n@@ -363,8 +363,8 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \n \tn \u003d 0;\n \tif (passphrase)\n-\t\tn \u003d strlen(passphrase);\n-\tn \u003d mbedtls_pk_parse_key(\u0026pk, pem, len, (uint8_t *)passphrase, n);\n+\t\tn \u003d (int)strlen(passphrase);\n+\tn \u003d mbedtls_pk_parse_key(\u0026pk, pem, len, (uint8_t *)passphrase, (unsigned int)n);\n \tif (n) {\n \t\tlwsl_err(\u0022%s: parse PEM key failed: -0x%x\u005cn\u0022, __func__, -n);\n \n@@ -410,7 +410,7 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \t\tjwk-\u003ee[n].buf \u003d lws_malloc(mbedtls_mpi_size(mpi[n]), \u0022certjwk\u0022);\n \t\tif (!jwk-\u003ee[n].buf)\n \t\t\tgoto bail;\n-\t\tjwk-\u003ee[n].len \u003d mbedtls_mpi_size(mpi[n]);\n+\t\tjwk-\u003ee[n].len \u003d (uint32_t)mbedtls_mpi_size(mpi[n]);\n \t\tmbedtls_mpi_write_binary(mpi[n], jwk-\u003ee[n].buf, jwk-\u003ee[n].len);\n \t}\n \ndiff --git a/lib/tls/mbedtls/wrapper/library/ssl_lib.c b/lib/tls/mbedtls/wrapper/library/ssl_lib.c\nindex f9c6711..54159ed 100644\n--- a/lib/tls/mbedtls/wrapper/library/ssl_lib.c\n+++ b/lib/tls/mbedtls/wrapper/library/ssl_lib.c\n@@ -834,7 +834,7 @@ void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len)\n {\n SSL_ASSERT3(ctx);\n \n- ctx-\u003eread_buffer_len \u003d len;\n+ ctx-\u003eread_buffer_len \u003d (int)len;\n }\n \n /**\n@@ -845,7 +845,7 @@ void SSL_set_default_read_buffer_len(SSL *ssl, size_t len)\n SSL_ASSERT3(ssl);\n SSL_ASSERT3(len);\n \n- SSL_METHOD_CALL(set_bufflen, ssl, len);\n+ SSL_METHOD_CALL(set_bufflen, ssl, (int)len);\n }\n \n /**\n@@ -1167,7 +1167,7 @@ _openssl_alpn_to_mbedtls(struct alpn_ctx *ac, char ***palpn_protos)\n \n \t/* allocate space for count + 1 pointers and the data afterwards */\n \n-\talpn_protos \u003d ssl_mem_zalloc((count + 1) * sizeof(char *) + ac-\u003elen + 1);\n+\talpn_protos \u003d ssl_mem_zalloc((unsigned int)(count + 1) * sizeof(char *) + ac-\u003elen + 1);\n \tif (!alpn_protos)\n \t\treturn;\n \n@@ -1175,7 +1175,7 @@ _openssl_alpn_to_mbedtls(struct alpn_ctx *ac, char ***palpn_protos)\n \n \t/* convert to mbedtls format */\n \n-\tq \u003d (unsigned char *)alpn_protos + (count + 1) * sizeof(char *);\n+\tq \u003d (unsigned char *)alpn_protos + (unsigned int)(count + 1) * sizeof(char *);\n \tp \u003d ac-\u003edata;\n \tcount \u003d 0;\n \ndiff --git a/lib/tls/mbedtls/wrapper/library/ssl_pkey.c b/lib/tls/mbedtls/wrapper/library/ssl_pkey.c\nindex 567a33e..7c92b69 100644\n--- a/lib/tls/mbedtls/wrapper/library/ssl_pkey.c\n+++ b/lib/tls/mbedtls/wrapper/library/ssl_pkey.c\n@@ -100,7 +100,7 @@ EVP_PKEY *d2i_PrivateKey(int type,\n m \u003d 1;\n }\n \n- ret \u003d EVP_PKEY_METHOD_CALL(load, pkey, *pp, length);\n+ ret \u003d EVP_PKEY_METHOD_CALL(load, pkey, *pp, (int)length);\n if (ret) {\n SSL_DEBUG(SSL_PKEY_ERROR_LEVEL, \u0022EVP_PKEY_METHOD_CALL(load) return %d\u0022, ret);\n goto failed2;\ndiff --git a/lib/tls/mbedtls/wrapper/library/ssl_x509.c b/lib/tls/mbedtls/wrapper/library/ssl_x509.c\nindex 09a6afd..03bceb5 100644\n--- a/lib/tls/mbedtls/wrapper/library/ssl_x509.c\n+++ b/lib/tls/mbedtls/wrapper/library/ssl_x509.c\n@@ -104,7 +104,7 @@ X509* d2i_X509(X509 **cert, const unsigned char *buffer, long len)\n m \u003d 1;\n }\n \n- ret \u003d X509_METHOD_CALL(load, x, buffer, len);\n+ ret \u003d X509_METHOD_CALL(load, x, buffer, (int)len);\n if (ret) {\n SSL_DEBUG(SSL_PKEY_ERROR_LEVEL, \u0022X509_METHOD_CALL(load) return %d\u0022, ret);\n goto failed2;\ndiff --git a/lib/tls/mbedtls/wrapper/platform/ssl_pm.c b/lib/tls/mbedtls/wrapper/platform/ssl_pm.c\nindex eb4a088..2c810d9 100755\n--- a/lib/tls/mbedtls/wrapper/platform/ssl_pm.c\n+++ b/lib/tls/mbedtls/wrapper/platform/ssl_pm.c\n@@ -123,7 +123,7 @@ int ssl_pm_new(SSL *ssl)\n if (!ssl-\u003ectx-\u003eread_buffer_len)\n \t ssl-\u003ectx-\u003eread_buffer_len \u003d 2048;\n \n- max_content_len \u003d ssl-\u003ectx-\u003eread_buffer_len;\n+ max_content_len \u003d (unsigned int)ssl-\u003ectx-\u003eread_buffer_len;\n // printf(\u0022ssl-\u003ectx-\u003eread_buffer_len \u003d %d ++++++++++++++++++++\u005cn\u0022, ssl-\u003ectx-\u003eread_buffer_len);\n \n mbedtls_net_init(\u0026ssl_pm-\u003efd);\n@@ -405,7 +405,7 @@ int ssl_pm_read(SSL *ssl, void *buffer, int len)\n int ret;\n struct ssl_pm *ssl_pm \u003d (struct ssl_pm *)ssl-\u003essl_pm;\n \n- ret \u003d mbedtls_ssl_read(\u0026ssl_pm-\u003essl, buffer, len);\n+ ret \u003d mbedtls_ssl_read(\u0026ssl_pm-\u003essl, buffer, (size_t)len);\n if (ret \u003c 0) {\n \t // lwsl_notice(\u0022%s: mbedtls_ssl_read says -0x%x\u005cn\u0022, __func__, -ret);\n SSL_DEBUG(SSL_PLATFORM_ERROR_LEVEL, \u0022mbedtls_ssl_read() return -0x%x\u0022, -ret);\n@@ -428,7 +428,7 @@ int ssl_pm_send(SSL *ssl, const void *buffer, int len)\n int ret;\n struct ssl_pm *ssl_pm \u003d (struct ssl_pm *)ssl-\u003essl_pm;\n \n- ret \u003d mbedtls_ssl_write(\u0026ssl_pm-\u003essl, buffer, len);\n+ ret \u003d mbedtls_ssl_write(\u0026ssl_pm-\u003essl, buffer, (size_t)len);\n /*\n * We can get a positive number, which may be less than len... that\n * much was sent successfully and you can call again to send more.\n@@ -474,7 +474,7 @@ int ssl_pm_pending(const SSL *ssl)\n {\n struct ssl_pm *ssl_pm \u003d (struct ssl_pm *)ssl-\u003essl_pm;\n \n- return mbedtls_ssl_get_bytes_avail(\u0026ssl_pm-\u003essl);\n+ return (int)mbedtls_ssl_get_bytes_avail(\u0026ssl_pm-\u003essl);\n }\n \n void ssl_pm_set_fd(SSL *ssl, int fd, int mode)\n@@ -654,21 +654,21 @@ int x509_pm_load(X509 *x, const unsigned char *buffer, int len)\n \n mbedtls_x509_crt_init(x509_pm-\u003ex509_crt);\n if (buffer[0] !\u003d 0x30) {\n-\t load_buf \u003d ssl_mem_malloc(len + 1);\n+\t load_buf \u003d ssl_mem_malloc((unsigned int)len + 1);\n \t if (!load_buf) {\n \t\tSSL_DEBUG(SSL_PLATFORM_ERROR_LEVEL, \u0022no enough memory \u003e (load_buf)\u0022);\n \t\tgoto failed;\n \t }\n \n-\t ssl_memcpy(load_buf, buffer, len);\n+\t ssl_memcpy(load_buf, buffer, (unsigned int)len);\n \t load_buf[len] \u003d '\u005c0';\n \n-\t ret \u003d mbedtls_x509_crt_parse(x509_pm-\u003ex509_crt, load_buf, len + 1);\n+\t ret \u003d mbedtls_x509_crt_parse(x509_pm-\u003ex509_crt, load_buf, (unsigned int)len + 1);\n \t ssl_mem_free(load_buf);\n } else {\n \t // printf(\u0022parsing as der\u005cn\u0022);\n \n-\t ret \u003d mbedtls_x509_crt_parse_der(x509_pm-\u003ex509_crt, buffer, len);\n+\t ret \u003d mbedtls_x509_crt_parse_der(x509_pm-\u003ex509_crt, buffer, (unsigned int)len);\n }\n \n if (ret) {\n@@ -737,18 +737,18 @@ int pkey_pm_load(EVP_PKEY *pk, const unsigned char *buffer, int len)\n }\n }\n \n- load_buf \u003d ssl_mem_malloc(len + 1);\n+ load_buf \u003d ssl_mem_malloc((unsigned int)len + 1);\n if (!load_buf) {\n SSL_DEBUG(SSL_PLATFORM_ERROR_LEVEL, \u0022no enough memory \u003e (load_buf)\u0022);\n goto failed;\n }\n \n- ssl_memcpy(load_buf, buffer, len);\n+ ssl_memcpy(load_buf, buffer, (unsigned int)len);\n load_buf[len] \u003d '\u005c0';\n \n mbedtls_pk_init(pkey_pm-\u003epkey);\n \n- ret \u003d mbedtls_pk_parse_key(pkey_pm-\u003epkey, load_buf, len + 1, NULL, 0);\n+ ret \u003d mbedtls_pk_parse_key(pkey_pm-\u003epkey, load_buf, (unsigned int)len + 1, NULL, 0);\n ssl_mem_free(load_buf);\n \n if (ret) {\n@@ -770,7 +770,7 @@ no_mem:\n \n void ssl_pm_set_bufflen(SSL *ssl, int len)\n {\n- max_content_len \u003d len;\n+ max_content_len \u003d (unsigned int)len;\n }\n \n long ssl_pm_get_verify_result(const SSL *ssl)\n@@ -867,7 +867,7 @@ void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,\n \n \t*data \u003d (const unsigned char *)alp;\n \tif (alp)\n-\t\t*len \u003d strlen(alp);\n+\t\t*len \u003d (unsigned int)strlen(alp);\n \telse\n \t\t*len \u003d 0;\n #endif\ndiff --git a/lib/tls/openssl/lws-genaes.c b/lib/tls/openssl/lws-genaes.c\nindex 6ccb55d..bc4d7d8 100644\n--- a/lib/tls/openssl/lws-genaes.c\n+++ b/lib/tls/openssl/lws-genaes.c\n@@ -214,12 +214,12 @@ lws_genaes_create(struct lws_genaes_ctx *ctx, enum enum_aes_operation op,\n \tcase LWS_GAESO_ENC:\n \t\tn \u003d EVP_EncryptInit_ex(ctx-\u003ectx, ctx-\u003ecipher, ctx-\u003eengine,\n \t\t\t\t NULL, NULL);\n-\t\tEVP_CIPHER_CTX_set_padding(ctx-\u003ectx, padding);\n+\t\tEVP_CIPHER_CTX_set_padding(ctx-\u003ectx, (int)padding);\n \t\tbreak;\n \tcase LWS_GAESO_DEC:\n \t\tn \u003d EVP_DecryptInit_ex(ctx-\u003ectx, ctx-\u003ecipher, ctx-\u003eengine,\n \t\t\t\t NULL, NULL);\n-\t\tEVP_CIPHER_CTX_set_padding(ctx-\u003ectx, padding);\n+\t\tEVP_CIPHER_CTX_set_padding(ctx-\u003ectx, (int)padding);\n \t\tbreak;\n \t}\n \tif (!n) {\n@@ -264,7 +264,7 @@ lws_genaes_destroy(struct lws_genaes_ctx *ctx, unsigned char *tag, size_t tlen)\n \t\t\t\t}\n \t\t\t}\n \t\t\tif (ctx-\u003emode \u003d\u003d LWS_GAESM_CBC)\n-\t\t\t\tmemcpy(tag, buf, outl);\n+\t\t\t\tmemcpy(tag, buf, (unsigned int)outl);\n \n \t\t\tbreak;\n \n@@ -298,7 +298,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx,\n \n \tif (!ctx-\u003einit) {\n \n-\t\tEVP_CIPHER_CTX_set_key_length(ctx-\u003ectx, ctx-\u003ek-\u003elen);\n+\t\tEVP_CIPHER_CTX_set_key_length(ctx-\u003ectx, (int)ctx-\u003ek-\u003elen);\n \n \t\tif (ctx-\u003emode \u003d\u003d LWS_GAESM_GCM) {\n \t\t\tn \u003d EVP_CIPHER_CTX_ctrl(ctx-\u003ectx, EVP_CTRL_GCM_SET_IVLEN,\n@@ -307,7 +307,7 @@ lws_genaes_crypt(struct lws_genaes_ctx *ctx,\n \t\t\t\tlwsl_err(\u0022%s: SET_IVLEN failed\u005cn\u0022, __func__);\n \t\t\t\treturn -1;\n \t\t\t}\n-\t\t\tmemcpy(ctx-\u003etag, stream_block_16, taglen);\n+\t\t\tmemcpy(ctx-\u003etag, stream_block_16, (unsigned int)taglen);\n \t\t\tctx-\u003etaglen \u003d taglen;\n \t\t}\n \ndiff --git a/lib/tls/openssl/lws-genec.c b/lib/tls/openssl/lws-genec.c\nindex 573a6c0..d5f69c3 100644\n--- a/lib/tls/openssl/lws-genec.c\n+++ b/lib/tls/openssl/lws-genec.c\n@@ -111,13 +111,13 @@ lws_genec_eckey_import(int nid, EVP_PKEY *pkey, struct lws_gencrypto_keyelem *el\n \t */\n \n \tbn_x \u003d BN_bin2bn(el[LWS_GENCRYPTO_EC_KEYEL_X].buf,\n-\t\t\t el[LWS_GENCRYPTO_EC_KEYEL_X].len, NULL);\n+\t\t\t (int)el[LWS_GENCRYPTO_EC_KEYEL_X].len, NULL);\n \tif (!bn_x) {\n \t\tlwsl_err(\u0022%s: BN_bin2bn (x) fail\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n \tbn_y \u003d BN_bin2bn(el[LWS_GENCRYPTO_EC_KEYEL_Y].buf,\n-\t\t\t el[LWS_GENCRYPTO_EC_KEYEL_Y].len, NULL);\n+\t\t\t(int)el[LWS_GENCRYPTO_EC_KEYEL_Y].len, NULL);\n \tif (!bn_y) {\n \t\tlwsl_err(\u0022%s: BN_bin2bn (y) fail\u005cn\u0022, __func__);\n \t\tgoto bail1;\n@@ -135,7 +135,7 @@ lws_genec_eckey_import(int nid, EVP_PKEY *pkey, struct lws_gencrypto_keyelem *el\n \n \tif (el[LWS_GENCRYPTO_EC_KEYEL_D].len) {\n \t\tbn_d \u003d BN_bin2bn(el[LWS_GENCRYPTO_EC_KEYEL_D].buf,\n-\t\t\t\t el[LWS_GENCRYPTO_EC_KEYEL_D].len, NULL);\n+\t\t\t\t(int)el[LWS_GENCRYPTO_EC_KEYEL_D].len, NULL);\n \t\tif (!bn_d) {\n \t\t\tlwsl_err(\u0022%s: BN_bin2bn (d) fail\u005cn\u0022, __func__);\n \t\t\tgoto bail;\n@@ -383,7 +383,7 @@ lws_genec_new_keypair(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side,\n \t\tif (!el[n].buf)\n \t\t\tgoto bail2;\n \n-\t\tm \u003d BN_bn2binpad(bn[n - 1], el[n].buf, el[n].len);\n+\t\tm \u003d BN_bn2binpad(bn[n - 1], el[n].buf, (int32_t)el[n].len);\n \t\tif ((uint32_t)m !\u003d el[n].len)\n \t\t\tgoto bail2;\n \t}\n@@ -651,7 +651,7 @@ lws_genecdh_compute_shared_secret(struct lws_genec_ctx *ctx, uint8_t *ss,\n \n \tlen \u003d (EC_GROUP_get_degree(EC_KEY_get0_group(eckey[LDHS_OURS])) + 7) / 8;\n \tif (len \u003c\u003d *ss_len) {\n-\t\t*ss_len \u003d ECDH_compute_key(ss, len,\n+\t\t*ss_len \u003d ECDH_compute_key(ss, (unsigned int)len,\n \t\t\t\tEC_KEY_get0_public_key(eckey[LDHS_THEIRS]),\n \t\t\t\teckey[LDHS_OURS], NULL);\n \t\tret \u003d -(*ss_len \u003c 0);\ndiff --git a/lib/tls/openssl/lws-genhash.c b/lib/tls/openssl/lws-genhash.c\nindex 7436439..ecfa549 100644\n--- a/lib/tls/openssl/lws-genhash.c\n+++ b/lib/tls/openssl/lws-genhash.c\n@@ -34,7 +34,7 @@\n int\n lws_genhash_init(struct lws_genhash_ctx *ctx, enum lws_genhash_types type)\n {\n-\tctx-\u003etype \u003d type;\n+\tctx-\u003etype \u003d (uint8_t)type;\n \tctx-\u003emdctx \u003d EVP_MD_CTX_create();\n \tif (!ctx-\u003emdctx)\n \t\treturn 1;\n@@ -104,7 +104,7 @@ lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type,\n \t\treturn -1;\n \n \tctx-\u003eevp_type \u003d 0;\n-\tctx-\u003etype \u003d type;\n+\tctx-\u003etype \u003d (uint8_t)type;\n \n \tswitch (type) {\n \tcase LWS_GENHMAC_TYPE_SHA256:\ndiff --git a/lib/tls/openssl/lws-genrsa.c b/lib/tls/openssl/lws-genrsa.c\nindex d2797e7..ad8dbd5 100644\n--- a/lib/tls/openssl/lws-genrsa.c\n+++ b/lib/tls/openssl/lws-genrsa.c\n@@ -93,7 +93,7 @@ lws_genrsa_create(struct lws_genrsa_ctx *ctx, struct lws_gencrypto_keyelem *el,\n \t */\n \n \tfor (n \u003d 0; n \u003c 5; n++) {\n-\t\tctx-\u003ebn[n] \u003d BN_bin2bn(el[n].buf, el[n].len, NULL);\n+\t\tctx-\u003ebn[n] \u003d BN_bin2bn(el[n].buf, (int)el[n].len, NULL);\n \t\tif (!ctx-\u003ebn[n]) {\n \t\t\tlwsl_notice(\u0022mpi load failed\u005cn\u0022);\n \t\t\tgoto bail;\n@@ -193,10 +193,10 @@ lws_genrsa_new_keypair(struct lws_context *context, struct lws_genrsa_ctx *ctx,\n \t\tfor (n \u003d 0; n \u003c 5; n++)\n \t\t\tif (BN_num_bytes(mpi[n])) {\n \t\t\t\tel[n].buf \u003d lws_malloc(\n-\t\t\t\t\tBN_num_bytes(mpi[n]), \u0022genrsakey\u0022);\n+\t\t\t\t\t(unsigned int)BN_num_bytes(mpi[n]), \u0022genrsakey\u0022);\n \t\t\t\tif (!el[n].buf)\n \t\t\t\t\tgoto cleanup;\n-\t\t\t\tel[n].len \u003d BN_num_bytes(mpi[n]);\n+\t\t\t\tel[n].len \u003d (unsigned int)BN_num_bytes(mpi[n]);\n \t\t\t\tBN_bn2bin(mpi[n], el[n].buf);\n \t\t\t}\n \t}\n@@ -293,7 +293,7 @@ lws_genrsa_hash_sig_verify(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \n \tswitch(ctx-\u003emode) {\n \tcase LGRSAM_PKCS1_1_5:\n-\t\tn \u003d RSA_verify(n, in, h, (uint8_t *)sig, (int)sig_len, ctx-\u003ersa);\n+\t\tn \u003d RSA_verify(n, in, (unsigned int)h, (uint8_t *)sig, (unsigned int)sig_len, ctx-\u003ersa);\n \t\tbreak;\n \tcase LGRSAM_PKCS1_OAEP_PSS:\n \t\tmd \u003d lws_gencrypto_openssl_hash_to_EVP_MD(hash_type);\n@@ -338,7 +338,7 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \n \tswitch(ctx-\u003emode) {\n \tcase LGRSAM_PKCS1_1_5:\n-\t\tif (RSA_sign(n, in, h, sig, \u0026used, ctx-\u003ersa) !\u003d 1) {\n+\t\tif (RSA_sign(n, in, (unsigned int)h, sig, \u0026used, ctx-\u003ersa) !\u003d 1) {\n \t\t\tlwsl_err(\u0022%s: RSA_sign failed\u005cn\u0022, __func__);\n \n \t\t\tgoto bail;\n@@ -368,7 +368,7 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \n \t\t\tgoto bail;\n \t\t}\n-\t\tif (EVP_DigestSignUpdate(mdctx, in, EVP_MD_size(md))) {\n+\t\tif (EVP_DigestSignUpdate(mdctx, in, (unsigned int)EVP_MD_size(md))) {\n \t\t\tlwsl_err(\u0022%s: EVP_DigestSignUpdate failed\u005cn\u0022, __func__);\n \n \t\t\tgoto bail;\n@@ -379,14 +379,14 @@ lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in,\n \t\t\tgoto bail;\n \t\t}\n \t\tEVP_MD_CTX_free(mdctx);\n-\t\tused \u003d (int)sig_len;\n+\t\tused \u003d (unsigned int)sig_len;\n \t\tbreak;\n \n \tdefault:\n \t\treturn -1;\n \t}\n \n-\treturn used;\n+\treturn (int)used;\n \n bail:\n \tif (mdctx)\ndiff --git a/lib/tls/openssl/openssl-client.c b/lib/tls/openssl/openssl-client.c\nindex 362779c..21d9595 100644\n--- a/lib/tls/openssl/openssl-client.c\n+++ b/lib/tls/openssl/openssl-client.c\n@@ -108,7 +108,7 @@ OpenSSL_client_verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)\n \n \tn \u003d lws_get_context_protocol(wsi-\u003ea.context, 0).callback(wsi,\n \t\t\tLWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION,\n-\t\t\tx509_ctx, ssl, preverify_ok);\n+\t\t\tx509_ctx, ssl, (unsigned int)preverify_ok);\n \n \t/* keep old behaviour if something wrong with server certs */\n \t/* if ssl error is overruled in callback and cert is ok,\n@@ -181,8 +181,14 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \n \twsi-\u003etls.ssl \u003d SSL_new(wsi-\u003ea.vhost-\u003etls.ssl_client_ctx);\n \tif (!wsi-\u003etls.ssl) {\n-\t\tlwsl_err(\u0022SSL_new failed: %s\u005cn\u0022,\n-\t\t ERR_error_string(lws_ssl_get_error(wsi, 0), NULL));\n+\t\tconst char *es \u003d ERR_error_string(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t(uint32_t)\n+#else\n+\t(unsigned long)\n+#endif\n+\tlws_ssl_get_error(wsi, 0), NULL);\n+\t\tlwsl_err(\u0022SSL_new failed: %s\u005cn\u0022, es);\n \t\tlws_tls_err_describe_clear();\n \t\treturn -1;\n \t}\n@@ -298,7 +304,7 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \tn \u003d lws_alpn_comma_to_openssl(alpn_comma, openssl_alpn,\n \t\t\t\t sizeof(openssl_alpn) - 1);\n \n-\tSSL_set_alpn_protos(wsi-\u003etls.ssl, openssl_alpn, n);\n+\tSSL_set_alpn_protos(wsi-\u003etls.ssl, openssl_alpn, (unsigned int)n);\n #endif\n \n \tSSL_set_ex_data(wsi-\u003etls.ssl, openssl_websocket_private_data_index,\n@@ -329,7 +335,13 @@ lws_ssl_client_bio_create(struct lws *wsi)\n #if defined(USE_WOLFSSL)\n \t\t\t(unsigned char *)\n #endif\n-\t\t\t\t\tdata, (int)size) !\u003d 1) {\n+\t\t\t\t\tdata,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t(size_t)\n+#else\n+\t\t\t\t\t(int)\n+#endif\n+\t\t\t\t\tsize) !\u003d 1) {\n \t\t\tlwsl_err(\u0022%s: use_certificate failed\u005cn\u0022, __func__);\n \t\t\tlws_tls_err_describe_clear();\n \t\t\tgoto no_client_cert;\n@@ -353,12 +365,24 @@ lws_ssl_client_bio_create(struct lws *wsi)\n \t\t\t(unsigned char *)\n #endif\n \n-\t\t\t\t\t data, (int)size) !\u003d 1 \u0026\u0026\n+\t\t\t\t\t data,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t(size_t)\n+#else\n+\t\t\t\t\t(int)\n+#endif\n+\t\t\t\t\t size) !\u003d 1 \u0026\u0026\n \t\t SSL_use_PrivateKey_ASN1(EVP_PKEY_EC, wsi-\u003etls.ssl,\n #if defined(USE_WOLFSSL)\n \t\t\t(unsigned char *)\n #endif\n-\t\t\t\t\t data, (int)size) !\u003d 1) {\n+\t\t\t\t\t data,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t(size_t)\n+#else\n+\t\t\t\t\t(int)\n+#endif\n+\t\t\t\t\t size) !\u003d 1) {\n \t\t\tlwsl_err(\u0022%s: use_privkey failed\u005cn\u0022, __func__);\n \t\t\tlws_tls_err_describe_clear();\n \t\t\tgoto no_client_cert;\n@@ -384,7 +408,7 @@ no_client_cert:\n }\n \n enum lws_ssl_capable_status\n-lws_tls_client_connect(struct lws *wsi, char *errbuf, int elen)\n+lws_tls_client_connect(struct lws *wsi, char *errbuf, size_t elen)\n {\n #if defined(LWS_HAVE_SSL_set_alpn_protos) \u0026\u0026 \u005c\n defined(LWS_HAVE_SSL_get0_alpn_selected)\n@@ -415,7 +439,7 @@ lws_tls_client_connect(struct lws *wsi, char *errbuf, int elen)\n \n \tif (m \u003d\u003d SSL_ERROR_SSL) {\n \t\tn \u003d lws_snprintf(errbuf, elen, \u0022connect SSL err %d: \u0022, m);\n-\t\tERR_error_string_n(m, errbuf + n, elen - n);\n+\t\tERR_error_string_n((unsigned int)m, errbuf + n, (elen - (unsigned int)n));\n \t\treturn LWS_SSL_CAPABLE_ERROR;\n \t}\n \n@@ -451,19 +475,20 @@ lws_tls_client_connect(struct lws *wsi, char *errbuf, int elen)\n }\n \n int\n-lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len)\n+lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, size_t ebuf_len)\n {\n #if !defined(USE_WOLFSSL)\n \tstruct lws_context_per_thread *pt \u003d \u0026wsi-\u003ea.context-\u003ept[(int)wsi-\u003etsi];\n \tchar *p \u003d (char *)\u0026pt-\u003eserv_buf[0];\n+\tconst char *es;\n \tchar *sb \u003d p;\n-\tint n;\n+\tlong n;\n \n \terrno \u003d 0;\n \tERR_clear_error();\n \tn \u003d SSL_get_verify_result(wsi-\u003etls.ssl);\n \n-\tlwsl_debug(\u0022get_verify says %d\u005cn\u0022, n);\n+\tlwsl_debug(\u0022get_verify says %ld\u005cn\u0022, n);\n \n \tif (n \u003d\u003d X509_V_OK)\n \t\treturn 0;\n@@ -486,9 +511,16 @@ lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len)\n \t\t\t \u0022probably our clock... accepting...\u005cn\u0022);\n \t\treturn 0;\n \t}\n+\tes \u003d ERR_error_string(\n+\t#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t (uint32_t)\n+\t#else\n+\t\t\t\t\t (unsigned long)\n+\t#endif\n+\t\t\t\t\t n, sb);\n \tlws_snprintf(ebuf, ebuf_len,\n-\t\t\u0022server's cert didn't look good, X509_V_ERR \u003d %d: %s\u005cn\u0022,\n-\t\t n, ERR_error_string(n, sb));\n+\t\t\u0022server's cert didn't look good, X509_V_ERR \u003d %ld: %s\u005cn\u0022,\n+\t\t n, es);\n \tlwsl_info(\u0022%s\u005cn\u0022, ebuf);\n \tlws_tls_err_describe_clear();\n \n@@ -504,7 +536,11 @@ lws_tls_client_vhost_extra_cert_mem(struct lws_vhost *vh,\n const uint8_t *der, size_t der_len)\n {\n \tX509_STORE *st;\n+#if defined(USE_WOLFSSL)\n+\tX509 *x \u003d d2i_X509(NULL, \u0026der, (int)der_len);\n+#else\n \tX509 *x \u003d d2i_X509(NULL, \u0026der, (long)der_len);\n+#endif\n \tint n;\n \n \tif (!x) {\n@@ -567,10 +603,18 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n #endif\n \n \tif (!method) {\n+\t\tconst char *es;\n+\n \t\terror \u003d ERR_get_error();\n+\t\tes \u003d ERR_error_string(\n+\t\t#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(uint32_t)\n+\t\t#else\n+\t\t\t(unsigned long)\n+\t\t#endif\n+\t\t\t error, (char *)vh-\u003econtext-\u003ept[0].serv_buf);\n \t\tlwsl_err(\u0022problem creating ssl method %lu: %s\u005cn\u0022,\n-\t\t\terror, ERR_error_string(error,\n-\t\t\t\t (char *)vh-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\terror, es);\n \t\treturn 1;\n \t}\n \n@@ -666,10 +710,18 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \tERR_clear_error();\n \tvh-\u003etls.ssl_client_ctx \u003d SSL_CTX_new(method);\n \tif (!vh-\u003etls.ssl_client_ctx) {\n+\t\tconst char *es;\n+\n \t\terror \u003d ERR_get_error();\n+\t\tes \u003d ERR_error_string(\n+\t\t#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(uint32_t)\n+\t\t#else\n+\t\t\t(unsigned long)\n+\t\t#endif\n+\t\t\t error, (char *)vh-\u003econtext-\u003ept[0].serv_buf);\n \t\tlwsl_err(\u0022problem creating ssl context %lu: %s\u005cn\u0022,\n-\t\t\terror, ERR_error_string(error,\n-\t\t\t\t (char *)vh-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\terror, es);\n \t\treturn 1;\n \t}\n \n@@ -707,12 +759,24 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \n \tif (info-\u003essl_client_options_set)\n \t\tSSL_CTX_set_options(vh-\u003etls.ssl_client_ctx,\n+#if !defined(USE_WOLFSSL)\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#else\n+\t\t\t\t (unsigned long)\n+#endif\n+#endif\n \t\t\t\t info-\u003essl_client_options_set);\n \n \t/* SSL_clear_options introduced in 0.9.8m */\n #if (OPENSSL_VERSION_NUMBER \u003e\u003d 0x009080df) \u0026\u0026 !defined(USE_WOLFSSL)\n \tif (info-\u003essl_client_options_clear)\n \t\tSSL_CTX_clear_options(vh-\u003etls.ssl_client_ctx,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#else\n+\t\t\t\t (unsigned long)\n+#endif\n \t\t\t\t info-\u003essl_client_options_clear);\n #endif\n \n@@ -774,7 +838,11 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\t}\n \n \t\tup \u003d up1;\n+#if defined(USE_WOLFSSL)\n+\t\tclient_CA \u003d d2i_X509(NULL, \u0026up, (int)amount);\n+#else\n \t\tclient_CA \u003d d2i_X509(NULL, \u0026up, (long)amount);\n+#endif\n \t\tif (!client_CA) {\n \t\t\tlwsl_err(\u0022%s: d2i_X509 failed\u005cn\u0022, __func__);\n \t\t\tlwsl_hexdump_notice(up1, (size_t)amount);\n@@ -836,7 +904,13 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\t\treturn 1;\n \t\t}\n \n-\t\tn \u003d SSL_CTX_use_certificate_ASN1(vh-\u003etls.ssl_client_ctx, (int)flen, p);\n+\t\tn \u003d SSL_CTX_use_certificate_ASN1(vh-\u003etls.ssl_client_ctx,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(size_t)\n+#else\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\tflen, p);\n \n \t\tif (n \u003c 1) {\n \t\t\tlwsl_err(\u0022%s: problem interpreting client cert\u005cn\u0022, __func__);\n@@ -882,11 +956,21 @@ lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\t}\n \n \t\tn \u003d SSL_CTX_use_PrivateKey_ASN1(EVP_PKEY_RSA, vh-\u003etls.ssl_client_ctx, p,\n-\t\t\t\t\t\t(long)(lws_intptr_t)flen);\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(size_t)\n+#else\n+\t\t\t\t(long)(lws_intptr_t)\n+#endif\n+\t\t\t\t\t\tflen);\n \t\tif (n !\u003d 1)\n \t\t\tn \u003d SSL_CTX_use_PrivateKey_ASN1(EVP_PKEY_EC,\n \t\t\t\t\t\t\tvh-\u003etls.ssl_client_ctx, p,\n-\t\t\t\t\t\t\t(long)(lws_intptr_t)flen);\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(size_t)\n+#else\n+\t\t\t\t(long)(lws_intptr_t)\n+#endif\n+\t\t\t\t\t\tflen);\n \n \t\tlws_free_set_NULL(p);\n \ndiff --git a/lib/tls/openssl/openssl-server.c b/lib/tls/openssl/openssl-server.c\nindex 4e0c380..c4c36db 100644\n--- a/lib/tls/openssl/openssl-server.c\n+++ b/lib/tls/openssl/openssl-server.c\n@@ -61,7 +61,7 @@ OpenSSL_verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)\n \n \tn \u003d wsi-\u003ea.vhost-\u003eprotocols[0].callback(wsi,\n \t\t\tLWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION,\n-\t\t\t\t\t x509_ctx, ssl, preverify_ok);\n+\t\t\t\t\t x509_ctx, ssl, (unsigned int)preverify_ok);\n \n \t/* convert return code from 0 \u003d OK to 1 \u003d OK */\n \treturn !n;\n@@ -172,7 +172,7 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n #if OPENSSL_VERSION_NUMBER \u003e\u003d 0x10100000L\n \tint ret;\n #endif\n-\tint n \u003d lws_tls_generic_cert_checks(vhost, cert, private_key), m;\n+\tint n \u003d (int)lws_tls_generic_cert_checks(vhost, cert, private_key), m;\n \n \tif (!cert \u0026\u0026 !private_key)\n \t\tn \u003d LWS_TLS_EXTANT_ALTERNATIVE;\n@@ -210,10 +210,18 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\t/* set the local certificate from CertFile */\n \t\tm \u003d SSL_CTX_use_certificate_chain_file(vhost-\u003etls.ssl_ctx, cert);\n \t\tif (m !\u003d 1) {\n+\t\t\tconst char *s;\n \t\t\terror \u003d ERR_get_error();\n+\n+\t\t\ts \u003d ERR_error_string(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#endif\n+\t\t\t\t\terror,\n+\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf);\n+\n \t\t\tlwsl_err(\u0022problem getting cert '%s' %lu: %s\u005cn\u0022,\n-\t\t\t\t cert, error, ERR_error_string(error,\n-\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\t\t cert, error, s);\n \n \t\t\treturn 1;\n \t\t}\n@@ -222,11 +230,16 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\t\t/* set the private key from KeyFile */\n \t\t\tif (SSL_CTX_use_PrivateKey_file(vhost-\u003etls.ssl_ctx, private_key,\n \t\t\t\t\t\t\tSSL_FILETYPE_PEM) !\u003d 1) {\n+\t\t\t\tconst char *s;\n \t\t\t\terror \u003d ERR_get_error();\n+\t\t\t\ts \u003d ERR_error_string(\n+\t#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t(uint32_t)\n+\t#endif\n+\t\t\t\t\t\terror,\n+\t\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf);\n \t\t\t\tlwsl_err(\u0022ssl problem getting key '%s' %lu: %s\u005cn\u0022,\n-\t\t\t\t\t private_key, error,\n-\t\t\t\t\t ERR_error_string(error,\n-\t\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\t\t\t private_key, error, s);\n \t\t\t\treturn 1;\n \t\t\t}\n \t\t} else {\n@@ -252,7 +265,13 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t}\n \n #if !defined(USE_WOLFSSL)\n-\tret \u003d SSL_CTX_use_certificate_ASN1(vhost-\u003etls.ssl_ctx, (int)flen, p);\n+\tret \u003d SSL_CTX_use_certificate_ASN1(vhost-\u003etls.ssl_ctx,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(size_t)\n+#else\n+\t\t\t\t(int)\n+#endif\n+\t\t\t\tflen, p);\n #else\n \tret \u003d wolfSSL_CTX_use_certificate_buffer(vhost-\u003etls.ssl_ctx,\n \t\t\t\t\t\t (uint8_t *)p, (int)flen,\n@@ -275,11 +294,21 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \n #if !defined(USE_WOLFSSL)\n \tret \u003d SSL_CTX_use_PrivateKey_ASN1(EVP_PKEY_RSA, vhost-\u003etls.ssl_ctx, p,\n-\t\t\t\t\t (long)(long long)flen);\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(size_t)\n+#else\n+\t\t\t\t\t (long)(long long)\n+#endif\n+\t\t\t\t\t flen);\n \tif (ret !\u003d 1) {\n \t\tret \u003d SSL_CTX_use_PrivateKey_ASN1(EVP_PKEY_EC,\n \t\t\t\t\t\t vhost-\u003etls.ssl_ctx, p,\n-\t\t\t\t\t\t (long)(long long)flen);\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(size_t)\n+#else\n+\t\t\t\t\t (long)(long long)\n+#endif\n+\t\t\t\t\t\t flen);\n \t}\n #else\n \tret \u003d wolfSSL_CTX_use_PrivateKey_buffer(vhost-\u003etls.ssl_ctx, p, flen,\n@@ -337,7 +366,7 @@ lws_tls_server_certs_load(struct lws_vhost *vhost, struct lws *wsi,\n \t\t\t\t\t\t(long)(long long)flen) !\u003d 1) {\n #else\n \t\tif (wolfSSL_CTX_use_PrivateKey_buffer(vhost-\u003etls.ssl_ctx, p,\n-\t\t\t\t\t flen, WOLFSSL_FILETYPE_ASN1) !\u003d 1) {\n+\t\t\t\t\t (long)flen, WOLFSSL_FILETYPE_ASN1) !\u003d 1) {\n #endif\n \t\t\tlwsl_notice(\u0022unable to use memory privkey\u005cn\u0022);\n \n@@ -476,18 +505,32 @@ lws_tls_server_vhost_backend_init(const struct lws_context_creation_info *info,\n \tSSL_METHOD *method \u003d (SSL_METHOD *)SSLv23_server_method();\n \n \tif (!method) {\n+\t\tconst char *s;\n \t\terror \u003d ERR_get_error();\n+\t\ts \u003d ERR_error_string(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(uint32_t)\n+#endif\n+\t\t\t\terror,\n+\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf);\n+\n \t\tlwsl_err(\u0022problem creating ssl method %lu: %s\u005cn\u0022,\n-\t\t\t\terror, ERR_error_string(error,\n-\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\t\terror, s);\n \t\treturn 1;\n \t}\n \tvhost-\u003etls.ssl_ctx \u003d SSL_CTX_new(method);\t/* create context */\n \tif (!vhost-\u003etls.ssl_ctx) {\n+\t\tconst char *s;\n+\n \t\terror \u003d ERR_get_error();\n+\t\ts \u003d ERR_error_string(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t(uint32_t)\n+#endif\n+\t\t\t\terror,\n+\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf);\n \t\tlwsl_err(\u0022problem creating ssl context %lu: %s\u005cn\u0022,\n-\t\t\t\terror, ERR_error_string(error,\n-\t\t\t\t (char *)vhost-\u003econtext-\u003ept[0].serv_buf));\n+\t\t\t\terror, s);\n \t\treturn 1;\n \t}\n \n@@ -531,12 +574,27 @@ lws_tls_server_vhost_backend_init(const struct lws_context_creation_info *info,\n \t}\n \n \tif (info-\u003essl_options_set)\n-\t\tSSL_CTX_set_options(vhost-\u003etls.ssl_ctx, info-\u003essl_options_set);\n+\t\tSSL_CTX_set_options(vhost-\u003etls.ssl_ctx,\n+#if defined(USE_WOLFSSL)\n+\t\t\t\t(long)\n+#else\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#else\n+\t\t\t\t(unsigned long)\n+#endif\n+#endif\n+\t\t\t\tinfo-\u003essl_options_set);\n \n /* SSL_clear_options introduced in 0.9.8m */\n #if (OPENSSL_VERSION_NUMBER \u003e\u003d 0x009080df) \u0026\u0026 !defined(USE_WOLFSSL)\n \tif (info-\u003essl_options_clear)\n \t\tSSL_CTX_clear_options(vhost-\u003etls.ssl_ctx,\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#else\n+\t\t\t\t (unsigned long)\n+#endif\n \t\t\t\t info-\u003essl_options_clear);\n #endif\n \n@@ -991,7 +1049,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t\t\tif (*p \u003d\u003d '/')\n \t\t\t\t*csr++ \u003d '_';\n \t\t\telse\n-\t\t\t\t*csr++ \u003d *p;\n+\t\t\t\t*csr++ \u003d (uint8_t)*p;\n \t\tp++;\n \t\tcsr_len--;\n \t}\n@@ -1014,7 +1072,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t\tgoto bail3;\n \t}\n \tbio_len \u003d BIO_get_mem_data(bio, \u0026p);\n-\t*privkey_pem \u003d malloc(bio_len); /* malloc so user code can own / free */\n+\t*privkey_pem \u003d malloc((unsigned long)bio_len); /* malloc so user code can own / free */\n \t*privkey_len \u003d (size_t)bio_len;\n \tif (!*privkey_pem) {\n \t\tlwsl_notice(\u0022%s: need %ld for private key\u005cn\u0022, __func__,\n@@ -1022,7 +1080,7 @@ lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[],\n \t\tBIO_free(bio);\n \t\tgoto bail3;\n \t}\n-\tmemcpy(*privkey_pem, p, (int)(long long)bio_len);\n+\tmemcpy(*privkey_pem, p, (unsigned int)(int)(long long)bio_len);\n \tBIO_free(bio);\n \n \tret \u003d lws_ptr_diff(csr, csr_in);\ndiff --git a/lib/tls/openssl/openssl-ssl.c b/lib/tls/openssl/openssl-ssl.c\nindex bcf700c..7392bb8 100644\n--- a/lib/tls/openssl/openssl-ssl.c\n+++ b/lib/tls/openssl/openssl-ssl.c\n@@ -75,7 +75,7 @@ lws_context_init_ssl_pem_passwd_cb(char *buf, int size, int rwflag,\n \tstruct lws_context_creation_info * info \u003d\n \t\t\t(struct lws_context_creation_info *)userdata;\n \n-\tstrncpy(buf, info-\u003essl_private_key_password, size);\n+\tstrncpy(buf, info-\u003essl_private_key_password, (unsigned int)size);\n \tbuf[size - 1] \u003d '\u005c0';\n \n \treturn (int)strlen(buf);\n@@ -94,7 +94,7 @@ lws_context_init_ssl_pem_passwd_client_cb(char *buf, int size, int rwflag,\n \tif (info-\u003eclient_ssl_private_key_password)\n \t\tp \u003d info-\u003eclient_ssl_private_key_password;\n \n-\tstrncpy(buf, p, size);\n+\tstrncpy(buf, p, (unsigned int)size);\n \tbuf[size - 1] \u003d '\u005c0';\n \n \treturn (int)strlen(buf);\n@@ -200,7 +200,7 @@ lws_ssl_destroy(struct lws_vhost *vhost)\n }\n \n int\n-lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tstruct lws_context *context \u003d wsi-\u003ea.context;\n \tstruct lws_context_per_thread *pt \u003d \u0026context-\u003ept[(int)wsi-\u003etsi];\n@@ -213,7 +213,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \n \terrno \u003d 0;\n \tERR_clear_error();\n-\tn \u003d SSL_read(wsi-\u003etls.ssl, buf, len);\n+\tn \u003d SSL_read(wsi-\u003etls.ssl, buf, (int)(ssize_t)len);\n #if defined(LWS_PLAT_FREERTOS)\n \tif (!n \u0026\u0026 errno \u003d\u003d LWS_ENOTCONN) {\n \t\tlwsl_debug(\u0022%s: SSL_read ENOTCONN\u005cn\u0022, lws_wsi_tag(wsi));\n@@ -299,20 +299,20 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \tlwsl_hexdump_notice(buf, n);\n #endif\n \n-\tlws_stats_bump(pt, LWSSTATS_B_READ, n);\n+\tlws_stats_bump(pt, LWSSTATS_B_READ, (unsigned int)n);\n \n #if defined(LWS_WITH_SERVER_STATUS)\n \tif (wsi-\u003ea.vhost)\n-\t\twsi-\u003ea.vhost-\u003econn_stats.rx +\u003d n;\n+\t\twsi-\u003ea.vhost-\u003econn_stats.rx \u003d (unsigned long long)(wsi-\u003ea.vhost-\u003econn_stats.rx + (unsigned long long)(long long)n);\n #endif\n \n #if defined(LWS_WITH_DETAILED_LATENCY)\n \tif (context-\u003edetailed_latency_cb) {\n \t\twsi-\u003edetlat.req_size \u003d len;\n-\t\twsi-\u003edetlat.acc_size \u003d n;\n+\t\twsi-\u003edetlat.acc_size \u003d (unsigned int)n;\n \t\twsi-\u003edetlat.type \u003d LDLT_READ;\n \t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_RX_TO_ONWARD_TX] \u003d\n-\t\t\tlws_now_usecs() - pt-\u003eust_left_poll;\n+\t\t\t(uint32_t)(lws_now_usecs() - pt-\u003eust_left_poll);\n \t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t}\n@@ -325,7 +325,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)\n \t * Because these won't signal at the network layer with POLLIN\n \t * and if we don't realize, this data will sit there forever\n \t */\n-\tif (n !\u003d len)\n+\tif (n !\u003d (int)(ssize_t)len)\n \t\tgoto bail;\n \tif (!wsi-\u003etls.ssl)\n \t\tgoto bail;\n@@ -354,7 +354,7 @@ lws_ssl_pending(struct lws *wsi)\n }\n \n int\n-lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len)\n+lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, size_t len)\n {\n \tint n, m;\n \n@@ -373,7 +373,7 @@ lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len)\n \n \terrno \u003d 0;\n \tERR_clear_error();\n-\tn \u003d SSL_write(wsi-\u003etls.ssl, buf, len);\n+\tn \u003d SSL_write(wsi-\u003etls.ssl, buf, (int)(ssize_t)len);\n \tif (n \u003e 0)\n \t\treturn n;\n \n@@ -394,7 +394,7 @@ lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len)\n \t\t}\n \t}\n \n-\tlwsl_debug(\u0022%s failed: %s\u005cn\u0022,__func__, ERR_error_string(m, NULL));\n+\tlwsl_debug(\u0022%s failed: %s\u005cn\u0022,__func__, ERR_error_string((unsigned int)m, NULL));\n \tlws_tls_err_describe_clear();\n \n \twsi-\u003esocket_is_permanently_unusable \u003d 1;\ndiff --git a/lib/tls/openssl/openssl-tls.c b/lib/tls/openssl/openssl-tls.c\nindex 0b8bfe5..e6ac945 100644\n--- a/lib/tls/openssl/openssl-tls.c\n+++ b/lib/tls/openssl/openssl-tls.c\n@@ -78,7 +78,11 @@ lws_tls_err_describe_clear(void)\n \t\tif (!l)\n \t\t\tbreak;\n \n-\t\tERR_error_string_n(l, buf, sizeof(buf));\n+\t\tERR_error_string_n(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t(uint32_t)\n+#endif\n+\t\t\t\tl, buf, sizeof(buf));\n \t\tlwsl_info(\u0022 openssl error: %s\u005cn\u0022, buf);\n \t} while (l);\n \tlwsl_info(\u0022\u005cn\u0022);\ndiff --git a/lib/tls/openssl/openssl-x509.c b/lib/tls/openssl/openssl-x509.c\nindex 185a84a..c33c783 100644\n--- a/lib/tls/openssl/openssl-x509.c\n+++ b/lib/tls/openssl/openssl-x509.c\n@@ -136,7 +136,7 @@ lws_tls_openssl_cert_info(X509 *x509, enum lws_tls_cert_info type,\n \tcase LWS_TLS_CERT_INFO_OPAQUE_PUBLIC_KEY:\n \t{\n #ifndef USE_WOLFSSL\n-\t\tsize_t klen \u003d i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x509), NULL);\n+\t\tsize_t klen \u003d (unsigned int)i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x509), NULL);\n \t\tuint8_t *tmp, *ptmp;\n \n \t\tif (!klen || klen \u003e len)\n@@ -436,7 +436,7 @@ lws_x509_public_to_jwk(struct lws_jwk *jwk, struct lws_x509_cert *x509,\n \tfor (; n \u003c count; n++) {\n \t\tif (!mpi[n])\n \t\t\tcontinue;\n-\t\tjwk-\u003ee[n].len \u003d BN_num_bytes(mpi[n]);\n+\t\tjwk-\u003ee[n].len \u003d (unsigned int)BN_num_bytes(mpi[n]);\n \t\tjwk-\u003ee[n].buf \u003d lws_malloc(jwk-\u003ee[n].len, \u0022certkeyimp\u0022);\n \t\tif (!jwk-\u003ee[n].buf) {\n \t\t\tif (id \u003d\u003d NID_X9_62_id_ecPublicKey) {\n@@ -475,14 +475,14 @@ static int\n lws_x509_jwk_privkey_pem_pp_cb(char *buf, int size, int rwflag, void *u)\n {\n \tconst char *pp \u003d (const char *)u;\n-\tint n \u003d (int)strlen(pp);\n+\tsize_t n \u003d strlen(pp);\n \n-\tif (n \u003e size - 1)\n+\tif ((int)n \u003e size - 1)\n \t\treturn -1;\n \n \tmemcpy(buf, pp, n + 1);\n \n-\treturn n;\n+\treturn (int)n;\n }\n \n int\n@@ -538,13 +538,13 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \n \t\t/* TODO.. check public curve / group + point */\n \n-\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].len \u003d n;\n-\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].buf \u003d lws_malloc(n, \u0022ec\u0022);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].len \u003d (unsigned int)n;\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].buf \u003d lws_malloc((unsigned int)n, \u0022ec\u0022);\n \t\tif (!jwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].buf)\n \t\t\tgoto bail1;\n \n \t\tm \u003d BN_bn2binpad(cmpi, jwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].buf,\n-\t\t\t\t jwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].len);\n+\t\t\t\t (int32_t)jwk-\u003ee[LWS_GENCRYPTO_EC_KEYEL_D].len);\n \t\tif ((unsigned int)m !\u003d (unsigned int)BN_num_bytes(cmpi))\n \t\t\tgoto bail1;\n \n@@ -589,10 +589,10 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \t\t/* then check that n \u0026 e match what we got from the cert */\n \n \t\tdummy[2] \u003d BN_bin2bn(jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_N].buf,\n-\t\t\t\t jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_N].len,\n+\t\t\t\t (int32_t)jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_N].len,\n \t\t\t\t NULL);\n \t\tdummy[3] \u003d BN_bin2bn(jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_E].buf,\n-\t\t\t\t jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_E].len,\n+\t\t\t\t (int32_t)jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_E].len,\n \t\t\t\t NULL);\n \n \t\tm \u003d BN_cmp(dummy[2], dummy[0]) | BN_cmp(dummy[3], dummy[1]);\n@@ -607,8 +607,8 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \n \t\t/* accept d from the PEM privkey into the JWK */\n \n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].len \u003d n;\n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].buf \u003d lws_malloc(n, \u0022privjk\u0022);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].len \u003d (unsigned int)n;\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].buf \u003d lws_malloc((unsigned int)n, \u0022privjk\u0022);\n \t\tif (!jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].buf)\n \t\t\tgoto bail1;\n \n@@ -616,16 +616,16 @@ lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len,\n \n \t\t/* accept p and q from the PEM privkey into the JWK */\n \n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].len \u003d BN_num_bytes(dummy[4]);\n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].buf \u003d lws_malloc(n, \u0022privjk\u0022);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].len \u003d (unsigned int)BN_num_bytes(dummy[4]);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].buf \u003d lws_malloc((unsigned int)n, \u0022privjk\u0022);\n \t\tif (!jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].buf) {\n \t\t\tlws_free_set_NULL(jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].buf);\n \t\t\tgoto bail1;\n \t\t}\n \t\tBN_bn2bin(dummy[4], jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].buf);\n \n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_Q].len \u003d BN_num_bytes(dummy[5]);\n-\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_Q].buf \u003d lws_malloc(n, \u0022privjk\u0022);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_Q].len \u003d (unsigned int)BN_num_bytes(dummy[5]);\n+\t\tjwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_Q].buf \u003d lws_malloc((unsigned int)n, \u0022privjk\u0022);\n \t\tif (!jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_Q].buf) {\n \t\t\tlws_free_set_NULL(jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_D].buf);\n \t\t\tlws_free_set_NULL(jwk-\u003ee[LWS_GENCRYPTO_RSA_KEYEL_P].buf);\ndiff --git a/lib/tls/private-network.h b/lib/tls/private-network.h\nindex 8244403..c8b15fd 100644\n--- a/lib/tls/private-network.h\n+++ b/lib/tls/private-network.h\n@@ -81,9 +81,9 @@ struct lws_lws_tls {\n void\n lws_context_init_alpn(struct lws_vhost *vhost);\n int LWS_WARN_UNUSED_RESULT\n-lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len);\n+lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, size_t len);\n int LWS_WARN_UNUSED_RESULT\n-lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, int len);\n+lws_ssl_capable_write(struct lws *wsi, unsigned char *buf, size_t len);\n int LWS_WARN_UNUSED_RESULT\n lws_ssl_pending(struct lws *wsi);\n int LWS_WARN_UNUSED_RESULT\n@@ -101,10 +101,9 @@ LWS_VISIBLE void\n lws_ssl_remove_wsi_from_buffered_list(struct lws *wsi);\n int\n lws_ssl_client_bio_create(struct lws *wsi);\n+\n int\n-lws_ssl_client_connect1(struct lws *wsi, char *errbuf, int len);\n-int\n-lws_ssl_client_connect2(struct lws *wsi, char *errbuf, int len);\n+lws_ssl_client_connect2(struct lws *wsi, char *errbuf, size_t len);\n int\n lws_tls_fake_POLLIN_for_buffered(struct lws_context_per_thread *pt);\n int\n@@ -158,9 +157,9 @@ enum lws_ssl_capable_status\n __lws_tls_shutdown(struct lws *wsi);\n \n enum lws_ssl_capable_status\n-lws_tls_client_connect(struct lws *wsi, char *errbuf, int len);\n+lws_tls_client_connect(struct lws *wsi, char *errbuf, size_t len);\n int\n-lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, int ebuf_len);\n+lws_tls_client_confirm_peer_cert(struct lws *wsi, char *ebuf, size_t ebuf_len);\n int\n lws_tls_client_create_vhost_context(struct lws_vhost *vh,\n \t\t\t const struct lws_context_creation_info *info,\ndiff --git a/lib/tls/tls-client.c b/lib/tls/tls-client.c\nindex 1390039..b8f7a51 100644\n--- a/lib/tls/tls-client.c\n+++ b/lib/tls/tls-client.c\n@@ -24,8 +24,8 @@\n \n #include \u0022private-lib-core.h\u0022\n \n-int\n-lws_ssl_client_connect1(struct lws *wsi, char *errbuf, int len)\n+static int\n+lws_ssl_client_connect1(struct lws *wsi, char *errbuf, size_t len)\n {\n \tint n;\n \n@@ -48,7 +48,7 @@ lws_ssl_client_connect1(struct lws *wsi, char *errbuf, int len)\n }\n \n int\n-lws_ssl_client_connect2(struct lws *wsi, char *errbuf, int len)\n+lws_ssl_client_connect2(struct lws *wsi, char *errbuf, size_t len)\n {\n \tint n;\n \ndiff --git a/lib/tls/tls-network.c b/lib/tls/tls-network.c\nindex b1b438a..5deab5b 100644\n--- a/lib/tls/tls-network.c\n+++ b/lib/tls/tls-network.c\n@@ -42,8 +42,9 @@ lws_tls_fake_POLLIN_for_buffered(struct lws_context_per_thread *pt)\n \n \t\tif (wsi-\u003eposition_in_fds_table \u003e\u003d 0) {\n \n-\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\u003d\n-\t\t\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026 LWS_POLLIN;\n+\t\t\tpt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u003d (short)\n+\t\t\t\t(pt-\u003efds[wsi-\u003eposition_in_fds_table].revents |\n+\t\t\t\t (pt-\u003efds[wsi-\u003eposition_in_fds_table].events \u0026 LWS_POLLIN));\n \t\t\tret |\u003d pt-\u003efds[wsi-\u003eposition_in_fds_table].revents \u0026 LWS_POLLIN;\n \t\t}\n \n@@ -141,10 +142,10 @@ lws_tls_generic_cert_checks(struct lws_vhost *vhost, const char *cert,\n \tif (!cert || !private_key)\n \t\treturn LWS_TLS_EXTANT_NO;\n \n-\tn \u003d lws_tls_use_any_upgrade_check_extant(cert);\n+\tn \u003d (int)lws_tls_use_any_upgrade_check_extant(cert);\n \tif (n \u003d\u003d LWS_TLS_EXTANT_ALTERNATIVE)\n \t\treturn LWS_TLS_EXTANT_ALTERNATIVE;\n-\tm \u003d lws_tls_use_any_upgrade_check_extant(private_key);\n+\tm \u003d (int)lws_tls_use_any_upgrade_check_extant(private_key);\n \tif (m \u003d\u003d LWS_TLS_EXTANT_ALTERNATIVE)\n \t\treturn LWS_TLS_EXTANT_ALTERNATIVE;\n \n@@ -240,17 +241,17 @@ lws_alpn_comma_to_openssl(const char *comma, uint8_t *os, int len)\n \t\t}\n \n \t\tif (*comma \u003d\u003d ',') {\n-\t\t\t*plen \u003d lws_ptr_diff(os, plen + 1);\n+\t\t\t*plen \u003d (uint8_t)lws_ptr_diff(os, plen + 1);\n \t\t\tplen \u003d NULL;\n \t\t\tcomma++;\n \t\t} else {\n-\t\t\t*os++ \u003d *comma++;\n+\t\t\t*os++ \u003d (uint8_t)*comma++;\n \t\t\tlen--;\n \t\t}\n \t}\n \n \tif (plen)\n-\t\t*plen \u003d lws_ptr_diff(os, plen + 1);\n+\t\t*plen \u003d (uint8_t)lws_ptr_diff(os, plen + 1);\n \n \t*os \u003d 0;\n \ndiff --git a/lib/tls/tls-server.c b/lib/tls/tls-server.c\nindex 4a66bbe..c4983df 100644\n--- a/lib/tls/tls-server.c\n+++ b/lib/tls/tls-server.c\n@@ -130,6 +130,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \tstruct lws_context *context \u003d wsi-\u003ea.context;\n \tstruct lws_context_per_thread *pt \u003d \u0026context-\u003ept[(int)wsi-\u003etsi];\n \tstruct lws_vhost *vh;\n+\tssize_t s;\n \tint n;\n \n \tif (!LWS_SSL_ENABLED(wsi-\u003ea.vhost))\n@@ -174,7 +175,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \t\tlws_pt_unlock(pt);\n \n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_SSL_ACCEPT,\n-\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\tlwsl_debug(\u0022inserted SSL accept into fds, trying SSL_accept\u005cn\u0022);\n \n@@ -193,7 +194,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \t\t\t * something to read...\n \t\t\t */\n \n-\t\t\tn \u003d recv(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf,\n+\t\t\ts \u003d recv(wsi-\u003edesc.sockfd, (char *)pt-\u003eserv_buf,\n \t\t\t\t context-\u003ept_serv_buf_size, MSG_PEEK);\n \t\t\t/*\n \t\t\t * We have LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT..\n@@ -220,7 +221,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \t\t\t * continue with that\n \t\t\t */\n \n-\t\t\tif (n \u003e\u003d 1 \u0026\u0026 pt-\u003eserv_buf[0] \u003e\u003d ' ') {\n+\t\t\tif (s \u003e\u003d 1 \u0026\u0026 pt-\u003eserv_buf[0] \u003e\u003d ' ') {\n \t\t\t\t/*\n \t\t\t\t* TLS content-type for Handshake is 0x16, and\n \t\t\t\t* for ChangeCipherSpec Record, it's 0x14\n@@ -270,7 +271,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \t\t\t\t\t __func__, wsi-\u003ea.vhost-\u003ename);\n \t\t\t\tgoto fail;\n \t\t\t}\n-\t\t\tif (!n) {\n+\t\t\tif (!s) {\n \t\t\t\t/*\n \t\t\t\t * POLLIN but nothing to read is supposed to\n \t\t\t\t * mean the connection is gone, we should\n@@ -294,7 +295,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd, char f\n \n \t\t\t\tgoto fail;\n \t\t\t}\n-\t\t\tif (n \u003c 0 \u0026\u0026 (LWS_ERRNO \u003d\u003d LWS_EAGAIN ||\n+\t\t\tif (s \u003c 0 \u0026\u0026 (LWS_ERRNO \u003d\u003d LWS_EAGAIN ||\n \t\t\t\t LWS_ERRNO \u003d\u003d LWS_EWOULDBLOCK)) {\n \n punt:\n@@ -353,8 +354,8 @@ punt:\n \t\tif (context-\u003edetailed_latency_cb) {\n \t\t\twsi-\u003edetlat.type \u003d LDLT_TLS_NEG_SERVER;\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_PROXY_RX_TO_ONWARD_TX] \u003d\n-\t\t\t\tlws_now_usecs() -\n-\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write;\n+\t\t\t\t(uint32_t)(lws_now_usecs() -\n+\t\t\t\twsi-\u003edetlat.earliest_write_req_pre_write);\n \t\t\twsi-\u003edetlat.latencies[LAT_DUR_USERCB] \u003d 0;\n \t\t\tlws_det_lat_cb(wsi-\u003ea.context, \u0026wsi-\u003edetlat);\n \t\t}\n@@ -374,7 +375,7 @@ punt:\n \n \t\t/* OK, we are accepted... give him some time to negotiate */\n \t\tlws_set_timeout(wsi, PENDING_TIMEOUT_ESTABLISH_WITH_SERVER,\n-\t\t\t\tcontext-\u003etimeout_secs);\n+\t\t\t\t(int)context-\u003etimeout_secs);\n \n \t\tlwsi_set_state(wsi, LRS_ESTABLISHED);\n \t\tif (lws_tls_server_conn_alpn(wsi)) {\ndiff --git a/lib/tls/tls.c b/lib/tls/tls.c\nindex 3021c0c..b4b43f0 100644\n--- a/lib/tls/tls.c\n+++ b/lib/tls/tls.c\n@@ -94,7 +94,7 @@ lws_context_init_alpn(struct lws_vhost *vhost)\n \n \tlwsl_info(\u0022 Server '%s' advertising ALPN: %s\u005cn\u0022,\n \t\t vhost-\u003ename, alpn_comma);\n-\tvhost-\u003etls.alpn_ctx.len \u003d lws_alpn_comma_to_openssl(alpn_comma,\n+\tvhost-\u003etls.alpn_ctx.len \u003d (uint8_t)lws_alpn_comma_to_openssl(alpn_comma,\n \t\t\t\t\tvhost-\u003etls.alpn_ctx.data,\n \t\t\t\t\tsizeof(vhost-\u003etls.alpn_ctx.data) - 1);\n \n@@ -182,6 +182,7 @@ int alloc_file(struct lws_context *context, const char *filename, uint8_t **buf,\n {\n \tFILE *f;\n \tsize_t s;\n+\tssize_t m;\n \tint n \u003d 0;\n \n \tf \u003d fopen(filename, \u0022rb\u0022);\n@@ -195,11 +196,12 @@ int alloc_file(struct lws_context *context, const char *filename, uint8_t **buf,\n \t\tgoto bail;\n \t}\n \n-\ts \u003d ftell(f);\n-\tif (s \u003d\u003d (size_t)-1) {\n+\tm \u003d ftell(f);\n+\tif (m \u003d\u003d -1l) {\n \t\tn \u003d 1;\n \t\tgoto bail;\n \t}\n+\ts \u003d (size_t)m;\n \n \tif (fseek(f, 0, SEEK_SET) !\u003d 0) {\n \t\tn \u003d 1;\n@@ -330,7 +332,7 @@ lws_tls_alloc_pem_to_der_file(struct lws_context *context, const char *filename,\n \tif (filename)\n \t\t*q \u003d '\u005c0';\n \n-\t*amount \u003d lws_b64_decode_string_len((char *)p, lws_ptr_diff(q, p),\n+\t*amount \u003d (unsigned int)lws_b64_decode_string_len((char *)p, lws_ptr_diff(q, p),\n \t\t\t\t\t (char *)pem, (int)(long long)len);\n \t*buf \u003d (uint8_t *)pem;\n \n@@ -352,8 +354,9 @@ static int\n lws_tls_extant(const char *name)\n {\n \t/* it exists if we can open it... */\n-\tint fd \u003d open(name, O_RDONLY), n;\n+\tint fd \u003d open(name, O_RDONLY);\n \tchar buf[1];\n+\tssize_t n;\n \n \tif (fd \u003c 0)\n \t\treturn 1;\ndiff --git a/lwsws/main.c b/lwsws/main.c\nindex d62f6fe..d2b70b7 100644\n--- a/lwsws/main.c\n+++ b/lwsws/main.c\n@@ -149,9 +149,9 @@ context_creation(void)\n \n \tinfo.external_baggage_free_on_destroy \u003d config_strings;\n \tinfo.pt_serv_buf_size \u003d 8192;\n-\tinfo.options \u003d opts | LWS_SERVER_OPTION_VALIDATE_UTF8 |\n+\tinfo.options \u003d (uint64_t)((uint64_t)opts | LWS_SERVER_OPTION_VALIDATE_UTF8 |\n \t\t\t LWS_SERVER_OPTION_EXPLICIT_VHOSTS |\n-\t\t\t LWS_SERVER_OPTION_LIBUV;\n+\t\t\t LWS_SERVER_OPTION_LIBUV);\n \n #if defined(LWS_WITH_PLUGINS)\n \tif (default_plugin_path)\ndiff --git a/minimal-examples/api-tests/api-test-async-dns/main.c b/minimal-examples/api-tests/api-test-async-dns/main.c\nindex 83b8931..49afe0f 100644\n--- a/minimal-examples/api-tests/api-test-async-dns/main.c\n+++ b/minimal-examples/api-tests/api-test-async-dns/main.c\n@@ -110,7 +110,7 @@ next_test_cb(lws_sorted_usec_list_t *sul)\n \n \tm \u003d lws_async_dns_query(context, 0,\n \t\t\t\tadt[dtest].dns_name,\n-\t\t\t\tadt[dtest].recordtype, cb1, NULL,\n+\t\t\t\t(adns_query_type_t)adt[dtest].recordtype, cb1, NULL,\n \t\t\t\tcontext);\n \tif (m !\u003d LADNS_RET_CONTINUING \u0026\u0026 m !\u003d LADNS_RET_FOUND) {\n \t\tlwsl_err(\u0022%s: adns 1 failed: %d\u005cn\u0022, __func__, m);\n@@ -169,7 +169,7 @@ cb1(struct lws *wsi_unused, const char *ads, const struct addrinfo *a, int n,\n #endif\n \t\t}\n \t\tif (alen \u003d\u003d adt[dtest - 1].addrlen \u0026\u0026\n-\t\t !memcmp(adt[dtest - 1].ads, addr, alen)) {\n+\t\t !memcmp(adt[dtest - 1].ads, addr, (unsigned int)alen)) {\n \t\t\tok++;\n \t\t\tgoto next;\n \t\t}\n@@ -247,10 +247,10 @@ main(int argc, const char **argv)\n \t\t}\n \n \t\tif (m \u003e 0) {\n-\t\t\tif (memcmp(ipt[n].b, u, m)) {\n+\t\t\tif (memcmp(ipt[n].b, u, (unsigned int)m)) {\n \t\t\t\tlwsl_err(\u0022%s: fail %s compare\u005cn\u0022, __func__,\n \t\t\t\t\t\tipt[n].test);\n-\t\t\t\tlwsl_hexdump_notice(u, m);\n+\t\t\t\tlwsl_hexdump_notice(u, (unsigned int)m);\n \t\t\t\tfail++;\n \t\t\t\tcontinue;\n \t\t\t}\n@@ -281,7 +281,7 @@ main(int argc, const char **argv)\n \t\t\tif (strcmp(ipt[n].emit_test, buf)) {\n \t\t\t\tlwsl_err(\u0022%s: fail %s compare\u005cn\u0022, __func__,\n \t\t\t\t\t\tipt[n].test);\n-\t\t\t\tlwsl_hexdump_notice(buf, m);\n+\t\t\t\tlwsl_hexdump_notice(buf, (unsigned int)m);\n \t\t\t\tfail++;\n \t\t\t\tcontinue;\n \t\t\t}\ndiff --git a/minimal-examples/api-tests/api-test-fts/main.c b/minimal-examples/api-tests/api-test-fts/main.c\nindex 5003f8c..d21a19b 100644\n--- a/minimal-examples/api-tests/api-test-fts/main.c\n+++ b/minimal-examples/api-tests/api-test-fts/main.c\n@@ -106,7 +106,7 @@ int main(int argc, char **argv)\n \t\twhile (optind \u003c argc) {\n \n \t\t\tfi \u003d lws_fts_file_index(t, argv[optind],\n-\t\t\t\t\t\tstrlen(argv[optind]), 1);\n+\t\t\t\t\t\t(int)strlen(argv[optind]), 1);\n \t\t\tif (fi \u003c 0) {\n \t\t\t\tlwsl_err(\u0022%s: Failed to get file idx for %s\u005cn\u0022,\n \t\t\t\t\t __func__, argv[optind]);\n@@ -122,12 +122,12 @@ int main(int argc, char **argv)\n \t\t\t}\n \n \t\t\tdo {\n-\t\t\t\tint n \u003d read(fd, buf, sizeof(buf));\n+\t\t\t\tint n \u003d (int)read(fd, buf, sizeof(buf));\n \n \t\t\t\tif (n \u003c\u003d 0)\n \t\t\t\t\tbreak;\n \n-\t\t\t\tif (lws_fts_fill(t, fi, buf, n)) {\n+\t\t\t\tif (lws_fts_fill(t, (uint32_t)fi, buf, (size_t)n)) {\n \t\t\t\t\tlwsl_err(\u0022%s: lws_fts_fill failed\u005cn\u0022,\n \t\t\t\t\t\t __func__);\n \t\t\t\t\tclose(fd);\ndiff --git a/minimal-examples/api-tests/api-test-jose/jwe.c b/minimal-examples/api-tests/api-test-jose/jwe.c\nindex 44f33f6..e403b2d 100644\n--- a/minimal-examples/api-tests/api-test-jose/jwe.c\n+++ b/minimal-examples/api-tests/api-test-jose/jwe.c\n@@ -1,7 +1,7 @@\n /*\n * lws-api-test-jose - RFC7516 jwe tests\n *\n- * Written in 2010-2018 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\n@@ -134,9 +134,9 @@ test_jwe_a1(struct lws_context *context)\n \t/* we require a JOSE-formatted header to do the encryption */\n \n \tjwe.jws.map.buf[LJWS_JOSE] \u003d temp;\n-\tjwe.jws.map.len[LJWS_JOSE] \u003d lws_snprintf(temp, temp_len,\n+\tjwe.jws.map.len[LJWS_JOSE] \u003d (uint32_t)lws_snprintf(temp, (unsigned int)temp_len,\n \t\t\t\u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022enc\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, \u0022RSA-OAEP\u0022, \u0022A256GCM\u0022);\n-\ttemp_len -\u003d jwe.jws.map.len[LJWS_JOSE];\n+\ttemp_len -\u003d (int)jwe.jws.map.len[LJWS_JOSE];\n \n \t/*\n \t * dup the plaintext into the ciphertext element, it will be\n@@ -155,7 +155,7 @@ test_jwe_a1(struct lws_context *context)\n \tn \u003d lws_gencrypto_bits_to_bytes(jwe.jose.enc_alg-\u003ekeybits_fixed);\n \tif (lws_jws_randomize_element(context, \u0026jwe.jws.map, LJWE_EKEY,\n \t\t\t\t lws_concat_temp(temp, temp_len),\n-\t\t\t\t \u0026temp_len, n,\n+\t\t\t\t \u0026temp_len, (unsigned int)n,\n \t\t\t\t LWS_JWE_LIMIT_KEY_ELEMENT_BYTES)) {\n \t\tlwsl_err(\u0022Problem getting random\u005cn\u0022);\n \t\tgoto bail;\n@@ -500,7 +500,7 @@ test_jwe_ra_ptext_1024(struct lws_context *context, char *jwk_txt, int jwk_len)\n \n \t/* reuse the rsa private key from the JWE Appendix 2 test above */\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -530,7 +530,7 @@ test_jwe_ra_ptext_1024(struct lws_context *context, char *jwk_txt, int jwk_len)\n \tjwe.jws.map.len[LJWE_JOSE] \u003d (uint32_t)strlen(rsa256a128_jose);\n \n \tn \u003d lws_jwe_parse_jose(\u0026jwe.jose, jwe.jws.map.buf[LJWE_JOSE],\n-\t\t\t jwe.jws.map.len[LJWE_JOSE],\n+\t\t\t (int)jwe.jws.map.len[LJWE_JOSE],\n \t\t\t lws_concat_temp(temp, temp_len), \u0026temp_len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n@@ -559,7 +559,7 @@ test_jwe_ra_ptext_1024(struct lws_context *context, char *jwk_txt, int jwk_len)\n \n \t/* now we created the encrypted version, see if we can decrypt it */\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -627,7 +627,7 @@ test_jwe_r256a192_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \n \t/* reuse the rsa private key from the JWE Appendix 2 test above */\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -660,7 +660,7 @@ test_jwe_r256a192_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \tjwe.jws.map.len[LJWE_JOSE] \u003d (uint32_t)strlen(rsa256a192_jose);\n \n \tn \u003d lws_jwe_parse_jose(\u0026jwe.jose, jwe.jws.map.buf[LJWE_JOSE],\n-\t\t\t jwe.jws.map.len[LJWE_JOSE],\n+\t\t\t (int)jwe.jws.map.len[LJWE_JOSE],\n \t\t\t lws_concat_temp(temp, temp_len), \u0026temp_len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n@@ -688,7 +688,7 @@ test_jwe_r256a192_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \tlws_jwe_destroy(\u0026jwe);\n \tlws_jwe_init(\u0026jwe, context);\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -759,7 +759,7 @@ test_jwe_r256a256_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \n \t/* reuse the rsa private key from the JWE Appendix 2 test above */\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -789,7 +789,7 @@ test_jwe_r256a256_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \t}\n \n \tjwe.jws.map.buf[LJWE_JOSE] \u003d rsa256a256_jose;\n-\tjwe.jws.map.len[LJWE_JOSE] \u003d (int)strlen(rsa256a256_jose);\n+\tjwe.jws.map.len[LJWE_JOSE] \u003d (uint32_t)strlen(rsa256a256_jose);\n \n \tn \u003d lws_jwe_parse_jose(\u0026jwe.jose, rsa256a256_jose,\n \t\t\t (int)strlen(rsa256a256_jose),\n@@ -820,7 +820,7 @@ test_jwe_r256a256_ptext(struct lws_context *context, char *jwk_txt, int jwk_len)\n \tlws_jwe_destroy(\u0026jwe);\n \tlws_jwe_init(\u0026jwe, context);\n \n-\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, jwk_len) \u003c 0) {\n+\tif (lws_jwk_import(\u0026jwe.jwk, NULL, NULL, jwk_txt, (unsigned int)jwk_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: Failed to decode JWK test key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -1993,7 +1993,7 @@ test_akw_decrypt(struct lws_context *context, const char *test_name,\n \t/* allowing for trailing padding, confirm the plaintext */\n \tif (jwe.jws.map.len[LJWE_CTXT] \u003c strlen(akw_ptext) ||\n \t lws_timingsafe_bcmp(jwe.jws.map.buf[LJWE_CTXT], akw_ptext,\n-\t\t\t (int)strlen(akw_ptext))) {\n+\t\t\t (uint32_t)strlen(akw_ptext))) {\n \t\tlwsl_err(\u0022%s: plaintext AES decrypt wrong\u005cn\u0022, __func__);\n \t\tlwsl_hexdump_notice(akw_ptext, strlen(akw_ptext));\n \t\tlwsl_hexdump_notice(jwe.jws.map.buf[LJWE_CTXT],\n@@ -2042,9 +2042,9 @@ test_akw_encrypt(struct lws_context *context, const char *test_name,\n \t/* we require a JOSE-formatted header to do the encryption */\n \n \tjwe.jws.map.buf[LJWS_JOSE] \u003d temp;\n-\tjwe.jws.map.len[LJWS_JOSE] \u003d lws_snprintf(temp, temp_len,\n+\tjwe.jws.map.len[LJWS_JOSE] \u003d (uint32_t)lws_snprintf(temp, (unsigned int)temp_len,\n \t\t\t\u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022, \u005c\u0022enc\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, alg, enc);\n-\ttemp_len -\u003d jwe.jws.map.len[LJWS_JOSE];\n+\ttemp_len -\u003d (int)jwe.jws.map.len[LJWS_JOSE];\n \n \t/*\n \t * dup the plaintext into the ciphertext element, it will be\n@@ -2065,7 +2065,7 @@ test_akw_encrypt(struct lws_context *context, const char *test_name,\n \tn \u003d lws_gencrypto_bits_to_bytes(jwe.jose.enc_alg-\u003ekeybits_fixed);\n \tif (lws_jws_randomize_element(context, \u0026jwe.jws.map, LJWE_EKEY,\n \t\t\t\t lws_concat_temp(temp, temp_len),\n-\t\t\t\t \u0026temp_len, n,\n+\t\t\t\t \u0026temp_len, (unsigned int)n,\n \t\t\t\t LWS_JWE_LIMIT_KEY_ELEMENT_BYTES)) {\n \t\tlwsl_err(\u0022Problem getting random\u005cn\u0022);\n \t\tgoto bail;\n@@ -2078,7 +2078,7 @@ test_akw_encrypt(struct lws_context *context, const char *test_name,\n \t\tgoto bail;\n \t}\n \n-\tn \u003d lws_jwe_render_compact(\u0026jwe, compact, compact_len);\n+\tn \u003d lws_jwe_render_compact(\u0026jwe, compact, (unsigned int)compact_len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: lws_jwe_render_compact failed: %d\u005cn\u0022,\n \t\t\t __func__, n);\ndiff --git a/minimal-examples/api-tests/api-test-jose/jws.c b/minimal-examples/api-tests/api-test-jose/jws.c\nindex cb1cb1e..d8e4a70 100644\n--- a/minimal-examples/api-tests/api-test-jose/jws.c\n+++ b/minimal-examples/api-tests/api-test-jose/jws.c\n@@ -1,7 +1,7 @@\n /*\n * lws-api-test-jose - RFC7515 jws tests\n *\n- * Written in 2010-2019 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\n@@ -61,7 +61,7 @@ test_jws_none(struct lws_context *context)\n \n \t/* parse the JOSE header */\n \tif (lws_jws_parse_jose(\u0026jose, map.buf[LJWS_JOSE],\n-\t\t\t map.len[LJWS_JOSE],\n+\t\t\t (int)map.len[LJWS_JOSE],\n \t\t\t (char *)lws_concat_temp(temp, temp_len),\n \t\t\t \u0026temp_len) \u003c 0 || !jose.alg) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n@@ -180,7 +180,7 @@ test_jws_HS256(struct lws_context *context)\n \t\t\t jwk.e[LWS_GENCRYPTO_OCT_KEYEL_K].buf,\n \t\t\t jwk.e[LWS_GENCRYPTO_OCT_KEYEL_K].len))\n \t\tgoto bail;\n-\tif (lws_genhmac_update(\u0026ctx, (uint8_t *)buf, p - buf))\n+\tif (lws_genhmac_update(\u0026ctx, (uint8_t *)buf, lws_ptr_diff_size_t(p, buf)))\n \t\tgoto bail_destroy_hmac;\n \tlws_genhmac_destroy(\u0026ctx, digest);\n \n@@ -198,7 +198,7 @@ test_jws_HS256(struct lws_context *context)\n \n \t/* 1.5: Check we can agree the signature matches the payload */\n \n-\tif (lws_jws_sig_confirm_compact_b64(buf, p - buf, \u0026map, \u0026jwk, context,\n+\tif (lws_jws_sig_confirm_compact_b64(buf, lws_ptr_diff_size_t(p, buf), \u0026map, \u0026jwk, context,\n \t\t\tlws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: confirm sig failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n@@ -326,7 +326,7 @@ test_jws_RS256(struct lws_context *context)\n \tl \u003d (int)strlen(rfc7515_rsa_a1);\n \tif (temp_len \u003c l + 1)\n \t\tgoto bail;\n-\tmemcpy(in, rfc7515_rsa_a1, l + 1);\n+\tmemcpy(in, rfc7515_rsa_a1, (unsigned int)l + 1);\n \ttemp_len -\u003d l + 1;\n \n \tif (lws_jws_b64_compact_map(in, l, \u0026jws.map_b64) !\u003d 3) {\n@@ -342,12 +342,13 @@ test_jws_RS256(struct lws_context *context)\n \t\tlwsl_err(\u0022%s: failed signing test packet\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (unsigned int)n;\n \n \t/* 2.4: confirm our signature can be verified */\n \n \tin[l] \u003d '\u005c0';\n-\tif (lws_jws_sig_confirm_compact_b64(in, l, \u0026map, \u0026jwk, context, lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n+\tif (lws_jws_sig_confirm_compact_b64(in, (unsigned int)l, \u0026map, \u0026jwk,\n+\t\t\tcontext, lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: 2.2: confirm rsa sig failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -446,7 +447,7 @@ test_jws_ES256(struct lws_context *context)\n \n \t/* parse the JOSE header */\n \tif (lws_jws_parse_jose(\u0026jose, jws.map.buf[LJWS_JOSE],\n-\t\t\t jws.map.len[LJWS_JOSE],\n+\t\t\t (int)jws.map.len[LJWS_JOSE],\n \t\t\t (char *)lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n@@ -485,7 +486,7 @@ test_jws_ES256(struct lws_context *context)\n \tif (temp_len \u003c l + 1)\n \t\tgoto bail1;\n \tp \u003d lws_concat_temp(temp, temp_len);\n-\tmemcpy(p, es256_cser, l + 1);\n+\tmemcpy(p, es256_cser, (unsigned int)l + 1);\n \ttemp_len -\u003d l + 1;\n \n \t/* scan the b64 compact serialization string to map the blocks */\n@@ -515,7 +516,7 @@ test_jws_ES256(struct lws_context *context)\n \t\tlwsl_err(\u0022%s: failed signing test packet\u005cn\u0022, __func__);\n \t\tgoto bail1;\n \t}\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (unsigned int)n;\n \n \tlwsl_hexdump(jws.map_b64.buf[LJWS_SIG], jws.map_b64.len[LJWS_SIG]);\n \n@@ -523,7 +524,8 @@ test_jws_ES256(struct lws_context *context)\n \n //\tlwsl_err(\u0022p %p, l %d\u005cn\u0022, p, (int)l);\n \tp[l] \u003d '\u005c0';\n-\tif (lws_jws_sig_confirm_compact_b64(p, l, \u0026map, \u0026jwk, context, lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n+\tif (lws_jws_sig_confirm_compact_b64(p, (unsigned int)l, \u0026map, \u0026jwk,\n+\t\t\tcontext, lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: confirm our EC sig failed\u005cn\u0022, __func__);\n \t\tgoto bail1;\n \t}\n@@ -607,7 +609,7 @@ test_jws_ES512(struct lws_context *context)\n \n \t/* parse the JOSE header */\n \tif (lws_jws_parse_jose(\u0026jose, jws.map.buf[LJWS_JOSE],\n-\t\t\t jws.map.len[LJWS_JOSE],\n+\t\t\t (int)jws.map.len[LJWS_JOSE],\n \t\t\t lws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_err(\u0022%s: JOSE parse failed\u005cn\u0022, __func__);\n \t\tgoto bail;\n@@ -646,7 +648,7 @@ test_jws_ES512(struct lws_context *context)\n \tif (temp_len \u003c l)\n \t\tgoto bail1;\n \tp \u003d lws_concat_temp(temp, temp_len);\n-\tmemcpy(p, es512_cser, l + 1);\n+\tmemcpy(p, es512_cser, (unsigned int)l + 1);\n \ttemp_len -\u003d (l + 1);\n \n \t/* scan the b64 compact serialization string to map the blocks */\n@@ -673,13 +675,13 @@ test_jws_ES512(struct lws_context *context)\n \t\tlwsl_err(\u0022%s: failed signing test packet\u005cn\u0022, __func__);\n \t\tgoto bail1;\n \t}\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (unsigned int)n;\n \n \t/* 2.4: confirm our generated signature can be verified */\n \n \tp[l] \u003d '\u005c0';\n \n-\tif (lws_jws_sig_confirm_compact_b64(p, l, \u0026map, \u0026jwk, context,\n+\tif (lws_jws_sig_confirm_compact_b64(p, (unsigned int)l, \u0026map, \u0026jwk, context,\n \t\t\tlws_concat_temp(temp, temp_len), \u0026temp_len) \u003c 0) {\n \t\tlwsl_notice(\u0022%s: confirm our ECDSA sig failed\u005cn\u0022, __func__);\n \t\tgoto bail1;\ndiff --git a/minimal-examples/api-tests/api-test-lws_sequencer/main.c b/minimal-examples/api-tests/api-test-lws_sequencer/main.c\nindex 2126e99..5bedb28 100644\n--- a/minimal-examples/api-tests/api-test-lws_sequencer/main.c\n+++ b/minimal-examples/api-tests/api-test-lws_sequencer/main.c\n@@ -90,7 +90,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n \t\tif (!s)\n \t\t\treturn 1;\n-\t\ts-\u003ehttp_resp \u003d lws_http_client_http_response(wsi);\n+\t\ts-\u003ehttp_resp \u003d (int)lws_http_client_http_response(wsi);\n \t\tlwsl_info(\u0022Connected with server response: %d\u005cn\u0022, s-\u003ehttp_resp);\n \t\tbreak;\n \ndiff --git a/minimal-examples/api-tests/api-test-lws_struct-json/main.c b/minimal-examples/api-tests/api-test-lws_struct-json/main.c\nindex d6d06fa..5f18af5 100644\n--- a/minimal-examples/api-tests/api-test-lws_struct-json/main.c\n+++ b/minimal-examples/api-tests/api-test-lws_struct-json/main.c\n@@ -611,7 +611,7 @@ int main(int argc, const char **argv)\n \t\t}\n \n \t\tdo {\n-\t\t\tn \u003d lws_struct_json_serialize(ser, buf, sizeof(buf),\n+\t\t\tn \u003d (int)lws_struct_json_serialize(ser, buf, sizeof(buf),\n \t\t\t\t\t\t \u0026written);\n \t\t\tswitch (n) {\n \t\t\tcase LSJS_RESULT_FINISH:\n@@ -658,7 +658,7 @@ done:\n \n \t}\n \tdo {\n-\t\tn \u003d lws_struct_json_serialize(ser, buf, sizeof(buf), \u0026written);\n+\t\tn \u003d (int)lws_struct_json_serialize(ser, buf, sizeof(buf), \u0026written);\n \t\tswitch (n) {\n \t\tcase LSJS_RESULT_CONTINUE:\n \t\tcase LSJS_RESULT_FINISH:\n@@ -725,7 +725,7 @@ done:\n \t\tif (!js)\n \t\t\tgoto bail;\n \n-\t\tn \u003d lws_struct_json_serialize(js, buf, 2048, \u0026w);\n+\t\tn \u003d (int)lws_struct_json_serialize(js, buf, 2048, \u0026w);\n \t\tlws_struct_json_serialize_destroy(\u0026js);\n \t\tif (n !\u003d LSJS_RESULT_FINISH)\n \t\t\tgoto bail;\ndiff --git a/minimal-examples/api-tests/api-test-lws_struct-json/test2.c b/minimal-examples/api-tests/api-test-lws_struct-json/test2.c\nindex 535adf9..e26dc3b 100644\n--- a/minimal-examples/api-tests/api-test-lws_struct-json/test2.c\n+++ b/minimal-examples/api-tests/api-test-lws_struct-json/test2.c\n@@ -207,7 +207,7 @@ test2(void)\n \t}\n \n \tdo {\n-\t\tn \u003d lws_struct_json_serialize(ser, buf, sizeof(buf), \u0026written);\n+\t\tn \u003d (int)lws_struct_json_serialize(ser, buf, sizeof(buf), \u0026written);\n \t\tswitch (n) {\n \t\tcase LSJS_RESULT_FINISH:\n \t\t\tputs((const char *)buf);\ndiff --git a/minimal-examples/api-tests/api-test-lws_tokenize/main.c b/minimal-examples/api-tests/api-test-lws_tokenize/main.c\nindex 9accde8..fb5938c 100644\n--- a/minimal-examples/api-tests/api-test-lws_tokenize/main.c\n+++ b/minimal-examples/api-tests/api-test-lws_tokenize/main.c\n@@ -1,7 +1,7 @@\n /*\n * lws-api-test-lws_tokenize\n *\n- * Written in 2010-2019 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\n@@ -494,7 +494,7 @@ int main(int argc, const char **argv)\n \t\tmemset(\u0026ts, 0, sizeof(ts));\n \t\tts.start \u003d tests[n].string;\n \t\tts.len \u003d strlen(ts.start);\n-\t\tts.flags \u003d tests[n].flags;\n+\t\tts.flags \u003d (uint16_t)tests[n].flags;\n \n \t\tdo {\n \t\t\te \u003d lws_tokenize(\u0026ts);\n@@ -543,7 +543,7 @@ int main(int argc, const char **argv)\n \tif (p) {\n \t\tts.start \u003d p;\n \t\tts.len \u003d strlen(p);\n-\t\tts.flags \u003d flags;\n+\t\tts.flags \u003d (uint16_t)flags;\n \n \t\tprintf(\u0022\u005ct{\u005cn\u005ct\u005ct\u005c\u0022%s\u005c\u0022,\u005cn\u0022\n \t\t \u0022\u005ct\u005ctexpected%d, LWS_ARRAY_SIZE(expected%d),\u005cn\u005ct\u005ct\u0022,\ndiff --git a/minimal-examples/api-tests/api-test-secure-streams/main.c b/minimal-examples/api-tests/api-test-secure-streams/main.c\nindex 77c44da..8becb67 100644\n--- a/minimal-examples/api-tests/api-test-secure-streams/main.c\n+++ b/minimal-examples/api-tests/api-test-secure-streams/main.c\n@@ -196,7 +196,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n {\n \tmyss_t *m \u003d (myss_t *)userobj;\n \n-\tlwsl_notice(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_notice(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\ndiff --git a/minimal-examples/crypto/minimal-crypto-jwe/main.c b/minimal-examples/crypto/minimal-crypto-jwe/main.c\nindex 384f49d..883f0b6 100644\n--- a/minimal-examples/crypto/minimal-crypto-jwe/main.c\n+++ b/minimal-examples/crypto/minimal-crypto-jwe/main.c\n@@ -1,7 +1,7 @@\n /*\n * lws-crypto-jwe\n *\n- * Written in 2010-2019 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\n@@ -142,15 +142,15 @@ int main(int argc, const char **argv)\n \t\t\treturn 1;\n \t\t}\n \n-\t\tjwe.jws.map.len[LJWS_JOSE] \u003d lws_snprintf(\n-\t\t\t\t(char *)jwe.jws.map.buf[LJWS_JOSE], temp_len,\n+\t\tjwe.jws.map.len[LJWS_JOSE] \u003d (uint32_t)lws_snprintf(\n+\t\t\t\t(char *)jwe.jws.map.buf[LJWS_JOSE], (unsigned int)temp_len,\n \t\t\t\t\u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022enc\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, p, sp + 1);\n \n \t\tenc \u003d 1;\n \t}\n \n \tin \u003d lws_concat_temp(temp, temp_len);\n-\tn \u003d read(0, in, temp_len);\n+\tn \u003d (int)read(0, in, (unsigned int)temp_len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022Problem reading from stdin\u005cn\u0022);\n \t\treturn 1;\n@@ -158,7 +158,7 @@ int main(int argc, const char **argv)\n \n \t/* account for padding as well */\n \n-\ttemp_len -\u003d (int)lws_gencrypto_padded_length(LWS_AES_CBC_BLOCKLEN, n);\n+\ttemp_len -\u003d (int)lws_gencrypto_padded_length(LWS_AES_CBC_BLOCKLEN, (unsigned int)n);\n \n \t/* grab the key */\n \n@@ -179,7 +179,7 @@ int main(int argc, const char **argv)\n \t\t/* point CTXT to the plaintext we read from stdin */\n \n \t\tjwe.jws.map.buf[LJWE_CTXT] \u003d in;\n-\t\tjwe.jws.map.len[LJWE_CTXT] \u003d n;\n+\t\tjwe.jws.map.len[LJWE_CTXT] \u003d (uint32_t)n;\n \n \t\t/*\n \t\t * Create a random CEK and set EKEY to it\n@@ -189,7 +189,7 @@ int main(int argc, const char **argv)\n \t\tn \u003d lws_gencrypto_bits_to_bytes(jwe.jose.enc_alg-\u003ekeybits_fixed);\n \t\tif (lws_jws_randomize_element(context, \u0026jwe.jws.map, LJWE_EKEY,\n \t\t\t\t\t lws_concat_temp(temp, temp_len),\n-\t\t\t\t\t \u0026temp_len, n,\n+\t\t\t\t\t \u0026temp_len, (unsigned int)n,\n \t\t\t\t\t LWS_JWE_LIMIT_KEY_ELEMENT_BYTES)) {\n \t\t\tlwsl_err(\u0022Problem getting random\u005cn\u0022);\n \t\t\tgoto bail1;\ndiff --git a/minimal-examples/crypto/minimal-crypto-jws/main.c b/minimal-examples/crypto/minimal-crypto-jws/main.c\nindex e8d5b5d..d579aab 100644\n--- a/minimal-examples/crypto/minimal-crypto-jws/main.c\n+++ b/minimal-examples/crypto/minimal-crypto-jws/main.c\n@@ -1,7 +1,7 @@\n /*\n * lws-crypto-jws\n *\n- * Written in 2010-2019 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\n@@ -69,14 +69,14 @@ int main(int argc, const char **argv)\n \t\t\treturn 1;\n \t\t}\n \n-\t\tjws.map.len[LJWS_JOSE] \u003d\n+\t\tjws.map.len[LJWS_JOSE] \u003d (uint32_t)\n \t\t\t\tlws_snprintf((char *)jws.map.buf[LJWS_JOSE],\n-\t\t\t\t\t temp_len, \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, p);\n+\t\t\t\t\t (unsigned int)temp_len, \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, p);\n \t\tsign \u003d 1;\n \t}\n \n \tin \u003d lws_concat_temp(temp, temp_len);\n-\tn \u003d read(0, in, temp_len);\n+\tn \u003d (int)read(0, in, (unsigned int)temp_len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022Problem reading from stdin\u005cn\u0022);\n \t\treturn 1;\n@@ -101,7 +101,7 @@ int main(int argc, const char **argv)\n \t\t/* add the plaintext from stdin to the map and a b64 version */\n \n \t\tjws.map.buf[LJWS_PYLD] \u003d in;\n-\t\tjws.map.len[LJWS_PYLD] \u003d n;\n+\t\tjws.map.len[LJWS_PYLD] \u003d (unsigned int)n;\n \n \t\tif (lws_jws_encode_b64_element(\u0026jws.map_b64, LJWS_PYLD,\n \t\t\t\t\t lws_concat_temp(temp, temp_len),\n@@ -121,7 +121,7 @@ int main(int argc, const char **argv)\n \n \t\tif (lws_jws_alloc_element(\u0026jws.map_b64, LJWS_SIG,\n \t\t\t\t lws_concat_temp(temp, temp_len),\n-\t\t\t\t \u0026temp_len, lws_base64_size(\n+\t\t\t\t \u0026temp_len, (unsigned int)lws_base64_size(\n \t\t\t\t\t LWS_JWE_LIMIT_KEY_ELEMENT_BYTES), 0)) {\n \t\t\tlwsl_err(\u0022%s: temp space too small\u005cn\u0022, __func__);\n \t\t\tgoto bail1;\n@@ -139,7 +139,7 @@ int main(int argc, const char **argv)\n \t\t\tgoto bail1;\n \t\t}\n \t\t/* set the actual b64 signature size */\n-\t\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\t\tjws.map_b64.len[LJWS_SIG] \u003d (uint32_t)n;\n \n \t\tif (lws_cmdline_option(argc, argv, \u0022-f\u0022))\n \t\t\t/* create the flattened representation */\n@@ -167,7 +167,7 @@ int main(int argc, const char **argv)\n \t\t/* perform the verify directly on the compact representation */\n \n \t\tif (lws_cmdline_option(argc, argv, \u0022-f\u0022)) {\n-\t\t\tif (lws_jws_sig_confirm_json(in, n, \u0026jws, \u0026jwk, context,\n+\t\t\tif (lws_jws_sig_confirm_json(in, (unsigned int)n, \u0026jws, \u0026jwk, context,\n \t\t\t\t\tlws_concat_temp(temp, temp_len),\n \t\t\t\t\t\u0026temp_len) \u003c 0) {\n \t\t\t\tlwsl_notice(\u0022%s: confirm rsa sig failed\u005cn\u0022,\n@@ -183,7 +183,7 @@ int main(int argc, const char **argv)\n \t\t\t}\n \t\t} else {\n \t\t\tif (lws_jws_sig_confirm_compact_b64(in,\n-\t\t\t\t\tlws_concat_used(temp, temp_len),\n+\t\t\t\t\tlws_concat_used(temp, (unsigned int)temp_len),\n \t\t\t\t\t\u0026map, \u0026jwk, context,\n \t\t\t\t\tlws_concat_temp(temp, temp_len),\n \t\t\t\t\t\u0026temp_len) \u003c 0) {\ndiff --git a/minimal-examples/crypto/minimal-crypto-x509/main.c b/minimal-examples/crypto/minimal-crypto-x509/main.c\nindex a73ee21..e6f210b 100644\n--- a/minimal-examples/crypto/minimal-crypto-x509/main.c\n+++ b/minimal-examples/crypto/minimal-crypto-x509/main.c\n@@ -19,7 +19,7 @@ read_pem(const char *filename, char *pembuf, int pembuf_len)\n \tif (fd \u003d\u003d -1)\n \t\treturn -1;\n \n-\tn \u003d read(fd, pembuf, pembuf_len - 1);\n+\tn \u003d (int)read(fd, pembuf, (unsigned int)pembuf_len - 1);\n \tclose(fd);\n \n \tpembuf[n++] \u003d '\u005c0';\n@@ -43,7 +43,7 @@ read_pem_c509_cert(struct lws_x509_cert **x509, const char *filename,\n \t\treturn -1;\n \t}\n \n-\tif (lws_x509_parse_from_pem(*x509, pembuf, n) \u003c 0) {\n+\tif (lws_x509_parse_from_pem(*x509, pembuf, (unsigned int)n) \u003c 0) {\n \t\tlwsl_err(\u0022%s: unable to parse PEM %s\u005cn\u0022, __func__, filename);\n \t\tlws_x509_destroy(x509);\n \n@@ -166,7 +166,7 @@ int main(int argc, const char **argv)\n \n \t\t\tgoto bail3;\n \t\t}\n-\t\tif (lws_x509_jwk_privkey_pem(\u0026jwk, pembuf, n, NULL)) {\n+\t\tif (lws_x509_jwk_privkey_pem(\u0026jwk, pembuf, (unsigned int)n, NULL)) {\n \t\t\tlwsl_err(\u0022%s: unable to parse privkey %s\u005cn\u0022,\n \t\t\t\t\t__func__, p);\n \ndiff --git a/minimal-examples/dbus-server/minimal-dbus-ws-proxy/protocol_lws_minimal_dbus_ws_proxy.c b/minimal-examples/dbus-server/minimal-dbus-ws-proxy/protocol_lws_minimal_dbus_ws_proxy.c\nindex e621c8e..3db1c4e 100644\n--- a/minimal-examples/dbus-server/minimal-dbus-ws-proxy/protocol_lws_minimal_dbus_ws_proxy.c\n+++ b/minimal-examples/dbus-server/minimal-dbus-ws-proxy/protocol_lws_minimal_dbus_ws_proxy.c\n@@ -739,10 +739,10 @@ callback_minimal_dbus_wsproxy(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t{\n \t\t\tchar strbuf[256];\n-\t\t\tint l \u003d len;\n+\t\t\tsize_t l \u003d len;\n \n-\t\t\tif (l \u003e (int)sizeof(strbuf) - 1)\n-\t\t\t\tl \u003d sizeof(strbuf) - 1;\n+\t\t\tif (l \u003e sizeof(strbuf) - 1u)\n+\t\t\t\tl \u003d sizeof(strbuf) - 1u;\n \n \t\t\tmemcpy(strbuf, in, l);\n \t\t\tstrbuf[l] \u003d '\u005c0';\ndiff --git a/minimal-examples/http-client/minimal-http-client-attach/minimal-http-client-attach.c b/minimal-examples/http-client/minimal-http-client-attach/minimal-http-client-attach.c\nindex 20a0352..3f7b255 100644\n--- a/minimal-examples/http-client/minimal-http-client-attach/minimal-http-client-attach.c\n+++ b/minimal-examples/http-client/minimal-http-client-attach/minimal-http-client-attach.c\n@@ -46,7 +46,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tchar buf[128];\n \n \t\t\tlws_get_peer_simple(wsi, buf, sizeof(buf));\n-\t\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \n \t\t\tlwsl_user(\u0022Connected to %s, http response: %d\u005cn\u0022,\n \t\t\t\t\tbuf, status);\ndiff --git a/minimal-examples/http-client/minimal-http-client-captive-portal/minimal-http-client-captive-portal.c b/minimal-examples/http-client/minimal-http-client-captive-portal/minimal-http-client-captive-portal.c\nindex 38d1a76..ffa1390 100644\n--- a/minimal-examples/http-client/minimal-http-client-captive-portal/minimal-http-client-captive-portal.c\n+++ b/minimal-examples/http-client/minimal-http-client-captive-portal/minimal-http-client-captive-portal.c\n@@ -45,7 +45,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tchar buf[128];\n \n \t\t\tlws_get_peer_simple(wsi, buf, sizeof(buf));\n-\t\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \n \t\t\tlwsl_user(\u0022Connected to %s, http response: %d\u005cn\u0022,\n \t\t\t\t\tbuf, status);\n@@ -114,7 +114,7 @@ callback_cpd_http(struct lws *wsi, enum lws_callback_reasons reason,\n \tswitch (reason) {\n \n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n-\t\tresp \u003d lws_http_client_http_response(wsi);\n+\t\tresp \u003d (int)lws_http_client_http_response(wsi);\n \t\tif (!resp)\n \t\t\tbreak;\n \t\tlwsl_user(\u0022%s: established with resp %d\u005cn\u0022, __func__, resp);\ndiff --git a/minimal-examples/http-client/minimal-http-client-certinfo/minimal-http-client-certinfo.c b/minimal-examples/http-client/minimal-http-client-certinfo/minimal-http-client-certinfo.c\nindex ffe4849..2eb8968 100644\n--- a/minimal-examples/http-client/minimal-http-client-certinfo/minimal-http-client-certinfo.c\n+++ b/minimal-examples/http-client/minimal-http-client-certinfo/minimal-http-client-certinfo.c\n@@ -37,7 +37,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tbreak;\n \n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n-\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \t\tlwsl_notice(\u0022lws_http_client_http_response %d\u005cn\u0022, status);\n \n \t\tif (!lws_tls_peer_cert_info(wsi, LWS_TLS_CERT_INFO_COMMON_NAME,\n@@ -62,7 +62,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t LWS_TLS_CERT_INFO_OPAQUE_PUBLIC_KEY,\n \t\t\t\t\t ci, sizeof(buf) - sizeof(*ci))) {\n \t\t\tlwsl_notice(\u0022 Peer Cert public key:\u005cn\u0022);\n-\t\t\tlwsl_hexdump_notice(ci-\u003ens.name, ci-\u003ens.len);\n+\t\t\tlwsl_hexdump_notice(ci-\u003ens.name, (unsigned int)ci-\u003ens.len);\n \t\t}\n \t\tbreak;\n \ndiff --git a/minimal-examples/http-client/minimal-http-client-custom-headers/minimal-http-client-custom-headers.c b/minimal-examples/http-client/minimal-http-client-custom-headers/minimal-http-client-custom-headers.c\nindex 2fd953e..92f5326 100644\n--- a/minimal-examples/http-client/minimal-http-client-custom-headers/minimal-http-client-custom-headers.c\n+++ b/minimal-examples/http-client/minimal-http-client-custom-headers/minimal-http-client-custom-headers.c\n@@ -51,7 +51,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t}\n \n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n-\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \t\tlwsl_user(\u0022Connected with server response: %d\u005cn\u0022, status);\n \n \t\t/*\ndiff --git a/minimal-examples/http-client/minimal-http-client-h2-rxflow/minimal-http-client.c b/minimal-examples/http-client/minimal-http-client-h2-rxflow/minimal-http-client.c\nindex 0f67de0..61baa60 100644\n--- a/minimal-examples/http-client/minimal-http-client-h2-rxflow/minimal-http-client.c\n+++ b/minimal-examples/http-client/minimal-http-client-h2-rxflow/minimal-http-client.c\n@@ -66,7 +66,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tchar buf[128];\n \n \t\t\tlws_get_peer_simple(wsi, buf, sizeof(buf));\n-\t\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \n \t\t\tlwsl_user(\u0022Connected to %s, http response: %d\u005cn\u0022,\n \t\t\t\t\tbuf, status);\ndiff --git a/minimal-examples/http-client/minimal-http-client-hugeurl/minimal-http-client-hugeurl.c b/minimal-examples/http-client/minimal-http-client-hugeurl/minimal-http-client-hugeurl.c\nindex 99c98e4..7b58f3e 100644\n--- a/minimal-examples/http-client/minimal-http-client-hugeurl/minimal-http-client-hugeurl.c\n+++ b/minimal-examples/http-client/minimal-http-client-hugeurl/minimal-http-client-hugeurl.c\n@@ -77,7 +77,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tbreak;\n \n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n-\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \t\tlwsl_user(\u0022Connected with server response: %d\u005cn\u0022, status);\n \t\tbreak;\n \ndiff --git a/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c b/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c\nindex 4a77fb8..c9fb055 100644\n--- a/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c\n+++ b/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c\n@@ -150,13 +150,13 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t\t \u0026p, end))\n \t\t\t\treturn -1;\n \t\t\t/* notice every usage of the boundary starts with -- */\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022my text field\u005cxd\u005cxa\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022my text field\u005cxd\u005cxa\u0022);\n \t\t\tbreak;\n \t\tcase 1:\n \t\t\tif (lws_client_http_multipart(wsi, \u0022file\u0022, \u0022myfile.txt\u0022,\n \t\t\t\t\t\t \u0022text/plain\u0022, \u0026p, end))\n \t\t\t\treturn -1;\n-\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022This is the contents of the \u0022\n \t\t\t\t\t\u0022uploaded file.\u005cxd\u005cxa\u0022\n \t\t\t\t\t\u0022\u005cxd\u005cxa\u0022);\n@@ -179,7 +179,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\treturn 0;\n \t\t}\n \n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start), n)\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start), (enum lws_write_protocol)n)\n \t\t\t\t!\u003d lws_ptr_diff(p, start))\n \t\t\treturn 1;\n \n@@ -266,7 +266,7 @@ unsigned long long us(void)\n \n \tgettimeofday(\u0026t, NULL);\n \n-\treturn (t.tv_sec * 1000000ull) + t.tv_usec;\n+\treturn ((unsigned long long)t.tv_sec * 1000000ull) + (unsigned long long)t.tv_usec;\n }\n \n static void\n@@ -309,9 +309,9 @@ stagger_cb(lws_sorted_usec_list_t *sul)\n \tif (stagger_idx \u003d\u003d count)\n \t\treturn;\n \n-\tnext \u003d 300 * LWS_US_PER_MS;\n+\tnext \u003d 150 * LWS_US_PER_MS;\n \tif (stagger_idx \u003d\u003d count - 1)\n-\t\tnext +\u003d 700 * LWS_US_PER_MS;\n+\t\tnext +\u003d 400 * LWS_US_PER_MS;\n \n \tlws_sul_schedule(context, 0, \u0026sul_stagger, stagger_cb, next);\n }\n@@ -462,7 +462,7 @@ int main(int argc, const char **argv)\n \t\t * delay the connections slightly\n \t\t */\n \t\tlws_sul_schedule(context, 0, \u0026sul_stagger, stagger_cb,\n-\t\t\t\t 100 * LWS_US_PER_MS);\n+\t\t\t\t 50 * LWS_US_PER_MS);\n \n \tstart \u003d us();\n \twhile (!intr \u0026\u0026 !lws_service(context, 0))\ndiff --git a/minimal-examples/http-client/minimal-http-client-post/minimal-http-client-post.c b/minimal-examples/http-client/minimal-http-client-post/minimal-http-client-post.c\nindex 2b74bf6..2cd5d3d 100644\n--- a/minimal-examples/http-client/minimal-http-client-post/minimal-http-client-post.c\n+++ b/minimal-examples/http-client/minimal-http-client-post/minimal-http-client-post.c\n@@ -58,7 +58,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t/* ...callbacks related to receiving the result... */\n \n \tcase LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP:\n-\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \t\tlwsl_user(\u0022Connected with server response: %d\u005cn\u0022, status);\n \t\tbreak;\n \n@@ -123,13 +123,13 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t\t \u0026p, end))\n \t\t\t\treturn -1;\n \t\t\t/* notice every usage of the boundary starts with -- */\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022my text field\u005cxd\u005cxa\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022my text field\u005cxd\u005cxa\u0022);\n \t\t\tbreak;\n \t\tcase 1:\n \t\t\tif (lws_client_http_multipart(wsi, \u0022file\u0022, \u0022myfile.txt\u0022,\n \t\t\t\t\t\t \u0022text/plain\u0022, \u0026p, end))\n \t\t\t\treturn -1;\n-\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022This is the contents of the \u0022\n \t\t\t\t\t\u0022uploaded file.\u005cxd\u005cxa\u0022\n \t\t\t\t\t\u0022\u005cxd\u005cxa\u0022);\n@@ -152,7 +152,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\treturn 0;\n \t\t}\n \n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start), n)\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start), (enum lws_write_protocol)n)\n \t\t\t\t!\u003d lws_ptr_diff(p, start))\n \t\t\treturn 1;\n \n@@ -211,7 +211,7 @@ int main(int argc, const char **argv)\n \t * It will just allocate for 1 internal and 1 (+ 1 http2 nwsi) that we\n \t * will use.\n \t */\n-\tinfo.fd_limit_per_thread \u003d 1 + count_clients + 1;\n+\tinfo.fd_limit_per_thread \u003d (unsigned int)(1 + count_clients + 1);\n \n #if defined(LWS_WITH_MBEDTLS) || defined(USE_WOLFSSL)\n \t/*\ndiff --git a/minimal-examples/http-client/minimal-http-client/minimal-http-client.c b/minimal-examples/http-client/minimal-http-client/minimal-http-client.c\nindex 29cb79e..46c9497 100644\n--- a/minimal-examples/http-client/minimal-http-client/minimal-http-client.c\n+++ b/minimal-examples/http-client/minimal-http-client/minimal-http-client.c\n@@ -46,7 +46,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tchar buf[128];\n \n \t\t\tlws_get_peer_simple(wsi, buf, sizeof(buf));\n-\t\t\tstatus \u003d lws_http_client_http_response(wsi);\n+\t\t\tstatus \u003d (int)lws_http_client_http_response(wsi);\n \n \t\t\tlwsl_user(\u0022Connected to %s, http response: %d\u005cn\u0022,\n \t\t\t\t\tbuf, status);\ndiff --git a/minimal-examples/http-server/minimal-http-server-custom-headers/minimal-http-server-custom-headers.c b/minimal-examples/http-server/minimal-http-server-custom-headers/minimal-http-server-custom-headers.c\nindex 6e4c9ad..06f500d 100644\n--- a/minimal-examples/http-server/minimal-http-server-custom-headers/minimal-http-server-custom-headers.c\n+++ b/minimal-examples/http-server/minimal-http-server-custom-headers/minimal-http-server-custom-headers.c\n@@ -40,7 +40,8 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t*end \u003d \u0026buf[sizeof(buf) - LWS_PRE - 1];\n \tstruct pss *pss \u003d (struct pss *)user;\n \tchar value[32], *pr \u003d \u0026pss-\u003eresult[LWS_PRE];\n-\tint n, e \u003d sizeof(pss-\u003eresult) - LWS_PRE;\n+\tsize_t e \u003d sizeof(pss-\u003eresult) - LWS_PRE;\n+\tint n;\n \n \tswitch (reason) {\n \tcase LWS_CALLBACK_HTTP:\n@@ -63,18 +64,18 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t\u0022%s: DNT length %d\u003cbr\u003e\u0022, __func__, n);\n \t\t\tn \u003d lws_hdr_custom_copy(wsi, value, sizeof(value), \u0022dnt:\u0022, 4);\n \t\t\tif (n \u003c 0)\n-\t\t\t\tpss-\u003elen +\u003d lws_snprintf(pr + pss-\u003elen, e - pss-\u003elen,\n+\t\t\t\tpss-\u003elen +\u003d lws_snprintf(pr + pss-\u003elen, e - (unsigned int)pss-\u003elen,\n \t\t\t\t\t\u0022%s: unable to get DNT value\u005cn\u0022, __func__);\n \t\t\telse\n \n-\t\t\t\tpss-\u003elen +\u003d lws_snprintf(pr + pss-\u003elen , e - pss-\u003elen,\n+\t\t\t\tpss-\u003elen +\u003d lws_snprintf(pr + pss-\u003elen , e - (unsigned int)pss-\u003elen,\n \t\t\t\t\t\u0022%s: DNT value '%s'\u005cn\u0022, __func__, value);\n \t\t}\n \n \t\tlwsl_user(\u0022%s\u005cn\u0022, pr);\n \n \t\tif (lws_add_http_common_headers(wsi, HTTP_STATUS_OK,\n-\t\t\t\t\u0022text/html\u0022, pss-\u003elen, \u0026p, end))\n+\t\t\t\t\u0022text/html\u0022, (lws_filepos_t)pss-\u003elen, \u0026p, end))\n \t\t\treturn 1;\n \n \t\tif (lws_finalize_write_http_header(wsi, start, \u0026p, end))\n@@ -89,7 +90,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tstrcpy((char *)start, \u0022hello\u0022);\n \n-\t\tif (lws_write(wsi, (uint8_t *)pr, pss-\u003elen, LWS_WRITE_HTTP_FINAL) !\u003d pss-\u003elen)\n+\t\tif (lws_write(wsi, (uint8_t *)pr, (unsigned int)pss-\u003elen, LWS_WRITE_HTTP_FINAL) !\u003d pss-\u003elen)\n \t\t\treturn 1;\n \n \t\tif (lws_http_transaction_completed(wsi))\ndiff --git a/minimal-examples/http-server/minimal-http-server-deaddrop/minimal-http-server-deaddrop.c b/minimal-examples/http-server/minimal-http-server-deaddrop/minimal-http-server-deaddrop.c\nindex 7d40abd..3a9db09 100644\n--- a/minimal-examples/http-server/minimal-http-server-deaddrop/minimal-http-server-deaddrop.c\n+++ b/minimal-examples/http-server/minimal-http-server-deaddrop/minimal-http-server-deaddrop.c\n@@ -1,7 +1,7 @@\n /*\n * lws-minimal-http-server-deaddrop\n *\n- * Written in 2010-2019 by Andy Green \u003candy@warmcat.com\u003e\n+ * Written in 2010-2020 by Andy Green \u003candy@warmcat.com\u003e\n *\n * This file is made available under the Creative Commons CC0 1.0\n * Universal Public Domain Dedication.\ndiff --git a/minimal-examples/http-server/minimal-http-server-dynamic/minimal-http-server-dynamic.c b/minimal-examples/http-server/minimal-http-server-dynamic/minimal-http-server-dynamic.c\nindex af0b220..9cf8ebe 100644\n--- a/minimal-examples/http-server/minimal-http-server-dynamic/minimal-http-server-dynamic.c\n+++ b/minimal-examples/http-server/minimal-http-server-dynamic/minimal-http-server-dynamic.c\n@@ -145,7 +145,7 @@ callback_dynamic_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t * to work with http/2, we must take care about LWS_PRE\n \t\t\t * valid behind the buffer we will send.\n \t\t\t */\n-\t\t\tp +\u003d lws_snprintf((char *)p, end - p, \u0022\u003chtml\u003e\u0022\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022\u003chtml\u003e\u0022\n \t\t\t\t\u0022\u003chead\u003e\u003cmeta charset\u003dutf-8 \u0022\n \t\t\t\t\u0022http-equiv\u003d\u005c\u0022Content-Language\u005c\u0022 \u0022\n \t\t\t\t\u0022content\u003d\u005c\u0022en\u005c\u0022/\u003e\u003c/head\u003e\u003cbody\u003e\u0022\n@@ -162,15 +162,15 @@ callback_dynamic_http(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t */\n \n \t\t\twhile (lws_ptr_diff(end, p) \u003e 80)\n-\t\t\t\tp +\u003d lws_snprintf((char *)p, end - p,\n+\t\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022%d.%d: this is some content... \u0022,\n \t\t\t\t\tpss-\u003etimes, pss-\u003econtent_lines++);\n \n-\t\t\tp +\u003d lws_snprintf((char *)p, end - p, \u0022\u003cbr\u003e\u003cbr\u003e\u0022);\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022\u003cbr\u003e\u003cbr\u003e\u0022);\n \t\t}\n \n \t\tpss-\u003etimes++;\n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start), n) !\u003d\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start), (enum lws_write_protocol)n) !\u003d\n \t\t\t\tlws_ptr_diff(p, start))\n \t\t\treturn 1;\n \ndiff --git a/minimal-examples/http-server/minimal-http-server-eventlib-smp/minimal-http-server-eventlib-smp.c b/minimal-examples/http-server/minimal-http-server-eventlib-smp/minimal-http-server-eventlib-smp.c\nindex 4a37170..7a7f3f7 100644\n--- a/minimal-examples/http-server/minimal-http-server-eventlib-smp/minimal-http-server-eventlib-smp.c\n+++ b/minimal-examples/http-server/minimal-http-server-eventlib-smp/minimal-http-server-eventlib-smp.c\n@@ -116,7 +116,7 @@ int main(int argc, const char **argv)\n \t\tLWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE;\n \n \tif ((p \u003d lws_cmdline_option(argc, argv, \u0022-t\u0022))) {\n-\t\tinfo.count_threads \u003d atoi(p);\n+\t\tinfo.count_threads \u003d (unsigned int)atoi(p);\n \t\tif (info.count_threads \u003c 1 || info.count_threads \u003e LWS_MAX_SMP)\n \t\t\treturn 1;\n \t} else\ndiff --git a/minimal-examples/http-server/minimal-http-server-form-post-file/minimal-http-server-form-post-file.c b/minimal-examples/http-server/minimal-http-server-form-post-file/minimal-http-server-form-post-file.c\nindex 8d11aaa..bdc6056 100644\n--- a/minimal-examples/http-server/minimal-http-server-form-post-file/minimal-http-server-form-post-file.c\n+++ b/minimal-examples/http-server/minimal-http-server-form-post-file/minimal-http-server-form-post-file.c\n@@ -71,9 +71,9 @@ file_upload_cb(void *data, const char *name, const char *filename,\n \t\tif (len) {\n \t\t\tint n;\n \n-\t\t\tpss-\u003efile_length +\u003d len;\n+\t\t\tpss-\u003efile_length +\u003d (unsigned int)len;\n \n-\t\t\tn \u003d write(pss-\u003efd, buf, len);\n+\t\t\tn \u003d (int)write(pss-\u003efd, buf, (unsigned int)len);\n \t\t\tif (n \u003c len) {\n \t\t\t\tlwsl_notice(\u0022Problem writing file %d\u005cn\u0022, errno);\n \t\t\t}\ndiff --git a/minimal-examples/http-server/minimal-http-server-h2-long-poll/minimal-http-server.c b/minimal-examples/http-server/minimal-http-server-h2-long-poll/minimal-http-server.c\nindex 0d1e1d0..36c8e06 100644\n--- a/minimal-examples/http-server/minimal-http-server-h2-long-poll/minimal-http-server.c\n+++ b/minimal-examples/http-server/minimal-http-server-h2-long-poll/minimal-http-server.c\n@@ -87,7 +87,7 @@ callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\tbreak;\n \t\tn \u003d lws_snprintf((char *)p, sizeof(buf) - LWS_PRE, \u0022%llu\u0022,\n \t\t\t\t (unsigned long long)lws_now_usecs());\n-\t\tm \u003d lws_write(wsi, p, n, LWS_WRITE_HTTP);\n+\t\tm \u003d lws_write(wsi, p, (unsigned int)n, LWS_WRITE_HTTP);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to socket\u005cn\u0022, n);\n \t\t\treturn -1;\ndiff --git a/minimal-examples/http-server/minimal-http-server-smp/minimal-http-server-smp.c b/minimal-examples/http-server/minimal-http-server-smp/minimal-http-server-smp.c\nindex b7d2e69..f32a48f 100644\n--- a/minimal-examples/http-server/minimal-http-server-smp/minimal-http-server-smp.c\n+++ b/minimal-examples/http-server/minimal-http-server-smp/minimal-http-server-smp.c\n@@ -100,7 +100,7 @@ int main(int argc, const char **argv)\n \tinfo.options \u003d\n \t\tLWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE;\n \tif ((p \u003d lws_cmdline_option(argc, argv, \u0022-t\u0022))) {\n-\t\tinfo.count_threads \u003d atoi(p);\n+\t\tinfo.count_threads \u003d (unsigned int)atoi(p);\n \t\tif (info.count_threads \u003c 1 || info.count_threads \u003e LWS_MAX_SMP)\n \t\t\treturn 1;\n \t} else\ndiff --git a/minimal-examples/http-server/minimal-http-server-sse-ring/minimal-http-server-sse-ring.c b/minimal-examples/http-server/minimal-http-server-sse-ring/minimal-http-server-sse-ring.c\nindex 1d4f210..41d2edd 100644\n--- a/minimal-examples/http-server/minimal-http-server-sse-ring/minimal-http-server-sse-ring.c\n+++ b/minimal-examples/http-server/minimal-http-server-sse-ring/minimal-http-server-sse-ring.c\n@@ -112,14 +112,14 @@ thread_spam(void *d)\n \t\t\tgoto wait_unlock;\n \t\t}\n \n-\t\tamsg.payload \u003d malloc(len);\n+\t\tamsg.payload \u003d malloc((unsigned int)len);\n \t\tif (!amsg.payload) {\n \t\t\tlwsl_user(\u0022OOM: dropping\u005cn\u0022);\n \t\t\tgoto wait_unlock;\n \t\t}\n-\t\tn \u003d lws_snprintf((char *)amsg.payload, len,\n+\t\tn \u003d lws_snprintf((char *)amsg.payload, (unsigned int)len,\n \t\t\t \u0022%s: tid: %d, msg: %d\u0022, __func__, whoami, index++);\n-\t\tamsg.len \u003d n;\n+\t\tamsg.len \u003d (unsigned int)n;\n \t\tn \u003d (int)lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n \t\tif (n !\u003d 1) {\n \t\t\t__minimal_destroy_message(\u0026amsg);\n@@ -136,7 +136,7 @@ wait_unlock:\n \n wait:\n \t\t/* rand() would make more sense but coverity shrieks */\n-\t\tusleep(100000 + (time(NULL) \u0026 0xffff));\n+\t\tusleep((useconds_t)(100000 + (time(NULL) \u0026 0xffff)));\n \n \t} while (!vhd-\u003efinished);\n \n@@ -262,11 +262,11 @@ callback_sse(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\tif (!pmsg)\n \t\t\tbreak;\n \n-\t\tp +\u003d lws_snprintf((char *)p, end - p,\n+\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t \u0022data: %s\u005cx0d\u005cx0a\u005cx0d\u005cx0a\u0022,\n \t\t\t\t (const char *)pmsg-\u003epayload);\n \n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start),\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start),\n \t\t\t LWS_WRITE_HTTP) !\u003d lws_ptr_diff(p, start))\n \t\t\treturn 1;\n \ndiff --git a/minimal-examples/http-server/minimal-http-server-sse/minimal-http-server-sse.c b/minimal-examples/http-server/minimal-http-server-sse/minimal-http-server-sse.c\nindex adae1c0..da620dd 100644\n--- a/minimal-examples/http-server/minimal-http-server-sse/minimal-http-server-sse.c\n+++ b/minimal-examples/http-server/minimal-http-server-sse/minimal-http-server-sse.c\n@@ -98,12 +98,12 @@ callback_sse(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t * own private data and timer.\n \t\t */\n \n-\t\tp +\u003d lws_snprintf((char *)p, end - p,\n+\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t \u0022data: %llu\u005cx0d\u005cx0a\u005cx0d\u005cx0a\u0022,\n-\t\t\t\t (unsigned long long)time(NULL) -\n-\t\t\t\t pss-\u003eestablished);\n+\t\t\t\t (unsigned long long)(time(NULL) -\n+\t\t\t\t pss-\u003eestablished));\n \n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start),\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start),\n \t\t\t LWS_WRITE_HTTP) !\u003d lws_ptr_diff(p, start))\n \t\t\treturn 1;\n \ndiff --git a/minimal-examples/mqtt-client/minimal-mqtt-client-multi/minimal-mqtt-client-multi.c b/minimal-examples/mqtt-client/minimal-mqtt-client-multi/minimal-mqtt-client-multi.c\nindex b907d73..4a23f83 100644\n--- a/minimal-examples/mqtt-client/minimal-mqtt-client-multi/minimal-mqtt-client-multi.c\n+++ b/minimal-examples/mqtt-client/minimal-mqtt-client-multi/minimal-mqtt-client-multi.c\n@@ -285,7 +285,7 @@ callback_mqtt(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t(int)chunk, (int)pss-\u003epos);\n \n \t\t\tif (lws_mqtt_client_send_publish(wsi, \u0026pss-\u003epub_param,\n-\t\t\t\t\ttest_string + pss-\u003epos, chunk,\n+\t\t\t\t\ttest_string + pss-\u003epos, (uint32_t)chunk,\n \t\t\t\t\t(pss-\u003epos + chunk \u003d\u003d TEST_STRING_LEN))) {\n \t\t\t\tlwsl_notice(\u0022%s: publish failed\u005cn\u0022, __func__);\n \t\t\t\treturn -1;\ndiff --git a/minimal-examples/mqtt-client/minimal-mqtt-client/minimal-mqtt-client.c b/minimal-examples/mqtt-client/minimal-mqtt-client/minimal-mqtt-client.c\nindex 891270f..c02ae81 100644\n--- a/minimal-examples/mqtt-client/minimal-mqtt-client/minimal-mqtt-client.c\n+++ b/minimal-examples/mqtt-client/minimal-mqtt-client/minimal-mqtt-client.c\n@@ -222,7 +222,7 @@ callback_mqtt(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tchunk \u003d TEST_STRING_LEN - pss-\u003epos;\n \n \t\t\tif (lws_mqtt_client_send_publish(wsi, \u0026pub_param,\n-\t\t\t\t\ttest_string + pss-\u003epos, chunk,\n+\t\t\t\t\ttest_string + pss-\u003epos, (uint32_t)chunk,\n \t\t\t\t\t(pss-\u003epos + chunk \u003d\u003d TEST_STRING_LEN)))\n \t\t\t\treturn -1;\n \ndiff --git a/minimal-examples/raw/minimal-raw-fallback-http-server/minimal-raw-fallback-http-server.c b/minimal-examples/raw/minimal-raw-fallback-http-server/minimal-raw-fallback-http-server.c\nindex 9a98277..5a3e4b7 100644\n--- a/minimal-examples/raw/minimal-raw-fallback-http-server/minimal-raw-fallback-http-server.c\n+++ b/minimal-examples/raw/minimal-raw-fallback-http-server/minimal-raw-fallback-http-server.c\n@@ -73,7 +73,7 @@ callback_raw_echo(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \n \tcase LWS_CALLBACK_RAW_WRITEABLE:\n \t\tlwsl_notice(\u0022LWS_CALLBACK_RAW_WRITEABLE\u005cn\u0022);\n-\t\tlws_write(wsi, pss-\u003ebuf, pss-\u003elen, LWS_WRITE_HTTP);\n+\t\tlws_write(wsi, pss-\u003ebuf, (unsigned int)pss-\u003elen, LWS_WRITE_HTTP);\n \t\tbreak;\n \tdefault:\n \t\tbreak;\ndiff --git a/minimal-examples/raw/minimal-raw-file/minimal-raw-file.c b/minimal-examples/raw/minimal-raw-file/minimal-raw-file.c\nindex 21c5c48..f9759e9 100644\n--- a/minimal-examples/raw/minimal-raw-file/minimal-raw-file.c\n+++ b/minimal-examples/raw/minimal-raw-file/minimal-raw-file.c\n@@ -69,13 +69,13 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \n \tcase LWS_CALLBACK_RAW_RX_FILE:\n \t\tlwsl_notice(\u0022LWS_CALLBACK_RAW_RX_FILE\u005cn\u0022);\n-\t\tn \u003d read(vhd-\u003efilefd, buf, sizeof(buf));\n+\t\tn \u003d (int)read(vhd-\u003efilefd, buf, sizeof(buf));\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022Reading from %s failed\u005cn\u0022, filepath);\n \n \t\t\treturn 1;\n \t\t}\n-\t\tlwsl_hexdump_level(LLL_NOTICE, buf, n);\n+\t\tlwsl_hexdump_level(LLL_NOTICE, buf, (unsigned int)n);\n \t\tbreak;\n \n \tcase LWS_CALLBACK_RAW_CLOSE_FILE:\ndiff --git a/minimal-examples/raw/minimal-raw-netcat/minimal-raw-netcat.c b/minimal-examples/raw/minimal-raw-netcat/minimal-raw-netcat.c\nindex ccdd5a5..489c030 100644\n--- a/minimal-examples/raw/minimal-raw-netcat/minimal-raw-netcat.c\n+++ b/minimal-examples/raw/minimal-raw-netcat/minimal-raw-netcat.c\n@@ -65,7 +65,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \n \tcase LWS_CALLBACK_RAW_RX_FILE:\n \t\tlwsl_user(\u0022LWS_CALLBACK_RAW_RX_FILE\u005cn\u0022);\n-\t\twaiting \u003d read(0, buf, sizeof(buf));\n+\t\twaiting \u003d (int)read(0, buf, sizeof(buf));\n \t\tlwsl_notice(\u0022raw file read %d\u005cn\u0022, waiting);\n \t\tif (waiting \u003c 0)\n \t\t\treturn -1;\n@@ -107,7 +107,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t// lwsl_hexdump_info(buf, waiting);\n \t\tif (stdin_wsi)\n \t\t\tlws_rx_flow_control(stdin_wsi, 1);\n-\t\tif (lws_write(wsi, buf, waiting, LWS_WRITE_RAW) !\u003d waiting) {\n+\t\tif (lws_write(wsi, buf, (unsigned int)waiting, LWS_WRITE_RAW) !\u003d waiting) {\n \t\t\tlwsl_notice(\u0022%s: raw skt write failed\u005cn\u0022, __func__);\n \n \t\t\treturn -1;\ndiff --git a/minimal-examples/raw/minimal-raw-serial/minimal-raw-file.c b/minimal-examples/raw/minimal-raw-serial/minimal-raw-file.c\nindex f4e9d03..4b15320 100644\n--- a/minimal-examples/raw/minimal-raw-serial/minimal-raw-file.c\n+++ b/minimal-examples/raw/minimal-raw-serial/minimal-raw-file.c\n@@ -89,12 +89,12 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tcfsetispeed(\u0026tio, B115200);\n \t\tcfsetospeed(\u0026tio, B115200);\n \n-\t\ttio.c_lflag \u0026\u003d ~(ISIG | ICANON | IEXTEN | ECHO |\n+\t\ttio.c_lflag \u0026\u003d (tcflag_t)~(ISIG | ICANON | IEXTEN | ECHO |\n #if defined(__linux__)\n \t\t\t\tXCASE |\n #endif\n \t\t\t\t ECHOE | ECHOK | ECHONL | ECHOCTL | ECHOKE);\n-\t\ttio.c_iflag \u0026\u003d ~(INLCR | IGNBRK | IGNPAR | IGNCR | ICRNL |\n+\t\ttio.c_iflag \u0026\u003d (tcflag_t)~(INLCR | IGNBRK | IGNPAR | IGNCR | ICRNL |\n \t\t\t\t IMAXBEL | IXON | IXOFF | IXANY\n #if defined(__linux__)\n \t\t\t\t | IUCLC\n@@ -105,7 +105,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \t\ttio.c_cc[VMIN] \u003d 1;\n \t\ttio.c_cc[VTIME] \u003d 0;\n \t\ttio.c_cc[VEOF] \u003d 1;\n-\t\ttio.c_cflag \u0026\u003d ~(\n+\t\ttio.c_cflag \u003d tio.c_cflag \u0026 (unsigned long) ~(\n #if defined(__linux__)\n \t\t\t\tCBAUD |\n #endif\n@@ -142,13 +142,13 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \n \tcase LWS_CALLBACK_RAW_RX_FILE:\n \t\tlwsl_notice(\u0022LWS_CALLBACK_RAW_RX_FILE\u005cn\u0022);\n-\t\tn \u003d read(vhd-\u003efilefd, buf, sizeof(buf));\n+\t\tn \u003d (int)read(vhd-\u003efilefd, buf, sizeof(buf));\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_err(\u0022Reading from %s failed\u005cn\u0022, filepath);\n \n \t\t\treturn 1;\n \t\t}\n-\t\tlwsl_hexdump_level(LLL_NOTICE, buf, n);\n+\t\tlwsl_hexdump_level(LLL_NOTICE, buf, (unsigned int)n);\n \t\tbreak;\n \n \tcase LWS_CALLBACK_RAW_CLOSE_FILE:\ndiff --git a/minimal-examples/raw/minimal-raw-vhost/minimal-raw-vhost.c b/minimal-examples/raw/minimal-raw-vhost/minimal-raw-vhost.c\nindex ddf0a83..d0f9e27 100644\n--- a/minimal-examples/raw/minimal-raw-vhost/minimal-raw-vhost.c\n+++ b/minimal-examples/raw/minimal-raw-vhost/minimal-raw-vhost.c\n@@ -78,14 +78,14 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tvhd-\u003elen \u003d (int)len;\n \t\tif (vhd-\u003elen \u003e (int)sizeof(vhd-\u003ebuf))\n \t\t\tvhd-\u003elen \u003d sizeof(vhd-\u003ebuf);\n-\t\tmemcpy(vhd-\u003ebuf, in, vhd-\u003elen);\n+\t\tmemcpy(vhd-\u003ebuf, in, (unsigned int)vhd-\u003elen);\n \t\tlws_start_foreach_llp(struct raw_pss **, ppss, vhd-\u003epss_list) {\n \t\t\tlws_callback_on_writable((*ppss)-\u003ewsi);\n \t\t} lws_end_foreach_llp(ppss, pss_list);\n \t\tbreak;\n \n \tcase LWS_CALLBACK_RAW_WRITEABLE:\n-\t\tif (lws_write(wsi, vhd-\u003ebuf, vhd-\u003elen, LWS_WRITE_RAW) !\u003d\n+\t\tif (lws_write(wsi, vhd-\u003ebuf, (unsigned int)vhd-\u003elen, LWS_WRITE_RAW) !\u003d\n \t\t vhd-\u003elen) {\n \t\t\tlwsl_notice(\u0022%s: raw write failed\u005cn\u0022, __func__);\n \t\t\treturn 1;\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c b/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c\nindex c5a7fe4..5506db3 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c\n@@ -88,14 +88,14 @@ use_buffer_50ms(lws_sorted_usec_list_t *sul)\n \t */\n \n \t/* remaining data in buffer */\n-\tn \u003d ((m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n+\tn \u003d ((size_t)(m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n \tlwsl_info(\u0022%s: avail %d\u005cn\u0022, __func__, (int)n);\n \n \tif (n \u003c 401)\n \t\tlwsl_err(\u0022%s: underrun\u005cn\u0022, __func__);\n \n-\tm-\u003etail \u003d (m-\u003etail + 401) % sizeof(m-\u003ebuf);\n-\tn \u003d ((m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n+\tm-\u003etail \u003d ((size_t)m-\u003etail + 401) % sizeof(m-\u003ebuf);\n+\tn \u003d ((size_t)(m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n \n \te \u003d lws_ss_get_est_peer_tx_credit(m-\u003ess);\n \n@@ -103,8 +103,8 @@ use_buffer_50ms(lws_sorted_usec_list_t *sul)\n \n \tif (n \u003c (sizeof(m-\u003ebuf) * 2) / 3 \u0026\u0026 e \u003c (int)(sizeof(m-\u003ebuf) - 1 - n)) {\n \t\tlwsl_info(\u0022%s: requesting additional %d\u005cn\u0022, __func__,\n-\t\t\t\t(int)(sizeof(m-\u003ebuf) - 1 - e - n));\n-\t\tlws_ss_add_peer_tx_credit(m-\u003ess, (int32_t)(sizeof(m-\u003ebuf) - 1 - e - n));\n+\t\t\t\t(int)sizeof(m-\u003ebuf) - 1 - e - (int)n);\n+\t\tlws_ss_add_peer_tx_credit(m-\u003ess, (int32_t)((int)sizeof(m-\u003ebuf) - 1 - e - (int)n));\n \t}\n \n \tlws_sul_schedule(context, 0, \u0026m-\u003esul, use_buffer_50ms,\n@@ -124,7 +124,7 @@ ss_avs_metadata_rx(void *userobj, const uint8_t *buf, size_t len, int flags)\n \tlwsl_hexdump_warn(buf, len);\n #endif\n \n-\tn \u003d sizeof(m-\u003ebuf) - ((m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n+\tn \u003d sizeof(m-\u003ebuf) - ((size_t)(m-\u003ehead - m-\u003etail) % sizeof(m-\u003ebuf));\n \tlwsl_info(\u0022%s: len %d, buf h %d, t %d, space %d\u005cn\u0022, __func__,\n \t\t (int)len, (int)m-\u003ehead, (int)m-\u003etail, (int)n);\n \tlws_ss_get_est_peer_tx_credit(m-\u003ess);\n@@ -138,7 +138,7 @@ ss_avs_metadata_rx(void *userobj, const uint8_t *buf, size_t len, int flags)\n \tif (m-\u003ehead \u003c m-\u003etail)\t\t\t\t/* |****h-------t**| */\n \t\tmemcpy(\u0026m-\u003ebuf[m-\u003ehead], buf, len);\n \telse {\t\t\t\t\t\t/* |---t*****h-----| */\n-\t\tn1 \u003d sizeof(m-\u003ebuf) - m-\u003ehead;\n+\t\tn1 \u003d sizeof(m-\u003ebuf) - (size_t)m-\u003ehead;\n \t\tif (len \u003c n1)\n \t\t\tn1 \u003d len;\n \t\tmemcpy(\u0026m-\u003ebuf[m-\u003ehead], buf, n1);\n@@ -146,7 +146,7 @@ ss_avs_metadata_rx(void *userobj, const uint8_t *buf, size_t len, int flags)\n \t\t\tmemcpy(m-\u003ebuf, buf, len - n1);\n \t}\n \n-\tm-\u003ehead \u003d (m-\u003ehead + len) % sizeof(m-\u003ebuf);\n+\tm-\u003ehead \u003d (((size_t)m-\u003ehead) + len) % sizeof(m-\u003ebuf);\n \n \tlws_sul_schedule(context, 0, \u0026m-\u003esul, use_buffer_50ms,\n \t\t\t 50 * LWS_US_PER_MS);\n@@ -185,7 +185,7 @@ ss_avs_metadata_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf,\n \t\tif (m-\u003epos \u003d\u003d wav_len) {\n \t\t\t*flags |\u003d LWSSS_FLAG_EOM;\n \t\t\tlwsl_info(\u0022%s: tx done\u005cn\u0022, __func__);\n-\t\t\tm-\u003epos \u003d (long)-1l; /* ban subsequent until new stream */\n+\t\t\tm-\u003epos \u003d (size_t)-1l; /* ban subsequent until new stream */\n \t\t} else\n \t\t\tlws_ss_request_tx(m-\u003ess);\n \n@@ -227,7 +227,7 @@ ss_avs_metadata_state(void *userobj, void *sh,\n \tss_avs_metadata_t *m \u003d (ss_avs_metadata_t *)userobj;\n \t// struct lws_context *context \u003d (struct lws_context *)m-\u003eopaque_data;\n \n-\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\n@@ -296,7 +296,7 @@ ss_avs_event_state(void *userobj, void *sh,\n \tstruct lws_context *context \u003d (struct lws_context *)m-\u003eopaque_data;\n \tlws_ss_info_t ssi;\n \n-\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\n@@ -382,7 +382,7 @@ avs_example_start(struct lws_context *context)\n \t\tgoto bail;\n \t}\n \n-\twav_len \u003d stat.st_size;\n+\twav_len \u003d (size_t)stat.st_size;\n \twav \u003d malloc(wav_len);\n \tif (!wav) {\n \t\tlwsl_err(\u0022%s: failed to alloc wav buffer\u0022, __func__);\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-client-tx/minimal-secure-streams-client-tx.c b/minimal-examples/secure-streams/minimal-secure-streams-client-tx/minimal-secure-streams-client-tx.c\nindex b3c2735..3392025 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-client-tx/minimal-secure-streams-client-tx.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-client-tx/minimal-secure-streams-client-tx.c\n@@ -102,7 +102,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_t *m \u003d (myss_t *)userobj;\n \tstruct lws_context *context \u003d lws_sspc_get_context(m-\u003ess);\n \n-\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-metadata/minimal-secure-streams.c b/minimal-examples/secure-streams/minimal-secure-streams-metadata/minimal-secure-streams.c\nindex b3eddea..d5de7f8 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-metadata/minimal-secure-streams.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-metadata/minimal-secure-streams.c\n@@ -219,7 +219,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n {\n \tmyss_t *m \u003d (myss_t *)userobj;\n \n-\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name(state),\n+\tlwsl_user(\u0022%s: %s, ord 0x%x\u005cn\u0022, __func__, lws_ss_state_name((int)state),\n \t\t (unsigned int)ack);\n \n \tswitch (state) {\n@@ -326,7 +326,7 @@ int main(int argc, const char **argv)\n \t/* connect to ssproxy via UDS by default, else via\n \t * tcp connection to this port */\n \tif ((p \u003d lws_cmdline_option(argc, argv, \u0022-p\u0022)))\n-\t\tinfo.ss_proxy_port \u003d atoi(p);\n+\t\tinfo.ss_proxy_port \u003d (uint16_t)atoi(p);\n \n \t/* UDS \u0022proxy.ss.lws\u0022 in abstract namespace, else this socket\n \t * path; when -p given this can specify the network interface\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-policy2c/minimal-secure-streams.c b/minimal-examples/secure-streams/minimal-secure-streams-policy2c/minimal-secure-streams.c\nindex 4cd24fc..8dc5836 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-policy2c/minimal-secure-streams.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-policy2c/minimal-secure-streams.c\n@@ -106,7 +106,7 @@ int main(int argc, const char **argv)\n \tprintf(\u0022/*\u005cn * Autogenerated from the following JSON policy\u005cn */\u005cn\u005cn#if 0\u005cn\u0022);\n \n \tdo {\n-\t\tint m, n \u003d read(0, buf, sizeof(buf));\n+\t\tint m, n \u003d (int)read(0, buf, sizeof(buf));\n \n \t\tif (n \u003c 1)\n \t\t\tbreak;\n@@ -114,7 +114,7 @@ int main(int argc, const char **argv)\n \t\tm \u003d lws_ss_policy_parse(context, (uint8_t *)buf, (size_t)n);\n \n \t\tprintf(\u0022%.*s\u0022, n, buf);\n-\t\tjson_size +\u003d n;\n+\t\tjson_size +\u003d (unsigned int)n;\n \n \t\tif (m \u003c 0 \u0026\u0026 m !\u003d LEJP_CONTINUE) {\n \t\t\tlwsl_err(\u0022%s: policy parse failed... lws has WITH_ROLEs\u0022\n@@ -224,7 +224,7 @@ int main(int argc, const char **argv)\n \t\t\t\tif (!a)\n \t\t\t\t\tgoto bail;\n \t\t\t\ta-\u003enext \u003d rbomap;\n-\t\t\t\ta-\u003eoffset \u003d unique_rbo++;\n+\t\t\t\ta-\u003eoffset \u003d (unsigned int)unique_rbo++;\n \t\t\t\ta-\u003eorig \u003d (const char *)pol-\u003eretry_bo;\n \t\t\t\trbomap \u003d a;\n \ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-post/minimal-secure-streams-post.c b/minimal-examples/secure-streams/minimal-secure-streams-post/minimal-secure-streams-post.c\nindex e0211b9..a1d6003 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-post/minimal-secure-streams-post.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-post/minimal-secure-streams-post.c\n@@ -379,7 +379,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_t *m \u003d (myss_t *)userobj;\n \n \tlwsl_user(\u0022%s: h %p, %s, ord 0x%x\u005cn\u0022, __func__, m-\u003ess,\n-\t\t\tlws_ss_state_name(state), (unsigned int)ack);\n+\t\t\tlws_ss_state_name((int)state), (unsigned int)ack);\n \n \tswitch (state) {\n \tcase LWSSSCS_CREATING:\n@@ -515,7 +515,7 @@ int main(int argc, const char **argv)\n \t\tforce_cpd_fail_no_internet \u003d 1;\n \n \tif ((p \u003d lws_cmdline_option(argc, argv, \u0022--timeout_ms\u0022)))\n-\t\ttimeout_ms \u003d atoi(p);\n+\t\ttimeout_ms \u003d (unsigned int)atoi(p);\n \n \tinfo.fd_limit_per_thread \u003d 1 + 6 + 1;\n \tinfo.port \u003d CONTEXT_PORT_NO_LISTEN;\n@@ -527,7 +527,7 @@ int main(int argc, const char **argv)\n \t\t/* connect to ssproxy via UDS by default, else via\n \t\t * tcp connection to this port */\n \t\tif ((p \u003d lws_cmdline_option(argc, argv, \u0022-p\u0022)))\n-\t\t\tinfo.ss_proxy_port \u003d atoi(p);\n+\t\t\tinfo.ss_proxy_port \u003d (uint16_t)atoi(p);\n \n \t\t/* UDS \u0022proxy.ss.lws\u0022 in abstract namespace, else this socket\n \t\t * path; when -p given this can specify the network interface\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-server-raw/ss-server.c b/minimal-examples/secure-streams/minimal-secure-streams-server-raw/ss-server.c\nindex 6fbaf99..7ad0b84 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-server-raw/ss-server.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-server-raw/ss-server.c\n@@ -68,7 +68,7 @@ myss_raw_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,\n \n \t*flags \u003d LWSSS_FLAG_SOM | LWSSS_FLAG_EOM;\n \n-\t*len \u003d lws_snprintf((char *)buf, *len, \u0022hello from raw %d\u005cn\u0022, m-\u003ecount++);\n+\t*len \u003d (unsigned int)lws_snprintf((char *)buf, *len, \u0022hello from raw %d\u005cn\u0022, m-\u003ecount++);\n \n \tlws_sul_schedule(lws_ss_get_context(m-\u003ess), 0, \u0026m-\u003esul, spam_sul_cb,\n \t\t\t 100 * LWS_US_PER_MS);\n@@ -83,7 +83,7 @@ myss_raw_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_srv_t *m \u003d (myss_srv_t *)userobj;\n \n \tlwsl_user(\u0022%s: %p %s, ord 0x%x\u005cn\u0022, __func__, m-\u003ess,\n-\t\t lws_ss_state_name(state), (unsigned int)ack);\n+\t\t lws_ss_state_name((int)state), (unsigned int)ack);\n \n \tswitch (state) {\n \tcase LWSSSCS_DISCONNECTED:\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-server/ss-client.c b/minimal-examples/secure-streams/minimal-secure-streams-server/ss-client.c\nindex 77f7ec1..64834c3 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-server/ss-client.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-server/ss-client.c\n@@ -58,7 +58,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_t *m \u003d (myss_t *)userobj;\n \n \tlwsl_user(\u0022%s: %p %s, ord 0x%x\u005cn\u0022, __func__, m-\u003ess,\n-\t\t lws_ss_state_name(state), (unsigned int)ack);\n+\t\t lws_ss_state_name((int)state), (unsigned int)ack);\n \n \tswitch (state) {\n \tcase LWSSSCS_CREATING:\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-server/ss-server.c b/minimal-examples/secure-streams/minimal-secure-streams-server/ss-server.c\nindex 85609fb..2952501 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-server/ss-server.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-server/ss-server.c\n@@ -148,7 +148,7 @@ myss_ws_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,\n \n \t*flags \u003d LWSSS_FLAG_SOM | LWSSS_FLAG_EOM;\n \n-\t*len \u003d lws_snprintf((char *)buf, *len, \u0022hello from ws %d\u0022, m-\u003ecount++);\n+\t*len \u003d (unsigned int)lws_snprintf((char *)buf, *len, \u0022hello from ws %d\u0022, m-\u003ecount++);\n \n \tlws_sul_schedule(lws_ss_get_context(m-\u003ess), 0, \u0026m-\u003esul, spam_sul_cb,\n \t\t\t 100 * LWS_US_PER_MS);\n@@ -163,7 +163,7 @@ myss_srv_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_srv_t *m \u003d (myss_srv_t *)userobj;\n \n \tlwsl_user(\u0022%s: %p %s, ord 0x%x\u005cn\u0022, __func__, m-\u003ess,\n-\t\t lws_ss_state_name(state), (unsigned int)ack);\n+\t\t lws_ss_state_name((int)state), (unsigned int)ack);\n \n \tswitch (state) {\n \tcase LWSSSCS_DISCONNECTED:\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-smd/CMakeLists.txt b/minimal-examples/secure-streams/minimal-secure-streams-smd/CMakeLists.txt\nindex 3d0762c..9d14c00 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-smd/CMakeLists.txt\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-smd/CMakeLists.txt\n@@ -15,9 +15,19 @@ require_lws_config(LWS_WITH_SYS_STATE 1 requirements)\n \n if (requirements)\n \tadd_executable(${PROJECT_NAME} minimal-secure-streams-smd.c)\n-\n-\tif (LWS_CTEST_INTERNET_AVAILABLE)\n-\t\tadd_test(NAME ss-smd COMMAND lws-minimal-secure-streams-smd)\n+\t\n+\tfind_program(VALGRIND \u0022valgrind\u0022)\n+\n+\tif (LWS_CTEST_INTERNET_AVAILABLE AND NOT WIN32)\n+\t\n+\t\tif (VALGRIND)\n+\t\t\tadd_test(NAME ss-smd COMMAND\n+\t\t\t\t${VALGRIND} --tool\u003dmemcheck --leak-check\u003dyes --num-callers\u003d20\n+\t\t\t\t$\u003cTARGET_FILE:lws-minimal-secure-streams-smd\u003e)\n+\t\telse()\n+\t\n+\t\t\tadd_test(NAME ss-smd COMMAND lws-minimal-secure-streams-smd)\n+\t\tendif()\n \t\tset_tests_properties(ss-smd\n \t\t\t\t PROPERTIES\n \t\t\t\t WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/minimal-examples/secure-streams/minimal-secure-streams-smd\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams-smd/minimal-secure-streams-smd.c b/minimal-examples/secure-streams/minimal-secure-streams-smd/minimal-secure-streams-smd.c\nindex 61c5167..b772b0c 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams-smd/minimal-secure-streams-smd.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams-smd/minimal-secure-streams-smd.c\n@@ -117,12 +117,12 @@ myss_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,\n \t\t/*\n \t\t * after a few, let's request a CPD check\n \t\t */\n-\t\t*len \u003d LWS_SMD_SS_RX_HEADER_LEN +\n+\t\t*len \u003d LWS_SMD_SS_RX_HEADER_LEN + (unsigned int)\n \t\t\tlws_snprintf((char *)buf + LWS_SMD_SS_RX_HEADER_LEN, *len,\n \t\t\t\t \u0022{\u005c\u0022trigger\u005c\u0022: \u005c\u0022cpdcheck\u005c\u0022, \u005c\u0022src\u005c\u0022:\u005c\u0022SS-test\u005c\u0022}\u0022);\n \t} else\n \n-\t\t*len \u003d LWS_SMD_SS_RX_HEADER_LEN +\n+\t\t*len \u003d LWS_SMD_SS_RX_HEADER_LEN + (unsigned int)\n \t\t\tlws_snprintf((char *)buf + LWS_SMD_SS_RX_HEADER_LEN, *len,\n \t\t\t\t (m-\u003ealternate \u0026 1) ? \u0022{\u005c\u0022class\u005c\u0022:\u005c\u0022NETWORK\u005c\u0022}\u0022 :\n \t\t\t\t\t\t \u0022{\u005c\u0022class\u005c\u0022:\u005c\u0022INTERACTION\u005c\u0022}\u0022);\ndiff --git a/minimal-examples/secure-streams/minimal-secure-streams/minimal-secure-streams.c b/minimal-examples/secure-streams/minimal-secure-streams/minimal-secure-streams.c\nindex cbf7bf3..fbd5f94 100644\n--- a/minimal-examples/secure-streams/minimal-secure-streams/minimal-secure-streams.c\n+++ b/minimal-examples/secure-streams/minimal-secure-streams/minimal-secure-streams.c\n@@ -272,7 +272,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,\n \tmyss_t *m \u003d (myss_t *)userobj;\n \n \tlwsl_user(\u0022%s: %s (%d), ord 0x%x\u005cn\u0022, __func__,\n-\t\t lws_ss_state_name(state), state, (unsigned int)ack);\n+\t\t lws_ss_state_name((int)state), state, (unsigned int)ack);\n \n \tswitch (state) {\n \tcase LWSSSCS_CREATING:\n@@ -439,7 +439,7 @@ int main(int argc, const char **argv)\n \t\ttest_respmap \u003d 1;\n \n \tif ((p \u003d lws_cmdline_option(argc, argv, \u0022--timeout_ms\u0022)))\n-\t\ttimeout_ms \u003d atoi(p);\n+\t\ttimeout_ms \u003d (unsigned int)atoi(p);\n \n \tinfo.fd_limit_per_thread \u003d 1 + 6 + 1;\n \tinfo.port \u003d CONTEXT_PORT_NO_LISTEN;\n@@ -451,7 +451,7 @@ int main(int argc, const char **argv)\n \t\t/* connect to ssproxy via UDS by default, else via\n \t\t * tcp connection to this port */\n \t\tif ((p \u003d lws_cmdline_option(argc, argv, \u0022-p\u0022)))\n-\t\t\tinfo.ss_proxy_port \u003d atoi(p);\n+\t\t\tinfo.ss_proxy_port \u003d (uint16_t)atoi(p);\n \n \t\t/* UDS \u0022proxy.ss.lws\u0022 in abstract namespace, else this socket\n \t\t * path; when -p given this can specify the network interface\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-binance/main.c b/minimal-examples/ws-client/minimal-ws-client-binance/main.c\nindex 8425479..a8ecadf 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-binance/main.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-binance/main.c\n@@ -16,11 +16,11 @@\n #include \u003cctype.h\u003e\n \n typedef struct range {\n-\tlws_usec_t\t\tsum;\n-\tlws_usec_t\t\tlowest;\n-\tlws_usec_t\t\thighest;\n+\tuint64_t\t\tsum;\n+\tuint64_t\t\tlowest;\n+\tuint64_t\t\thighest;\n \n-\tint\t\t\tsamples;\n+\tunsigned int\t\tsamples;\n } range_t;\n \n /*\n@@ -167,7 +167,7 @@ get_us_timeofday(void)\n \n \tgettimeofday(\u0026tv, NULL);\n \n-\treturn ((lws_usec_t)tv.tv_sec * LWS_US_PER_SEC) + tv.tv_usec;\n+\treturn (uint64_t)((lws_usec_t)tv.tv_sec * LWS_US_PER_SEC) + (uint64_t)tv.tv_usec;\n }\n \n static void\n@@ -211,7 +211,7 @@ pennies(const char *s)\n \ts \u003d strchr(s, '.');\n \n \tif (s \u0026\u0026 isdigit(s[1]) \u0026\u0026 isdigit(s[2]))\n-\t\tprice +\u003d (10 * (s[1] - '0')) + (s[2] - '0');\n+\t\tprice \u003d price + (uint64_t)((10 * (s[1] - '0')) + (s[2] - '0'));\n \n \treturn price;\n }\n@@ -221,7 +221,8 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t void *user, void *in, size_t len)\n {\n \tstruct my_conn *mco \u003d (struct my_conn *)user;\n-\tlws_usec_t latency_us, now_us, price;\n+\tuint64_t latency_us, now_us;\n+\tuint64_t price;\n \tchar numbuf[16];\n \tconst char *p;\n \tsize_t alen;\n@@ -241,7 +242,7 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t// lwsl_hexdump_notice(in, len);\n \n-\t\tnow_us \u003d get_us_timeofday();\n+\t\tnow_us \u003d (uint64_t)get_us_timeofday();\n \n \t\tp \u003d lws_json_simple_find((const char *)in, len,\n \t\t\t\t\t \u0022\u005c\u0022depthUpdate\u005c\u0022\u0022, \u0026alen);\n@@ -259,7 +260,7 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n \t\tlws_strnncpy(numbuf, p, alen, sizeof(numbuf));\n \t\tlatency_us \u003d now_us -\n-\t\t\t\t((lws_usec_t)atoll(numbuf) * LWS_US_PER_MS);\n+\t\t\t\t((uint64_t)atoll(numbuf) * LWS_US_PER_MS);\n \n \t\tif (latency_us \u003c mco-\u003ee_lat_range.lowest)\n \t\t\tmco-\u003ee_lat_range.lowest \u003d latency_us;\n@@ -357,7 +358,7 @@ int main(int argc, const char **argv)\n \t * told which CA to trust explicitly.\n \t */\n \tinfo.client_ssl_ca_mem \u003d ca_pem_digicert_global_root;\n-\tinfo.client_ssl_ca_mem_len \u003d strlen(ca_pem_digicert_global_root);\n+\tinfo.client_ssl_ca_mem_len \u003d (unsigned int)strlen(ca_pem_digicert_global_root);\n #endif\n \n \tcontext \u003d lws_create_context(\u0026info);\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-echo/protocol_lws_minimal_client_echo.c b/minimal-examples/ws-client/minimal-ws-client-echo/protocol_lws_minimal_client_echo.c\nindex 6001495..629ad70 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-echo/protocol_lws_minimal_client_echo.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-echo/protocol_lws_minimal_client_echo.c\n@@ -178,7 +178,7 @@ callback_minimal_client_echo(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t/* notice we allowed for LWS_PRE in the payload already */\n \t\tm \u003d lws_write(wsi, ((unsigned char *)pmsg-\u003epayload) +\n-\t\t\t LWS_PRE, pmsg-\u003elen, flags);\n+\t\t\t LWS_PRE, pmsg-\u003elen, (enum lws_write_protocol)flags);\n \t\tif (m \u003c (int)pmsg-\u003elen) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to ws socket\u005cn\u0022, m);\n \t\t\treturn -1;\n@@ -217,9 +217,9 @@ callback_minimal_client_echo(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t// lwsl_hexdump_notice(in, len);\n \n-\t\tamsg.first \u003d lws_is_first_fragment(wsi);\n-\t\tamsg.final \u003d lws_is_final_fragment(wsi);\n-\t\tamsg.binary \u003d lws_frame_is_binary(wsi);\n+\t\tamsg.first \u003d (char)lws_is_first_fragment(wsi);\n+\t\tamsg.final \u003d (char)lws_is_final_fragment(wsi);\n+\t\tamsg.binary \u003d (char)lws_frame_is_binary(wsi);\n \t\tn \u003d (int)lws_ring_get_count_free_elements(pss-\u003ering);\n \t\tif (!n) {\n \t\t\tlwsl_user(\u0022dropping!\u005cn\u0022);\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-pmd-bulk/protocol_lws_minimal_pmd_bulk.c b/minimal-examples/ws-client/minimal-ws-client-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\nindex c7564ac..b7f7697 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\n@@ -179,9 +179,9 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tsize_t s;\n \n \t\t\t\tm \u003d pss-\u003eposition_tx % REPEAT_STRING_LEN;\n-\t\t\t\ts \u003d REPEAT_STRING_LEN - m;\n+\t\t\t\ts \u003d (unsigned int)(REPEAT_STRING_LEN - m);\n \t\t\t\tif (s \u003e (size_t)n)\n-\t\t\t\t\ts \u003d n;\n+\t\t\t\t\ts \u003d (unsigned int)n;\n \t\t\t\tmemcpy(p, \u0026redundant_string[m], s);\n \t\t\t\tpss-\u003eposition_tx +\u003d (int)s;\n \t\t\t\tp +\u003d s;\n@@ -194,7 +194,7 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n \n \t\tn \u003d lws_ptr_diff(p, start);\n-\t\tm \u003d lws_write(wsi, start, n, flags);\n+\t\tm \u003d lws_write(wsi, start, (unsigned int)n, (enum lws_write_protocol)flags);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022ERROR %d writing ws\u005cn\u0022, m);\n \t\t\treturn -1;\n@@ -222,7 +222,7 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tsize_t s;\n \n \t\t\t\tm \u003d pss-\u003eposition_rx % REPEAT_STRING_LEN;\n-\t\t\t\ts \u003d REPEAT_STRING_LEN - m;\n+\t\t\t\ts \u003d (unsigned int)(REPEAT_STRING_LEN - m);\n \t\t\t\tif (s \u003e len)\n \t\t\t\t\ts \u003d len;\n \t\t\t\tif (memcmp(in, \u0026redundant_string[m], s)) {\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-spam-tx-rx/minimal-ws-client.c b/minimal-examples/ws-client/minimal-ws-client-spam-tx-rx/minimal-ws-client.c\nindex f611e46..2b9b260 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-spam-tx-rx/minimal-ws-client.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-spam-tx-rx/minimal-ws-client.c\n@@ -144,7 +144,7 @@ int main(int argc, const char **argv)\n \tint n \u003d 0, logs \u003d\n \t\t\tLLL_USER | LLL_ERR | LLL_WARN | LLL_NOTICE;\n #ifndef WIN32\n-\tsrandom(time(0));\n+\tsrandom((unsigned int)time(0));\n #endif\n \n \tmemset(msg, 'x', sizeof(msg));\n@@ -201,7 +201,7 @@ int main(int argc, const char **argv)\n \t\tlwsl_notice(\u0022Message delay: %d\u005cn\u0022, connection_delay);\n \t}\n \n-\tinfo.fd_limit_per_thread \u003d 1 + nclients + 1;\n+\tinfo.fd_limit_per_thread \u003d (unsigned int)(1 + nclients + 1);\n \n \tcontext \u003d lws_create_context(\u0026info);\n \tif (!context) {\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-spam/minimal-ws-client-spam.c b/minimal-examples/ws-client/minimal-ws-client-spam/minimal-ws-client-spam.c\nindex 4989aac..20b89df 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-spam/minimal-ws-client-spam.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-spam/minimal-ws-client-spam.c\n@@ -150,7 +150,7 @@ callback_minimal_spam(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tn \u003d lws_snprintf((char *)ping + LWS_PRE, sizeof(ping) - LWS_PRE,\n \t\t\t\t\t \u0022hello %d\u0022, pss-\u003econn);\n \n-\t\tm \u003d lws_write(wsi, ping + LWS_PRE, n, LWS_WRITE_TEXT);\n+\t\tm \u003d lws_write(wsi, ping + LWS_PRE, (unsigned int)n, LWS_WRITE_TEXT);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022sending ping failed: %d\u005cn\u0022, m);\n \n@@ -248,7 +248,7 @@ int main(int argc, const char **argv)\n \t * It will just allocate for 1 internal and n (+ 1 http2 nwsi) that we\n \t * will use.\n \t */\n-\tinfo.fd_limit_per_thread \u003d 1 + concurrent + 1;\n+\tinfo.fd_limit_per_thread \u003d (unsigned int)(1 + concurrent + 1);\n \n \tcontext \u003d lws_create_context(\u0026info);\n \tif (!context) {\ndiff --git a/minimal-examples/ws-client/minimal-ws-client-tx/minimal-ws-client.c b/minimal-examples/ws-client/minimal-ws-client-tx/minimal-ws-client.c\nindex 2e78a19..d31beb1 100644\n--- a/minimal-examples/ws-client/minimal-ws-client-tx/minimal-ws-client.c\n+++ b/minimal-examples/ws-client/minimal-ws-client-tx/minimal-ws-client.c\n@@ -98,14 +98,14 @@ thread_spam(void *d)\n \t\t\tgoto wait_unlock;\n \t\t}\n \n-\t\tamsg.payload \u003d malloc(LWS_PRE + len);\n+\t\tamsg.payload \u003d malloc((unsigned int)(LWS_PRE + len));\n \t\tif (!amsg.payload) {\n \t\t\tlwsl_user(\u0022OOM: dropping\u005cn\u0022);\n \t\t\tgoto wait_unlock;\n \t\t}\n-\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, len,\n+\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, (unsigned int)len,\n \t\t\t \u0022tid: %d, msg: %d\u0022, whoami, index++);\n-\t\tamsg.len \u003d n;\n+\t\tamsg.len \u003d (unsigned int)n;\n \t\tn \u003d (int)lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n \t\tif (n !\u003d 1) {\n \t\t\t__minimal_destroy_message(\u0026amsg);\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-echo/protocol_lws_minimal_server_echo.c b/minimal-examples/ws-server/minimal-ws-server-echo/protocol_lws_minimal_server_echo.c\nindex 5b56833..84c67f1 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-echo/protocol_lws_minimal_server_echo.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-echo/protocol_lws_minimal_server_echo.c\n@@ -124,7 +124,7 @@ callback_minimal_server_echo(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t/* notice we allowed for LWS_PRE in the payload already */\n \t\tm \u003d lws_write(wsi, ((unsigned char *)pmsg-\u003epayload) +\n-\t\t\t LWS_PRE, pmsg-\u003elen, flags);\n+\t\t\t LWS_PRE, pmsg-\u003elen, (enum lws_write_protocol)flags);\n \t\tif (m \u003c (int)pmsg-\u003elen) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to ws socket\u005cn\u0022, m);\n \t\t\treturn -1;\n@@ -168,9 +168,9 @@ callback_minimal_server_echo(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t//lwsl_hexdump_notice(in, len);\n \t\t}\n \n-\t\tamsg.first \u003d lws_is_first_fragment(wsi);\n-\t\tamsg.final \u003d lws_is_final_fragment(wsi);\n-\t\tamsg.binary \u003d lws_frame_is_binary(wsi);\n+\t\tamsg.first \u003d (char)lws_is_first_fragment(wsi);\n+\t\tamsg.final \u003d (char)lws_is_final_fragment(wsi);\n+\t\tamsg.binary \u003d (char)lws_frame_is_binary(wsi);\n \t\tn \u003d (int)lws_ring_get_count_free_elements(pss-\u003ering);\n \t\tif (!n) {\n \t\t\tlwsl_user(\u0022dropping!\u005cn\u0022);\n@@ -180,7 +180,7 @@ callback_minimal_server_echo(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tif (amsg.final)\n \t\t\tpss-\u003emsglen \u003d 0;\n \t\telse\n-\t\t\tpss-\u003emsglen +\u003d len;\n+\t\t\tpss-\u003emsglen +\u003d (uint32_t)len;\n \n \t\tamsg.len \u003d len;\n \t\t/* notice we over-allocate by LWS_PRE */\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-pmd-bulk/protocol_lws_minimal_pmd_bulk.c b/minimal-examples/ws-server/minimal-ws-server-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\nindex 301996d..22b99a1 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-pmd-bulk/protocol_lws_minimal_pmd_bulk.c\n@@ -143,9 +143,9 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tsize_t s;\n \n \t\t\t\tm \u003d pss-\u003eposition_tx % REPEAT_STRING_LEN;\n-\t\t\t\ts \u003d REPEAT_STRING_LEN - m;\n+\t\t\t\ts \u003d (unsigned int)(REPEAT_STRING_LEN - m);\n \t\t\t\tif (s \u003e (size_t)n)\n-\t\t\t\t\ts \u003d n;\n+\t\t\t\t\ts \u003d (unsigned int)n;\n \t\t\t\tmemcpy(p, \u0026redundant_string[m], s);\n \t\t\t\tpss-\u003eposition_tx +\u003d (int)s;\n \t\t\t\tp +\u003d s;\n@@ -158,7 +158,7 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n \n \t\tn \u003d lws_ptr_diff(p, start);\n-\t\tm \u003d lws_write(wsi, start, n, flags);\n+\t\tm \u003d lws_write(wsi, start, (unsigned int)n, (enum lws_write_protocol)flags);\n \t\tlwsl_user(\u0022LWS_CALLBACK_SERVER_WRITEABLE: wrote %d\u005cn\u0022, n);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022ERROR %d / %d writing ws\u005cn\u0022, m, n);\n@@ -178,7 +178,7 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\twhile (len) {\n \t\t\t\tsize_t s;\n \t\t\t\tm \u003d pss-\u003eposition_rx % REPEAT_STRING_LEN;\n-\t\t\t\ts \u003d REPEAT_STRING_LEN - m;\n+\t\t\t\ts \u003d (unsigned int)(REPEAT_STRING_LEN - m);\n \t\t\t\tif (s \u003e len)\n \t\t\t\t\ts \u003d len;\n \t\t\t\tif (memcmp(in, \u0026redundant_string[m], s)) {\n@@ -196,8 +196,8 @@ callback_minimal_pmd_bulk(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tif (*p++ !\u003d (uint8_t)rng(\u0026pss-\u003erng_rx)) {\n \t\t\t\t\tlwsl_user(\u0022echo'd data doesn't match: 0x%02X 0x%02X (%d)\u005cn\u0022,\n \t\t\t\t\t\t*(p - 1), (int)(0x40 + (pss-\u003erng_rx \u0026 0x3f)),\n-\t\t\t\t\t\t(int)((pss-\u003eposition_rx - olen) + olen - len));\n-\t\t\t\t\tlwsl_hexdump_notice(in, olen);\n+\t\t\t\t\t\t(int)((pss-\u003eposition_rx - olen) + olen - (int)len));\n+\t\t\t\t\tlwsl_hexdump_notice(in, (unsigned int)olen);\n \t\t\t\t\treturn -1;\n \t\t\t\t}\n \t\t\t}\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-pmd-corner/protocol_lws_minimal.c b/minimal-examples/ws-server/minimal-ws-server-pmd-corner/protocol_lws_minimal.c\nindex 90ab25d..785fec3 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-pmd-corner/protocol_lws_minimal.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-pmd-corner/protocol_lws_minimal.c\n@@ -241,10 +241,10 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tcorner_lengths[pss-\u003elast - 1]);\n \n \t\tmemcpy(buf + LWS_PRE, uncompressible,\n-\t\t corner_lengths[pss-\u003elast - 1]);\n+\t\t (unsigned int)corner_lengths[pss-\u003elast - 1]);\n \n \t\t/* notice we allowed for LWS_PRE in the payload already */\n-\t\tm \u003d lws_write(wsi, buf + LWS_PRE, corner_lengths[pss-\u003elast - 1],\n+\t\tm \u003d lws_write(wsi, buf + LWS_PRE, (unsigned int)corner_lengths[pss-\u003elast - 1],\n \t\t\t\tLWS_WRITE_BINARY);\n \t\tif (m \u003c corner_lengths[pss-\u003elast - 1]) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to ws socket\u005cn\u0022, m);\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-ring/protocol_lws_minimal.c b/minimal-examples/ws-server/minimal-ws-server-ring/protocol_lws_minimal.c\nindex c809c5e..4b6e87e 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-ring/protocol_lws_minimal.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-ring/protocol_lws_minimal.c\n@@ -129,7 +129,7 @@ cull_lagging_clients(struct per_vhost_data__minimal *vhd)\n \t */\n \n \tlws_ring_consume_and_update_oldest_tail(vhd-\u003ering,\n-\t\tstruct per_session_data__minimal, \u0026old_pss-\u003etail, before - most,\n+\t\tstruct per_session_data__minimal, \u0026old_pss-\u003etail, (size_t)(before - most),\n \t\tvhd-\u003epss_list, tail, pss_list);\n \n \tlwsl_user(\u0022%s: shrunk ring from %d to %d\u005cn\u0022, __func__, before, most);\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-threadpool/protocol_lws_minimal_threadpool.c b/minimal-examples/ws-server/minimal-ws-server-threadpool/protocol_lws_minimal_threadpool.c\nindex 67b5049..c93d742 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-threadpool/protocol_lws_minimal_threadpool.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-threadpool/protocol_lws_minimal_threadpool.c\n@@ -267,7 +267,7 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \t\ttask \u003d lws_threadpool_get_task_wsi(wsi);\n \t\tif (!task)\n \t\t\tbreak;\n-\t\tn \u003d lws_threadpool_task_status(task, \u0026_user);\n+\t\tn \u003d (int)lws_threadpool_task_status(task, \u0026_user);\n \t\tlwsl_debug(\u0022%s: LWS_CALLBACK_SERVER_WRITEABLE: status %d\u005cn\u0022,\n \t\t\t __func__, n);\n \t\tswitch(n) {\n@@ -292,7 +292,7 @@ callback_minimal(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tn \u003d (int)strlen(priv-\u003eresult + LWS_PRE);\n \t\tm \u003d lws_write(wsi, (unsigned char *)priv-\u003eresult + LWS_PRE,\n-\t\t\t n, LWS_WRITE_TEXT);\n+\t\t\t (unsigned int)n, LWS_WRITE_TEXT);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to ws socket\u005cn\u0022, m);\n \t\t\tlws_threadpool_task_sync(task, 1);\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-threads-foreign-libuv-smp/protocol_lws_minimal.c b/minimal-examples/ws-server/minimal-ws-server-threads-foreign-libuv-smp/protocol_lws_minimal.c\nindex 2818c1e..7feaaca 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-threads-foreign-libuv-smp/protocol_lws_minimal.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-threads-foreign-libuv-smp/protocol_lws_minimal.c\n@@ -107,15 +107,15 @@ thread_spam(void *d)\n \t\t\tgoto wait_unlock;\n \t\t}\n \n-\t\tamsg.payload \u003d malloc(LWS_PRE + len);\n+\t\tamsg.payload \u003d malloc((unsigned int)(LWS_PRE + len));\n \t\tif (!amsg.payload) {\n \t\t\tlwsl_user(\u0022OOM: dropping\u005cn\u0022);\n \t\t\tgoto wait_unlock;\n \t\t}\n-\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, len,\n+\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, (unsigned int)len,\n \t\t\t \u0022%s: spam tid: %d, msg: %d\u0022, vhd-\u003econfig,\n \t\t\t whoami, index++);\n-\t\tamsg.len \u003d n;\n+\t\tamsg.len \u003d (unsigned int)n;\n \t\tn \u003d (int)lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n \t\tif (n !\u003d 1) {\n \t\t\t__minimal_destroy_message(\u0026amsg);\n@@ -249,7 +249,7 @@ init_fail:\n \t\t\t (char *)pmsg-\u003epayload + LWS_PRE);\n \n \t\t/* notice we allowed for LWS_PRE in the payload already */\n-\t\tm \u003d lws_write(wsi, (unsigned char *)temp + LWS_PRE, n,\n+\t\tm \u003d lws_write(wsi, (unsigned char *)temp + LWS_PRE, (unsigned int)n,\n \t\t\t LWS_WRITE_TEXT);\n \t\tif (m \u003c n) {\n \t\t\tpthread_mutex_unlock(\u0026vhd-\u003elock_ring); /* } ring lock ------- */\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-threads-smp/protocol_lws_minimal.c b/minimal-examples/ws-server/minimal-ws-server-threads-smp/protocol_lws_minimal.c\nindex 2bc3284..8c085aa 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-threads-smp/protocol_lws_minimal.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-threads-smp/protocol_lws_minimal.c\n@@ -103,15 +103,15 @@ thread_spam(void *d)\n \t\t\tgoto wait_unlock;\n \t\t}\n \n-\t\tamsg.payload \u003d malloc(LWS_PRE + len);\n+\t\tamsg.payload \u003d malloc((unsigned int)(LWS_PRE + len));\n \t\tif (!amsg.payload) {\n \t\t\tlwsl_user(\u0022OOM: dropping\u005cn\u0022);\n \t\t\tgoto wait_unlock;\n \t\t}\n-\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, len,\n+\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, (unsigned int)len,\n \t\t\t \u0022%s: spam tid: %d, msg: %d\u0022, vhd-\u003econfig,\n \t\t\t whoami, index++);\n-\t\tamsg.len \u003d n;\n+\t\tamsg.len \u003d (unsigned int)n;\n \t\tn \u003d (int)lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n \t\tif (n !\u003d 1) {\n \t\t\t__minimal_destroy_message(\u0026amsg);\n@@ -238,7 +238,7 @@ init_fail:\n \t\t\t (char *)pmsg-\u003epayload + LWS_PRE);\n \n \t\t/* notice we allowed for LWS_PRE in the payload already */\n-\t\tm \u003d lws_write(wsi, (unsigned char *)temp + LWS_PRE, n,\n+\t\tm \u003d lws_write(wsi, (unsigned char *)temp + LWS_PRE, (unsigned int)n,\n \t\t\t LWS_WRITE_TEXT);\n \t\tif (m \u003c n) {\n \t\t\tpthread_mutex_unlock(\u0026vhd-\u003elock_ring); /* } ring lock ------- */\ndiff --git a/minimal-examples/ws-server/minimal-ws-server-threads/protocol_lws_minimal.c b/minimal-examples/ws-server/minimal-ws-server-threads/protocol_lws_minimal.c\nindex 2b9c09a..e01f64d 100644\n--- a/minimal-examples/ws-server/minimal-ws-server-threads/protocol_lws_minimal.c\n+++ b/minimal-examples/ws-server/minimal-ws-server-threads/protocol_lws_minimal.c\n@@ -103,16 +103,16 @@ thread_spam(void *d)\n \t\t\tgoto wait_unlock;\n \t\t}\n \n-\t\tamsg.payload \u003d malloc(LWS_PRE + len);\n+\t\tamsg.payload \u003d malloc((unsigned int)(LWS_PRE + len));\n \t\tif (!amsg.payload) {\n \t\t\tlwsl_user(\u0022OOM: dropping\u005cn\u0022);\n \t\t\tgoto wait_unlock;\n \t\t}\n-\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, len,\n+\t\tn \u003d lws_snprintf((char *)amsg.payload + LWS_PRE, (unsigned int)len,\n \t\t\t \u0022%s: tid: %d, msg: %d\u0022, vhd-\u003econfig,\n \t\t\t whoami, index++);\n-\t\tamsg.len \u003d n;\n-\t\tn \u003d lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n+\t\tamsg.len \u003d (unsigned int)n;\n+\t\tn \u003d (int)lws_ring_insert(vhd-\u003ering, \u0026amsg, 1);\n \t\tif (n !\u003d 1) {\n \t\t\t__minimal_destroy_message(\u0026amsg);\n \t\t\tlwsl_user(\u0022dropping!\u005cn\u0022);\ndiff --git a/plugins/acme-client/protocol_lws_acme_client.c b/plugins/acme-client/protocol_lws_acme_client.c\nindex 12b2047..bdb52b1 100644\n--- a/plugins/acme-client/protocol_lws_acme_client.c\n+++ b/plugins/acme-client/protocol_lws_acme_client.c\n@@ -157,8 +157,8 @@ callback_chall_http01(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\treturn -1;\n \t\t}\n \n-\t\tn \u003d strlen(ac-\u003ekey_auth);\n-\t\tif (lws_add_http_header_content_length(wsi, n, \u0026p, end)) {\n+\t\tn \u003d (int)strlen(ac-\u003ekey_auth);\n+\t\tif (lws_add_http_header_content_length(wsi, (lws_filepos_t)n, \u0026p, end)) {\n \t\t\tlwsl_notice(\u0022%s: add content_length failed\u005cn\u0022,\n \t\t\t\t\t__func__);\n \t\t\treturn -1;\n@@ -182,9 +182,9 @@ callback_chall_http01(struct lws *wsi, enum lws_callback_reasons reason,\n \t\treturn 0;\n \n \tcase LWS_CALLBACK_HTTP_WRITEABLE:\n-\t\tp +\u003d lws_snprintf((char *)p, end - p, \u0022%s\u0022, ac-\u003ekey_auth);\n+\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022%s\u0022, ac-\u003ekey_auth);\n \t\tlwsl_notice(\u0022%s: len %d\u005cn\u0022, __func__, lws_ptr_diff(p, start));\n-\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff(p, start),\n+\t\tif (lws_write(wsi, (uint8_t *)start, lws_ptr_diff_size_t(p, start),\n \t\t\t LWS_WRITE_HTTP_FINAL) !\u003d lws_ptr_diff(p, start)) {\n \t\t\tlwsl_err(\u0022_write content failed\u005cn\u0022);\n \t\t\treturn 1;\n@@ -225,7 +225,7 @@ jws_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \t * here temporarily.\n \t */\n \tn \u003d LWS_PRE + 2048;\n-\tbuf \u003d malloc(n);\n+\tbuf \u003d malloc((unsigned int)n);\n \tif (!buf) {\n \t\tlwsl_notice(\u0022%s: malloc %d failed\u005cn\u0022, __func__, n);\n \t\treturn -1;\n@@ -240,12 +240,12 @@ jws_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \tif (!jwe-\u003ejose.alg || !jwe-\u003ejose.alg-\u003ealg)\n \t\tgoto bail;\n \n-\tp +\u003d lws_snprintf(p, end - p, \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022RS256\u005c\u0022\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u005c\u0022alg\u005c\u0022:\u005c\u0022RS256\u005c\u0022\u0022);\n \tif (kid)\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022,\u005c\u0022kid\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022, kid);\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u005c\u0022kid\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022, kid);\n \telse {\n-\t\tp +\u003d lws_snprintf(p, end - p, \u0022,\u005c\u0022jwk\u005c\u0022:\u0022);\n-\t\tm \u003d end - p;\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u005c\u0022jwk\u005c\u0022:\u0022);\n+\t\tm \u003d lws_ptr_diff(end, p);\n \t\tn \u003d lws_jwk_export(\u0026jwe-\u003ejwk, 0, p, \u0026m);\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_notice(\u0022failed to export jwk\u005cn\u0022);\n@@ -253,8 +253,8 @@ jws_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \t\t}\n \t\tp +\u003d n;\n \t}\n-\tp +\u003d lws_snprintf(p, end - p, \u0022,\u005c\u0022url\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022, url);\n-\tp +\u003d lws_snprintf(p, end - p, \u0022,\u005c\u0022nonce\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, nonce);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u005c\u0022url\u005c\u0022:\u005c\u0022%s\u005c\u0022\u0022, url);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u005c\u0022nonce\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022, nonce);\n \n \t/*\n \t * prepare the signed outer JSON with all the parts in\n@@ -262,47 +262,47 @@ jws_create_packet(struct lws_jwe *jwe, const char *payload, size_t len,\n \tp1 \u003d out;\n \tend1 \u003d out + out_len - 1;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022{\u005c\u0022protected\u005c\u0022:\u005c\u0022\u0022);\n \tjws.map_b64.buf[LJWS_JOSE] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(start, p - start, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(start, lws_ptr_diff_size_t(p, start), p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode protected\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_JOSE] \u003d n;\n+\tjws.map_b64.len[LJWS_JOSE] \u003d (uint32_t)n;\n \tp1 +\u003d n;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005c\u0022payload\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005c\u0022payload\u005c\u0022:\u005c\u0022\u0022);\n \tjws.map_b64.buf[LJWS_PYLD] \u003d p1;\n-\tn \u003d lws_jws_base64_enc(payload, len, p1, end1 - p1);\n+\tn \u003d lws_jws_base64_enc(payload, len, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022%s: failed to encode payload\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n-\tjws.map_b64.len[LJWS_PYLD] \u003d n;\n+\tjws.map_b64.len[LJWS_PYLD] \u003d (uint32_t)n;\n \tp1 +\u003d n;\n \n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022,\u005c\u0022signature\u005c\u0022:\u005c\u0022\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022,\u005c\u0022signature\u005c\u0022:\u005c\u0022\u0022);\n \n \t/*\n \t * taking the b64 protected header and the b64 payload, sign them\n \t * and place the signature into the packet\n \t */\n-\tn \u003d lws_jws_sign_from_b64(\u0026jwe-\u003ejose, \u0026jws, p1, end1 - p1);\n+\tn \u003d lws_jws_sign_from_b64(\u0026jwe-\u003ejose, \u0026jws, p1, lws_ptr_diff_size_t(end1, p1));\n \tif (n \u003c 0) {\n \t\tlwsl_notice(\u0022sig gen failed\u005cn\u0022);\n \n \t\tgoto bail;\n \t}\n \tjws.map_b64.buf[LJWS_SIG] \u003d p1;\n-\tjws.map_b64.len[LJWS_SIG] \u003d n;\n+\tjws.map_b64.len[LJWS_SIG] \u003d (uint32_t)n;\n \n \tp1 +\u003d n;\n-\tp1 +\u003d lws_snprintf(p1, end1 - p1, \u0022\u005c\u0022}\u0022);\n+\tp1 +\u003d lws_snprintf(p1, lws_ptr_diff_size_t(end1, p1), \u0022\u005c\u0022}\u0022);\n \n \tfree(buf);\n \n-\treturn p1 - out;\n+\treturn lws_ptr_diff(p1, out);\n \n bail:\n \tlws_jws_destroy(\u0026jws);\n@@ -570,7 +570,7 @@ static int\n lws_acme_report_status(struct lws_vhost *v, int state, const char *json)\n {\n \tlws_callback_vhost_protocols_vhost(v, LWS_CALLBACK_VHOST_CERT_UPDATE,\n-\t\t\t\t\t (void *)json, state);\n+\t\t\t\t\t (void *)json, (unsigned int)state);\n \n \treturn 0;\n }\n@@ -799,18 +799,18 @@ callback_acme_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tm \u003d 0;\n \t\tpvo \u003d (const struct lws_protocol_vhost_options *)in;\n \t\twhile (pvo) {\n-\t\t\tm +\u003d strlen(pvo-\u003evalue) + 1;\n+\t\t\tm +\u003d (int)strlen(pvo-\u003evalue) + 1;\n \t\t\tpvo \u003d pvo-\u003enext;\n \t\t}\n-\t\tp \u003d vhd-\u003epvo_data \u003d malloc(m);\n+\t\tp \u003d vhd-\u003epvo_data \u003d malloc((unsigned int)m);\n \t\tif (!p)\n \t\t\treturn -1;\n \n \t\tpvo \u003d (const struct lws_protocol_vhost_options *)in;\n \t\twhile (pvo) {\n \t\t\tstart \u003d p;\n-\t\t\tn \u003d strlen(pvo-\u003evalue) + 1;\n-\t\t\tmemcpy(start, pvo-\u003evalue, n);\n+\t\t\tn \u003d (int)strlen(pvo-\u003evalue) + 1;\n+\t\t\tmemcpy(start, pvo-\u003evalue, (unsigned int)n);\n \t\t\tp +\u003d n;\n \n \t\t\tfor (m \u003d 0; m \u003c (int)LWS_ARRAY_SIZE(pvo_names); m++)\n@@ -941,7 +941,7 @@ callback_acme_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tac-\u003estate, lws_http_client_http_response(wsi));\n \t\tif (!ac)\n \t\t\tbreak;\n-\t\tac-\u003eresp \u003d lws_http_client_http_response(wsi);\n+\t\tac-\u003eresp \u003d (int)lws_http_client_http_response(wsi);\n \t\t/* we get a new nonce each time */\n \t\tif (lws_hdr_total_length(wsi, WSI_TOKEN_REPLAY_NONCE) \u0026\u0026\n \t\t\t\tlws_hdr_copy(wsi, ac-\u003ereplay_nonce,\n@@ -1046,7 +1046,7 @@ callback_acme_client(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tbreak;\n \n \t\tcase ACME_STATE_NEW_ACCOUNT:\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022{\u0022\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u0022\n \t\t\t\t\u0022\u005c\u0022termsOfServiceAgreed\u005c\u0022:true\u0022\n \t\t\t\t\u0022,\u005c\u0022contact\u005c\u0022: [\u005c\u0022mailto:%s\u005c\u0022]}\u0022,\n \t\t\t\tvhd-\u003epvop_active[LWS_TLS_REQ_ELEMENT_EMAIL]);\n@@ -1063,7 +1063,7 @@ pkt_add_hdrs:\n \t\t\tjwe.jwk \u003d vhd-\u003ejwk;\n \n \t\t\tac-\u003elen \u003d jws_create_packet(\u0026jwe,\n-\t\t\t\t\tstart, p - start,\n+\t\t\t\t\tstart, lws_ptr_diff_size_t(p, start),\n \t\t\t\t\tac-\u003ereplay_nonce,\n \t\t\t\t\tac-\u003eactive_url,\n \t\t\t\t\tac-\u003ekid,\n@@ -1103,7 +1103,7 @@ pkt_add_hdrs:\n \t\t\tbreak;\n \n \t\tcase ACME_STATE_NEW_ORDER:\n-\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022{\u0022\n \t\t\t\t\t\u0022\u005c\u0022identifiers\u005c\u0022:[{\u0022\n \t\t\t\t\t\u0022\u005c\u0022type\u005c\u0022:\u005c\u0022dns\u005c\u0022,\u0022\n@@ -1125,7 +1125,7 @@ pkt_add_hdrs:\n \t\t\tp \u003d start;\n \t\t\tend \u003d \u0026buf[sizeof(buf) - 1];\n \n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022{}\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{}\u0022);\n \t\t\tputs(start);\n \t\t\tstrcpy(ac-\u003eactive_url, ac-\u003echallenge_uri);\n \t\t\tgoto pkt_add_hdrs;\n@@ -1138,10 +1138,10 @@ pkt_add_hdrs:\n \t\t\tif (ac-\u003egoes_around)\n \t\t\t\tbreak;\n \n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022{\u005c\u0022csr\u005c\u0022:\u005c\u0022\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u005c\u0022csr\u005c\u0022:\u005c\u0022\u0022);\n \t\t\tn \u003d lws_tls_acme_sni_csr_create(vhd-\u003econtext,\n \t\t\t\t\t\u0026vhd-\u003epvop_active[0],\n-\t\t\t\t\t(uint8_t *)p, end - p,\n+\t\t\t\t\t(uint8_t *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0026ac-\u003ealloc_privkey_pem,\n \t\t\t\t\t\u0026ac-\u003elen_privkey_pem);\n \t\t\tif (n \u003c 0) {\n@@ -1149,7 +1149,7 @@ pkt_add_hdrs:\n \t\t\t\tgoto failed;\n \t\t\t}\n \t\t\tp +\u003d n;\n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022\u005c\u0022}\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022\u005c\u0022}\u0022);\n \t\t\tputs(start);\n \t\t\tstrcpy(ac-\u003eactive_url, ac-\u003efinalize_url);\n \t\t\tgoto pkt_add_hdrs;\n@@ -1175,7 +1175,7 @@ pkt_add_hdrs:\n \n \t\tac-\u003ebuf[LWS_PRE + ac-\u003elen] \u003d '\u005c0';\n \t\tif (lws_write(wsi, (uint8_t *)ac-\u003ebuf + LWS_PRE,\n-\t\t\t\t\tac-\u003elen, LWS_WRITE_HTTP_FINAL) \u003c 0)\n+\t\t\t\t\t(size_t)ac-\u003elen, LWS_WRITE_HTTP_FINAL) \u003c 0)\n \t\t\treturn -1;\n \t\tlwsl_notice(\u0022wrote %d\u005cn\u0022, ac-\u003elen);\n \t\tac-\u003epos \u003d ac-\u003elen;\n@@ -1196,7 +1196,7 @@ pkt_add_hdrs:\n \t\tcase ACME_STATE_DIRECTORY:\n \t\t\t((char *)in)[len] \u003d '\u005c0';\n \t\t\tputs(in);\n-\t\t\tm \u003d lejp_parse(\u0026ac-\u003ejctx, (uint8_t *)in, len);\n+\t\t\tm \u003d lejp_parse(\u0026ac-\u003ejctx, (uint8_t *)in, (int)len);\n \t\t\tif (m \u003c 0 \u0026\u0026 m !\u003d LEJP_CONTINUE) {\n \t\t\t\tlwsl_notice(\u0022lejp parse failed %d\u005cn\u0022, m);\n \t\t\t\tgoto failed;\n@@ -1210,12 +1210,12 @@ pkt_add_hdrs:\n \t\t\t((char *)in)[len] \u003d '\u005c0';\n \t\t\tputs(in);\n \t\t\t/* it should be the DER cert! */\n-\t\t\tif (ac-\u003ecpos + len \u003e sizeof(ac-\u003ebuf)) {\n+\t\t\tif ((unsigned int)ac-\u003ecpos + len \u003e sizeof(ac-\u003ebuf)) {\n \t\t\t\tlwsl_notice(\u0022Incoming cert is too large!\u005cn\u0022);\n \t\t\t\tgoto failed;\n \t\t\t}\n \t\t\tmemcpy(\u0026ac-\u003ebuf[ac-\u003ecpos], in, len);\n-\t\t\tac-\u003ecpos +\u003d len;\n+\t\t\tac-\u003ecpos +\u003d (int)len;\n \t\t\tbreak;\n \t\tdefault:\n \t\t\tbreak;\n@@ -1346,9 +1346,9 @@ pkt_add_hdrs:\n \t\t\tp \u003d ac-\u003ekey_auth;\n \t\t\tend \u003d p + sizeof(ac-\u003ekey_auth) - 1;\n \n-\t\t\tp +\u003d lws_snprintf(p, end - p, \u0022%s.\u0022, ac-\u003echall_token);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022%s.\u0022, ac-\u003echall_token);\n \t\t\tlws_jwk_rfc7638_fingerprint(\u0026vhd-\u003ejwk, digest);\n-\t\t\tn \u003d lws_jws_base64_enc(digest, 32, p, end - p);\n+\t\t\tn \u003d lws_jws_base64_enc(digest, 32, p, lws_ptr_diff_size_t(end, p));\n \t\t\tif (n \u003c 0)\n \t\t\t\tgoto failed;\n \n@@ -1362,7 +1362,7 @@ pkt_add_hdrs:\n \t\t\tmemset(\u0026ac-\u003emount, 0, sizeof (struct lws_http_mount));\n \t\t\tac-\u003emount.protocol \u003d \u0022http\u0022;\n \t\t\tac-\u003emount.mountpoint \u003d ac-\u003ehttp01_mountpoint;\n-\t\t\tac-\u003emount.mountpoint_len \u003d\n+\t\t\tac-\u003emount.mountpoint_len \u003d (unsigned char)\n \t\t\t\tstrlen(ac-\u003ehttp01_mountpoint);\n \t\t\tac-\u003emount.origin_protocol \u003d LWSMPRO_CALLBACK;\n \n@@ -1548,7 +1548,7 @@ poll_again:\n \t\t\tn \u003d lws_plat_write_cert(vhd-\u003evhost, 0,\n \t\t\t\t\tvhd-\u003efd_updated_cert,\n \t\t\t\t\tac-\u003ebuf,\n-\t\t\t\t\tac-\u003ecpos);\n+\t\t\t\t\t(size_t)ac-\u003ecpos);\n \t\t\tif (n) {\n \t\t\t\tlwsl_err(\u0022unable to write ACME cert! %d\u005cn\u0022, n);\n \t\t\t\tgoto failed;\n@@ -1580,7 +1580,7 @@ poll_again:\n \t\t\tif (lws_tls_cert_updated(vhd-\u003econtext,\n \t\t\t\t\tvhd-\u003epvop_active[LWS_TLS_SET_CERT_PATH],\n \t\t\t\t\tvhd-\u003epvop_active[LWS_TLS_SET_KEY_PATH],\n-\t\t\t\t\t\tac-\u003ebuf, ac-\u003ecpos,\n+\t\t\t\t\t\tac-\u003ebuf, (size_t)ac-\u003ecpos,\n \t\t\t\t\t\tac-\u003ealloc_privkey_pem,\n \t\t\t\t\t\tac-\u003elen_privkey_pem)) {\n \t\t\t\tlwsl_notice(\u0022problem setting certs\u005cn\u0022);\ndiff --git a/plugins/deaddrop/protocol_lws_deaddrop.c b/plugins/deaddrop/protocol_lws_deaddrop.c\nindex 2885706..713f82b 100644\n--- a/plugins/deaddrop/protocol_lws_deaddrop.c\n+++ b/plugins/deaddrop/protocol_lws_deaddrop.c\n@@ -1,7 +1,7 @@\n /*\n * libwebsockets - small server side websockets and web server implementation\n *\n- * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n+ * Copyright (C) 2010 - 2020 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n@@ -129,11 +129,12 @@ static int\n scan_upload_dir(struct vhd_deaddrop *vhd)\n {\n \tchar filepath[256], subdir[3][128], *p;\n-\tint m, sp \u003d 0, initial, found \u003d 0;\n \tstruct lwsac *lwsac_head \u003d NULL;\n \tlws_list_ptr sorted_head \u003d NULL;\n+\tint i, sp \u003d 0, found \u003d 0;\n \tstruct dir_entry *dire;\n \tstruct dirent *de;\n+\tsize_t initial, m;\n \tstruct stat s;\n \tDIR *dir[3];\n \n@@ -162,11 +163,11 @@ scan_upload_dir(struct vhd_deaddrop *vhd)\n \n \t\tp \u003d filepath;\n \n-\t\tfor (m \u003d 0; m \u003c\u003d sp; m++)\n-\t\t\tp +\u003d lws_snprintf(p, (filepath + sizeof(filepath)) - p,\n-\t\t\t\t\t \u0022%s/\u0022, subdir[m]);\n+\t\tfor (i \u003d 0; i \u003c\u003d sp; i++)\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t((filepath + sizeof(filepath)), p),\n+\t\t\t\t\t \u0022%s/\u0022, subdir[i]);\n \n-\t\tlws_snprintf(p, (filepath + sizeof(filepath)) - p, \u0022%s\u0022,\n+\t\tlws_snprintf(p, lws_ptr_diff_size_t((filepath + sizeof(filepath)), p), \u0022%s\u0022,\n \t\t\t\t de-\u003ed_name);\n \n \t\t/* ignore temp files */\n@@ -211,7 +212,7 @@ scan_upload_dir(struct vhd_deaddrop *vhd)\n \t\t}\n \n \t\tdire-\u003enext \u003d NULL;\n-\t\tdire-\u003esize \u003d s.st_size;\n+\t\tdire-\u003esize \u003d (unsigned long long)s.st_size;\n \t\tdire-\u003emtime \u003d s.st_mtime;\n \t\tdire-\u003euser[0] \u003d '\u005c0';\n #if !defined(__COVERITY__)\n@@ -257,10 +258,11 @@ bail:\n \n static int\n file_upload_cb(void *data, const char *name, const char *filename,\n-\t char *buf, int len, enum lws_spa_fileupload_states state)\n+\t char *buf, int _len, enum lws_spa_fileupload_states state)\n {\n \tstruct pss_deaddrop *pss \u003d (struct pss_deaddrop *)data;\n \tchar filename2[256];\n+\tsize_t len \u003d (size_t)_len;\n \tint n;\n \n \t(void)n;\n@@ -300,7 +302,7 @@ file_upload_cb(void *data, const char *name, const char *filename,\n \tcase LWS_UFS_FINAL_CONTENT:\n \tcase LWS_UFS_CONTENT:\n \t\tif (len) {\n-\t\t\tpss-\u003efile_length +\u003d len;\n+\t\t\tpss-\u003efile_length +\u003d (unsigned int)len;\n \n \t\t\t/* if the file length is too big, drop it */\n \t\t\tif (pss-\u003efile_length \u003e pss-\u003evhd-\u003emax_size) {\n@@ -314,9 +316,9 @@ file_upload_cb(void *data, const char *name, const char *filename,\n \t\t\t}\n \n \t\t\tif (pss-\u003efd !\u003d LWS_INVALID_FILE) {\n-\t\t\t\tn \u003d write((int)(lws_intptr_t)pss-\u003efd, buf, len);\n+\t\t\t\tn \u003d (int)write((int)(lws_intptr_t)pss-\u003efd, buf, (unsigned int)len);\n \t\t\t\tlwsl_debug(\u0022%s: write %d says %d\u005cn\u0022, __func__,\n-\t\t\t\t\t len, n);\n+\t\t\t\t\t (int)len, n);\n \t\t\t\tlws_set_timeout(pss-\u003ewsi, PENDING_TIMEOUT_HTTP_CONTENT, 30);\n \t\t\t}\n \t\t}\n@@ -357,12 +359,12 @@ format_result(struct pss_deaddrop *pss)\n \tstart \u003d p;\n \tend \u003d p + sizeof(pss-\u003eresult) - LWS_PRE - 1;\n \n-\tp +\u003d lws_snprintf((char *)p, end -p,\n+\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\u0022\u003c!DOCTYPE html\u003e\u003chtml lang\u003d\u005c\u0022en\u005c\u0022\u003e\u003chead\u003e\u0022\n \t\t\t\u0022\u003cmeta charset\u003dutf-8 http-equiv\u003d\u005c\u0022Content-Language\u005c\u0022 \u0022\n \t\t\t\u0022content\u003d\u005c\u0022en\u005c\u0022/\u003e\u0022\n \t\t\t\u0022\u003c/head\u003e\u0022);\n-\tp +\u003d lws_snprintf((char *)p, end - p, \u0022\u003c/body\u003e\u003c/html\u003e\u0022);\n+\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022\u003c/body\u003e\u003c/html\u003e\u0022);\n \n \treturn (int)lws_ptr_diff(p, start);\n }\n@@ -399,7 +401,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tvhd-\u003emax_size \u003d 20 * 1024 * 1024; /* default without pvo */\n \n \t\tif (!lws_pvo_get_str(in, \u0022max-size\u0022, \u0026cp))\n-\t\t\tvhd-\u003emax_size \u003d atoll(cp);\n+\t\t\tvhd-\u003emax_size \u003d (unsigned long long)atoll(cp);\n \t\tif (lws_pvo_get_str(in, \u0022upload-dir\u0022, \u0026vhd-\u003eupload_dir)) {\n \t\t\tlwsl_err(\u0022%s: requires 'upload-dir' pvo\u005cn\u0022, __func__);\n \t\t\treturn -1;\n@@ -460,10 +462,10 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tcp \u003d strchr((const char *)in, '/');\n \t\tif (cp) {\n-\t\t\tn \u003d ((void *)cp - in) - 8;\n+\t\t\tn \u003d (int)(((void *)cp - in)) - 8;\n \n \t\t\tif ((int)strlen(pss-\u003euser) !\u003d n ||\n-\t\t\t memcmp(pss-\u003euser, ((const char *)in) + 8, n)) {\n+\t\t\t memcmp(pss-\u003euser, ((const char *)in) + 8, (unsigned int)n)) {\n \t\t\t\tlwsl_notice(\u0022%s: del: auth mismatch \u0022\n \t\t\t\t\t \u0022 '%s' '%s' (%d)\u005cn\u0022,\n \t\t\t\t\t __func__, pss-\u003euser,\n@@ -496,7 +498,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\twas \u003d 0;\n \t\tif (pss-\u003efirst) {\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t \u0022{\u005c\u0022max_size\u005c\u0022:%llu, \u005c\u0022files\u005c\u0022: [\u0022,\n \t\t\t\t\t vhd-\u003emax_size);\n \t\t\twas \u003d 1;\n@@ -504,7 +506,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tm \u003d 5;\n \t\twhile (m-- \u0026\u0026 pss-\u003edire) {\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t \u0022%c{\u005c\u0022name\u005c\u0022:\u005c\u0022%s\u005c\u0022, \u0022\n \t\t\t\t\t \u0022\u005c\u0022size\u005c\u0022:%llu,\u0022\n \t\t\t\t\t \u0022\u005c\u0022mtime\u005c\u0022:%llu,\u0022\n@@ -520,7 +522,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n \n \t\tif (!pss-\u003edire) {\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t \u0022]}\u0022);\n \t\t\tif (pss-\u003elwsac_head) {\n \t\t\t\tlwsac_unreference(\u0026pss-\u003elwsac_head);\n@@ -528,8 +530,8 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t}\n \t\t}\n \n-\t\tn \u003d lws_write(wsi, start, lws_ptr_diff(p, start),\n-\t\t\t lws_write_ws_flags(LWS_WRITE_TEXT, was,\n+\t\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n+\t\t\t\t(enum lws_write_protocol)lws_write_ws_flags(LWS_WRITE_TEXT, was,\n \t\t\t\t\t\t !pss-\u003edire));\n \t\tif (n \u003c 0) {\n \t\t\tlwsl_notice(\u0022%s: ws write failed\u005cn\u0022, __func__);\n@@ -609,7 +611,8 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tif (!pss-\u003esent_headers) {\n \t\t\tn \u003d format_result(pss);\n \n-\t\t\tif (lws_add_http_header_status(wsi, pss-\u003eresponse_code,\n+\t\t\tif (lws_add_http_header_status(wsi,\n+\t\t\t\t\t(unsigned int)pss-\u003eresponse_code,\n \t\t\t\t\t\t \u0026p, end))\n \t\t\t\tgoto bail;\n \n@@ -618,13 +621,13 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t(unsigned char *)\u0022text/html\u0022, 9,\n \t\t\t\t\t\u0026p, end))\n \t\t\t\tgoto bail;\n-\t\t\tif (lws_add_http_header_content_length(wsi, n, \u0026p, end))\n+\t\t\tif (lws_add_http_header_content_length(wsi, (lws_filepos_t)n, \u0026p, end))\n \t\t\t\tgoto bail;\n \t\t\tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\t\t\tgoto bail;\n \n \t\t\t/* first send the headers ... */\n-\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff(p, start),\n+\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n \t\t\t\t LWS_WRITE_HTTP_HEADERS |\n \t\t\t\t LWS_WRITE_H2_STREAM_END);\n \t\t\tif (n \u003c 0)\n@@ -637,7 +640,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\tif (!pss-\u003esent_body) {\n \t\t\tn \u003d format_result(pss);\n-\t\t\tn \u003d lws_write(wsi, (unsigned char *)start, n,\n+\t\t\tn \u003d lws_write(wsi, (unsigned char *)start, (unsigned int)n,\n \t\t\t\t LWS_WRITE_HTTP_FINAL);\n \n \t\t\tpss-\u003esent_body \u003d 1;\ndiff --git a/plugins/protocol_dumb_increment.c b/plugins/protocol_dumb_increment.c\nindex fafe26d..fa73263 100644\n--- a/plugins/protocol_dumb_increment.c\n+++ b/plugins/protocol_dumb_increment.c\n@@ -71,7 +71,7 @@ callback_dumb_increment(struct lws *wsi, enum lws_callback_reasons reason,\n \tcase LWS_CALLBACK_SERVER_WRITEABLE:\n \t\tn \u003d lws_snprintf((char *)p, sizeof(buf) - LWS_PRE, \u0022%d\u0022,\n \t\t\t\t pss-\u003enumber++);\n-\t\tm \u003d lws_write(wsi, p, n, LWS_WRITE_TEXT);\n+\t\tm \u003d lws_write(wsi, p, (unsigned int)n, LWS_WRITE_TEXT);\n \t\tif (m \u003c n) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to di socket\u005cn\u0022, n);\n \t\t\treturn -1;\ndiff --git a/plugins/protocol_fulltext_demo.c b/plugins/protocol_fulltext_demo.c\nindex aaec4a4..1fe167c 100644\n--- a/plugins/protocol_fulltext_demo.c\n+++ b/plugins/protocol_fulltext_demo.c\n@@ -158,11 +158,11 @@ reply_404:\n \n \t\tn \u003d LWS_WRITE_HTTP;\n \t\tif (pss-\u003efirst)\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\u0022{\u005c\u0022indexed\u005c\u0022: %d, \u005c\u0022ac\u005c\u0022: [\u0022, !!pss-\u003eresult);\n \n \t\twhile (pss-\u003eac \u0026\u0026 lws_ptr_diff(end, p) \u003e 256) {\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\u0022%c{\u005c\u0022ac\u005c\u0022: \u005c\u0022%s\u005c\u0022,\u005c\u0022matches\u005c\u0022: %d,\u0022\n \t\t\t\t\u0022\u005c\u0022agg\u005c\u0022: %d, \u005c\u0022elided\u005c\u0022: %d}\u0022,\n \t\t\t\tpss-\u003efirst ? ' ' : ',', (char *)(pss-\u003eac + 1),\n@@ -176,14 +176,14 @@ reply_404:\n \t\tif (!pss-\u003eac_done \u0026\u0026 !pss-\u003eac \u0026\u0026 pss-\u003efp) {\n \t\t\tpss-\u003eac_done \u003d 1;\n \n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t \u0022], \u005c\u0022fp\u005c\u0022: [\u0022);\n \t\t}\n \n-\t\twhile (pss-\u003efp \u0026\u0026 lws_ptr_diff(end, p) \u003e 256) {\n+\t\twhile (pss-\u003efp \u0026\u0026 lws_ptr_diff_size_t(end, p) \u003e 256) {\n \t\t\tif (!pss-\u003efp_init_done) {\n \t\t\t\tp +\u003d lws_snprintf((char *)p,\n-\t\t\t\t\tlws_ptr_diff(end, p),\n+\t\t\t\t\t\tlws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022%c{\u005c\u0022path\u005c\u0022: \u005c\u0022%s\u005c\u0022,\u005c\u0022matches\u005c\u0022: %d,\u0022\n \t\t\t\t\t\u0022\u005c\u0022origlines\u005c\u0022: %d,\u0022\n \t\t\t\t\t\u0022\u005c\u0022hits\u005c\u0022: [\u0022, pss-\u003efirst ? ' ' : ',',\n@@ -201,7 +201,7 @@ reply_404:\n \t\t\t\t lws_ptr_diff(end, p) \u003e 256) {\n \n \t\t\t\t\tp +\u003d lws_snprintf((char *)p,\n-\t\t\t\t\t\tlws_ptr_diff(end, p),\n+\t\t\t\t\t\t\tlws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t\u0022%c\u005cn{\u005c\u0022l\u005c\u0022:%d,\u005c\u0022o\u005c\u0022:%d,\u0022\n \t\t\t\t\t\t\u0022\u005c\u0022s\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022,\n \t\t\t\t\t\t!pss-\u003edone ? ' ' : ',',\n@@ -224,12 +224,12 @@ reply_404:\n \n \t\tif (!pss-\u003eac \u0026\u0026 !pss-\u003efp) {\n \t\t\tn \u003d LWS_WRITE_HTTP_FINAL;\n-\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff(end, p),\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\t\u0022]}\u0022);\n \t\t}\n \n \t\tif (lws_write(wsi, (uint8_t *)start,\n-\t\t\t lws_ptr_diff(p, start), n) !\u003d\n+\t\t\t\tlws_ptr_diff_size_t(p, start), (enum lws_write_protocol)n) !\u003d\n \t\t\t\t\t lws_ptr_diff(p, start))\n \t\t\treturn 1;\n \ndiff --git a/plugins/protocol_lws_mirror.c b/plugins/protocol_lws_mirror.c\nindex 8ba111d..249f82f 100644\n--- a/plugins/protocol_lws_mirror.c\n+++ b/plugins/protocol_lws_mirror.c\n@@ -82,7 +82,7 @@ __mirror_rxflow_instance(struct mirror_instance *mi, int enable)\n \t\tlws_rx_flow_control(pss-\u003ewsi, enable);\n \t} lws_end_foreach_ll(pss, same_mi_pss_list);\n \n-\tmi-\u003erx_enabled \u003d enable;\n+\tmi-\u003erx_enabled \u003d (char)enable;\n }\n \n /*\ndiff --git a/plugins/protocol_lws_raw_test.c b/plugins/protocol_lws_raw_test.c\nindex 3f970ee..ed65d17 100644\n--- a/plugins/protocol_lws_raw_test.c\n+++ b/plugins/protocol_lws_raw_test.c\n@@ -178,7 +178,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t\tchar buf[256];\n \t\t\tint n;\n \t\t\t\n-\t\t\tn \u003d read(vhd-\u003efifo, buf, sizeof(buf) - 1);\n+\t\t\tn \u003d (int)read(vhd-\u003efifo, buf, sizeof(buf) - 1);\n \t\t\tif (n \u003c 0) {\n \t\t\t\tlwsl_err(\u0022FIFO read failed\u005cn\u0022);\n \t\t\t\treturn 1;\n@@ -247,7 +247,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\tif (len \u003e sizeof(pss-\u003ebuf))\n \t\t\tlen \u003d sizeof(pss-\u003ebuf);\n \t\tmemcpy(pss-\u003ebuf, in, len);\n-\t\tpss-\u003elen \u003d len;\n+\t\tpss-\u003elen \u003d (int)len;\n \t\tlws_callback_on_writable(wsi);\n \t\tbreak;\n \n@@ -257,7 +257,7 @@ callback_raw_test(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \n \tcase LWS_CALLBACK_RAW_WRITEABLE:\n \t\tlwsl_notice(\u0022LWS_CALLBACK_RAW_WRITEABLE\u005cn\u0022);\n-\t\tlws_write(wsi, pss-\u003ebuf, pss-\u003elen, LWS_WRITE_HTTP);\n+\t\tlws_write(wsi, pss-\u003ebuf, (size_t)pss-\u003elen, LWS_WRITE_HTTP);\n \t\tbreak;\n \n \tdefault:\ndiff --git a/plugins/protocol_lws_server_status.c b/plugins/protocol_lws_server_status.c\nindex 18a92e2..497f59e 100644\n--- a/plugins/protocol_lws_server_status.c\n+++ b/plugins/protocol_lws_server_status.c\n@@ -67,20 +67,20 @@ update(struct lws_sorted_usec_list *sul)\n \t *end \u003d v-\u003ed.buf + sizeof(v-\u003ed.buf) - LWS_PRE - 1;\n \tint n, first \u003d 1, fd;\n \n-\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p), \u0022{\u005c\u0022i\u005c\u0022:\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022{\u005c\u0022i\u005c\u0022:\u0022);\n \tp +\u003d lws_json_dump_context(v-\u003econtext, p, lws_ptr_diff(end, p),\n \t\t\t\t v-\u003ehide_vhosts);\n-\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p), \u0022, \u005c\u0022files\u005c\u0022: [\u0022);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022, \u005c\u0022files\u005c\u0022: [\u0022);\n \n \tfp \u003d v-\u003efp;\n \twhile (fp) {\n \t\tif (!first)\n-\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p), \u0022,\u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022,\u0022);\n \n \t\tstrcpy(pure, \u0022(unknown)\u0022);\n \t\tfd \u003d lws_open(fp-\u003efilepath, LWS_O_RDONLY);\n \t\tif (fd \u003e\u003d 0) {\n-\t\t\tn \u003d read(fd, contents, sizeof(contents) - 1);\n+\t\t\tn \u003d (int)read(fd, contents, sizeof(contents) - 1);\n \t\t\tclose(fd);\n \t\t\tif (n \u003e\u003d 0) {\n \t\t\t\tcontents[n] \u003d '\u005c0';\n@@ -88,15 +88,15 @@ update(struct lws_sorted_usec_list *sul)\n \t\t\t}\n \t\t}\n \n-\t\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p),\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\u0022{\u005c\u0022path\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022val\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022,\n \t\t\t\t\tfp-\u003efilepath, pure);\n \t\tfirst \u003d 0;\n \n \t\tfp \u003d fp-\u003enext;\n \t}\n-\tp +\u003d lws_snprintf(p, lws_ptr_diff(end, p), \u0022]}\u0022);\n-\tv-\u003ed.length \u003d p - (v-\u003ed.buf + LWS_PRE);\n+\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022]}\u0022);\n+\tv-\u003ed.length \u003d lws_ptr_diff(p, (v-\u003ed.buf + LWS_PRE));\n \n \tlws_callback_on_writable_all_protocol(v-\u003econtext, \u0026protocols[0]);\n \n@@ -183,7 +183,7 @@ callback_lws_server_status(struct lws *wsi, enum lws_callback_reasons reason,\n \n \tcase LWS_CALLBACK_SERVER_WRITEABLE:\n \t\tm \u003d lws_write(wsi, (unsigned char *)v-\u003ed.buf + LWS_PRE,\n-\t\t\t v-\u003ed.length, LWS_WRITE_TEXT);\n+\t\t\t (size_t)v-\u003ed.length, LWS_WRITE_TEXT);\n \t\tif (m \u003c 0)\n \t\t\treturn -1;\n \t\tbreak;\ndiff --git a/plugins/protocol_lws_sshd_demo.c b/plugins/protocol_lws_sshd_demo.c\nindex 3ff9147..2770854 100644\n--- a/plugins/protocol_lws_sshd_demo.c\n+++ b/plugins/protocol_lws_sshd_demo.c\n@@ -164,7 +164,7 @@ ssh_ops_tx(void *_priv, int stdch, uint8_t *buf, size_t len)\n \t\treturn 0;\n \n \tif ((size_t)(priv-\u003elen - priv-\u003epos) \u003c chunk)\n-\t\tchunk \u003d priv-\u003elen - priv-\u003epos;\n+\t\tchunk \u003d (size_t)(priv-\u003elen - priv-\u003epos);\n \n \tif (!chunk)\n \t\treturn 0;\n@@ -211,13 +211,13 @@ ssh_ops_get_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \n \tif (lseek(vhd-\u003eprivileged_fd, 0, SEEK_SET) \u003c 0)\n \t\treturn 0;\n-\tn \u003d read(vhd-\u003eprivileged_fd, buf, (int)len);\n+\tn \u003d (int)read(vhd-\u003eprivileged_fd, buf, len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: read failed: %d\u005cn\u0022, __func__, n);\n \t\tn \u003d 0;\n \t}\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n static size_t\n@@ -229,13 +229,13 @@ ssh_ops_set_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \t\t\t\t\t\t lws_get_protocol(wsi));\n \tint n;\n \n-\tn \u003d write(vhd-\u003eprivileged_fd, buf, (int)len);\n+\tn \u003d (int)write(vhd-\u003eprivileged_fd, buf, len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: read failed: %d\u005cn\u0022, __func__, errno);\n \t\tn \u003d 0;\n \t}\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n /* ops: auth */\n@@ -266,7 +266,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t}\n \tp \u003d aps;\n \n-\tif (strncmp(p, type, n)) {\n+\tif (strncmp(p, type, (unsigned int)n)) {\n \t\tlwsl_notice(\u0022lead-in string does not match %s\u005cn\u0022, type);\n \t\tgoto bail_p1;\n \t}\n@@ -278,7 +278,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t}\n \n \tp++;\n-\tps \u003d malloc(alen);\n+\tps \u003d malloc((unsigned int)alen);\n \tif (!ps) {\n \t\tlwsl_notice(\u0022OOM 2\u005cn\u0022);\n \t\tfree(aps);\n@@ -301,7 +301,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t * once we are past that, it's the same \u003clen32\u003ename\n \t * \u003clen32\u003eE\u003clen32\u003eN that the peer sends us\n \t */\n-\tif (memcmp(peer, ps, peer_len)) {\n+\tif (memcmp(peer, ps, (unsigned int)peer_len)) {\n \t\tlwsl_info(\u0022%s: factors mismatch, rejecting key\u005cn\u0022, __func__);\n \t\tgoto bail;\n \t}\n@@ -345,7 +345,7 @@ ssh_ops_banner(char *buf, size_t max_len, char *lang, size_t max_lang_len)\n \n \tlws_snprintf(lang, max_lang_len, \u0022en/US\u0022);\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n static void\ndiff --git a/plugins/protocol_lws_status.c b/plugins/protocol_lws_status.c\nindex b2f7f0c..520cb18 100644\n--- a/plugins/protocol_lws_status.c\n+++ b/plugins/protocol_lws_status.c\n@@ -132,7 +132,7 @@ callback_lws_status(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tswitch (pss-\u003ewalk) {\n \t\tcase WALK_INITIAL:\n \t\t\tn \u003d LWS_WRITE_TEXT | LWS_WRITE_NO_FIN;\n-\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t \u0022{ \u005c\u0022version\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u0022\n \t\t\t\t \u0022 \u005c\u0022wss_over_h2\u005c\u0022:\u005c\u0022%d\u005c\u0022,\u0022\n \t\t\t\t \u0022 \u005c\u0022hostname\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u0022\n@@ -171,7 +171,7 @@ callback_lws_status(struct lws *wsi, enum lws_callback_reasons reason,\n \n \t\t\tstrcpy(ip, \u0022unknown\u0022);\n \t\t\tlws_get_peer_simple(pss-\u003ewalk_next-\u003ewsi, ip, sizeof(ip));\n-\t\t\tp +\u003d lws_snprintf(p, end - p,\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p),\n \t\t\t\t\t\u0022{\u005c\u0022peer\u005c\u0022:\u005c\u0022%s\u005c\u0022,\u005c\u0022time\u005c\u0022:\u005c\u0022%ld\u005c\u0022,\u0022\n \t\t\t\t\t\u0022\u005c\u0022ua\u005c\u0022:\u005c\u0022%s\u005c\u0022}\u0022,\n \t\t\t\t\tip, (unsigned long)pss-\u003ewalk_next-\u003etime_est,\n@@ -196,7 +196,7 @@ walk_final:\n \t\t\treturn 0;\n \t\t}\n \n-\t\tm \u003d lws_write(wsi, (unsigned char *)start, p - start, n);\n+\t\tm \u003d lws_write(wsi, (unsigned char *)start, lws_ptr_diff_size_t(p, start), (unsigned int)n);\n \t\tif (m \u003c 0) {\n \t\t\tlwsl_err(\u0022ERROR %d writing to di socket\u005cn\u0022, m);\n \t\t\treturn -1;\ndiff --git a/plugins/protocol_post_demo.c b/plugins/protocol_post_demo.c\nindex 39c599c..b6c6b93 100644\n--- a/plugins/protocol_post_demo.c\n+++ b/plugins/protocol_post_demo.c\n@@ -94,7 +94,7 @@ file_upload_cb(void *data, const char *name, const char *filename,\n \t\t\t\treturn 1;\n \n #if !defined(LWS_WITH_ESP32)\n-\t\t\tn \u003d write((int)(lws_intptr_t)pss-\u003efd, buf, len);\n+\t\t\tn \u003d (int)write((int)(lws_intptr_t)pss-\u003efd, buf, (unsigned int)len);\n \t\t\tlwsl_info(\u0022%s: write %d says %d\u005cn\u0022, __func__, len, n);\n #else\n \t\t\tlwsl_notice(\u0022%s: Received chunk size %d\u005cn\u0022, __func__, len);\n@@ -128,7 +128,7 @@ format_result(struct per_session_data__post_demo *pss)\n \tstart \u003d p;\n \tend \u003d p + sizeof(pss-\u003eresult) - LWS_PRE - 1;\n \n-\tp +\u003d lws_snprintf((char *)p, end -p,\n+\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\u0022\u003c!DOCTYPE html\u003e\u003chtml lang\u003d\u005c\u0022en\u005c\u0022\u003e\u003chead\u003e\u0022\n \t\t\t\u0022\u003cmeta charset\u003dutf-8 http-equiv\u003d\u005c\u0022Content-Language\u005c\u0022 \u0022\n \t\t\t\u0022content\u003d\u005c\u0022en\u005c\u0022/\u003e\u0022\n@@ -138,12 +138,12 @@ format_result(struct per_session_data__post_demo *pss)\n \n \tfor (n \u003d 0; n \u003c (int)LWS_ARRAY_SIZE(param_names); n++) {\n \t\tif (!lws_spa_get_string(pss-\u003espa, n))\n-\t\t\tp +\u003d lws_snprintf((char *)p, end - p,\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t \u0022\u003ctr\u003e\u003ctd\u003e\u003cb\u003e%s\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e0\u0022\n \t\t\t \u0022\u003c/td\u003e\u003ctd\u003eNULL\u003c/td\u003e\u003c/tr\u003e\u0022,\n \t\t\t param_names[n]);\n \t\telse\n-\t\t\tp +\u003d lws_snprintf((char *)p, end - p,\n+\t\t\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t \u0022\u003ctr\u003e\u003ctd\u003e\u003cb\u003e%s\u003c/b\u003e\u003c/td\u003e\u003ctd\u003e%d\u0022\n \t\t\t \u0022\u003c/td\u003e\u003ctd\u003e%s\u003c/td\u003e\u003c/tr\u003e\u0022,\n \t\t\t param_names[n],\n@@ -151,12 +151,12 @@ format_result(struct per_session_data__post_demo *pss)\n \t\t\t lws_spa_get_string(pss-\u003espa, n));\n \t}\n \n-\tp +\u003d lws_snprintf((char *)p, end - p,\n+\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p),\n \t\t\t\u0022\u003c/table\u003e\u003cbr\u003e\u003cb\u003efilename:\u003c/b\u003e %s, \u0022\n \t\t\t\u0022\u003cb\u003elength\u003c/b\u003e %ld\u0022,\n \t\t\tpss-\u003efilename, pss-\u003efile_length);\n \n-\tp +\u003d lws_snprintf((char *)p, end - p, \u0022\u003c/body\u003e\u003c/html\u003e\u0022);\n+\tp +\u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022\u003c/body\u003e\u003c/html\u003e\u0022);\n \n \treturn (int)lws_ptr_diff(p, start);\n }\n@@ -218,13 +218,13 @@ callback_post_demo(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t(unsigned char *)\u0022text/html\u0022, 9,\n \t\t\t\t\t\u0026p, end))\n \t\t\t\tgoto bail;\n-\t\t\tif (lws_add_http_header_content_length(wsi, n, \u0026p, end))\n+\t\t\tif (lws_add_http_header_content_length(wsi, (unsigned int)n, \u0026p, end))\n \t\t\t\tgoto bail;\n \t\t\tif (lws_finalize_http_header(wsi, \u0026p, end))\n \t\t\t\tgoto bail;\n \n \t\t\t/* first send the headers ... */\n-\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff(p, start),\n+\t\t\tn \u003d lws_write(wsi, start, lws_ptr_diff_size_t(p, start),\n \t\t\t\t LWS_WRITE_HTTP_HEADERS);\n \t\t\tif (n \u003c 0)\n \t\t\t\tgoto bail;\n@@ -237,7 +237,7 @@ callback_post_demo(struct lws *wsi, enum lws_callback_reasons reason,\n \t\tif (!pss-\u003esent_body) {\n \t\t\tn \u003d format_result(pss);\n \n-\t\t\tn \u003d lws_write(wsi, (unsigned char *)start, n,\n+\t\t\tn \u003d lws_write(wsi, (unsigned char *)start, (unsigned int)n,\n \t\t\t\t LWS_WRITE_HTTP_FINAL);\n \n \t\t\tpss-\u003esent_body \u003d 1;\ndiff --git a/plugins/raw-proxy/protocol_lws_raw_proxy.c b/plugins/raw-proxy/protocol_lws_raw_proxy.c\nindex 7cd7291..cef5f93 100644\n--- a/plugins/raw-proxy/protocol_lws_raw_proxy.c\n+++ b/plugins/raw-proxy/protocol_lws_raw_proxy.c\n@@ -158,7 +158,7 @@ flow_control(struct conn *conn, int side, int enable)\n \tif (lws_rx_flow_control(conn-\u003ewsi[side], enable))\n \t\treturn 1;\n \n-\tconn-\u003erx_enabled[side] \u003d enable;\n+\tconn-\u003erx_enabled[side] \u003d (char)enable;\n \tlwsl_info(\u0022%s: %s side: %s\u005cn\u0022, __func__, side ? \u0022ONW\u0022 : \u0022ACC\u0022,\n \t\t enable ? \u0022rx enabled\u0022 : \u0022rx flow controlled\u0022);\n \n@@ -223,7 +223,7 @@ callback_raw_proxy(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\te \u003d lws_tokenize(\u0026ts);\n \t\t\t\tif (e !\u003d LWS_TOKZE_INTEGER)\n \t\t\t\t\tgoto bad_onward;\n-\t\t\t\tvhd-\u003eport \u003d atoi(ts.token);\n+\t\t\t\tvhd-\u003eport \u003d (uint16_t)atoi(ts.token);\n \t\t\t\te \u003d lws_tokenize(\u0026ts);\n \t\t\t}\n \t\t\tif (e !\u003d LWS_TOKZE_ENDED)\n@@ -298,7 +298,7 @@ bad_onward:\n \t\t\tlwsl_notice(\u0022OOM: dropping\u005cn\u0022);\n \t\t\treturn -1;\n \t\t}\n-\t\tpkt.len \u003d len;\n+\t\tpkt.len \u003d (uint32_t)len;\n \t\tpkt.ticket \u003d conn-\u003eticket_next++;\n \n \t\tmemcpy(pkt.payload, in, len);\n@@ -455,7 +455,7 @@ bad_onward:\n \t\t\tlwsl_notice(\u0022OOM: dropping\u005cn\u0022);\n \t\t\treturn -1;\n \t\t}\n-\t\tpkt.len \u003d len;\n+\t\tpkt.len \u003d (uint32_t)len;\n \t\tpkt.ticket \u003d conn-\u003eticket_next++;\n \n \t\tmemcpy(pkt.payload, in, len);\ndiff --git a/plugins/ssh-base/crypto/ed25519.c b/plugins/ssh-base/crypto/ed25519.c\nindex 72b3ae7..9805591 100644\n--- a/plugins/ssh-base/crypto/ed25519.c\n+++ b/plugins/ssh-base/crypto/ed25519.c\n@@ -166,7 +166,7 @@ int crypto_verify_32(const unsigned char *x,const unsigned char *y)\n F(29)\n F(30)\n F(31)\n- return (1 \u0026 ((differentbits - 1) \u003e\u003e 8)) - 1;\n+ return (int)((1 \u0026 ((differentbits - 1) \u003e\u003e 8)) - 1);\n }\n \n int crypto_sign_ed25519_open(\ndiff --git a/plugins/ssh-base/crypto/fe25519.c b/plugins/ssh-base/crypto/fe25519.c\nindex fdc2e2a..1f9e7a0 100644\n--- a/plugins/ssh-base/crypto/fe25519.c\n+++ b/plugins/ssh-base/crypto/fe25519.c\n@@ -90,7 +90,7 @@ void fe25519_freeze(fe25519 *r)\n m \u0026\u003d fe_equal(r-\u003ev[i],255);\n m \u0026\u003d ge(r-\u003ev[0],237);\n \n- m \u003d -(int32_t)m;\n+ m \u003d (uint32_t)-(int32_t)m;\n \n r-\u003ev[31] -\u003d m\u0026127;\n for(i\u003d30;i\u003e0;i--)\n@@ -112,7 +112,7 @@ void fe25519_pack(unsigned char r[32], const fe25519 *x)\n fe25519 y \u003d *x;\n fe25519_freeze(\u0026y);\n for(i\u003d0;i\u003c32;i++) \n- r[i] \u003d y.v[i];\n+ r[i] \u003d (unsigned char)y.v[i];\n }\n \n int fe25519_iszero(const fe25519 *x)\n@@ -121,9 +121,9 @@ int fe25519_iszero(const fe25519 *x)\n int r;\n fe25519 t \u003d *x;\n fe25519_freeze(\u0026t);\n- r \u003d fe_equal(t.v[0],0);\n+ r \u003d (int)fe_equal(t.v[0],0);\n for(i\u003d1;i\u003c32;i++) \n- r \u0026\u003d fe_equal(t.v[i],0);\n+ r \u0026\u003d (int)fe_equal(t.v[i],0);\n return r;\n }\n \n@@ -143,7 +143,7 @@ void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b)\n {\n int i;\n uint32_t mask \u003d b;\n- mask \u003d -(int32_t)mask;\n+ mask \u003d (uint32_t)-(int32_t)mask;\n for(i\u003d0;i\u003c32;i++) r-\u003ev[i] ^\u003d mask \u0026 (x-\u003ev[i] ^ r-\u003ev[i]);\n }\n \ndiff --git a/plugins/ssh-base/crypto/ge25519.c b/plugins/ssh-base/crypto/ge25519.c\nindex 0c6273b..e14195d 100644\n--- a/plugins/ssh-base/crypto/ge25519.c\n+++ b/plugins/ssh-base/crypto/ge25519.c\n@@ -151,18 +151,18 @@ static void cmov_aff(ge25519_aff *r, const ge25519_aff *p, unsigned char b)\n \n static unsigned char ge_equal(signed char b,signed char c)\n {\n- unsigned char ub \u003d b;\n- unsigned char uc \u003d c;\n+ unsigned char ub \u003d (unsigned char)b;\n+ unsigned char uc \u003d (unsigned char)c;\n unsigned char x \u003d ub ^ uc; /* 0: yes; 1..255: no */\n uint32_t y \u003d x; /* 0: yes; 1..255: no */\n y -\u003d 1; /* 4294967295: yes; 0..254: no */\n y \u003e\u003e\u003d 31; /* 1: yes; 0: no */\n- return y;\n+ return (unsigned char)y;\n }\n \n static unsigned char negative(signed char b)\n {\n- unsigned long long x \u003d b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */\n+ unsigned long long x \u003d (unsigned long long)b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */\n x \u003e\u003e\u003d 63; /* 1: yes; 0: no */\n return (unsigned char)x;\n }\n@@ -247,7 +247,7 @@ void ge25519_pack(unsigned char r[32], const ge25519_p3 *p)\n fe25519_mul(\u0026tx, \u0026p-\u003ex, \u0026zi);\n fe25519_mul(\u0026ty, \u0026p-\u003ey, \u0026zi);\n fe25519_pack(r, \u0026ty);\n- r[31] ^\u003d fe25519_getparity(\u0026tx) \u003c\u003c 7;\n+ r[31] ^\u003d (unsigned char)(fe25519_getparity(\u0026tx) \u003c\u003c 7);\n }\n \n int ge25519_isneutral_vartime(const ge25519_p3 *p)\ndiff --git a/plugins/ssh-base/crypto/poly1305.c b/plugins/ssh-base/crypto/poly1305.c\nindex 6542667..75657a3 100644\n--- a/plugins/ssh-base/crypto/poly1305.c\n+++ b/plugins/ssh-base/crypto/poly1305.c\n@@ -80,10 +80,10 @@ poly1305_donna_16bytes:\n \tt3 \u003d U8TO32_LE(m - 4);\n \n \th0 +\u003d t0 \u0026 0x3ffffff;\n-\th1 +\u003d ((((uint64_t)t1 \u003c\u003c 32) | t0) \u003e\u003e 26) \u0026 0x3ffffff;\n-\th2 +\u003d ((((uint64_t)t2 \u003c\u003c 32) | t1) \u003e\u003e 20) \u0026 0x3ffffff;\n-\th3 +\u003d ((((uint64_t)t3 \u003c\u003c 32) | t2) \u003e\u003e 14) \u0026 0x3ffffff;\n-\th4 +\u003d (t3 \u003e\u003e 8) | (1 \u003c\u003c 24);\n+\th1 +\u003d (uint32_t)(((((uint64_t)t1 \u003c\u003c 32) | t0) \u003e\u003e 26) \u0026 0x3ffffff);\n+\th2 +\u003d (uint32_t)(((((uint64_t)t2 \u003c\u003c 32) | t1) \u003e\u003e 20) \u0026 0x3ffffff);\n+\th3 +\u003d (uint32_t)(((((uint64_t)t3 \u003c\u003c 32) | t2) \u003e\u003e 14) \u0026 0x3ffffff);\n+\th4 +\u003d (uint32_t)((t3 \u003e\u003e 8) | (1 \u003c\u003c 24));\n \n poly1305_donna_mul:\n \tt[0] \u003d mul32x32_64(h0,r0) + mul32x32_64(h1,s4) +\n@@ -130,10 +130,10 @@ poly1305_donna_atmost15bytes:\n \tt3 \u003d U8TO32_LE(mp + 12);\n \n \th0 +\u003d t0 \u0026 0x3ffffff;\n-\th1 +\u003d ((((uint64_t)t1 \u003c\u003c 32) | t0) \u003e\u003e 26) \u0026 0x3ffffff;\n-\th2 +\u003d ((((uint64_t)t2 \u003c\u003c 32) | t1) \u003e\u003e 20) \u0026 0x3ffffff;\n-\th3 +\u003d ((((uint64_t)t3 \u003c\u003c 32) | t2) \u003e\u003e 14) \u0026 0x3ffffff;\n-\th4 +\u003d (t3 \u003e\u003e 8);\n+\th1 +\u003d (uint32_t)(((((uint64_t)t1 \u003c\u003c 32) | t0) \u003e\u003e 26) \u0026 0x3ffffff);\n+\th2 +\u003d (uint32_t)(((((uint64_t)t2 \u003c\u003c 32) | t1) \u003e\u003e 20) \u0026 0x3ffffff);\n+\th3 +\u003d (uint32_t)(((((uint64_t)t3 \u003c\u003c 32) | t2) \u003e\u003e 14) \u0026 0x3ffffff);\n+\th4 +\u003d (uint32_t)(t3 \u003e\u003e 8);\n \n \tgoto poly1305_donna_mul;\n \ndiff --git a/plugins/ssh-base/crypto/sc25519.c b/plugins/ssh-base/crypto/sc25519.c\nindex 7983d8e..a12995b 100644\n--- a/plugins/ssh-base/crypto/sc25519.c\n+++ b/plugins/ssh-base/crypto/sc25519.c\n@@ -39,7 +39,7 @@ static void sc_reduce_add_sub(sc25519 *r)\n {\n pb +\u003d m[i];\n b \u003d lt(r-\u003ev[i],pb);\n- t[i] \u003d r-\u003ev[i]-pb+(b\u003c\u003c8);\n+ t[i] \u003d (unsigned char)(r-\u003ev[i]-pb+(b\u003c\u003c8));\n pb \u003d b;\n }\n mask \u003d b - 1;\n@@ -134,7 +134,7 @@ void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x)\n void sc25519_to32bytes(unsigned char r[32], const sc25519 *x)\n {\n int i;\n- for(i\u003d0;i\u003c32;i++) r[i] \u003d x-\u003ev[i];\n+ for(i\u003d0;i\u003c32;i++) r[i] \u003d (unsigned char)x-\u003ev[i];\n }\n \n int sc25519_iszero_vartime(const sc25519 *x)\n@@ -170,8 +170,8 @@ void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y)\n for(i\u003d0;i\u003c32;i++) r-\u003ev[i] \u003d x-\u003ev[i] + y-\u003ev[i];\n for(i\u003d0;i\u003c31;i++)\n {\n- carry \u003d r-\u003ev[i] \u003e\u003e 8;\n- r-\u003ev[i+1] +\u003d carry;\n+ carry \u003d (int)r-\u003ev[i] \u003e\u003e 8;\n+ r-\u003ev[i+1] +\u003d (uint32_t)carry;\n r-\u003ev[i] \u0026\u003d 0xff;\n }\n sc_reduce_add_sub(r);\n@@ -202,8 +202,8 @@ void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y)\n /* Reduce coefficients */\n for(i\u003d0;i\u003c63;i++)\n {\n- carry \u003d t[i] \u003e\u003e 8;\n- t[i+1] +\u003d carry;\n+ carry \u003d (int)t[i] \u003e\u003e 8;\n+ t[i+1] +\u003d (uint32_t)carry;\n t[i] \u0026\u003d 0xff;\n }\n \n@@ -226,18 +226,18 @@ void sc25519_window3(signed char r[85], const sc25519 *s)\n r[8*i+0] \u003d s-\u003ev[3*i+0] \u0026 7;\n r[8*i+1] \u003d (s-\u003ev[3*i+0] \u003e\u003e 3) \u0026 7;\n r[8*i+2] \u003d (s-\u003ev[3*i+0] \u003e\u003e 6) \u0026 7;\n- r[8*i+2] ^\u003d (s-\u003ev[3*i+1] \u003c\u003c 2) \u0026 7;\n+ r[8*i+2] \u003d (signed char)(r[8*i+2] ^ (int)((s-\u003ev[3*i+1] \u003c\u003c 2) \u0026 7));\n r[8*i+3] \u003d (s-\u003ev[3*i+1] \u003e\u003e 1) \u0026 7;\n r[8*i+4] \u003d (s-\u003ev[3*i+1] \u003e\u003e 4) \u0026 7;\n r[8*i+5] \u003d (s-\u003ev[3*i+1] \u003e\u003e 7) \u0026 7;\n- r[8*i+5] ^\u003d (s-\u003ev[3*i+2] \u003c\u003c 1) \u0026 7;\n+ r[8*i+5] \u003d (signed char)(r[8*i+5] ^ (int)((s-\u003ev[3*i+2] \u003c\u003c 1) \u0026 7));\n r[8*i+6] \u003d (s-\u003ev[3*i+2] \u003e\u003e 2) \u0026 7;\n r[8*i+7] \u003d (s-\u003ev[3*i+2] \u003e\u003e 5) \u0026 7;\n }\n r[8*i+0] \u003d s-\u003ev[3*i+0] \u0026 7;\n r[8*i+1] \u003d (s-\u003ev[3*i+0] \u003e\u003e 3) \u0026 7;\n r[8*i+2] \u003d (s-\u003ev[3*i+0] \u003e\u003e 6) \u0026 7;\n- r[8*i+2] ^\u003d (s-\u003ev[3*i+1] \u003c\u003c 2) \u0026 7;\n+ r[8*i+2] \u003d (signed char)(r[8*i+2] ^ (int)((s-\u003ev[3*i+1] \u003c\u003c 2) \u0026 7));\n r[8*i+3] \u003d (s-\u003ev[3*i+1] \u003e\u003e 1) \u0026 7;\n r[8*i+4] \u003d (s-\u003ev[3*i+1] \u003e\u003e 4) \u0026 7;\n \n@@ -245,13 +245,13 @@ void sc25519_window3(signed char r[85], const sc25519 *s)\n carry \u003d 0;\n for(i\u003d0;i\u003c84;i++)\n {\n- r[i] +\u003d carry;\n- r[i+1] +\u003d r[i] \u003e\u003e 3;\n+ r[i] \u003d (signed char)(r[i] + carry);\n+ r[i+1] \u003d (signed char)(r[i + 1] + (r[i] \u003e\u003e 3));\n r[i] \u0026\u003d 7;\n- carry \u003d r[i] \u003e\u003e 2;\n- r[i] -\u003d carry\u003c\u003c3;\n+ carry \u003d (char)(r[i] \u003e\u003e 2);\n+ r[i] \u003d (signed char)(r[i] - (carry\u003c\u003c3));\n }\n- r[84] +\u003d carry;\n+ r[84] \u003d (signed char)(r[84] + (signed char)carry);\n }\n \n void sc25519_window5(signed char r[51], const sc25519 *s)\n@@ -262,33 +262,33 @@ void sc25519_window5(signed char r[51], const sc25519 *s)\n {\n r[8*i+0] \u003d s-\u003ev[5*i+0] \u0026 31;\n r[8*i+1] \u003d (s-\u003ev[5*i+0] \u003e\u003e 5) \u0026 31;\n- r[8*i+1] ^\u003d (s-\u003ev[5*i+1] \u003c\u003c 3) \u0026 31;\n+ r[8*i+1] \u003d (signed char)(r[8*i+1] ^ (int)((s-\u003ev[5*i+1] \u003c\u003c 3) \u0026 31));\n r[8*i+2] \u003d (s-\u003ev[5*i+1] \u003e\u003e 2) \u0026 31;\n r[8*i+3] \u003d (s-\u003ev[5*i+1] \u003e\u003e 7) \u0026 31;\n- r[8*i+3] ^\u003d (s-\u003ev[5*i+2] \u003c\u003c 1) \u0026 31;\n+ r[8*i+3] \u003d (signed char)(r[8*i+3] ^ (int)((s-\u003ev[5*i+2] \u003c\u003c 1) \u0026 31));\n r[8*i+4] \u003d (s-\u003ev[5*i+2] \u003e\u003e 4) \u0026 31;\n- r[8*i+4] ^\u003d (s-\u003ev[5*i+3] \u003c\u003c 4) \u0026 31;\n+ r[8*i+4] \u003d (signed char)(r[8*i+4] ^ (int)((s-\u003ev[5*i+3] \u003c\u003c 4) \u0026 31));\n r[8*i+5] \u003d (s-\u003ev[5*i+3] \u003e\u003e 1) \u0026 31;\n r[8*i+6] \u003d (s-\u003ev[5*i+3] \u003e\u003e 6) \u0026 31;\n- r[8*i+6] ^\u003d (s-\u003ev[5*i+4] \u003c\u003c 2) \u0026 31;\n+ r[8*i+6] \u003d (signed char)(r[8*i+6] ^ (int)((s-\u003ev[5*i+4] \u003c\u003c 2) \u0026 31));\n r[8*i+7] \u003d (s-\u003ev[5*i+4] \u003e\u003e 3) \u0026 31;\n }\n r[8*i+0] \u003d s-\u003ev[5*i+0] \u0026 31;\n r[8*i+1] \u003d (s-\u003ev[5*i+0] \u003e\u003e 5) \u0026 31;\n- r[8*i+1] ^\u003d (s-\u003ev[5*i+1] \u003c\u003c 3) \u0026 31;\n+ r[8*i+1] \u003d (signed char)(r[8*i+1] ^ (int)((s-\u003ev[5*i+1] \u003c\u003c 3) \u0026 31));\n r[8*i+2] \u003d (s-\u003ev[5*i+1] \u003e\u003e 2) \u0026 31;\n \n /* Making it signed */\n carry \u003d 0;\n for(i\u003d0;i\u003c50;i++)\n {\n- r[i] +\u003d carry;\n- r[i+1] +\u003d r[i] \u003e\u003e 5;\n+ r[i] \u003d (signed char)(r[i] + (signed char)carry);\n+ r[i+1] \u003d (signed char)(r[i + 1] + (r[i] \u003e\u003e 5));\n r[i] \u0026\u003d 31;\n- carry \u003d r[i] \u003e\u003e 4;\n- r[i] -\u003d carry\u003c\u003c5;\n+ carry \u003d (char)(r[i] \u003e\u003e 4);\n+ r[i] \u003d (signed char)(r[i] - (carry\u003c\u003c5));\n }\n- r[50] +\u003d carry;\n+ r[50] \u003d (signed char)(r[50] + carry);\n }\n \n void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2)\n@@ -296,12 +296,12 @@ void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519\n int i;\n for(i\u003d0;i\u003c31;i++)\n {\n- r[4*i] \u003d ( s1-\u003ev[i] \u0026 3) ^ (( s2-\u003ev[i] \u0026 3) \u003c\u003c 2);\n- r[4*i+1] \u003d ((s1-\u003ev[i] \u003e\u003e 2) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 2) \u0026 3) \u003c\u003c 2);\n- r[4*i+2] \u003d ((s1-\u003ev[i] \u003e\u003e 4) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 4) \u0026 3) \u003c\u003c 2);\n- r[4*i+3] \u003d ((s1-\u003ev[i] \u003e\u003e 6) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 6) \u0026 3) \u003c\u003c 2);\n+ r[4*i] \u003d (unsigned char)(( s1-\u003ev[i] \u0026 3) ^ (( s2-\u003ev[i] \u0026 3) \u003c\u003c 2));\n+ r[4*i+1] \u003d (unsigned char)(((s1-\u003ev[i] \u003e\u003e 2) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 2) \u0026 3) \u003c\u003c 2));\n+ r[4*i+2] \u003d (unsigned char)(((s1-\u003ev[i] \u003e\u003e 4) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 4) \u0026 3) \u003c\u003c 2));\n+ r[4*i+3] \u003d (unsigned char)(((s1-\u003ev[i] \u003e\u003e 6) \u0026 3) ^ (((s2-\u003ev[i] \u003e\u003e 6) \u0026 3) \u003c\u003c 2));\n }\n- r[124] \u003d ( s1-\u003ev[31] \u0026 3) ^ (( s2-\u003ev[31] \u0026 3) \u003c\u003c 2);\n- r[125] \u003d ((s1-\u003ev[31] \u003e\u003e 2) \u0026 3) ^ (((s2-\u003ev[31] \u003e\u003e 2) \u0026 3) \u003c\u003c 2);\n- r[126] \u003d ((s1-\u003ev[31] \u003e\u003e 4) \u0026 3) ^ (((s2-\u003ev[31] \u003e\u003e 4) \u0026 3) \u003c\u003c 2);\n+ r[124] \u003d (unsigned char)(( s1-\u003ev[31] \u0026 3) ^ (( s2-\u003ev[31] \u0026 3) \u003c\u003c 2));\n+ r[125] \u003d (unsigned char)(((s1-\u003ev[31] \u003e\u003e 2) \u0026 3) ^ (((s2-\u003ev[31] \u003e\u003e 2) \u0026 3) \u003c\u003c 2));\n+ r[126] \u003d (unsigned char)(((s1-\u003ev[31] \u003e\u003e 4) \u0026 3) ^ (((s2-\u003ev[31] \u003e\u003e 4) \u0026 3) \u003c\u003c 2));\n }\ndiff --git a/plugins/ssh-base/crypto/smult_curve25519_ref.c b/plugins/ssh-base/crypto/smult_curve25519_ref.c\nindex bd5250f..d3cd8ec 100644\n--- a/plugins/ssh-base/crypto/smult_curve25519_ref.c\n+++ b/plugins/ssh-base/crypto/smult_curve25519_ref.c\n@@ -53,7 +53,7 @@ static void freeze(unsigned int a[32])\n \n for (j \u003d 0;j \u003c 32;++j) aorig[j] \u003d a[j];\n add(a,a,minusp);\n- negative \u003d -(int)((a[31] \u003e\u003e 7) \u0026 1);\n+ negative \u003d (unsigned int)-(int)((a[31] \u003e\u003e 7) \u0026 1);\n for (j \u003d 0;j \u003c 32;++j) a[j] ^\u003d negative \u0026 (aorig[j] ^ a[j]);\n }\n \n@@ -150,7 +150,7 @@ static void mainloop(unsigned int work[64],const unsigned char e[32])\n for (j \u003d 1;j \u003c 64;++j) xzm[j] \u003d 0;\n \n for (pos \u003d 254;pos \u003e\u003d 0;--pos) {\n- b \u003d e[pos / 8] \u003e\u003e (pos \u0026 7);\n+ b \u003d (unsigned int)(e[pos / 8] \u003e\u003e (pos \u0026 7));\n b \u0026\u003d 1;\n smc_select(xzmb,xzm1b,xzm,xzm1,b);\n add(a0,xzmb,xzmb + 32);\n@@ -260,6 +260,6 @@ int crypto_scalarmult_curve25519(unsigned char *q,\n recip(work + 32,work + 32);\n mult(work + 64,work,work + 32);\n freeze(work + 64);\n- for (i \u003d 0;i \u003c 32;++i) q[i] \u003d work[64 + i];\n+ for (i \u003d 0;i \u003c 32;++i) q[i] \u003d (unsigned char)work[64 + i];\n return 0;\n }\ndiff --git a/plugins/ssh-base/include/lws-ssh.h b/plugins/ssh-base/include/lws-ssh.h\nindex 0b1e2b3..029d2fc 100644\n--- a/plugins/ssh-base/include/lws-ssh.h\n+++ b/plugins/ssh-base/include/lws-ssh.h\n@@ -73,22 +73,22 @@\n #define POKE_U64(p, v) \u005c\n do { \u005c\n const uint64_t __v \u003d (v); \u005c\n- ((uint8_t *)(p))[0] \u003d (__v \u003e\u003e 56) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[1] \u003d (__v \u003e\u003e 48) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[2] \u003d (__v \u003e\u003e 40) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[3] \u003d (__v \u003e\u003e 32) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[4] \u003d (__v \u003e\u003e 24) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[5] \u003d (__v \u003e\u003e 16) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[6] \u003d (__v \u003e\u003e 8) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[7] \u003d __v \u0026 0xff; \u005c\n+ ((uint8_t *)(p))[0] \u003d (uint8_t)((__v \u003e\u003e 56) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[1] \u003d (uint8_t)((__v \u003e\u003e 48) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[2] \u003d (uint8_t)((__v \u003e\u003e 40) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[3] \u003d (uint8_t)((__v \u003e\u003e 32) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[4] \u003d (uint8_t)((__v \u003e\u003e 24) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[5] \u003d (uint8_t)((__v \u003e\u003e 16) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[6] \u003d (uint8_t)((__v \u003e\u003e 8) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[7] \u003d (uint8_t)(__v \u0026 0xff); \u005c\n } while (0)\n #define POKE_U32(p, v) \u005c\n do { \u005c\n const uint32_t __v \u003d (v); \u005c\n- ((uint8_t *)(p))[0] \u003d (__v \u003e\u003e 24) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[1] \u003d (__v \u003e\u003e 16) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[2] \u003d (__v \u003e\u003e 8) \u0026 0xff; \u005c\n- ((uint8_t *)(p))[3] \u003d __v \u0026 0xff; \u005c\n+ ((uint8_t *)(p))[0] \u003d (uint8_t)((__v \u003e\u003e 24) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[1] \u003d (uint8_t)((__v \u003e\u003e 16) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[2] \u003d (uint8_t)((__v \u003e\u003e 8) \u0026 0xff); \u005c\n+ ((uint8_t *)(p))[3] \u003d (uint8_t)(__v \u0026 0xff); \u005c\n } while (0)\n #define POKE_U16(p, v) \u005c\n do { \u005c\ndiff --git a/plugins/ssh-base/kex-25519.c b/plugins/ssh-base/kex-25519.c\nindex 4300dbd..a7bac40 100644\n--- a/plugins/ssh-base/kex-25519.c\n+++ b/plugins/ssh-base/kex-25519.c\n@@ -75,7 +75,7 @@ lws_gen_server_key_ed25519(struct lws_context *context, uint8_t *buf256,\n \n \tlwsl_notice(\u0022%s: Generated key len %ld\u005cn\u0022, __func__, (long)(p - buf256));\n \n-\treturn p - buf256;\n+\treturn (size_t)(p - buf256);\n }\n \n static int\n@@ -100,10 +100,10 @@ lws_mpint_rfc4251(uint8_t *dest, const uint8_t *src, int bytes, int uns)\n \tif (uns \u0026\u0026 (*src) \u0026 0x80)\n \t\tbytes++;\n \n-\t*dest++ \u003d bytes \u003e\u003e 24;\n-\t*dest++ \u003d bytes \u003e\u003e 16;\n-\t*dest++ \u003d bytes \u003e\u003e 8;\n-\t*dest++ \u003d bytes;\n+\t*dest++ \u003d (uint8_t)(bytes \u003e\u003e 24);\n+\t*dest++ \u003d (uint8_t)(bytes \u003e\u003e 16);\n+\t*dest++ \u003d (uint8_t)(bytes \u003e\u003e 8);\n+\t*dest++ \u003d (uint8_t)(bytes);\n \n \tif (uns \u0026\u0026 (*src) \u0026 0x80) {\n \t\t*dest++ \u003d 0;\n@@ -150,7 +150,7 @@ ed25519_key_parse(uint8_t *p, size_t len, char *type, size_t type_len,\n \t\treturn 6;\n \n \tpubl \u003d lws_g32(\u0026p); /* length of pubkey block */\n-\tif ((size_t)((p - op) + publ) \u003e\u003d len)\n+\tif ((size_t)((uint32_t)(p - op) + publ) \u003e\u003d len)\n \t\treturn 7;\n \n \tl \u003d lws_g32(\u0026p); /* key type length */\n@@ -169,7 +169,7 @@ ed25519_key_parse(uint8_t *p, size_t len, char *type, size_t type_len,\n \tp +\u003d l;\n \n \tpubl \u003d lws_g32(\u0026p); /* length of private key block */\n-\tif ((size_t)((p - op) + publ) !\u003d len)\n+\tif ((size_t)((uint32_t)(p - op) + publ) !\u003d len)\n \t\treturn 11;\n \n \tl \u003d lws_g32(\u0026p); /* checkint 1 */\n@@ -243,7 +243,7 @@ kex_ecdh_dv(uint8_t *dest, int dest_len, const uint8_t *kbi, int kbi_len,\n \t\tif (lws_genhash_init(\u0026ctx, LWS_GENHASH_TYPE_SHA256))\n \t\t\treturn 1;\n \n-\t\tif (lws_genhash_update(\u0026ctx, kbi, kbi_len))\n+\t\tif (lws_genhash_update(\u0026ctx, kbi, (unsigned int)kbi_len))\n \t\t\tgoto hash_failed;\n \t\tif (lws_genhash_update(\u0026ctx, H, LWS_SIZE_SHA256))\n \t\t\tgoto hash_failed;\n@@ -264,7 +264,7 @@ kex_ecdh_dv(uint8_t *dest, int dest_len, const uint8_t *kbi, int kbi_len,\n \t\tif (m \u003e (dest_len - n))\n \t\t\tm \u003d dest_len - n;\n \n-\t\tmemcpy(dest, pool, m);\n+\t\tmemcpy(dest, pool, (unsigned int)m);\n \t\tn +\u003d m;\n \t\tdest +\u003d m;\n \t}\n@@ -325,7 +325,7 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \t\treturn 1;\n \t}\n \n-\tr \u003d ed25519_key_parse(servkey, r, keyt, sizeof(keyt),\n+\tr \u003d ed25519_key_parse(servkey, (unsigned int)r, keyt, sizeof(keyt),\n \t\t\t pss-\u003eK_S /* public key */, pri_key);\n \tif (r) {\n \t\tlwsl_notice(\u0022%s: server key parse failed: %d\u005cn\u0022, __func__, r);\n@@ -387,7 +387,7 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \t * integer k. This conversion follows the network byte order. This\n \t * step differs from RFC5656.\n \t */\n-\tkbi_len \u003d lws_mpint_rfc4251(kbi, pss-\u003eK, LWS_SIZE_EC25519, 1);\n+\tkbi_len \u003d (uint32_t)lws_mpint_rfc4251(kbi, pss-\u003eK, LWS_SIZE_EC25519, 1);\n \n \t/*\n \t * The exchange hash H is computed as the hash of the concatenation of\n@@ -429,7 +429,7 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \t * name length: name\n \t * key length: key\n \t * ---\u003e */\n-\tlws_p32((uint8_t *)\u0026be, 8 + (int)strlen(keyt) + LWS_SIZE_EC25519);\n+\tlws_p32((uint8_t *)\u0026be, (uint32_t)(8 + (int)strlen(keyt) + LWS_SIZE_EC25519));\n \tif (lws_genhash_update(\u0026ctx, (void *)\u0026be, 4))\n \t\tgoto hash_probs;\n \n@@ -484,9 +484,9 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \n \tlp \u003d p;\n \tp +\u003d4;\n-\tlws_sized_blob(\u0026p, keyt, (int)strlen(keyt));\n+\tlws_sized_blob(\u0026p, keyt, (uint32_t)strlen(keyt));\n \tlws_sized_blob(\u0026p, pss-\u003eK_S, LWS_SIZE_EC25519);\n-\tlws_p32(lp, lws_ptr_diff(p, lp) - 4);\n+\tlws_p32(lp, (uint32_t)(lws_ptr_diff(p, lp) - 4));\n \n \t/* Q_S (exchange value sent by the server) */\n \t\n@@ -496,14 +496,14 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \n \tlp \u003d p;\n \tp +\u003d4;\n-\tlws_sized_blob(\u0026p, keyt, (int)strlen(keyt));\n+\tlws_sized_blob(\u0026p, keyt, (uint32_t)strlen(keyt));\n \tlws_sized_blob(\u0026p, payload_sig, 64);\n-\tlws_p32(lp, lws_ptr_diff(p, lp) - 4);\n+\tlws_p32(lp, (uint32_t)(lws_ptr_diff(p, lp) - 4));\n \n \t/* end of message */\n \n \tlws_pad_set_length(pss, reply, \u0026p, \u0026pss-\u003eactive_keys_stc);\n-\t*plen \u003d lws_ptr_diff(p, reply);\n+\t*plen \u003d (uint32_t)lws_ptr_diff(p, reply);\n \n \tif (!pss-\u003eactive_keys_stc.valid)\n \t\tmemcpy(pss-\u003esession_id, temp, LWS_SIZE_EC25519);\n@@ -533,9 +533,11 @@ kex_ecdh(struct per_session_data__sshd *pss, uint8_t *reply, uint32_t *plen)\n \t */\n \tfor (c \u003d 0; c \u003c 3; c++) {\n \t\tkex_ecdh_dv(kex-\u003ekeys_next_cts.key[c], LWS_SIZE_CHACHA256_KEY,\n-\t\t\t kbi, kbi_len, temp, 'A' + (c * 2), pss-\u003esession_id);\n+\t\t\t kbi, (int)kbi_len, temp, (char)('A' + (c * 2)),\n+\t\t\t pss-\u003esession_id);\n \t\tkex_ecdh_dv(kex-\u003ekeys_next_stc.key[c], LWS_SIZE_CHACHA256_KEY,\n-\t\t\t kbi, kbi_len, temp, 'B' + (c * 2), pss-\u003esession_id);\n+\t\t\t kbi, (int)kbi_len, temp, (char)('B' + (c * 2)),\n+\t\t\t pss-\u003esession_id);\n \t}\n \n \tlws_explicit_bzero(temp, sizeof(temp));\ndiff --git a/plugins/ssh-base/sshd.c b/plugins/ssh-base/sshd.c\nindex b4c2cdc..a4a0a3a 100644\n--- a/plugins/ssh-base/sshd.c\n+++ b/plugins/ssh-base/sshd.c\n@@ -54,10 +54,10 @@ lws_g32(uint8_t **p)\n uint32_t\n lws_p32(uint8_t *p, uint32_t v)\n {\n-\t*p++ \u003d v \u003e\u003e 24;\n-\t*p++ \u003d v \u003e\u003e 16;\n-\t*p++ \u003d v \u003e\u003e 8;\n-\t*p++ \u003d v;\n+\t*p++ \u003d (uint8_t)(v \u003e\u003e 24);\n+\t*p++ \u003d (uint8_t)(v \u003e\u003e 16);\n+\t*p++ \u003d (uint8_t)(v \u003e\u003e 8);\n+\t*p++ \u003d (uint8_t)v;\n \n \treturn v;\n }\n@@ -93,7 +93,7 @@ void\n write_task(struct per_session_data__sshd *pss, struct lws_ssh_channel *ch,\n \t int task)\n {\n-\tpss-\u003ewrite_task[pss-\u003ewt_head] \u003d task;\n+\tpss-\u003ewrite_task[pss-\u003ewt_head] \u003d (uint8_t)task;\n \tpss-\u003ewrite_channel[pss-\u003ewt_head] \u003d ch;\n \tpss-\u003ewt_head \u003d (pss-\u003ewt_head + 1) \u0026 7;\n \tlws_callback_on_writable(pss-\u003ewsi);\n@@ -104,7 +104,7 @@ write_task_insert(struct per_session_data__sshd *pss, struct lws_ssh_channel *ch\n \t int task)\n {\n \tpss-\u003ewt_tail \u003d (pss-\u003ewt_tail - 1) \u0026 7;\n-\tpss-\u003ewrite_task[pss-\u003ewt_tail] \u003d task;\n+\tpss-\u003ewrite_task[pss-\u003ewt_tail] \u003d (uint8_t)task;\n \tpss-\u003ewrite_channel[pss-\u003ewt_tail] \u003d ch;\n \tlws_callback_on_writable(pss-\u003ewsi);\n }\n@@ -114,15 +114,15 @@ void\n lws_pad_set_length(struct per_session_data__sshd *pss, void *start, uint8_t **p,\n \t\t struct lws_ssh_keys *keys)\n {\n-\tuint32_t len \u003d lws_ptr_diff(*p, start);\n+\tuint32_t len \u003d (uint32_t)lws_ptr_diff(*p, start);\n \tuint8_t padc \u003d 4, *bs \u003d start;\n \n \tif (keys-\u003efull_length)\n \t\tlen -\u003d 4;\n \n-\tif ((len + padc) \u0026 (keys-\u003epadding_alignment - 1))\n-\t\tpadc +\u003d keys-\u003epadding_alignment -\n-\t\t\t((len + padc) \u0026 (keys-\u003epadding_alignment - 1));\n+\tif ((len + padc) \u0026 (uint32_t)(keys-\u003epadding_alignment - 1))\n+\t\tpadc \u003d (uint8_t)((uint8_t)padc + (uint8_t)(keys-\u003epadding_alignment -\n+\t\t\t((len + padc) \u0026 (uint32_t)(keys-\u003epadding_alignment - 1))));\n \n \tbs[4] \u003d padc;\n \tlen +\u003d padc;\n@@ -155,7 +155,7 @@ offer(struct per_session_data__sshd *pss, uint8_t *p, uint32_t len, int first,\n \t\treturn 1;\n \t}\n \tlwsl_info(\u0022keylen %d\u005cn\u0022, keylen);\n-\tn \u003d ed25519_key_parse(keybuf, keylen,\n+\tn \u003d ed25519_key_parse(keybuf, (unsigned int)keylen,\n \t\t\t keyt, sizeof(keyt), NULL, NULL);\n \tif (n) {\n \t\tlwsl_notice(\u0022unable to parse server key: %d\u005cn\u0022, n);\n@@ -189,61 +189,61 @@ offer(struct per_session_data__sshd *pss, uint8_t *p, uint32_t len, int first,\n \n \tlp \u003d p;\n \tp +\u003d 4;\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022curve25519-sha256@libssh.org\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022curve25519-sha256@libssh.org\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* Server Host Key Algorithms */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022%s\u0022, keyt);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022%s\u0022, keyt);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* Encryption Algorithms: C -\u003e S */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n //\tn \u003d lws_snprintf((char *)p, end - p, \u0022aes256-gcm@openssh.com\u0022);\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022chacha20-poly1305@openssh.com\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022chacha20-poly1305@openssh.com\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* Encryption Algorithms: S -\u003e C */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n //\tn \u003d lws_snprintf((char *)p, end - p, \u0022aes256-gcm@openssh.com\u0022);\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022chacha20-poly1305@openssh.com\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022chacha20-poly1305@openssh.com\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* MAC Algorithms: C -\u003e S */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n \t/* bogus: chacha20 does not use MACs, but 'none' is not offered */\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022hmac-sha2-256\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022hmac-sha2-256\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* MAC Algorithms: S -\u003e C */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n \t/* bogus: chacha20 does not use MACs, but 'none' is not offered */\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022hmac-sha2-256\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022hmac-sha2-256\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* Compression Algorithms: C -\u003e S */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022none\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022none\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \t/* Compression Algorithms: S -\u003e C */\n \n \tlp \u003d p;\n \tp +\u003d 4;\n-\tn \u003d lws_snprintf((char *)p, end - p, \u0022none\u0022);\n-\tp +\u003d lws_p32(lp, n);\n+\tn \u003d lws_snprintf((char *)p, lws_ptr_diff_size_t(end, p), \u0022none\u0022);\n+\tp +\u003d lws_p32(lp, (uint32_t)n);\n \n \tif (p - op \u003c 13 + padc + 8)\n \t\treturn 0;\n@@ -273,18 +273,18 @@ offer(struct per_session_data__sshd *pss, uint8_t *p, uint32_t len, int first,\n \t*p++ \u003d 0;\n \t*p++ \u003d 0;\n \n-\tlen \u003d lws_ptr_diff(p, op);\n+\tlen \u003d (uint32_t)lws_ptr_diff(p, op);\n \tif (payload_len)\n \t\t/* starts at buf + 5 and excludes padding */\n-\t\t*payload_len \u003d len - 5;\n+\t\t*payload_len \u003d (int)(len - 5);\n \n \t/* we must give at least 4 bytes of 00 padding */\n \n-\tif ((len + padc) \u0026 7)\n-\t\tpadc +\u003d 8 - ((len + padc) \u0026 7);\n+\tif (((int)len + padc) \u0026 7)\n+\t\tpadc +\u003d 8 - (((int)len + padc) \u0026 7);\n \n-\top[4] \u003d padc;\n-\tlen +\u003d padc;\n+\top[4] \u003d (uint8_t)padc;\n+\tlen +\u003d (uint32_t)padc;\n \n \twhile (padc--)\n \t\t*p++ \u003d 0;\n@@ -312,7 +312,7 @@ handle_name(struct per_session_data__sshd *pss)\n \t\tlen \u003d (int)get_gen_server_key_25519(pss, keybuf, (int)sizeof(keybuf));\n \t\tif (!len)\n \t\t\tbreak;\n-\t\tif (ed25519_key_parse(keybuf, len,\n+\t\tif (ed25519_key_parse(keybuf, (unsigned int)len,\n \t\t\t\t keyt, sizeof(keyt),\n \t\t\t\t NULL, NULL)) {\n \t\t\tlwsl_err(\u0022Unable to parse host key %d\u005cn\u0022, n);\n@@ -445,21 +445,21 @@ static void\n state_get_string_alloc(struct per_session_data__sshd *pss, int next)\n {\n \tpss-\u003eparser_state \u003d SSHS_GET_STRING_LEN_ALLOC;\n- pss-\u003estate_after_string \u003d next;\n+ pss-\u003estate_after_string \u003d (char)next;\n }\n \n static void\n state_get_string(struct per_session_data__sshd *pss, int next)\n {\n \tpss-\u003eparser_state \u003d SSHS_GET_STRING_LEN;\n- pss-\u003estate_after_string \u003d next;\n+ pss-\u003estate_after_string \u003d (char)next;\n }\n \n static void\n state_get_u32(struct per_session_data__sshd *pss, int next)\n {\n \tpss-\u003eparser_state \u003d SSHS_GET_U32;\n- pss-\u003estate_after_string \u003d next;\n+ pss-\u003estate_after_string \u003d (char)next;\n }\n \n static struct lws_ssh_channel *\n@@ -556,7 +556,7 @@ again:\n \t\t\t\tbreak;\n \t\t\t}\n \t\t\tif (pss-\u003enpos \u003c sizeof(pss-\u003eV_C) - 1)\n-\t\t\t\tpss-\u003eV_C[pss-\u003enpos++] \u003d *p;\n+\t\t\t\tpss-\u003eV_C[pss-\u003enpos++] \u003d (char)*p;\n \t\t\tp++;\n \t\t\tbreak;\n \n@@ -577,7 +577,7 @@ again:\n \t\t\tif (pss-\u003eactive_keys_cts.valid) {\n \t\t\t\tuint8_t b[4];\n \n-\t\t\t\tPOKE_U32(b, pss-\u003emsg_len);\n+\t\t\t\tPOKE_U32(b, (uint32_t)pss-\u003emsg_len);\n \t\t\t\tpss-\u003emsg_len \u003d lws_chachapoly_get_length(\n \t\t\t\t\t\u0026pss-\u003eactive_keys_cts,\n \t\t\t\t\tpss-\u003essh_sequence_ctr_cts, b);\n@@ -868,7 +868,7 @@ again:\n \t\tcase SSH_KEX_NL_LSTC_ALGS:\n \t\t\tif (*p !\u003d ',') {\n \t\t\t\tif (pss-\u003enpos \u003c sizeof(pss-\u003ename) - 1)\n-\t\t\t\t\tpss-\u003ename[pss-\u003enpos++] \u003d *p;\n+\t\t\t\t\tpss-\u003ename[pss-\u003enpos++] \u003d (char)*p;\n \t\t\t} else {\n \t\t\t\tpss-\u003ename[pss-\u003enpos] \u003d '\u005c0';\n \t\t\t\tpss-\u003enpos \u003d 0;\n@@ -968,7 +968,7 @@ again:\n \t\t\t\tlwsl_notice(\u0022non-alloc string too big\u005cn\u0022);\n \t\t\t\tgoto bail;\n \t\t\t}\n-\t\t\tpss-\u003ename[pss-\u003enpos++] \u003d *p++;\n+\t\t\tpss-\u003ename[pss-\u003enpos++] \u003d (char)*p++;\n \t\t\tif (pss-\u003enpos !\u003d pss-\u003elen)\n \t\t\t\tbreak;\n \n@@ -1080,7 +1080,7 @@ again:\n \n \t\tcase SSHS_DO_UAR_SIG_PRESENT:\n \t\t\tlwsl_info(\u0022SSHS_DO_UAR_SIG_PRESENT\u005cn\u0022);\n-\t\t\tpss-\u003eua-\u003esig_present \u003d *p++;\n+\t\t\tpss-\u003eua-\u003esig_present \u003d (char)*p++;\n \t\t\tstate_get_string_alloc(pss, SSHS_NVC_DO_UAR_ALG);\n \t\t\t/* destroyed with UA struct */\n \t\t\tbreak;\n@@ -1117,7 +1117,7 @@ again:\n \t\t\tif (pss-\u003evhd-\u003eops \u0026\u0026 pss-\u003evhd-\u003eops-\u003eis_pubkey_authorized)\n \t\t\t\tn \u003d pss-\u003evhd-\u003eops-\u003eis_pubkey_authorized(\n \t\t\t\t\tpss-\u003eua-\u003eusername, pss-\u003eua-\u003ealg,\n-\t\t\t\t\tpss-\u003eua-\u003epubkey, pss-\u003eua-\u003epubkey_len);\n+\t\t\t\t\tpss-\u003eua-\u003epubkey, (int)pss-\u003eua-\u003epubkey_len);\n \t\t\tif (n) {\n \t\t\t\tlwsl_info(\u0022rejecting peer pubkey\u005cn\u0022);\n \t\t\t\tgoto ua_fail;\n@@ -1193,7 +1193,7 @@ again:\n \t\t\t 4 + (int)strlen(pss-\u003eua-\u003ealg) +\n \t\t\t 4 + (int)pss-\u003eua-\u003epubkey_len;\n \n-\t\t\tps \u003d sshd_zalloc(n);\n+\t\t\tps \u003d sshd_zalloc((unsigned int)n);\n \t\t\tif (!ps) {\n \t\t\t\tlwsl_notice(\u0022OOM 4\u005cn\u0022);\n \t\t\t\tgoto ua_fail;\n@@ -1212,13 +1212,13 @@ again:\n \t\t\t/* Next hash the plaintext */\n \n \t\t\tif (lws_genhash_init(\u0026pss-\u003eua-\u003ehash_ctx,\n-\t\t\t\trsa_hash_alg_from_ident(pss-\u003eua-\u003ealg))) {\n+\t\t\t\t(enum lws_genhash_types)rsa_hash_alg_from_ident(pss-\u003eua-\u003ealg))) {\n \t\t\t\tlwsl_notice(\u0022genhash init failed\u005cn\u0022);\n \t\t\t\tfree(ps);\n \t\t\t\tgoto ua_fail;\n \t\t\t}\n \n-\t\t\tif (lws_genhash_update(\u0026pss-\u003eua-\u003ehash_ctx, ps, pp - ps)) {\n+\t\t\tif (lws_genhash_update(\u0026pss-\u003eua-\u003ehash_ctx, ps, lws_ptr_diff_size_t(pp, ps))) {\n \t\t\t\tlwsl_notice(\u0022genhash update failed\u005cn\u0022);\n \t\t\t\tfree(ps);\n \t\t\t\tgoto ua_fail;\n@@ -1275,8 +1275,8 @@ again:\n \t\t\t\t\tif (otmp[m] \u003d\u003d 0x04 \u0026\u0026\n \t\t\t\t\t otmp[m + 1] \u003d\u003d lws_genhash_size(\n \t\t\t\t\t\t pss-\u003eua-\u003ehash_ctx.type)) {\n-\t\t\t\t\t\tm \u003d memcmp(\u0026otmp[m + 2], hash,\n-\t\t\t\t\t\tlws_genhash_size(pss-\u003eua-\u003ehash_ctx.type));\n+\t\t\t\t\t\tm \u003d (uint32_t)memcmp(\u0026otmp[m + 2], hash,\n+\t\t\t\t\t\t\t(unsigned int)lws_genhash_size(pss-\u003eua-\u003ehash_ctx.type));\n \t\t\t\t\t\tbreak;\n \t\t\t\t\t}\n \t\t\t\t\t/* go into these */\n@@ -1285,7 +1285,7 @@ again:\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\t/* otherwise skip payloads */\n-\t\t\t\t\tm +\u003d otmp[m + 1] + 2;\n+\t\t\t\t\tm +\u003d (uint32_t)(otmp[m + 1] + 2);\n \t\t\t\t}\n \t\t\t}\n \n@@ -1380,13 +1380,13 @@ again:\n \t\t\tbreak;\n \t\tcase SSHS_NVC_CHOPEN_WINSIZE:\n \t\t\tlwsl_info(\u0022Initial window set to %d\u005cn\u0022, pss-\u003elen);\n-\t\t\tpss-\u003ech_temp-\u003ewindow \u003d pss-\u003elen;\n+\t\t\tpss-\u003ech_temp-\u003ewindow \u003d (int32_t)pss-\u003elen;\n \t\t\tstate_get_u32(pss, SSHS_NVC_CHOPEN_PKTSIZE);\n \t\t\tbreak;\n \t\tcase SSHS_NVC_CHOPEN_PKTSIZE:\n \t\t\tpss-\u003ech_temp-\u003emax_pkt \u003d pss-\u003elen;\n \t\t\tpss-\u003ech_temp-\u003epeer_window_est \u003d LWS_SSH_INITIAL_WINDOW;\n-\t\t\tpss-\u003ech_temp-\u003eserver_ch \u003d pss-\u003enext_ch_num++;\n+\t\t\tpss-\u003ech_temp-\u003eserver_ch \u003d (uint32_t)pss-\u003enext_ch_num++;\n \t\t\t/*\n \t\t\t * add us to channel list... leave as ch_temp\n \t\t\t * as write task needs it and will NULL down\n@@ -1635,7 +1635,7 @@ again:\n \t\t\tpss-\u003ech_recip \u003d pss-\u003elen;\n \n \t\t\tch \u003d ssh_get_server_ch(pss, pss-\u003ech_recip);\n-\t\t\tch-\u003epeer_window_est -\u003d pss-\u003emsg_len;\n+\t\t\tch-\u003epeer_window_est -\u003d (int32_t)pss-\u003emsg_len;\n \n \t\t\tif (pss-\u003emsg_len \u003c sizeof(pss-\u003ename))\n \t\t\t\tstate_get_string(pss, SSHS_NVC_CD_DATA);\n@@ -1676,7 +1676,7 @@ again:\n \t\t\t\t\t\t\tpss-\u003eparser_state \u003d SSHS_MSG_EAT_PADDING;\n \t\t\t\t\t\t\tbreak;\n \t\t\t\t\t\t}\n-\t\t\t\t\t\tscp-\u003elen \u003d atoll((const char *)pp);\n+\t\t\t\t\t\tscp-\u003elen \u003d (uint64_t)atoll((const char *)pp);\n \t\t\t\t\t\tlwsl_notice(\u0022scp payload %llu expected\u005cn\u0022,\n \t\t\t\t\t\t\t (unsigned long long)scp-\u003elen);\n \t\t\t\t\t\tscp-\u003eips \u003d SSHS_SCP_PAYLOADIN;\n@@ -1729,7 +1729,7 @@ again:\n \t\tcase SSHS_NVC_WA_ADD:\n \t\t\tch \u003d ssh_get_server_ch(pss, pss-\u003ech_recip);\n \t\t\tif (ch) {\n-\t\t\t\tch-\u003ewindow +\u003d pss-\u003elen;\n+\t\t\t\tch-\u003ewindow +\u003d (int32_t)pss-\u003elen;\n \t\t\t\tlwsl_notice(\u0022got additional window %d (now %d)\u005cn\u0022,\n \t\t\t\t\t\tpss-\u003elen, ch-\u003ewindow);\n \t\t\t}\n@@ -1904,7 +1904,7 @@ parse(struct per_session_data__sshd *pss, uint8_t *p, size_t len)\n \t\t\t\treturn 0;\n \n \t\t\t/* decrypt it */\n-\t\t\tcp \u003d lws_chacha_decrypt(\u0026pss-\u003eactive_keys_cts,\n+\t\t\tcp \u003d (uint32_t)lws_chacha_decrypt(\u0026pss-\u003eactive_keys_cts,\n \t\t\t\t\t pss-\u003essh_sequence_ctr_cts++,\n \t\t\t\t\t pss-\u003epacket_assembly,\n \t\t\t\t\t pss-\u003epa_pos, pt);\n@@ -1944,7 +1944,7 @@ pad_and_encrypt(uint8_t *dest, void *ps, uint8_t *pp,\n \n \tif (!skip_pad)\n \t\tlws_pad_set_length(pss, ps, \u0026pp, \u0026pss-\u003eactive_keys_stc);\n-\tn \u003d lws_ptr_diff(pp, ps);\n+\tn \u003d (uint32_t)lws_ptr_diff(pp, ps);\n \n \tif (!pss-\u003eactive_keys_stc.valid) {\n \t\tmemcpy(dest, ps, n);\n@@ -2126,7 +2126,7 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tif (!pss-\u003evhd)\n \t\t\t\tbreak;\n \t\t\tm \u003d 0;\n-\t\t\tn \u003d offer(pss, buf + LWS_PRE,\n+\t\t\tn \u003d (int)offer(pss, buf + LWS_PRE,\n \t\t\t\t sizeof(buf) - LWS_PRE, 0, \u0026m);\n \t\t\tif (n \u003d\u003d 0) {\n \t\t\t\tlwsl_notice(\u0022Too small\u005cn\u0022);\n@@ -2143,20 +2143,20 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t/* we need a copy of it to generate the hash later */\n \t\t\tif (pss-\u003ekex-\u003eI_S)\n \t\t\t\tfree(pss-\u003ekex-\u003eI_S);\n-\t\t\tpss-\u003ekex-\u003eI_S \u003d sshd_zalloc(m);\n+\t\t\tpss-\u003ekex-\u003eI_S \u003d sshd_zalloc((unsigned int)m);\n \t\t\tif (!pss-\u003ekex-\u003eI_S) {\n \t\t\t\tlwsl_notice(\u0022OOM 5: %d\u005cn\u0022, m);\n \n \t\t\t\treturn -1;\n \t\t\t}\n \t\t\t/* without length + padcount part */\n-\t\t\tmemcpy(pss-\u003ekex-\u003eI_S, buf + LWS_PRE + 5, m);\n-\t\t\tpss-\u003ekex-\u003eI_S_payload_len \u003d m; /* without padding */\n+\t\t\tmemcpy(pss-\u003ekex-\u003eI_S, buf + LWS_PRE + 5, (unsigned int)m);\n+\t\t\tpss-\u003ekex-\u003eI_S_payload_len \u003d (uint32_t)m; /* without padding */\n \t\t\tbreak;\n \n \t\tcase SSH_WT_OFFER_REPLY:\n \t\t\tmemcpy(ps, pss-\u003ekex-\u003ekex_r, pss-\u003ekex-\u003ekex_r_len);\n-\t\t\tn \u003d pad_and_encrypt(\u0026buf[LWS_PRE], ps,\n+\t\t\tn \u003d (int)pad_and_encrypt(\u0026buf[LWS_PRE], ps,\n \t\t\t\t\t ps + pss-\u003ekex-\u003ekex_r_len, pss, 1);\n \t\t\tpss-\u003ekex_state \u003d KEX_STATE_REPLIED_TO_OFFER;\n \t\t\t/* afterwards, must do newkeys */\n@@ -2202,7 +2202,7 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tn \u003d (int)pss-\u003evhd-\u003eops-\u003ebanner((char *)\u0026buf[650],\n \t\t\t\t\t\t\t 150 - 1,\n \t\t\t\t\t\t\t lang, (int)sizeof(lang));\n-\t\t\tlws_p32(pp, n);\n+\t\t\tlws_p32(pp, (uint32_t)n);\n \t\t\tpp +\u003d 4;\n \t\t\tstrcpy((char *)pp, (char *)\u0026buf[650]);\n \t\t\tpp +\u003d n;\n@@ -2220,12 +2220,12 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t * string public key alg name from the request\n \t\t\t * string public key blob from the request\n \t\t\t */\n-\t\t\tn \u003d 74 + pss-\u003eua-\u003epubkey_len;\n+\t\t\tn \u003d 74 + (int)pss-\u003eua-\u003epubkey_len;\n \t\t\tif (n \u003e (int)sizeof(buf) - LWS_PRE) {\n \t\t\t\tlwsl_notice(\u0022pubkey too large\u005cn\u0022);\n \t\t\t\tgoto bail;\n \t\t\t}\n-\t\t\tps1 \u003d sshd_zalloc(n);\n+\t\t\tps1 \u003d sshd_zalloc((unsigned int)n);\n \t\t\tif (!ps1)\n \t\t\t\tgoto bail;\n \t\t\tps \u003d ps1;\n@@ -2351,7 +2351,7 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tstrcpy((char *)pp, \u0022exit-status\u0022);\n \t\t\tpp +\u003d 11;\n \t\t\t*pp++ \u003d 0;\n-\t\t\tlws_p32(pp, ch-\u003eretcode);\n+\t\t\tlws_p32(pp, (uint32_t)ch-\u003eretcode);\n \t\t\tpp +\u003d 4;\n \t\t\tlwsl_info(\u0022send SSH_MSG_CHANNEL_EXIT_STATUS\u005cn\u0022);\n \t\t\tgoto pac;\n@@ -2404,9 +2404,10 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t/* ps + 14 / + 18 */\n \n \t\t\tpp +\u003d pss-\u003evhd-\u003eops-\u003etx(ch-\u003epriv, n, pp,\n-\t\t\t\t\t\t\u0026buf[sizeof(buf) - 1] - pp);\n+\t\t\t\t\t\tlws_ptr_diff_size_t(\n+\t\t\t\t\t\t\t\u0026buf[sizeof(buf) - 1], pp));\n \n-\t\t\tlws_p32(ps + m - 4, lws_ptr_diff(pp, (ps + m)));\n+\t\t\tlws_p32(ps + m - 4, (uint32_t)lws_ptr_diff(pp, (ps + m)));\n \n \t\t\tif (pss-\u003evhd-\u003eops-\u003etx_waiting(ch-\u003epriv) \u003e 0)\n \t\t\t\tlws_callback_on_writable(wsi);\n@@ -2418,7 +2419,7 @@ lws_callback_raw_sshd(struct lws *wsi, enum lws_callback_reasons reason,\n pac:\n \t\t\tif (!pss-\u003evhd)\n \t\t\t\tbreak;\n-\t\t\tn \u003d pad_and_encrypt(\u0026buf[LWS_PRE], ps, pp, pss, 0);\n+\t\t\tn \u003d (int)pad_and_encrypt(\u0026buf[LWS_PRE], ps, pp, pss, 0);\n \t\t\tbreak;\n \n bail:\n@@ -2430,7 +2431,7 @@ bail:\n \t\t}\n \n \t\tif (n \u003e 0) {\n-\t\t\tm \u003d lws_write(wsi, (unsigned char *)buf + LWS_PRE, n,\n+\t\t\tm \u003d lws_write(wsi, (unsigned char *)buf + LWS_PRE, (unsigned int)n,\n \t\t\t\t LWS_WRITE_HTTP);\n \n \t\t\tswitch(o) {\n@@ -2513,7 +2514,7 @@ bail:\n \t\t\tbreak;\n \t\tch \u003d ssh_get_server_ch(pss, pss-\u003echannel_doing_spawn);\n \t\tif (ch) {\n-\t\t\tch-\u003espawn_pid \u003d (int)len; /* child process PID */\n+\t\t\tch-\u003espawn_pid \u003d (uint32_t)len; /* child process PID */\n \t\t\tlwsl_notice(\u0022associated PID %d to ch %d\u005cn\u0022, (int)len,\n \t\t\t\t pss-\u003echannel_doing_spawn);\n \t\t}\ndiff --git a/plugins/ssh-base/telnet.c b/plugins/ssh-base/telnet.c\nindex 0064147..04b2e6b 100644\n--- a/plugins/ssh-base/telnet.c\n+++ b/plugins/ssh-base/telnet.c\n@@ -187,7 +187,7 @@ lws_callback_raw_telnet(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\tpu++;\n \n \t\t\tif (n \u003e 100 || !len)\n-\t\t\t\tpss-\u003evhd-\u003eops-\u003erx(pss-\u003epriv, wsi, buf, n);\n+\t\t\t\tpss-\u003evhd-\u003eops-\u003erx(pss-\u003epriv, wsi, buf, (uint32_t)n);\n \t\t}\n \t\tbreak;\n \n@@ -206,7 +206,7 @@ lws_callback_raw_telnet(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t */\n \t\t\tpu \u003d buf + LWS_PRE + 400;\n \t\t\tm \u003d (int)pss-\u003evhd-\u003eops-\u003etx(pss-\u003epriv, LWS_STDOUT, pu,\n-\t\t\t\t\t((int)sizeof(buf) - LWS_PRE - n - 401) / 2);\n+\t\t\t\t\t(size_t)((int)sizeof(buf) - LWS_PRE - n - 401) / 2);\n \n \t\t\t/*\n \t\t\t * apply telnet line discipline and copy into place\n@@ -219,7 +219,7 @@ lws_callback_raw_telnet(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t}\n \t\t}\n \t\tif (n \u003e 0) {\n-\t\t\tm \u003d lws_write(wsi, (unsigned char *)buf + LWS_PRE, n,\n+\t\t\tm \u003d lws_write(wsi, (unsigned char *)buf + LWS_PRE, (unsigned int)n,\n \t\t\t\t LWS_WRITE_HTTP);\n \t if (m \u003c 0) {\n \t lwsl_err(\u0022ERROR %d writing to di socket\u005cn\u0022, m);\ndiff --git a/test-apps/test-client.c b/test-apps/test-client.c\nindex d8021c2..1115c88 100644\n--- a/test-apps/test-client.c\n+++ b/test-apps/test-client.c\n@@ -92,7 +92,7 @@ lws_poly_rand(struct lws_poly_gen *p)\n \tp-\u003ecyc[1] \u003d (p-\u003ecyc[1] \u0026 1) ? (p-\u003ecyc[1] \u003e\u003e 1) ^ 0x7a5bc2e3 :\n \t\t\t\t p-\u003ecyc[1] \u003e\u003e 1;\n \n-\treturn p-\u003ecyc[0] ^ p-\u003ecyc[1];\n+\treturn (uint8_t)(p-\u003ecyc[0] ^ p-\u003ecyc[1]);\n }\n \n static void show_http_content(const char *p, size_t l)\n@@ -293,10 +293,18 @@ callback_dumb_increment(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tX509_VERIFY_PARAM_free(param);\n \t\t\tif (n !\u003d 1) {\n \t\t\t\tchar errbuf[256];\n-\t\t\t\tn \u003d ERR_get_error();\n+\t\t\t\tconst char *es;\n+\n+\t\t\t\tn \u003d (int)ERR_get_error();\n+\t\t\t\tes \u003d ERR_error_string(\n+#if defined(LWS_WITH_BORINGSSL)\n+\t\t\t\t\t\t\t (uint32_t)\n+#else\n+\t\t\t\t\t\t\t (unsigned long)\n+#endif\n+\t\t\t\t\t\t\t n, errbuf);\n \t\t\t\tlwsl_err(\u0022EXTRA_CLIENT_VERIFY_CERTS: \u0022\n-\t\t\t\t\t \u0022SSL error: %s (%d)\u005cn\u0022,\n-\t\t\t\t\t ERR_error_string(n, errbuf), n);\n+\t\t\t\t\t \u0022SSL error: %s (%d)\u005cn\u0022, es, n);\n \t\t\t\treturn 1;\n \t\t\t}\n \t\t}\n@@ -339,7 +347,7 @@ callback_lws_mirror(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t}\n \n \t\tlws_get_random(lws_get_context(wsi), rands, sizeof(rands[0]));\n-\t\tmirror_lifetime \u003d 16384 + (rands[0] \u0026 65535);\n+\t\tmirror_lifetime \u003d (int)(16384 + (rands[0] \u0026 65535));\n \t\t/* useful to test single connection stability */\n \t\tif (longlived)\n \t\t\tmirror_lifetime +\u003d 500000;\n@@ -406,7 +414,7 @@ callback_lws_mirror(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\t\t\t(rands[3] \u0026 31) + 1);\t/* radius */\n \t\t}\n \n-\t\tn \u003d lws_write(wsi, \u0026buf[LWS_PRE], l,\n+\t\tn \u003d (int)lws_write(wsi, \u0026buf[LWS_PRE], (unsigned int)l,\n \t\t\t opts | LWS_WRITE_TEXT);\n \t\tif (n \u003c 0)\n \t\t\treturn -1;\n@@ -433,7 +441,7 @@ callback_lws_mirror(struct lws *wsi, enum lws_callback_reasons reason,\n \t\t\tp \u003d (unsigned char *)in;\n \t\t\tfor (n \u003d 0; n \u003c (int)len; n++)\n \t\t\t\tif (*p++ !\u003d lws_poly_rand(\u0026rx)) {\n-\t\t\t\t\tlwsl_err(\u0022mismatch at rxb %d offset %d\u005cn\u0022, rxb + (n / block_size), n % block_size);\n+\t\t\t\t\tlwsl_err(\u0022mismatch at rxb %d offset %d\u005cn\u0022, (int)rxb + (n / block_size), n % block_size);\n \t\t\t\t\terrs++;\n \t\t\t\t\tforce_exit \u003d 1;\n \t\t\t\t\treturn -1;\n@@ -564,10 +572,10 @@ static int ratelimit_connects(unsigned int *last, unsigned int secs)\n \n \tgettimeofday(\u0026tv, NULL);\n \n-\tif (tv.tv_sec - (*last) \u003c secs)\n+\tif ((unsigned long)tv.tv_sec - (unsigned long)(*last) \u003c (unsigned long)secs)\n \t\treturn 0;\n \n-\t*last \u003d tv.tv_sec;\n+\t*last \u003d (unsigned int)tv.tv_sec;\n \n \treturn 1;\n }\n@@ -702,8 +710,8 @@ int main(int argc, char **argv)\n \n \tinfo.port \u003d CONTEXT_PORT_NO_LISTEN;\n \tinfo.protocols \u003d protocols;\n-\tinfo.gid \u003d -1;\n-\tinfo.uid \u003d -1;\n+\tinfo.gid \u003d (gid_t)-1;\n+\tinfo.uid \u003d (uid_t)-1;\n #if defined(LWS_ROLE_WS) \u0026\u0026 !defined(LWS_WITHOUT_EXTENSIONS)\n \tinfo.extensions \u003d exts;\n #endif\ndiff --git a/test-apps/test-lejp.c b/test-apps/test-lejp.c\nindex 37b3250..b583f77 100644\n--- a/test-apps/test-lejp.c\n+++ b/test-apps/test-lejp.c\n@@ -52,14 +52,14 @@ cb(struct lejp_ctx *ctx, char reason)\n \t*p \u003d '\u005c0';\n \n \tif (reason \u0026 LEJP_FLAG_CB_IS_VALUE) {\n-\t\tp +\u003d lws_snprintf(p, p - end, \u0022 value '%s' \u0022, ctx-\u003ebuf);\n+\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022 value '%s' \u0022, ctx-\u003ebuf);\n \t\tif (ctx-\u003eipos) {\n \t\t\tint n;\n \n-\t\t\tp +\u003d lws_snprintf(p, p - end, \u0022(array indexes: \u0022);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022(array indexes: \u0022);\n \t\t\tfor (n \u003d 0; n \u003c ctx-\u003eipos; n++)\n-\t\t\t\tp +\u003d lws_snprintf(p, p - end, \u0022%d \u0022, ctx-\u003ei[n]);\n-\t\t\tp +\u003d lws_snprintf(p, p - end, \u0022) \u0022);\n+\t\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022%d \u0022, ctx-\u003ei[n]);\n+\t\t\tp +\u003d lws_snprintf(p, lws_ptr_diff_size_t(end, p), \u0022) \u0022);\n \t\t}\n \t\tlwsl_notice(\u0022%s (%s)\u005cr\u005cn\u0022, buf,\n \t\t reason_names[(unsigned int)\n@@ -102,7 +102,7 @@ main(int argc, char *argv[])\n \tfd \u003d 0;\n \n \twhile (n \u003e 0) {\n-\t\tn \u003d read(fd, buf, sizeof(buf));\n+\t\tn \u003d (int)read(fd, buf, sizeof(buf));\n \t\tif (n \u003c\u003d 0)\n \t\t\tcontinue;\n \ndiff --git a/test-apps/test-server.c b/test-apps/test-server.c\nindex af55f9f..872c0a8 100644\n--- a/test-apps/test-server.c\n+++ b/test-apps/test-server.c\n@@ -138,19 +138,19 @@ lws_callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user,\n \t\t/* dump the headers */\n \n \t\tdo {\n-\t\t\tc \u003d lws_token_to_string(n);\n+\t\t\tc \u003d lws_token_to_string((enum lws_token_indexes)n);\n \t\t\tif (!c) {\n \t\t\t\tn++;\n \t\t\t\tcontinue;\n \t\t\t}\n \n-\t\t\thlen \u003d lws_hdr_total_length(wsi, n);\n+\t\t\thlen \u003d lws_hdr_total_length(wsi, (enum lws_token_indexes)n);\n \t\t\tif (!hlen || hlen \u003e (int)sizeof(buf) - 1) {\n \t\t\t\tn++;\n \t\t\t\tcontinue;\n \t\t\t}\n \n-\t\t\tif (lws_hdr_copy(wsi, buf, sizeof buf, n) \u003c 0)\n+\t\t\tif (lws_hdr_copy(wsi, buf, sizeof buf, (enum lws_token_indexes)n) \u003c 0)\n \t\t\t\tfprintf(stderr, \u0022 %s (too big)\u005cn\u0022, (char *)c);\n \t\t\telse {\n \t\t\t\tbuf[sizeof(buf) - 1] \u003d '\u005c0';\n@@ -399,13 +399,14 @@ int main(int argc, char **argv)\n \tchar cert_path[1024] \u003d \u0022\u0022;\n \tchar key_path[1024] \u003d \u0022\u0022;\n \tchar ca_path[1024] \u003d \u0022\u0022;\n-\tint uid \u003d -1, gid \u003d -1;\n-\tint use_ssl \u003d 0;\n-\tint opts \u003d 0;\n-\tint n \u003d 0;\n #ifndef LWS_NO_DAEMONIZE\n \tint daemonize \u003d 0;\n #endif\n+\tuint64_t opts \u003d 0;\n+\tint use_ssl \u003d 0;\n+\tuid_t uid \u003d (uid_t)-1;\n+\tgid_t gid \u003d (gid_t)-1;\n+\tint n \u003d 0;\n \n \t/*\n \t * take care to zero down the info struct, he contains random garbaage\n@@ -432,10 +433,10 @@ int main(int argc, char **argv)\n \t\t\tbreak;\n #endif\n \t\tcase 'u':\n-\t\t\tuid \u003d atoi(optarg);\n+\t\t\tuid \u003d (uid_t)atoi(optarg);\n \t\t\tbreak;\n \t\tcase 'g':\n-\t\t\tgid \u003d atoi(optarg);\n+\t\t\tgid \u003d (gid_t)atoi(optarg);\n \t\t\tbreak;\n \t\tcase 'd':\n \t\t\tdebug_level \u003d atoi(optarg);\ndiff --git a/test-apps/test-sshd.c b/test-apps/test-sshd.c\nindex 6d68b41..17aa5e1 100644\n--- a/test-apps/test-sshd.c\n+++ b/test-apps/test-sshd.c\n@@ -241,7 +241,7 @@ ssh_ops_get_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \t\treturn 0;\n \t}\n \n-\tn \u003d read(fd, buf, len);\n+\tn \u003d (int)read(fd, buf, len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: read failed: %d\u005cn\u0022, __func__, n);\n \t\tn \u003d 0;\n@@ -249,7 +249,7 @@ ssh_ops_get_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \n \tclose(fd);\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n static size_t\n@@ -266,7 +266,7 @@ ssh_ops_set_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \t\treturn 0;\n \t}\n \n-\tn \u003d write(fd, buf, len);\n+\tn \u003d (int)write(fd, buf, len);\n \tif (n \u003c 0) {\n \t\tlwsl_err(\u0022%s: read failed: %d\u005cn\u0022, __func__, errno);\n \t\tn \u003d 0;\n@@ -274,7 +274,7 @@ ssh_ops_set_server_key(struct lws *wsi, uint8_t *buf, size_t len)\n \n \tclose(fd);\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n /* ops: auth */\n@@ -284,7 +284,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t\t\t\t const uint8_t *peer, int peer_len)\n {\n \tchar *aps, *p, *ps;\n-\tint n \u003d strlen(type), alen \u003d 2048, ret \u003d 2, len;\n+\tint n \u003d (int)strlen(type), alen \u003d 2048, ret \u003d 2, len;\n \tsize_t s \u003d 0;\n \n \tlwsl_info(\u0022%s: checking pubkey for %s\u005cn\u0022, __func__, username);\n@@ -305,7 +305,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t}\n \tp \u003d aps;\n \n-\tif (strncmp(p, type, n)) {\n+\tif (strncmp(p, type, (unsigned int)n)) {\n \t\tlwsl_notice(\u0022lead-in string does not match %s\u005cn\u0022, type);\n \t\tgoto bail_p1;\n \t}\n@@ -318,7 +318,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \n \n \tp++;\n-\tps \u003d malloc(alen);\n+\tps \u003d malloc((unsigned int)alen);\n \tif (!ps) {\n \t\tlwsl_notice(\u0022OOM 2\u005cn\u0022);\n \t\tfree(aps);\n@@ -342,7 +342,7 @@ ssh_ops_is_pubkey_authorized(const char *username, const char *type,\n \t * \u003clen32\u003eE\u003clen32\u003eN that the peer sends us\n \t */\n \n-\tif (lws_timingsafe_bcmp(peer, ps, peer_len)) {\n+\tif (lws_timingsafe_bcmp(peer, ps, (uint32_t)peer_len)) {\n \t\tlwsl_info(\u0022factors mismatch\u005cn\u0022);\n \t\tgoto bail;\n \t}\n@@ -425,10 +425,10 @@ ssh_ops_pty_req(void *_priv, struct lws_ssh_pty *pty)\n \t\t\tbreak;\n \t\topc \u003d *p++;\n \n-\t\targ \u003d *p++ \u003c\u003c 24;\n-\t\targ |\u003d *p++ \u003c\u003c 16;\n-\t\targ |\u003d *p++ \u003c\u003c 8;\n-\t\targ |\u003d *p++;\n+\t\targ \u003d (uint32_t)(*p++ \u003c\u003c 24);\n+\t\targ |\u003d (uint32_t)(*p++ \u003c\u003c 16);\n+\t\targ |\u003d (uint32_t)(*p++ \u003c\u003c 8);\n+\t\targ |\u003d (uint32_t)(*p++);\n \n \t\tlwsl_debug(\u0022pty opc %d: 0x%x\u005cn\u0022, opc, arg);\n \n@@ -483,7 +483,7 @@ ssh_ops_child_process_io(void *_priv, struct lws *wsi,\n \t\t\tuint8_t buf[256], *p, *d;\n \n \t\t\tif (bytes !\u003d 1)\n-\t\t\t\tn \u003d bytes / 2;\n+\t\t\t\tn \u003d (int)(bytes / 2);\n \t\t\telse\n \t\t\t\tn \u003d 1;\n \t\t\tif (n \u003e (int)sizeof(buf))\n@@ -495,7 +495,7 @@ ssh_ops_child_process_io(void *_priv, struct lws *wsi,\n \t\t\tm \u003d lws_get_socket_fd(args-\u003estdwsi[args-\u003ech]);\n \t\t\tif (m \u003c 0)\n \t\t\t\treturn -1;\n-\t\t\tn \u003d read(m, buf, n);\n+\t\t\tn \u003d (int)read(m, buf, (unsigned int)n);\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \t\t\tif (n \u003d\u003d 0) {\n@@ -515,7 +515,7 @@ ssh_ops_child_process_io(void *_priv, struct lws *wsi,\n \n \t\t\t\t*p++ \u003d *d++;\n \t\t\t}\n-\t\t\tn \u003d (void *)p - rp;\n+\t\t\tn \u003d lws_ptr_diff((void *)p, rp);\n \t\t\tif (n \u003c (int)bytes \u0026\u0026 priv-\u003einsert_lf) {\n \t\t\t\tpriv-\u003einsert_lf \u003d 0;\n \t\t\t\t*p++ \u003d 0x0d;\n@@ -525,14 +525,14 @@ ssh_ops_child_process_io(void *_priv, struct lws *wsi,\n \t\t\tn \u003d lws_get_socket_fd(args-\u003estdwsi[args-\u003ech]);\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n-\t\t\tn \u003d read(n, rp, bytes);\n+\t\t\tn \u003d (int)read(n, rp, bytes);\n \t\t\tif (n \u003c 0)\n \t\t\t\treturn -1;\n \t\t}\n \n \t\tlws_rx_flow_control(args-\u003estdwsi[args-\u003ech], 0);\n \n-\t\tlws_ring_bump_head(r, n);\n+\t\tlws_ring_bump_head(r, (unsigned int)n);\n \t\tlws_callback_on_writable(wsi);\n \t\tbreak;\n \t}\n@@ -584,11 +584,11 @@ ssh_ops_banner(char *buf, size_t max_len, char *lang, size_t max_lang_len)\n \tint n \u003d lws_snprintf(buf, max_len, \u0022\u005cn\u0022\n \t\t \u0022 |\u005c\u005c---/| lws-ssh Test Server\u005cn\u0022\n \t\t \u0022 | o_o | SSH Terminal Server\u005cn\u0022\n-\t\t \u0022 \u005c\u005c_^_/ Copyright (C) 2017 Crash Barrier Ltd\u005cn\u005cn\u0022);\n+\t\t \u0022 \u005c\u005c_^_/ Copyright (C) 2017-2020 Crash Barrier Ltd\u005cn\u005cn\u0022);\n \n \tlws_snprintf(lang, max_lang_len, \u0022en/US\u0022);\n \n-\treturn n;\n+\treturn (size_t)n;\n }\n \n static void\n","s":{"c":1746162386,"u": 137280}}
],"g": 326633,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}