diff --git a/lib/client-handshake.c b/lib/client-handshake.c index 6892f5d1..35e296a1 100644 --- a/lib/client-handshake.c +++ b/lib/client-handshake.c @@ -366,7 +366,7 @@ html_parser_cb(const hubbub_token *token, void *pw) switch (token->type) { case HUBBUB_TOKEN_DOCTYPE: - p += snprintf(p, end - p, "data.doctype.name.len, token->data.doctype.name.ptr, token->data.doctype.force_quirks ? @@ -375,20 +375,20 @@ html_parser_cb(const hubbub_token *token, void *pw) if (token->data.doctype.public_missing) printf("\tpublic: missing\n"); else - p += snprintf(p, end - p, "PUBLIC \"%.*s\"\n", + p += lws_snprintf(p, end - p, "PUBLIC \"%.*s\"\n", (int) token->data.doctype.public_id.len, token->data.doctype.public_id.ptr); if (token->data.doctype.system_missing) printf("\tsystem: missing\n"); else - p += snprintf(p, end - p, " \"%.*s\">\n", + p += lws_snprintf(p, end - p, " \"%.*s\">\n", (int) token->data.doctype.system_id.len, token->data.doctype.system_id.ptr); break; case HUBBUB_TOKEN_START_TAG: - p += snprintf(p, end - p, "<%.*s", (int)token->data.tag.name.len, + p += lws_snprintf(p, end - p, "<%.*s", (int)token->data.tag.name.len, token->data.tag.name.ptr); /* (token->data.tag.self_closing) ? @@ -408,23 +408,23 @@ html_parser_cb(const hubbub_token *token, void *pw) pp += r->from_len; plen -= r->from_len; } - p += snprintf(p, end - p, " %.*s=\"%s/%.*s\"", + p += lws_snprintf(p, end - p, " %.*s=\"%s/%.*s\"", (int) token->data.tag.attributes[i].name.len, token->data.tag.attributes[i].name.ptr, r->to, plen, pp); } else - p += snprintf(p, end - p, " %.*s=\"%.*s\"", + p += lws_snprintf(p, end - p, " %.*s=\"%.*s\"", (int) token->data.tag.attributes[i].name.len, token->data.tag.attributes[i].name.ptr, (int) token->data.tag.attributes[i].value.len, token->data.tag.attributes[i].value.ptr); } - p += snprintf(p, end - p, ">\n"); + p += lws_snprintf(p, end - p, ">\n"); break; case HUBBUB_TOKEN_END_TAG: - p += snprintf(p, end - p, "data.tag.name.len, + p += lws_snprintf(p, end - p, "data.tag.name.len, token->data.tag.name.ptr); /* (token->data.tag.self_closing) ? @@ -433,25 +433,25 @@ html_parser_cb(const hubbub_token *token, void *pw) "attributes:" : ""); */ for (i = 0; i < token->data.tag.n_attributes; i++) { - p += snprintf(p, end - p, " %.*s='%.*s'\n", + p += lws_snprintf(p, end - p, " %.*s='%.*s'\n", (int) token->data.tag.attributes[i].name.len, token->data.tag.attributes[i].name.ptr, (int) token->data.tag.attributes[i].value.len, token->data.tag.attributes[i].value.ptr); } - p += snprintf(p, end - p, ">\n"); + p += lws_snprintf(p, end - p, ">\n"); break; case HUBBUB_TOKEN_COMMENT: - p += snprintf(p, end - p, "\n", + p += lws_snprintf(p, end - p, "\n", (int) token->data.comment.len, token->data.comment.ptr); break; case HUBBUB_TOKEN_CHARACTER: - p += snprintf(p, end - p, "%.*s", (int) token->data.character.len, + p += lws_snprintf(p, end - p, "%.*s", (int) token->data.character.len, token->data.character.ptr); break; case HUBBUB_TOKEN_EOF: - p += snprintf(p, end - p, "\n"); + p += lws_snprintf(p, end - p, "\n"); break; } diff --git a/lib/libuv.c b/lib/libuv.c index 64e5a7ed..bb1bee30 100644 --- a/lib/libuv.c +++ b/lib/libuv.c @@ -484,14 +484,14 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d) lwsl_notice(" %s\n", dent.name); - snprintf(path, sizeof(path) - 1, "%s/%s", *d, dent.name); + lws_snprintf(path, sizeof(path) - 1, "%s/%s", *d, dent.name); if (uv_dlopen(path, &lib)) { uv_dlerror(&lib); lwsl_err("Error loading DSO: %s\n", lib.errmsg); goto bail; } /* we could open it, can we get his init function? */ - m = snprintf(path, sizeof(path) - 1, "init_%s", + m = lws_snprintf(path, sizeof(path) - 1, "init_%s", dent.name + 3 /* snip lib... */); path[m - 3] = '\0'; /* snip the .so */ if (uv_dlsym(&lib, path, &v)) { @@ -554,7 +554,7 @@ lws_plat_plugins_destroy(struct lws_context * context) while (plugin) { p = plugin; - m = snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3); + m = lws_snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3); path[m - 3] = '\0'; if (uv_dlsym(&plugin->lib, path, &v)) { diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index f62c1561..85622903 100755 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -1165,7 +1165,7 @@ lwsl_timestamp(int level, char *p, int len) continue; now = time_in_microseconds() / 100; if (ptm) - n = snprintf(p, len, + n = lws_snprintf(p, len, "[%04d/%02d/%02d %02d:%02d:%02d:%04d] %s: ", ptm->tm_year + 1900, ptm->tm_mon + 1, @@ -1175,7 +1175,7 @@ lwsl_timestamp(int level, char *p, int len) ptm->tm_sec, (int)(now % 10000), log_level_names[n]); else - n = snprintf(p, len, "[%llu:%04d] %s: ", + n = lws_snprintf(p, len, "[%llu:%04d] %s: ", (unsigned long long) now / 10000, (int)(now % 10000), log_level_names[n]); return n; @@ -1683,6 +1683,24 @@ lws_finalize_startup(struct lws_context *context) return 0; } +int +lws_snprintf(char *str, size_t size, const char *format, ...) +{ + va_list ap; + int n; + + if (!size) + return 0; + + va_start(ap, format); + n = vsnprintf(str, size, format, ap); + va_end(ap); + + if (n >= size) + return size; + + return n; +} LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi) { @@ -1831,7 +1849,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len if (wsi->u.hdr.ah) { if (lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI)) uritok = WSI_TOKEN_POST_URI; - snprintf(cgi_path, sizeof(cgi_path) - 1, "REQUEST_URI=%s", + lws_snprintf(cgi_path, sizeof(cgi_path) - 1, "REQUEST_URI=%s", lws_hdr_simple_ptr(wsi, uritok)); cgi_path[sizeof(cgi_path) - 1] = '\0'; env_array[n++] = cgi_path; @@ -1841,7 +1859,7 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len env_array[n++] = "REQUEST_METHOD=GET"; env_array[n++] = p; - p += snprintf(p, end - p, "QUERY_STRING="); + p += lws_snprintf(p, end - p, "QUERY_STRING="); /* dump the individual URI Arg parameters */ m = 0; while (1) { @@ -1866,55 +1884,55 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len *p++ = '\0'; env_array[n++] = p; - p += snprintf(p, end - p, "PATH_INFO=%s", + p += lws_snprintf(p, end - p, "PATH_INFO=%s", lws_hdr_simple_ptr(wsi, uritok) + script_uri_path_len); p++; } if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_REFERER)) { env_array[n++] = p; - p += snprintf(p, end - p, "HTTP_REFERER=%s", + p += lws_snprintf(p, end - p, "HTTP_REFERER=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_REFERER)); p++; } if (lws_hdr_total_length(wsi, WSI_TOKEN_HOST)) { env_array[n++] = p; - p += snprintf(p, end - p, "HTTP_HOST=%s", + p += lws_snprintf(p, end - p, "HTTP_HOST=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST)); p++; } if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_COOKIE)) { env_array[n++] = p; - p += snprintf(p, end - p, "HTTP_COOKIE=%s", + p += lws_snprintf(p, end - p, "HTTP_COOKIE=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_COOKIE)); p++; } if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_USER_AGENT)) { env_array[n++] = p; - p += snprintf(p, end - p, "USER_AGENT=%s", + p += lws_snprintf(p, end - p, "USER_AGENT=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_USER_AGENT)); p++; } if (uritok == WSI_TOKEN_POST_URI) { if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE)) { env_array[n++] = p; - p += snprintf(p, end - p, "CONTENT_TYPE=%s", + p += lws_snprintf(p, end - p, "CONTENT_TYPE=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE)); p++; } if (lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH)) { env_array[n++] = p; - p += snprintf(p, end - p, "CONTENT_LENGTH=%s", + p += lws_snprintf(p, end - p, "CONTENT_LENGTH=%s", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH)); p++; } } env_array[n++] = p; - p += snprintf(p, end - p, "SCRIPT_PATH=%s", exec_array[0]) + 1; + p += lws_snprintf(p, end - p, "SCRIPT_PATH=%s", exec_array[0]) + 1; while (mp_cgienv) { env_array[n++] = p; - p += snprintf(p, end - p, "%s=%s", mp_cgienv->name, + p += lws_snprintf(p, end - p, "%s=%s", mp_cgienv->name, mp_cgienv->value); lwsl_debug(" Applying mount-specific cgi env '%s'\n", env_array[n - 1]); @@ -2360,7 +2378,7 @@ lws_access_log(struct lws *wsi) if (!p) p = ""; - l = snprintf(ass, sizeof(ass) - 1, "%s %d %lu %s\n", + l = lws_snprintf(ass, sizeof(ass) - 1, "%s %d %lu %s\n", wsi->access_log.header_log, wsi->access_log.response, wsi->access_log.sent, p); @@ -2403,7 +2421,7 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len) if (len < 100) return 0; - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, "{\n \"name\":\"%s\",\n" " \"port\":\"%d\",\n" " \"use_ssl\":\"%d\",\n" @@ -2429,11 +2447,11 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len) if (vh->mount_list) { const struct lws_http_mount *m = vh->mount_list; - buf += snprintf(buf, end - buf, ",\n \"mounts\":["); + buf += lws_snprintf(buf, end - buf, ",\n \"mounts\":["); while (m) { if (!first) - buf += snprintf(buf, end - buf, ","); - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, ","); + buf += lws_snprintf(buf, end - buf, "\n {\n \"mountpoint\":\"%s\",\n" " \"origin\":\"%s%s\",\n" " \"cache_max_age\":\"%d\",\n" @@ -2449,25 +2467,25 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len) m->cache_revalidate, m->cache_intermediaries); if (m->def) - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, ",\n \"default\":\"%s\"", m->def); - buf += snprintf(buf, end - buf, "\n }"); + buf += lws_snprintf(buf, end - buf, "\n }"); first = 0; m = m->mount_next; } - buf += snprintf(buf, end - buf, "\n ]"); + buf += lws_snprintf(buf, end - buf, "\n ]"); } if (vh->protocols) { n = 0; first = 1; - buf += snprintf(buf, end - buf, ",\n \"ws-protocols\":["); + buf += lws_snprintf(buf, end - buf, ",\n \"ws-protocols\":["); while (n < vh->count_protocols) { if (!first) - buf += snprintf(buf, end - buf, ","); - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, ","); + buf += lws_snprintf(buf, end - buf, "\n {\n \"%s\":\{\n" " \"status\":\"ok\"\n }\n }" , @@ -2475,10 +2493,10 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len) first = 0; n++; } - buf += snprintf(buf, end - buf, "\n ]"); + buf += lws_snprintf(buf, end - buf, "\n ]"); } - buf += snprintf(buf, end - buf, "\n}"); + buf += lws_snprintf(buf, end - buf, "\n}"); return buf - orig; } @@ -2497,7 +2515,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len) time_t t = time(NULL); int listening = 0, cgi_count = 0, n; - buf += snprintf(buf, end - buf, "{ " + buf += lws_snprintf(buf, end - buf, "{ " "\"version\":\"%s\",\n" "\"uptime\":\"%ld\",\n" "\"cgi_spawned\":\"%d\",\n" @@ -2517,19 +2535,19 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len) m = getloadavg(d, 3); for (n = 0; n < m; n++) { - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, "\"l%d\":\"%.2f\",\n", n + 1, d[n]); } } #endif - buf += snprintf(buf, end - buf, "\"pt\":[\n "); + buf += lws_snprintf(buf, end - buf, "\"pt\":[\n "); for (n = 0; n < context->count_threads; n++) { pt = &context->pt[n]; if (n) - buf += snprintf(buf, end - buf, ","); - buf += snprintf(buf, end - buf, + buf += lws_snprintf(buf, end - buf, ","); + buf += lws_snprintf(buf, end - buf, "\n {\n" " \"fds_count\":\"%d\",\n" " \"ah_pool_inuse\":\"%d\",\n" @@ -2540,7 +2558,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len) pt->ah_wait_list_length); } - buf += snprintf(buf, end - buf, "], \"vhosts\":[\n "); + buf += lws_snprintf(buf, end - buf, "], \"vhosts\":[\n "); while (vh) { if (!first) @@ -2553,7 +2571,7 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len) vh = vh->vhost_next; } - buf += snprintf(buf, end - buf, "],\n\"listen_wsi\":\"%d\"", + buf += lws_snprintf(buf, end - buf, "],\n\"listen_wsi\":\"%d\"", listening); #ifdef LWS_WITH_CGI @@ -2568,10 +2586,10 @@ lws_json_dump_context(const struct lws_context *context, char *buf, int len) } } #endif - buf += snprintf(buf, end - buf, ",\n \"cgi_alive\":\"%d\"\n ", + buf += lws_snprintf(buf, end - buf, ",\n \"cgi_alive\":\"%d\"\n ", cgi_count); - buf += snprintf(buf, end - buf, "}\n "); + buf += lws_snprintf(buf, end - buf, "}\n "); return buf - orig; } diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index ef9cd0f1..51830909 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -147,7 +147,7 @@ struct sockaddr_in; #define LWS_O_RDONLY _O_RDONLY #if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ -#define snprintf _snprintf +#define lws_snprintf _snprintf #endif #ifndef __func__ @@ -2190,6 +2190,20 @@ lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi, LWS_VISIBLE LWS_EXTERN void lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +/** + * lws_snprintf(): lws_snprintf that truncates the returned length too + * + * \param str: destination buffer + * \param size: bytes left in destination buffer + * \param format: format string + * \param ...: args for format + * + * This lets you correctly truncate buffers by concatenating lengths, if you + * reach the limit the reported length doesn't exceed the limit. + */ +LWS_VISIBLE LWS_EXTERN int +lws_snprintf(char *str, size_t size, const char *format, ...); + #ifdef __cplusplus } #endif diff --git a/lib/lws-plat-unix.c b/lib/lws-plat-unix.c index e26b041f..b430a78c 100644 --- a/lib/lws-plat-unix.c +++ b/lib/lws-plat-unix.c @@ -331,7 +331,7 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d) lwsl_notice(" %s\n", namelist[i]->d_name); - snprintf(path, sizeof(path) - 1, "%s/%s", *d, + lws_snprintf(path, sizeof(path) - 1, "%s/%s", *d, namelist[i]->d_name); l = dlopen(path, RTLD_NOW); if (!l) { @@ -341,7 +341,7 @@ lws_plat_plugins_init(struct lws_context * context, const char * const *d) goto bail; } /* we could open it, can we get his init function? */ - m = snprintf(path, sizeof(path) - 1, "init_%s", + m = lws_snprintf(path, sizeof(path) - 1, "init_%s", namelist[i]->d_name + 3 /* snip lib... */); path[m - 3] = '\0'; /* snip the .so */ initfunc = dlsym(l, path); @@ -406,7 +406,7 @@ lws_plat_plugins_destroy(struct lws_context * context) while (plugin) { p = plugin; - m = snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3); + m = lws_snprintf(path, sizeof(path) - 1, "destroy_%s", plugin->name + 3); path[m - 3] = '\0'; func = dlsym(plugin->l, path); if (!func) { diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 1a0792a0..8102a730 100644 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -97,7 +97,7 @@ #endif #ifdef LWS_HAVE__SNPRINTF -#define snprintf _snprintf +#define lws_snprintf _snprintf #endif #else /* not windows --> */ diff --git a/lib/server.c b/lib/server.c index 1ac36515..b7d5bf0b 100644 --- a/lib/server.c +++ b/lib/server.c @@ -301,7 +301,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin, #endif int n, spin = 0; - snprintf(path, sizeof(path) - 1, "%s/%s", origin, uri); + lws_snprintf(path, sizeof(path) - 1, "%s/%s", origin, uri); #ifndef _WIN32_WCE do { @@ -322,12 +322,12 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin, } sym[len] = '\0'; lwsl_debug("symlink %s -> %s\n", path, sym); - snprintf(path, sizeof(path) - 1, "%s", sym); + lws_snprintf(path, sizeof(path) - 1, "%s", sym); } #endif if ((S_IFMT & st.st_mode) == S_IFDIR) { lwsl_debug("default filename append to dir\n"); - snprintf(path, sizeof(path) - 1, "%s/%s/index.html", + lws_snprintf(path, sizeof(path) - 1, "%s/%s/index.html", origin, uri); } @@ -601,7 +601,7 @@ lws_http_action(struct lws *wsi) else me = "unknown"; - snprintf(wsi->access_log.header_log, l, + lws_snprintf(wsi->access_log.header_log, l, "%s - - [%s] \"%s %s %s\"", pa, da, me, uri_ptr, hver[wsi->u.http.request_version]); @@ -676,11 +676,11 @@ lws_http_action(struct lws *wsi) /* > at start indicates deal with by redirect */ if (hit->origin_protocol & 4) - n = snprintf((char *)end, 256, "%s%s", + n = lws_snprintf((char *)end, 256, "%s%s", oprot[hit->origin_protocol & 1], hit->origin); else - n = snprintf((char *)end, 256, + n = lws_snprintf((char *)end, 256, "https://%s/%s/", lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST), uri_ptr); diff --git a/libwebsockets-api-doc.html b/libwebsockets-api-doc.html index ee113712..a7b7197e 100644 --- a/libwebsockets-api-doc.html +++ b/libwebsockets-api-doc.html @@ -1923,3 +1923,27 @@ text/html content-encoding, it's replaced with uri_replace_to
Length of data in buf to send
+

lws_snprintf -

+LWS_EXTERN int +lws_snprintf +(char * str, +size_t size, +const char * format, + ...) +

Arguments

+
+
... +
variable arguments +
+

Description

+
+

+\param str: destination buffer +\param size: bytes left in destination buffer +\param format: format string +\param ...: args for format +

+This lets you correctly truncate buffers by concatenating lengths, if you +reach the limit the reported length doesn't exceed the limit. +

+
diff --git a/lwsws/conf.c b/lwsws/conf.c index fa00095d..e0059b4d 100644 --- a/lwsws/conf.c +++ b/lwsws/conf.c @@ -181,7 +181,7 @@ lejp_globals_cb(struct lejp_ctx *ctx, char reason) return 0; } - a->p += snprintf(a->p, a->end - a->p, "%s", ctx->buf); + a->p += lws_snprintf(a->p, a->end - a->p, "%s", ctx->buf); return 0; } @@ -254,7 +254,7 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason) a->p += n; a->pvo->value = a->p; a->pvo->options = NULL; - a->p += snprintf(a->p, a->end - a->p, "%s", ctx->buf); + a->p += lws_snprintf(a->p, a->end - a->p, "%s", ctx->buf); *(a->p)++ = '\0'; } @@ -408,7 +408,7 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason) a->p += n; mp_cgienv->value = a->p; mp_cgienv->options = NULL; - a->p += snprintf(a->p, a->end - a->p, "%s", ctx->buf); + a->p += lws_snprintf(a->p, a->end - a->p, "%s", ctx->buf); *(a->p)++ = '\0'; lwsl_notice(" adding cgi-env '%s' = '%s'\n", mp_cgienv->name, @@ -452,7 +452,7 @@ lejp_vhosts_cb(struct lejp_ctx *ctx, char reason) return 0; } - a->p += snprintf(a->p, a->end - a->p, "%s", ctx->buf); + a->p += lws_snprintf(a->p, a->end - a->p, "%s", ctx->buf); *(a->p)++ = '\0'; return 0; @@ -518,7 +518,7 @@ lwsws_get_config_d(void *user, const char *d, const char * const *paths, } while (uv_fs_scandir_next(&req, &dent) != UV_EOF) { - snprintf(path, sizeof(path) - 1, "%s/%s", d, dent.name); + lws_snprintf(path, sizeof(path) - 1, "%s/%s", d, dent.name); ret = lwsws_get_config(user, path, paths, count_paths, cb); if (ret) goto bail; @@ -558,7 +558,7 @@ lwsws_get_config_d(void *user, const char *d, const char * const *paths, } for (i = 0; i < n; i++) { - snprintf(path, sizeof(path) - 1, "%s/%s", d, + lws_snprintf(path, sizeof(path) - 1, "%s/%s", d, namelist[i]->d_name); ret = lwsws_get_config(user, path, paths, count_paths, cb); if (ret) { diff --git a/plugins/protocol_lws_status.c b/plugins/protocol_lws_status.c index 29e1d65f..c9d828fc 100644 --- a/plugins/protocol_lws_status.c +++ b/plugins/protocol_lws_status.c @@ -58,7 +58,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss) struct tm tm; #endif - p += snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[", + p += lws_snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[", server_info, live_wsi); /* render the list */ @@ -79,7 +79,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss) if (subsequent) *p++ = ','; subsequent = 1; - p += snprintf(p, sizeof(cache) - (p - start) - 1, + p += lws_snprintf(p, sizeof(cache) - (p - start) - 1, "{\"peer\":\"%s\",\"time\":\"%s\"," "\"ua\":\"%s\"}", (*pp)->ip, date, (*pp)->user_agent); diff --git a/test-server/test-fraggle.c b/test-server/test-fraggle.c index 2137e7b5..80aaea58 100644 --- a/test-server/test-fraggle.c +++ b/test-server/test-fraggle.c @@ -349,7 +349,7 @@ int main(int argc, char **argv) struct lws_client_connect_info i; address = argv[optind]; - snprintf(ads_port, sizeof(ads_port), "%s:%u", + lws_snprintf(ads_port, sizeof(ads_port), "%s:%u", address, port & 65535); memset(&i, 0, sizeof(i)); i.context = context; diff --git a/test-server/test-ping.c b/test-server/test-ping.c index 3d073d81..65ab942b 100644 --- a/test-server/test-ping.c +++ b/test-server/test-ping.c @@ -453,7 +453,7 @@ int main(int argc, char **argv) /* create client websockets using dumb increment protocol */ address = argv[optind]; - snprintf(ads_port, sizeof(ads_port), "%s:%u", + lws_snprintf(ads_port, sizeof(ads_port), "%s:%u", address, port & 65535); lwsl_notice("Connecting to %s...\n", ads_port); memset(&i, 0, sizeof(i)); diff --git a/test-server/test-server-status.c b/test-server/test-server-status.c index d85897b8..50fe5bf9 100644 --- a/test-server/test-server-status.c +++ b/test-server/test-server-status.c @@ -42,7 +42,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss) struct tm tm; #endif - p += snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[", + p += lws_snprintf(p, 512, " { %s, \"wsi\":\"%d\", \"conns\":[", server_info, live_wsi); /* render the list */ @@ -67,7 +67,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss) if (subsequent) *p++ = ','; subsequent = 1; - p += snprintf(p, sizeof(cache) - (p - start) - 1, + p += lws_snprintf(p, sizeof(cache) - (p - start) - 1, "{\"peer\":\"%s\",\"time\":\"%s\"," "\"ua\":\"%s\"}", (*pp)->ip, date, (*pp)->user_agent);