Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
to_str.h
Go to the documentation of this file.
1
11#ifndef __TO_STR_H__
12#define __TO_STR_H__
13
14#include "wsutil/nstime.h"
15#include <wsutil/inet_cidr.h>
16#include <epan/proto.h>
17#include <epan/packet_info.h>
18#include "ws_symbol_export.h"
19#include <epan/wmem_scopes.h>
20#include <wsutil/to_str.h>
21
22#define GUID_STR_LEN 37
23#define MAX_ADDR_STR_LEN 256
24#define VINES_ADDR_LEN 6
25#define EUI64_STR_LEN 24
26#define AX25_ADDR_LEN 7
27#define FCWWN_ADDR_LEN 8
28
29
30#ifdef __cplusplus
31extern "C" {
32#endif /* __cplusplus */
33
34/*
35 * These are utility functions which convert various types to strings,
36 * but for which no more specific module applies.
37 */
38
39/*
40 ************** Address
41 */
42
43WS_DLL_PUBLIC char *address_to_str(wmem_allocator_t *scope, const address *addr);
44
45WS_DLL_PUBLIC char *address_with_resolution_to_str(wmem_allocator_t *scope, const address *addr);
46
47/*
48 * address_to_name takes as input an "address", as defined in address.h.
49 *
50 * If the address is of a type that can be translated into a name, and the
51 * user has activated name resolution, and the name can be resolved, it
52 * returns a string containing the translated name.
53 *
54 * Otherwise, it returns NULL.
55 */
56WS_DLL_PUBLIC const char *address_to_name(const address *addr);
57
58/*
59 * address_to_display takes as input an "address", as defined in address.h .
60 *
61 * If the address is of a type that can be translated into a name, and the
62 * user has activated name resolution, and the name can be resolved, it
63 * returns a string containing the translated name.
64 *
65 * Otherwise, if the address is of type AT_NONE, it returns "NONE".
66 *
67 * Otherwise, it returns a string containing the result of address_to_str
68 * on the argument, which should be a string representation for the address,
69 * e.g. "10.10.10.10" for IPv4 address 10.10.10.10.
70 */
71WS_DLL_PUBLIC char *address_to_display(wmem_allocator_t *allocator, const address *addr);
72
73WS_DLL_PUBLIC void address_to_str_buf(const address *addr, char *buf, int buf_len);
74
75WS_DLL_PUBLIC const char *port_type_to_str (port_type type);
76
77/*
78 ************** TVB
79 */
80
81WS_DLL_PUBLIC char* tvb_address_with_resolution_to_str(wmem_allocator_t *scope, tvbuff_t *tvb, int type, const int offset);
82
83#define tvb_ether_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_ETHER, offset)
84
85#define tvb_ip_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_IPv4, offset)
86
87#define tvb_ip6_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_IPv6, offset)
88
89#define tvb_fcwwn_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_FCWWN, offset)
90
91#define tvb_fc_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_FC, offset)
92
93#define tvb_eui64_to_str(scope, tvb, offset) tvb_address_to_str(scope, tvb, AT_EUI64, offset)
94
104WS_DLL_PUBLIC char* tvb_address_to_str(wmem_allocator_t *scope, tvbuff_t *tvb, int type, const int offset);
105
116WS_DLL_PUBLIC char* tvb_address_var_to_str(wmem_allocator_t *scope, tvbuff_t *tvb, address_type type, const int offset, int length);
117
118/*
119 ************** Time
120 */
121
122#define ABS_TIME_TO_STR_SHOW_ZONE (1U << 0)
123#define ABS_TIME_TO_STR_ADD_DQUOTES (1U << 1)
124#define ABS_TIME_TO_STR_SHOW_UTC_ONLY (1U << 2)
125#define ABS_TIME_TO_STR_ISO8601 (1U << 3)
126
127WS_DLL_PUBLIC char *abs_time_to_str_ex(wmem_allocator_t *scope,
128 const nstime_t *, field_display_e fmt,
129 int flags);
130
131#define abs_time_to_str(scope, nst, fmt, show_zone) \
132 abs_time_to_str_ex(scope, nst, fmt, (show_zone) ? ABS_TIME_TO_STR_SHOW_ZONE : 0)
133
134char *
135abs_time_to_unix_str(wmem_allocator_t *scope, const nstime_t *rel_time);
136
137WS_DLL_PUBLIC char *abs_time_secs_to_str_ex(wmem_allocator_t *scope,
138 const time_t, field_display_e fmt,
139 int flags);
140
141#define abs_time_secs_to_str(scope, nst, fmt, show_zone) \
142 abs_time_secs_to_str_ex(scope, nst, fmt, (show_zone) ? ABS_TIME_TO_STR_SHOW_ZONE : 0)
143
144WS_DLL_PUBLIC char *signed_time_secs_to_str(wmem_allocator_t *scope, const int32_t time_val);
145
146WS_DLL_PUBLIC char *unsigned_time_secs_to_str(wmem_allocator_t *scope, const uint32_t);
147
148WS_DLL_PUBLIC char *signed_time_msecs_to_str(wmem_allocator_t *scope, int32_t time_val);
149
150WS_DLL_PUBLIC char *rel_time_to_str(wmem_allocator_t *scope, const nstime_t *);
151
152WS_DLL_PUBLIC char *rel_time_to_secs_str(wmem_allocator_t *scope, const nstime_t *);
153
154/*
155 ************** Misc
156 */
157
158WS_DLL_PUBLIC char *guid_to_str_buf(const e_guid_t *, char *, int);
159
160WS_DLL_PUBLIC char *guid_to_str(wmem_allocator_t *scope, const e_guid_t *);
161
162WS_DLL_PUBLIC char *decode_bits_in_field(wmem_allocator_t *scope, const unsigned bit_offset, const int no_of_bits, const uint64_t value, const unsigned encoding);
163
164#ifdef __cplusplus
165}
166#endif /* __cplusplus */
167
168#endif /* __TO_STR_H__ */
WS_DLL_PUBLIC char * tvb_address_to_str(wmem_allocator_t *scope, tvbuff_t *tvb, int type, const int offset)
Definition address_types.c:1096
WS_DLL_PUBLIC char * tvb_address_var_to_str(wmem_allocator_t *scope, tvbuff_t *tvb, address_type type, const int offset, int length)
Definition address_types.c:1121
field_display_e
Definition proto.h:680
Definition address.h:56
Definition guid-utils.h:23
Definition wmem_allocator.h:27
Definition nstime.h:26
Definition tvbuff-int.h:35