extcap: get the libssh version string from the libssh.h header.

Thanks, libssh developers, for making it so straightforward!

This means we don't need to construct it in the CMake module that finds
libssh.

Change-Id: I6c173bf7c0671dfdfac423a7d01ecced7b69e851
Reviewed-on: https://code.wireshark.org/review/37878
Petri-Dish: Guy Harris <gharris@sonic.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Guy Harris 2020-07-15 23:37:20 -07:00 committed by Anders Broman
parent 48237f77aa
commit a1d2d18cb8
3 changed files with 19 additions and 2 deletions

View File

@ -73,7 +73,6 @@ else ()
REGEX "#define[ ]+LIBSSH_VERSION_MICRO[ ]+[0-9]+")
string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_PATCH ${LIBSSH_VERSION_PATCH})
set(LIBSSH_VERSION ${LIBSSH_VERSION_MAJOR}.${LIBSSH_VERSION_MINOR}.${LIBSSH_VERSION_PATCH})
set(LIBSSH_VERSION_STRING "${LIBSSH_VERSION}")
endif()
#

View File

@ -60,7 +60,6 @@
/* Define if LIBSSH support is enabled */
#cmakedefine HAVE_LIBSSH 1
#cmakedefine LIBSSH_VERSION_STRING "@LIBSSH_VERSION_STRING@"
/* Define to 1 if you have the `ssh_version' function. */
#cmakedefine HAVE_SSH_VERSION 1

View File

@ -15,6 +15,25 @@
#include <libssh/libssh.h>
/*
* Sigh.
*
* libssh 1.0 and 2.0 define LIBSSH_VERSION as a string.
*
* libssh 3.0 and later define it as three numbers with periods
* between them, so that you have to do SSH_STRINGIFY(LIBSSH_VERSION)
* to get the SSH version as a string.
*
* Fortunately, "needs SSH_STRINGIFY()" is true iff SSH_STRINGIFY is
* defined, so we can define LIBSSH_VERSION_STRING differently,
* depending on whether SSH_STRINGIFY is defined.
*/
#ifdef SSH_STRINGIFY
#define LIBSSH_VERSION_STRING SSH_STRINGIFY(LIBSSH_VERSION)
#else
#define LIBSSH_VERSION_STRING LIBSSH_VERSION
#endif
#include <glib.h>
#ifndef STDERR_FILENO