From e16fd4a09b7af5dc1501e996573881f4b3975d67 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 26 Jul 2018 18:18:10 +0200 Subject: [PATCH] input/qobuz: initialize the libgcrypt library --- Makefile.am | 1 + src/input/plugins/QobuzInputPlugin.cxx | 3 ++ src/lib/gcrypt/Init.hxx | 45 ++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/lib/gcrypt/Init.hxx diff --git a/Makefile.am b/Makefile.am index e4ac81967..e56119de4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1462,6 +1462,7 @@ libinput_a_SOURCES += \ $(YAJL_SOURCES) \ src/lib/gcrypt/MD5.cxx src/lib/gcrypt/MD5.hxx \ src/lib/gcrypt/Hash.hxx \ + src/lib/gcrypt/Init.hxx \ src/input/plugins/QobuzSession.hxx \ src/input/plugins/QobuzClient.cxx src/input/plugins/QobuzClient.hxx \ src/input/plugins/QobuzErrorParser.cxx src/input/plugins/QobuzErrorParser.hxx \ diff --git a/src/input/plugins/QobuzInputPlugin.cxx b/src/input/plugins/QobuzInputPlugin.cxx index 44bc5819b..29723b24a 100644 --- a/src/input/plugins/QobuzInputPlugin.cxx +++ b/src/input/plugins/QobuzInputPlugin.cxx @@ -28,6 +28,7 @@ #include "input/FailingInputStream.hxx" #include "input/InputPlugin.hxx" #include "config/Block.hxx" +#include "lib/gcrypt/Init.hxx" #include "thread/Mutex.hxx" #include "util/StringCompare.hxx" @@ -126,6 +127,8 @@ QobuzInputStream::OnQobuzTrackError(std::exception_ptr e) noexcept static void InitQobuzInput(EventLoop &event_loop, const ConfigBlock &block) { + Gcrypt::Init(); + const char *base_url = block.GetBlockValue("base_url", "http://www.qobuz.com/api.json/0.2/"); diff --git a/src/lib/gcrypt/Init.hxx b/src/lib/gcrypt/Init.hxx new file mode 100644 index 000000000..1d9bef6ab --- /dev/null +++ b/src/lib/gcrypt/Init.hxx @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2018 Max Kellermann + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - 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 + * FOUNDATION 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 GCRYPT_INIT_HXX +#define GCRYPT_INIT_HXX + +#include + +namespace Gcrypt { + +inline void +Init() noexcept +{ + gcry_check_version(GCRYPT_VERSION); +} + +} /* namespace Gcrypt */ + +#endif