Code

Added version functions to libsysdbclient.
authorSebastian Harl <sh@tokkee.org>
Thu, 5 Dec 2013 07:58:48 +0000 (08:58 +0100)
committerSebastian Harl <sh@tokkee.org>
Thu, 5 Dec 2013 07:58:48 +0000 (08:58 +0100)
This is basically the same as the sdb_version() functions but to be used only
in the client lib.

src/Makefile.am
src/client/client.c [new file with mode: 0644]
src/include/client/sysdb.h.in [new file with mode: 0644]

index 34470aec61badf497f21a50aef3f7279160365c1..a82a16ba76264f94e1859571bf5f0efc0c66c59a 100644 (file)
@@ -6,7 +6,7 @@ AM_CPPFLAGS += -DSYSCONFDIR='"${sysconfdir}"'
 AM_CPPFLAGS += -DLOCALSTATEDIR='"${localstatedir}"'
 AM_CPPFLAGS += -DPKGLIBDIR='"${pkglibdir}"'
 
-BUILT_SOURCES = include/sysdb.h
+BUILT_SOURCES = include/client/sysdb.h include/sysdb.h
 
 pkginclude_HEADERS = include/sysdb.h
 pkgcoreincludedir = $(pkgincludedir)/core
@@ -37,6 +37,7 @@ pkgclientinclude_HEADERS = \
 lib_LTLIBRARIES = libsysdbclient.la libsysdb.la
 
 libsysdbclient_la_SOURCES = \
+               client/client.c include/client/sysdb.h \
                client/sock.c include/client/sock.h \
                utils/proto.c include/utils/proto.h \
                utils/strbuf.c include/utils/strbuf.h
@@ -137,6 +138,15 @@ libsysdb_la_LIBADD += -dlopen plugins/cname/dns.la
 libsysdb_la_DEPENDENCIES += plugins/cname/dns.la
 endif
 
+include/client/sysdb.h: include/client/sysdb.h.in ../version
+       source ../version; sed \
+           -e "s/@SDB_VERSION_MAJOR@/$$VERSION_MAJOR/g" \
+           -e "s/@SDB_VERSION_MINOR@/$$VERSION_MINOR/g" \
+           -e "s/@SDB_VERSION_PATCH@/$$VERSION_PATCH/g" \
+           -e "s/@SDB_VERSION_EXTRA@/$$VERSION_EXTRA/g" \
+           -e "s/@SDB_VERSION_STRING@/$$VERSION_STRING/g" \
+           include/client/sysdb.h.in > include/client/sysdb.h
+
 include/sysdb.h: include/sysdb.h.in ../version
        source ../version; sed \
            -e "s/@SDB_VERSION_MAJOR@/$$VERSION_MAJOR/g" \
diff --git a/src/client/client.c b/src/client/client.c
new file mode 100644 (file)
index 0000000..a46fe44
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * SysDB - src/client/client.c
+ * Copyright (C) 2013 Sebastian 'tokkee' Harl <sh@tokkee.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "client/sysdb.h"
+
+/*
+ * public API
+ */
+
+unsigned int
+sdb_client_version(void)
+{
+       return SDB_CLIENT_VERSION;
+} /* sdb_client_version */
+
+const char *
+sdb_client_version_string(void)
+{
+       return SDB_CLIENT_VERSION_STRING;
+} /* sdb_client_version_string */
+
+const char *
+sdb_client_version_extra(void)
+{
+       return SDB_CLIENT_VERSION_EXTRA;
+} /* sdb_client_version_extra */
+
+/* vim: set tw=78 sw=4 ts=4 noexpandtab : */
+
diff --git a/src/include/client/sysdb.h.in b/src/include/client/sysdb.h.in
new file mode 100644 (file)
index 0000000..0458c09
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * SysDB - src/include/client/sysdb.h
+ * Copyright (C) 2013 Sebastian 'tokkee' Harl <sh@tokkee.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CLIENT_SYSDB_H
+#define CLIENT_SYSDB_H 1
+
+#define SDB_CLIENT_VERSION_MAJOR @SDB_VERSION_MAJOR@
+#define SDB_CLIENT_VERSION_MINOR @SDB_VERSION_MINOR@
+#define SDB_CLIENT_VERSION_PATCH @SDB_VERSION_PATCH@
+
+#define SDB_CLIENT_VERSION_EXTRA "@SDB_VERSION_EXTRA@"
+
+#define SDB_CLIENT_VERSION_STRING "@SDB_VERSION_STRING@"
+
+#define SDB_CLIENT_VERSION_ENCODE(major, minor, patch) \
+       ((major) * 10000 + (minor) * 100 + (patch))
+#define SDB_CLIENT_VERSION_DECODE(version) \
+       (int)((version) / 10000), \
+       (int)((version) / 100) - (int)((version) / 10000) * 100, \
+       (int)(version) - (int)((version) / 100) * 100
+
+#define SDB_CLIENT_VERSION \
+       SDB_CLIENT_VERSION_ENCODE(SDB_CLIENT_VERSION_MAJOR, \
+                       SDB_CLIENT_VERSION_MINOR, SDB_CLIENT_VERSION_PATCH)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+unsigned int
+sdb_client_version(void);
+
+const char *
+sdb_client_version_string(void);
+
+const char *
+sdb_client_version_extra(void);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ! CLIENT_SYSDB_H */
+
+/* vim: set tw=78 sw=4 ts=4 noexpandtab : */
+