1 /* version.c -- Version handling.
2  * Copyright (C) 2002-2021 Simon Josefsson
3  *
4  * This file is part of GNU SASL Library.
5  *
6  * GNU SASL Library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License
8  * as published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * GNU SASL Library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License License along with GNU SASL Library; if not, write to the
18  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #include "internal.h"
24 
25 #include <string.h>		/* for strverscmp */
26 
27 /**
28  * gsasl_check_version:
29  * @req_version: version string to compare with, or NULL.
30  *
31  * Check GNU SASL Library version.
32  *
33  * See %GSASL_VERSION for a suitable @req_version string.
34  *
35  * This function is one of few in the library that can be used without
36  * a successful call to gsasl_init().
37  *
38  * Return value: Check that the version of the library is at
39  *   minimum the one given as a string in @req_version and return the
40  *   actual version string of the library; return NULL if the
41  *   condition is not met.  If NULL is passed to this function no
42  *   check is done and only the version string is returned.
43  **/
44 const char *
gsasl_check_version(const char * req_version)45 gsasl_check_version (const char *req_version)
46 {
47   if (!req_version || strverscmp (req_version, GSASL_VERSION) <= 0)
48     return GSASL_VERSION;
49 
50   return NULL;
51 }
52