* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "config.h"
+#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <errno.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#ifdef HAVE_LIBZ
-#include <zlib.h> /* to get the libz version number */
-#endif
-
#include <glib.h>
-#include <wsutil/privileges.h>
-#include <wsutil/filesystem.h>
-#include <wsutil/file_util.h>
+#include <wiretap/wtap.h>
+
#include <wsutil/crash_info.h>
-#include <wsutil/copyright_info.h>
-#include <wsutil/os_version_info.h>
-#include <wsutil/ws_version_info.h>
+#include <wsutil/file_util.h>
+#include <wsutil/filesystem.h>
+#include <wsutil/privileges.h>
+#include <ws_version_info.h>
#ifdef HAVE_PLUGINS
#include <wsutil/plugins.h>
#endif
-#include "wtap.h"
#include <wsutil/report_err.h>
-#include <wsutil/privileges.h>
#include <wsutil/str_util.h>
#ifdef _WIN32
#include <wsutil/unicode-utils.h>
#endif /* _WIN32 */
-#include "version_info.h"
-
-static void
-show_version(GString *comp_info_str, GString *runtime_info_str)
-{
- printf("Captype (Wireshark) %s\n"
- "\n"
- "%s"
- "\n"
- "%s"
- "\n"
- "%s",
- get_ws_vcs_version_info(), get_copyright_info(),
- comp_info_str->str, runtime_info_str->str);
-}
+#ifndef HAVE_GETOPT_LONG
+#include "wsutil/wsgetopt.h"
+#endif
static void
print_usage(FILE *output)
#ifdef HAVE_PLUGINS
/*
- * Don't report failures to load plugins because most (non-wiretap) plugins
- * *should* fail to load (because we're not linked against libwireshark and
- * dissector plugins need libwireshark).
+ * General errors are reported with an console message in captype.
*/
static void
-failure_message(const char *msg_format _U_, va_list ap _U_)
+failure_message(const char *msg_format, va_list ap)
{
- return;
+ fprintf(stderr, "captype: ");
+ vfprintf(stderr, msg_format, ap);
+ fprintf(stderr, "\n");
}
#endif
-static void
-get_captype_compiled_info(GString *str)
-{
- /* LIBZ */
- g_string_append(str, ", ");
-#ifdef HAVE_LIBZ
- g_string_append(str, "with libz ");
-#ifdef ZLIB_VERSION
- g_string_append(str, ZLIB_VERSION);
-#else /* ZLIB_VERSION */
- g_string_append(str, "(version unknown)");
-#endif /* ZLIB_VERSION */
-#else /* HAVE_LIBZ */
- g_string_append(str, "without libz");
-#endif /* HAVE_LIBZ */
-}
-
-static void
-get_captype_runtime_info(GString *str)
-{
- /* zlib */
-#if defined(HAVE_LIBZ) && !defined(_WIN32)
- g_string_append_printf(str, ", with libz %s", zlibVersion());
-#endif
-}
-
int
main(int argc, char *argv[])
{
int opt;
int overall_error_status;
static const struct option long_options[] = {
- {(char *)"help", no_argument, NULL, 'h'},
- {(char *)"version", no_argument, NULL, 'v'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
char *init_progfile_dir_error;
#endif
- /* Assemble the compile-time version information string */
- comp_info_str = g_string_new("Compiled ");
- get_compiled_version_info(comp_info_str, NULL, get_captype_compiled_info);
+ /* Set the C-language locale to the native environment. */
+ setlocale(LC_ALL, "");
- /* Assemble the run-time version information string */
- runtime_info_str = g_string_new("Running ");
- get_runtime_version_info(runtime_info_str, get_captype_runtime_info);
+ /* Get the compile-time version information string */
+ comp_info_str = get_compiled_version_info(NULL, NULL);
+
+ /* Get the run-time version information string */
+ runtime_info_str = get_runtime_version_info(NULL);
/* Add it to the information to be reported on a crash. */
ws_add_crash_info("Captype (Wireshark) %s\n"
init_report_err(failure_message,NULL,NULL,NULL);
/* Scan for plugins. This does *not* call their registration routines;
- that's done later. */
- scan_plugins();
+ that's done later.
+
+ Don't report failures to load plugins because most (non-wiretap)
+ plugins *should* fail to load (because we're not linked against
+ libwireshark and dissector plugins need libwireshark). */
+ scan_plugins(DONT_REPORT_LOAD_FAILURE);
/* Register all libwiretap plugin modules. */
register_all_wiretap_modules();
case 'h':
printf("Captype (Wireshark) %s\n"
"Print the file types of capture files.\n"
- "See http://www.wireshark.org for more information.\n",
+ "See https://www.wireshark.org for more information.\n",
get_ws_vcs_version_info());
print_usage(stdout);
exit(0);
break;
case 'v':
- show_version(comp_info_str, runtime_info_str);
+ show_version("Captype (Wireshark)", comp_info_str, runtime_info_str);
g_string_free(comp_info_str, TRUE);
g_string_free(runtime_info_str, TRUE);
exit(0);
}
}
- /* Set the C-language locale to the native environment. */
- setlocale(LC_ALL, "");
-
if (argc < 2) {
print_usage(stderr);
return 1;
else {
fprintf(stderr, "captype: Can't open %s: %s\n", argv[i],
wtap_strerror(err));
- switch (err) {
-
- case WTAP_ERR_UNSUPPORTED:
- case WTAP_ERR_UNSUPPORTED_ENCAP:
- case WTAP_ERR_BAD_FILE:
+ if (err_info != NULL) {
fprintf(stderr, "(%s)\n", err_info);
g_free(err_info);
- break;
}
overall_error_status = 1; /* remember that an error has occurred */
}