From 1000a52df31ab18f8e067f3865e22f1547f4a5a8 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 15 Mar 2021 12:12:16 +0000 Subject: [PATCH] logs: prioritize WITH_NO_LOGS even in release Really not having any logs makes it difficult to know what is really happening, but if that's you're thing this will align debug and release modes to just have ERR and USER if you give WITH_NO_LOGS --- include/libwebsockets/lws-logs.h | 4 ++++ lib/core-net/lws-dsh.c | 2 +- lib/core/context.c | 8 ++++++-- lib/core/logs.c | 4 ++-- lib/secure-streams/secure-streams-serialize.c | 2 +- lib/secure-streams/system/auth-api.amazon.com/auth.c | 4 ++++ .../api-tests/api-test-lws_struct-json/test2.c | 2 ++ .../secure-streams/minimal-secure-streams-avs/avs.c | 6 ++++-- .../minimal-ws-client-spam-tx-rx/minimal-ws-client.c | 4 ++-- 9 files changed, 26 insertions(+), 10 deletions(-) diff --git a/include/libwebsockets/lws-logs.h b/include/libwebsockets/lws-logs.h index 422bbeb4d..3a3c89241 100644 --- a/include/libwebsockets/lws-logs.h +++ b/include/libwebsockets/lws-logs.h @@ -82,7 +82,11 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl #define _LWS_LINIT ((1 << LLL_COUNT) - 1) #endif #else /* not _DEBUG */ +#if defined(LWS_WITH_NO_LOGS) +#define _LWS_LINIT (LLL_ERR | LLL_USER) +#else #define _LWS_LINIT (LLL_ERR | LLL_USER | LLL_WARN | LLL_NOTICE) +#endif #endif /* _DEBUG */ /* diff --git a/lib/core-net/lws-dsh.c b/lib/core-net/lws-dsh.c index 0ecdfd490..324272baa 100644 --- a/lib/core-net/lws-dsh.c +++ b/lib/core-net/lws-dsh.c @@ -490,7 +490,7 @@ lws_dsh_get_head(lws_dsh_t *dsh, int kind, void **obj, size_t *size) return 0; /* we returned the head */ } -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) static int describe_kind(struct lws_dll2 *d, void *user) diff --git a/lib/core/context.c b/lib/core/context.c index 1fddce673..0639cde15 100644 --- a/lib/core/context.c +++ b/lib/core/context.c @@ -387,7 +387,7 @@ lws_create_context(const struct lws_context_creation_info *info) unsigned int lpf = info->fd_limit_per_thread; #if defined(LWS_WITH_EVLIB_PLUGINS) && defined(LWS_WITH_EVENT_LIBS) struct lws_plugin *evlib_plugin_list = NULL; -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) char *ld_env; #endif #endif @@ -461,7 +461,7 @@ lws_create_context(const struct lws_context_creation_info *info) * the context object, so we can overallocate it correctly */ -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) ld_env = getenv("LD_LIBRARY_PATH"); lwsl_info("%s: ev lib path %s, '%s'\n", __func__, LWS_INSTALL_LIBDIR, ld_env); @@ -1461,7 +1461,9 @@ lws_system_cpd_start_defer(struct lws_context *cx, lws_usec_t defer_us) lws_system_deferred_cb, defer_us); } +#if (defined(LWS_WITH_SYS_STATE) && defined(LWS_WITH_SYS_SMD)) || !defined(LWS_WITH_NO_LOGS) static const char *cname[] = { "Unknown", "OK", "Captive", "No internet" }; +#endif void lws_system_cpd_set(struct lws_context *cx, lws_cpd_result_t result) @@ -1469,7 +1471,9 @@ lws_system_cpd_set(struct lws_context *cx, lws_cpd_result_t result) if (cx->captive_portal_detect != LWS_CPD_UNKNOWN) return; +#if !defined(LWS_WITH_NO_LOGS) lwsl_notice("%s: setting CPD result %s\n", __func__, cname[result]); +#endif cx->captive_portal_detect = (uint8_t)result; diff --git a/lib/core/logs.c b/lib/core/logs.c index e6b6025c5..d5d6a19cb 100644 --- a/lib/core/logs.c +++ b/lib/core/logs.c @@ -40,7 +40,7 @@ static void (*lwsl_emit)(int level, const char *line) = lwsl_emit_optee; #endif ; -#ifndef LWS_PLAT_OPTEE +#if !defined(LWS_PLAT_OPTEE) && !defined(LWS_WITH_NO_LOGS) static const char * log_level_names ="EWNIDPHXCLUT??"; #endif @@ -195,7 +195,7 @@ lws_lc_tag(lws_lifecycle_t *lc) int lwsl_timestamp(int level, char *p, size_t len) { -#ifndef LWS_PLAT_OPTEE +#if !defined(LWS_PLAT_OPTEE) && !defined(LWS_WITH_NO_LOGS) time_t o_now; unsigned long long now; struct timeval tv; diff --git a/lib/secure-streams/secure-streams-serialize.c b/lib/secure-streams/secure-streams-serialize.c index f728e1493..abd23bff1 100644 --- a/lib/secure-streams/secure-streams-serialize.c +++ b/lib/secure-streams/secure-streams-serialize.c @@ -88,7 +88,7 @@ typedef enum { RPAR_ORD0, } rx_parser_t; -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) static const char *sn[] = { "unset", diff --git a/lib/secure-streams/system/auth-api.amazon.com/auth.c b/lib/secure-streams/system/auth-api.amazon.com/auth.c index 617823b61..5351cc00f 100644 --- a/lib/secure-streams/system/auth-api.amazon.com/auth.c +++ b/lib/secure-streams/system/auth-api.amazon.com/auth.c @@ -116,7 +116,9 @@ ss_api_amazon_auth_rx(void *userobj, const uint8_t *buf, size_t len, int flags) ss_api_amazon_auth_t *m = (ss_api_amazon_auth_t *)userobj; struct lws_context *context = (struct lws_context *)m->opaque_data; lws_system_blob_t *ab; +#if !defined(LWS_WITH_NO_LOGS) size_t total; +#endif int n; ab = lws_system_get_blob(context, LWS_SYSBLOB_TYPE_AUTH, AUTH_IDX_LWA); @@ -148,9 +150,11 @@ ss_api_amazon_auth_rx(void *userobj, const uint8_t *buf, size_t len, int flags) /* we should have the auth token now */ +#if !defined(LWS_WITH_NO_LOGS) total = lws_system_blob_get_size(ab); lwsl_notice("%s: acquired %u-byte api.amazon.com auth token, exp %ds\n", __func__, (unsigned int)total, m->expires_secs); +#endif lejp_destruct(&m->jctx); diff --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 index e26dc3b42..4afa5a0f8 100644 --- a/minimal-examples/api-tests/api-test-lws_struct-json/test2.c +++ b/minimal-examples/api-tests/api-test-lws_struct-json/test2.c @@ -133,6 +133,7 @@ static const lws_struct_map_t lsm_schema[] = { static int t2_config_dump(struct lws_dll2 *d, void *user) { +#if !defined(LWS_WITH_NO_LOGS) t2_config_t *c = lws_container_of(d, t2_config_t, list); lwsl_notice("%s: id1 '%s'\n", __func__, c->id1); @@ -145,6 +146,7 @@ t2_config_dump(struct lws_dll2 *d, void *user) lwsl_notice("%s: key1: %s, key2: %s\n", __func__, c->creds->key1, c->creds->key2); +#endif return 0; } diff --git a/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c b/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c index 5506db3d6..6728146a1 100644 --- a/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c +++ b/minimal-examples/secure-streams/minimal-secure-streams-avs/avs.c @@ -265,12 +265,13 @@ ss_avs_metadata_state(void *userobj, void *sh, static lws_ss_state_return_t ss_avs_event_rx(void *userobj, const uint8_t *buf, size_t len, int flags) { +#if !defined(LWS_WITH_NO_LOGS) ss_avs_event_t *m = (ss_avs_event_t *)userobj; // struct lws_context *context = (struct lws_context *)m->opaque_data; lwsl_notice("%s: rideshare %s, len %d, flags 0x%x\n", __func__, lws_ss_rideshare(m->ss), (int)len, flags); - +#endif // lwsl_hexdump_warn(buf, len); bad = 0; /* for this demo, receiving something here == success */ @@ -282,9 +283,10 @@ static lws_ss_state_return_t ss_avs_event_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len, int *flags) { +#if !defined(LWS_WITH_NO_LOGS) ss_avs_event_t *m = (ss_avs_event_t *)userobj; lwsl_notice("%s: rideshare %s\n", __func__, lws_ss_rideshare(m->ss)); - +#endif return 1; /* don't transmit anything */ } diff --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 index 2b9b26058..ce223c32a 100644 --- 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 @@ -45,7 +45,7 @@ callback(struct lws *wsi, enum lws_callback_reasons reason, { int m= 0, n = 0; short r; -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) size_t remain; int first = 0, final = 0; #endif @@ -103,7 +103,7 @@ callback(struct lws *wsi, enum lws_callback_reasons reason, break; case LWS_CALLBACK_CLIENT_RECEIVE: -#if defined(_DEBUG) +#if defined(_DEBUG) && !defined(LWS_WITH_NO_LOGS) first = lws_is_first_fragment(wsi); final = lws_is_final_fragment(wsi); remain = lws_remaining_packet_payload(wsi);