summaryrefslogtreecommitdiffstats
path: root/wsutil/version_info.h
blob: 1285cd2c57e3db6908d24ceea945e66468327c8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/** @file
 *
 * Declarations of routines to report version information for Wireshark
 * programs
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1998 Gerald Combs
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#ifndef __WS_VERSION_INFO_H__
#define __WS_VERSION_INFO_H__

#include <glib.h>
#include <wsutil/feature_list.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/*
 * Initialize information about the program for various purposes, including
 * reporting the version and build information for the program, putting
 * that information into crash dumps if possible, and giving the program
 * name and version information into capture files written by the program
 * if possible.
 *
 * "appname" is a string that appears at the beginning of the information;
 * it should be the application name. "(Wireshark)" will be added if
 * the program isn't Wireshark.
 *
 * "gather_compile" is called (if non-null) to add any additional build-time
 * information.
 *
 * "gather_runtime" is called (if non-null) to add any additional
 * run-time information; this is required in order to, for example,
 * put the libcap information into the string, as we currently
 * don't use libcap in TShark.
 */
WS_DLL_PUBLIC
void ws_init_version_info(const char *appname,
		gather_feature_func gather_compile,
		gather_feature_func gather_runtime);

/*
 * Get a string giving the application name, as provided to
 * ws_init_version_info(), followed by a string giving the
 * application version.
 */
WS_DLL_PUBLIC
const char *get_appname_and_version(void);

WS_DLL_PUBLIC
void
gather_pcre2_compile_info(feature_list l);

WS_DLL_PUBLIC
void
gather_zlib_compile_info(feature_list l);

/*
 * Get various library compile-time versions, put them in a GString,
 * and return the GString.
 *
 * "gather_compile" is called (if non-null) to add any additional build-time
 * information.
 */
WS_DLL_PUBLIC
GString *get_compiled_version_info(gather_feature_func gather_compile);

WS_DLL_PUBLIC
void
gather_pcre2_runtime_info(feature_list l);

WS_DLL_PUBLIC
void
gather_zlib_runtime_info(feature_list l);

/*
 * Get various library run-time versions, and the OS version, put them in
 * a GString, and return the GString.
 *
 * "gather_runtime" is called (if non-null) to add any additional
 * run-time information; this is required in order to, for example,
 * put the libcap information into the string, as we currently
 * don't use libcap in TShark.
 */
WS_DLL_PUBLIC
GString *get_runtime_version_info(gather_feature_func gather_runtime);

/*
 * Return a version number string for Wireshark, including, for builds
 * from a tree checked out from Wireshark's version control system,
 * something identifying what version was checked out.
 */
WS_DLL_PUBLIC
const char *get_ws_vcs_version_info(void);

/*
 * Shorter version of get_ws_vcs_version_info().
 */
WS_DLL_PUBLIC
const char *get_ws_vcs_version_info_short(void);

/*
 * Return version number as integers.
 */
WS_DLL_PUBLIC
void get_ws_version_number(int *major, int *minor, int *micro);

/*
 * Show the program name and version number information on the standard
 * output; this is used for command-line "show the version" options.
 */
WS_DLL_PUBLIC
void show_version(void);

/*
 * Show the program name and version number information, a supplied
 * description string, and a "See {URL} for more information" message.
 * This is used for command-line "help" options.
 */
WS_DLL_PUBLIC
void show_help_header(const char *description);

WS_DLL_PUBLIC
const char *get_copyright_info(void);

WS_DLL_PUBLIC
const char *get_license_info(void);

WS_DLL_PUBLIC
const char *get_license_info_short(void);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __WS_VERSION_INFO_H__ */