Lines Matching +full:event +full:- +full:name

2  * Copyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved.
17 #define NUM_ENABLED_W ((QLOG_EVENT_TYPE_NUM + BITS_PER_WORD - 1) / BITS_PER_WORD)
62 qlog->info.odcid = info->odcid; in ossl_qlog_new()
63 qlog->info.is_server = info->is_server; in ossl_qlog_new()
64 qlog->info.now_cb = info->now_cb; in ossl_qlog_new()
65 qlog->info.now_cb_arg = info->now_cb_arg; in ossl_qlog_new()
66 qlog->info.override_process_id = info->override_process_id; in ossl_qlog_new()
68 if (info->title != NULL in ossl_qlog_new()
69 && (qlog->info.title = OPENSSL_strdup(info->title)) == NULL) in ossl_qlog_new()
72 if (info->description != NULL in ossl_qlog_new()
73 && (qlog->info.description = OPENSSL_strdup(info->description)) == NULL) in ossl_qlog_new()
76 if (info->group_id != NULL in ossl_qlog_new()
77 && (qlog->info.group_id = OPENSSL_strdup(info->group_id)) == NULL) in ossl_qlog_new()
80 if (info->override_impl_name != NULL in ossl_qlog_new()
81 && (qlog->info.override_impl_name in ossl_qlog_new()
82 = OPENSSL_strdup(info->override_impl_name)) == NULL) in ossl_qlog_new()
85 if (!ossl_json_init(&qlog->json, NULL, in ossl_qlog_new()
89 if (qlog->info.now_cb == NULL) in ossl_qlog_new()
90 qlog->info.now_cb = default_now; in ossl_qlog_new()
96 OPENSSL_free((char *)qlog->info.title); in ossl_qlog_new()
97 OPENSSL_free((char *)qlog->info.description); in ossl_qlog_new()
98 OPENSSL_free((char *)qlog->info.group_id); in ossl_qlog_new()
99 OPENSSL_free((char *)qlog->info.override_impl_name); in ossl_qlog_new()
123 strl = l + 1 + info->odcid.id_len * 2 + 1 + 6 + 6 + 1; in ossl_qlog_new_from_env()
132 for (i = 0; i < info->odcid.id_len; ++i) in ossl_qlog_new_from_env()
133 l += BIO_snprintf(filename + l, strl - l, "%02x", info->odcid.id[i]); in ossl_qlog_new_from_env()
135 l += BIO_snprintf(filename + l, strl - l, "_%s.sqlog", in ossl_qlog_new_from_env()
136 info->is_server ? "server" : "client"); in ossl_qlog_new_from_env()
165 ossl_json_flush_cleanup(&qlog->json); in ossl_qlog_free()
166 BIO_free_all(qlog->bio); in ossl_qlog_free()
167 OPENSSL_free((char *)qlog->info.title); in ossl_qlog_free()
168 OPENSSL_free((char *)qlog->info.description); in ossl_qlog_free()
169 OPENSSL_free((char *)qlog->info.group_id); in ossl_qlog_free()
170 OPENSSL_free((char *)qlog->info.override_impl_name); in ossl_qlog_free()
184 BIO_free_all(qlog->bio); in ossl_qlog_set_sink_bio()
185 qlog->bio = bio; in ossl_qlog_set_sink_bio()
186 ossl_json_set0_sink(&qlog->json, bio); in ossl_qlog_set_sink_bio()
221 * We supply our own text encoding as JSON requires UTF-8, so disable any in ossl_qlog_set_sink_filename()
222 * OS-specific processing here. in ossl_qlog_set_sink_filename()
241 return ossl_json_flush(&qlog->json); in ossl_qlog_flush()
250 bit_set(qlog->enabled, event_type, enabled); in ossl_qlog_set_event_type_enabled()
259 return bit_get(qlog->enabled, event_type) != 0; in ossl_qlog_enabled()
263 * Event Lifecycle
271 ossl_json_key(&qlog->json, key); in write_str_once()
272 ossl_json_str(&qlog->json, *p); in write_str_once()
280 if (qlog->header_done) in qlog_event_seq_header()
283 ossl_json_object_begin(&qlog->json); in qlog_event_seq_header()
285 ossl_json_key(&qlog->json, "qlog_version"); in qlog_event_seq_header()
286 ossl_json_str(&qlog->json, "0.3"); in qlog_event_seq_header()
288 ossl_json_key(&qlog->json, "qlog_format"); in qlog_event_seq_header()
289 ossl_json_str(&qlog->json, "JSON-SEQ"); in qlog_event_seq_header()
291 write_str_once(qlog, "title", (char **)&qlog->info.title); in qlog_event_seq_header()
292 write_str_once(qlog, "description", (char **)&qlog->info.description); in qlog_event_seq_header()
294 ossl_json_key(&qlog->json, "trace"); in qlog_event_seq_header()
295 ossl_json_object_begin(&qlog->json); in qlog_event_seq_header()
297 ossl_json_key(&qlog->json, "common_fields"); in qlog_event_seq_header()
298 ossl_json_object_begin(&qlog->json); in qlog_event_seq_header()
300 ossl_json_key(&qlog->json, "time_format"); in qlog_event_seq_header()
301 ossl_json_str(&qlog->json, "delta"); in qlog_event_seq_header()
303 ossl_json_key(&qlog->json, "protocol_type"); in qlog_event_seq_header()
304 ossl_json_array_begin(&qlog->json); in qlog_event_seq_header()
306 ossl_json_str(&qlog->json, "QUIC"); in qlog_event_seq_header()
308 ossl_json_array_end(&qlog->json); in qlog_event_seq_header()
310 write_str_once(qlog, "group_id", (char **)&qlog->info.group_id); in qlog_event_seq_header()
312 ossl_json_key(&qlog->json, "system_info"); in qlog_event_seq_header()
313 ossl_json_object_begin(&qlog->json); in qlog_event_seq_header()
315 if (qlog->info.override_process_id != 0) { in qlog_event_seq_header()
316 ossl_json_key(&qlog->json, "process_id"); in qlog_event_seq_header()
317 ossl_json_u64(&qlog->json, qlog->info.override_process_id); in qlog_event_seq_header()
320 ossl_json_key(&qlog->json, "process_id"); in qlog_event_seq_header()
321 ossl_json_u64(&qlog->json, (uint64_t)getpid()); in qlog_event_seq_header()
323 ossl_json_key(&qlog->json, "process_id"); in qlog_event_seq_header()
324 ossl_json_u64(&qlog->json, (uint64_t)GetCurrentProcessId()); in qlog_event_seq_header()
328 ossl_json_object_end(&qlog->json); in qlog_event_seq_header()
330 ossl_json_object_end(&qlog->json); in qlog_event_seq_header()
332 ossl_json_key(&qlog->json, "vantage_point"); in qlog_event_seq_header()
333 ossl_json_object_begin(&qlog->json); in qlog_event_seq_header()
338 if (qlog->info.override_impl_name != NULL) { in qlog_event_seq_header()
339 p = qlog->info.override_impl_name; in qlog_event_seq_header()
346 ossl_json_key(&qlog->json, "type"); in qlog_event_seq_header()
347 ossl_json_str(&qlog->json, in qlog_event_seq_header()
348 qlog->info.is_server ? "server" : "client"); in qlog_event_seq_header()
350 ossl_json_key(&qlog->json, "name"); in qlog_event_seq_header()
351 ossl_json_str(&qlog->json, p); in qlog_event_seq_header()
353 ossl_json_object_end(&qlog->json); in qlog_event_seq_header()
355 ossl_json_object_end(&qlog->json); in qlog_event_seq_header()
357 ossl_json_object_end(&qlog->json); in qlog_event_seq_header()
359 qlog->header_done = 1; in qlog_event_seq_header()
366 ossl_json_object_begin(&qlog->json); in qlog_event_prologue()
368 ossl_json_key(&qlog->json, "name"); in qlog_event_prologue()
369 ossl_json_str(&qlog->json, qlog->event_combined_name); in qlog_event_prologue()
371 ossl_json_key(&qlog->json, "data"); in qlog_event_prologue()
372 ossl_json_object_begin(&qlog->json); in qlog_event_prologue()
377 ossl_json_object_end(&qlog->json); in qlog_event_epilogue()
379 ossl_json_key(&qlog->json, "time"); in qlog_event_epilogue()
380 if (!qlog->first_event_done) { in qlog_event_epilogue()
381 ossl_json_u64(&qlog->json, ossl_time2ms(qlog->event_time)); in qlog_event_epilogue()
382 qlog->prev_event_time = qlog->event_time; in qlog_event_epilogue()
383 qlog->first_event_done = 1; in qlog_event_epilogue()
385 OSSL_TIME delta = ossl_time_subtract(qlog->event_time, in qlog_event_epilogue()
386 qlog->prev_event_time); in qlog_event_epilogue()
388 ossl_json_u64(&qlog->json, ossl_time2ms(delta)); in qlog_event_epilogue()
389 qlog->prev_event_time = qlog->event_time; in qlog_event_epilogue()
392 ossl_json_object_end(&qlog->json); in qlog_event_epilogue()
404 if (!ossl_assert(qlog->event_type == QLOG_EVENT_TYPE_NONE) in ossl_qlog_event_try_begin()
408 qlog->event_type = event_type; in ossl_qlog_event_try_begin()
409 qlog->event_cat = event_cat; in ossl_qlog_event_try_begin()
410 qlog->event_name = event_name; in ossl_qlog_event_try_begin()
411 qlog->event_combined_name = event_combined_name; in ossl_qlog_event_try_begin()
412 qlog->event_time = qlog->info.now_cb(qlog->info.now_cb_arg); in ossl_qlog_event_try_begin()
420 if (!ossl_assert(qlog != NULL && qlog->event_type != QLOG_EVENT_TYPE_NONE)) in ossl_qlog_event_end()
424 qlog->event_type = QLOG_EVENT_TYPE_NONE; in ossl_qlog_event_end()
431 void ossl_qlog_group_begin(QLOG *qlog, const char *name) in ossl_qlog_group_begin() argument
433 if (name != NULL) in ossl_qlog_group_begin()
434 ossl_json_key(&qlog->json, name); in ossl_qlog_group_begin()
436 ossl_json_object_begin(&qlog->json); in ossl_qlog_group_begin()
441 ossl_json_object_end(&qlog->json); in ossl_qlog_group_end()
444 void ossl_qlog_array_begin(QLOG *qlog, const char *name) in ossl_qlog_array_begin() argument
446 if (name != NULL) in ossl_qlog_array_begin()
447 ossl_json_key(&qlog->json, name); in ossl_qlog_array_begin()
449 ossl_json_array_begin(&qlog->json); in ossl_qlog_array_begin()
454 ossl_json_array_end(&qlog->json); in ossl_qlog_array_end()
459 qlog->event_time = event_time; in ossl_qlog_override_time()
462 void ossl_qlog_str(QLOG *qlog, const char *name, const char *value) in ossl_qlog_str() argument
464 if (name != NULL) in ossl_qlog_str()
465 ossl_json_key(&qlog->json, name); in ossl_qlog_str()
467 ossl_json_str(&qlog->json, value); in ossl_qlog_str()
470 void ossl_qlog_str_len(QLOG *qlog, const char *name, in ossl_qlog_str_len() argument
473 if (name != NULL) in ossl_qlog_str_len()
474 ossl_json_key(&qlog->json, name); in ossl_qlog_str_len()
476 ossl_json_str_len(&qlog->json, value, value_len); in ossl_qlog_str_len()
479 void ossl_qlog_u64(QLOG *qlog, const char *name, uint64_t value) in ossl_qlog_u64() argument
481 if (name != NULL) in ossl_qlog_u64()
482 ossl_json_key(&qlog->json, name); in ossl_qlog_u64()
484 ossl_json_u64(&qlog->json, value); in ossl_qlog_u64()
487 void ossl_qlog_i64(QLOG *qlog, const char *name, int64_t value) in ossl_qlog_i64() argument
489 if (name != NULL) in ossl_qlog_i64()
490 ossl_json_key(&qlog->json, name); in ossl_qlog_i64()
492 ossl_json_i64(&qlog->json, value); in ossl_qlog_i64()
495 void ossl_qlog_bool(QLOG *qlog, const char *name, int value) in ossl_qlog_bool() argument
497 if (name != NULL) in ossl_qlog_bool()
498 ossl_json_key(&qlog->json, name); in ossl_qlog_bool()
500 ossl_json_bool(&qlog->json, value); in ossl_qlog_bool()
503 void ossl_qlog_bin(QLOG *qlog, const char *name, in ossl_qlog_bin() argument
506 if (name != NULL) in ossl_qlog_bin()
507 ossl_json_key(&qlog->json, name); in ossl_qlog_bin()
509 ossl_json_str_hex(&qlog->json, value, value_len); in ossl_qlog_bin()
527 return ossl_isalpha(c) || ossl_isdigit(c) || c == '_' || c == '-'; in is_name_char()
535 lex->p = in; in lex_init()
536 lex->term_end = in; in lex_init()
537 lex->end = in + in_len; in lex_init()
543 const char *p = lex->term_end, *end = lex->end, *term_end; in lex_do()
548 lex->p = end; in lex_do()
549 lex->term_end = end; in lex_do()
555 lex->p = p; in lex_do()
556 lex->term_end = term_end; in lex_do()
562 return lex->p == lex->term_end; in lex_eot()
567 return lex_eot(lex) ? -1 : *lex->p; in lex_peek_char()
575 ++lex->p; in lex_skip_char()
581 if ((size_t)(lex->term_end - lex->p) != s_len) in lex_match()
584 if (memcmp(lex->p, s, s_len)) in lex_match()
592 *str = lex->p; in lex_get_rest()
593 *str_l = lex->term_end - lex->p; in lex_get_rest()
599 const char *p = lex->p, *term_end = lex->term_end, *s; in lex_extract_to()
606 *str_l = s - p; in lex_extract_to()
607 lex->p = ++s; in lex_extract_to()
612 const char *event, size_t event_l, in filter_match_event() argument
620 || (event != NULL && event_l != expect_event_l) in filter_match_event()
622 || (event != NULL && memcmp(event, expect_event, expect_event_l))) in filter_match_event()
629 * enabled: event enablement bitmask Array of size NUM_ENABLED_W.
630 * add: 1 to enable an event, 0 to disable.
631 * cat: Category name/length. Not necessarily zero terminated.
633 * event: Event name/length. Not necessarily zero terminated.
638 const char *event, size_t event_l) in filter_apply() argument
642 if (filter_match_event(cat, cat_l, event, event_l, \ in filter_apply()
655 lex->p = lex->term_end = lex->end; in lex_fail()
684 const char *cat, *event; in ossl_qlog_set_filter() local
688 memcpy(enabled, qlog->enabled, sizeof(enabled)); in ossl_qlog_set_filter()
695 if (c == '+' || c == '-') { in ossl_qlog_set_filter()
701 return lex_fail(&lex, "expected alphanumeric name or '*'" in ossl_qlog_set_filter()
702 " after +/-"); in ossl_qlog_set_filter()
704 return lex_fail(&lex, "expected +/- or alphanumeric name or '*'"); in ossl_qlog_set_filter()
715 return lex_fail(&lex, "expected ':' after category name"); in ossl_qlog_set_filter()
717 lex_get_rest(&lex, &event, &event_l); in ossl_qlog_set_filter()
719 return lex_fail(&lex, "expected alphanumeric category name or '*'"); in ossl_qlog_set_filter()
720 if (!validate_name(&event, &event_l)) in ossl_qlog_set_filter()
721 return lex_fail(&lex, "expected alphanumeric event name or '*'"); in ossl_qlog_set_filter()
723 filter_apply(enabled, add, cat, cat_l, event, event_l); in ossl_qlog_set_filter()
726 memcpy(qlog->enabled, enabled, sizeof(enabled)); in ossl_qlog_set_filter()