static void _add_nv_pair_int(LogTransportAuxData *aux, const gchar *name, gint value) { SBGString *sbbuf = sb_gstring_acquire(); GString *buf = sb_gstring_string(sbbuf); g_string_truncate(buf, 0); format_uint32_padded(buf, -1, 0, 10, value); log_transport_aux_data_add_nv_pair(aux, name, buf->str); sb_gstring_release(sbbuf); }
static LogTransportAuxData * construct_aux_with_some_data(void) { LogTransportAuxData *aux = construct_empty_aux(); /* set peer_addr twice to validate that peer_addr is correctly reference counted */ log_transport_aux_data_set_peer_addr_ref(aux, g_sockaddr_inet_new("1.2.3.4", 5555)); log_transport_aux_data_set_peer_addr_ref(aux, g_sockaddr_inet_new("1.2.3.4", 5555)); log_transport_aux_data_add_nv_pair(aux, "foo", "bar"); return aux; }
static void _add_nv_pair_proc_read_unless_unset(LogTransportAuxData *aux, const gchar *name, pid_t pid, const gchar *proc_file, const gchar *unset_value) { gchar filename[64]; gchar content[4096]; gssize content_len; _format_proc_file_name(filename, sizeof(filename), pid, proc_file); content_len = _read_text_file_content_without_trailing_newline(filename, content, sizeof(content)); if (content_len > 0 && (!unset_value || strcmp(content, unset_value) != 0)) log_transport_aux_data_add_nv_pair(aux, name, content); }
static void _add_nv_pair_proc_readlink(LogTransportAuxData *aux, const gchar *name, pid_t pid, const gchar *proc_file) { gchar filename[64]; gchar content[4096]; gssize content_len; _format_proc_file_name(filename, sizeof(filename), pid, proc_file); content_len = readlink(filename, content, sizeof(content)); if (content_len > 0) log_transport_aux_data_add_nv_pair(aux, name, content); }
static void test_aux_data_copy_separates_the_copies(void) { LogTransportAuxData *aux = construct_aux_with_some_data(); LogTransportAuxData aux_copy; gchar *orig, *copy; log_transport_aux_data_copy(&aux_copy, aux); log_transport_aux_data_add_nv_pair(aux, "super", "lativus"); orig = _concat_nvpairs(aux); copy = _concat_nvpairs(&aux_copy); assert_false(strcmp(orig, copy) == 0, "copy incorrectly copied aux->nvpairs as change to one of them affected the other, orig=%s, copy=%s", orig, copy); g_free(orig); g_free(copy); log_transport_aux_data_destroy(&aux_copy); free_aux(aux); }
static void _add_nv_pair_proc_read_argv(LogTransportAuxData *aux, const gchar *name, pid_t pid, const gchar *proc_file) { gchar filename[64]; gchar content[4096]; gssize content_len; gint i; _format_proc_file_name(filename, sizeof(filename), pid, proc_file); content_len = _read_text_file_content(filename, content, sizeof(content)); for (i = 0; i < content_len; i++) { if (!g_ascii_isprint(content[i])) content[i] = ' '; } if (content_len > 0) log_transport_aux_data_add_nv_pair(aux, name, content); }
static void test_add_nv_pair_to_a_NULL_aux_data_will_do_nothing(void) { log_transport_aux_data_add_nv_pair(NULL, "foo", "bar"); }