Skip to content

Commit 4e86a78

Browse files
committed
update ziti_dump
- show current time - show external signers and tokens
1 parent 1a93d97 commit 4e86a78

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

inc_internal/utils.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ int load_file(const char *path, size_t pathlen, char **content, size_t *size);
172172

173173
uint64_t next_backoff(int *count, int max, uint64_t base);
174174

175+
const char *get_utc_time();
176+
175177
tlsuv_http_req_t* ziti_json_request(
176178
tlsuv_http_t *clt, const char *method, const char *path,
177179
void (*cb)(tlsuv_http_resp_t *resp, const char *err, json_object *content, void *ctx),

library/utils.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@ static const char *(*get_elapsed)();
126126

127127
static const char *get_elapsed_time();
128128

129-
static const char *get_utc_time();
130-
131129
static void default_log_writer(int level, const char *loc, const char *msg, size_t msglen);
132130

133131
static uv_loop_t *ts_loop;
@@ -397,22 +395,24 @@ static const char *get_elapsed_time() {
397395
return log_timestamp;
398396
}
399397

400-
static const char *get_utc_time() {
398+
const char *get_utc_time() {
401399
uint64_t now = uv_now(ts_loop);
402-
if (now > last_update) {
403-
last_update = now;
400+
static uint64_t utc_last_update = 0;
401+
static char utc_timestamp[64];
402+
if (now > utc_last_update) {
403+
utc_last_update = now;
404404

405405
uv_timeval64_t ts;
406406
uv_gettimeofday(&ts);
407407
time_t t = ts.tv_sec;
408408
struct tm *tm = gmtime(&t);
409409

410-
snprintf(log_timestamp, sizeof(log_timestamp), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",
410+
snprintf(utc_timestamp, sizeof(utc_timestamp), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",
411411
1900 + tm->tm_year, tm->tm_mon + 1, tm->tm_mday,
412412
tm->tm_hour, tm->tm_min, tm->tm_sec, ts.tv_usec / 1000
413413
);
414414
}
415-
return log_timestamp;
415+
return utc_timestamp;
416416
}
417417

418418
int lt_zero(int v) { return v < 0; }

library/ziti.c

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,9 @@ int ziti_get_appdata(ziti_context ztx, const char *key, void *data,
858858

859859
void ziti_dump(ziti_context ztx, int (*printer)(void *arg, const char *fmt, ...), void *ctx) {
860860
uint64_t now = uv_now(ztx->loop);
861+
uv_timeval64_t now_ts = {};
862+
uv_gettimeofday(&now_ts);
863+
861864
printer(ctx, "\n======= Application Info ==========\n");
862865
printer(ctx, "Application:\t%s@%s\n", APP_ID ? APP_ID : "<unset>", APP_VERSION ? APP_VERSION : "<unknown>");
863866
const ziti_version *sdk_ver = ziti_get_version();
@@ -871,8 +874,10 @@ void ziti_dump(ziti_context ztx, int (*printer)(void *arg, const char *fmt, ...)
871874
if (info->device_id) {
872875
printer(ctx, "Device ID: %s\n", info->device_id);
873876
}
874-
printer(ctx, "OS/arch: %s %s (%s/%s)\n", info->os, info->arch, info->os_release, info->os_version);
875-
printer(ctx, "Hostname: %s/%s\n", info->hostname, info->domain);
877+
printer(ctx, "OS/arch: %s %s (%s/%s)\n", info->os, info->arch, info->os_release, info->os_version);
878+
printer(ctx, "Hostname: %s/%s\n", info->hostname, info->domain);
879+
printer(ctx, "Current time: %s (%" PRIu64 ".%0" PRIu64 ")",
880+
get_utc_time(), now_ts.tv_sec, now_ts.tv_usec / 1000);
876881

877882
printer(ctx, "\n=================\nZiti Context:\n");
878883
printer(ctx, "ID:\t%d\n", ztx->id);
@@ -922,6 +927,25 @@ void ziti_dump(ziti_context ztx, int (*printer)(void *arg, const char *fmt, ...)
922927
printer(ctx, "No Session found\n");
923928
}
924929

930+
printer(ctx, "\n=================\nExternal Credentials:\n");
931+
const char *signer_name;
932+
ziti_jwt_signer *signer;
933+
printer(ctx, "ext signers[%zd]:\n", model_map_size(&ztx->ext_signers));
934+
MODEL_MAP_FOREACH(signer_name, signer, &ztx->ext_signers) {
935+
printer(ctx, "\t%s: id[%s] provider[%s]\n",
936+
signer_name, signer->id,
937+
signer->provider_url ? signer->provider_url : "(none)");
938+
}
939+
940+
const char *iss;
941+
zt_jwt *jwt;
942+
printer(ctx, "ext jwt tokens[%zd]:\n", model_map_size(&ztx->ext_jwt_tokens));
943+
MODEL_MAP_FOREACH(iss, jwt, &ztx->ext_jwt_tokens) {
944+
printer(ctx, "\tissuer[%s] expiration[%" PRIu64 "]%s\n",
945+
iss, jwt->expiration,
946+
(jwt->expiration != 0 && jwt->expiration < now_ts.tv_sec) ? " EXPIRED" : "");
947+
}
948+
925949
printer(ctx, "\n=================\nServices:\n");
926950
ziti_service *zs;
927951
const char *name;

0 commit comments

Comments
 (0)