Bugfix #949: (a) call gpgme_check_version(NULL) during initialization and (b) provide...
authorKarl-Heinz Zimmer <khz@kde.org>
Wed, 19 Jun 2002 12:56:43 +0000 (12:56 +0000)
committerKarl-Heinz Zimmer <khz@kde.org>
Wed, 19 Jun 2002 12:56:43 +0000 (12:56 +0000)
gpgmeplug/cryptplug.h
gpgmeplug/gpgmeplug.c

index c07f4cf..03b1715 100644 (file)
@@ -301,6 +301,19 @@ typedef unsigned long SigStatusFlags;
 
 
 /*! \ingroup groupGeneral
+    \brief This function returns the version string of this cryptography
+           plug-in.
+
+   If the plugins initialization fails the calling process might want
+   to display the library version number to the user for checking if
+   there is an old version of the library installed...
+   
+   \note This function <b>must</b> be implemented by each plug-in using
+   this API specification.
+*/
+const char* libVersion( void );
+
+/*! \ingroup groupGeneral
     \brief This function returns a URL to be used for reporting a bug that
            you found (or suspect, resp.) in this cryptography plug-in.
 
index 217cca1..6d4c700 100644 (file)
@@ -192,6 +192,7 @@ typedef struct {
   bool                    certificateInChainExpiryNearWarning;
   int                     certificateInChainExpiryNearWarningInterval;
   bool                    receiverEmailAddressNotInCertificateWarning;
+  const char* libVersion; // a statically allocated string with the GPGME Version used
 } Config;
 
 
@@ -243,8 +244,8 @@ bool initialize()
   config.certificateInChainExpiryNearWarning          = true;
   config.certificateInChainExpiryNearWarningInterval  = NEAR_EXPIRY;
   config.receiverEmailAddressNotInCertificateWarning  = true;
-
-  return true;
+  config.libVersion = gpgme_check_version (NULL);
+  return (gpgme_engine_check_version (GPGMEPLUG_PROTOCOL) == GPGME_No_Error);
 };
 
 
@@ -286,6 +287,9 @@ bool hasFeature( Feature flag )
 }
 
 
+const char* libVersion(){ return config.libVersion; }
+
+
 const char* bugURL(){ return config.bugURL; }