diff options
author | Christian Grothoff <christian@grothoff.org> | 2019-10-26 20:05:19 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2019-10-26 20:05:19 +0200 |
commit | 94f0d80cc115ce93e88b64f8e3d0fa81e853f6d3 (patch) | |
tree | df89518b7ef3e8d694507870235ef4271a81ead5 /src/lib | |
parent | 8d11ac3388b52c56a651005da4954189b1963d83 (diff) |
turn teah_common.c into libtalercurl, fixes many ugly issues in build system
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Makefile.am | 8 | ||||
-rw-r--r-- | src/lib/teah_common.c | 116 |
2 files changed, 4 insertions, 120 deletions
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index fddc961f5..f5251524e 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -27,11 +27,11 @@ libtalerexchange_la_SOURCES = \ exchange_api_reserve.c \ exchange_api_track_transaction.c \ exchange_api_track_transfer.c \ - exchange_api_wire.c \ - teah_common.c + exchange_api_wire.c libtalerexchange_la_LIBADD = \ libtalerauditor.la \ $(top_builddir)/src/json/libtalerjson.la \ + $(top_builddir)/src/curl/libtalercurl.la \ $(top_builddir)/src/util/libtalerutil.la \ -lgnunetcurl \ -lgnunetjson \ @@ -47,9 +47,9 @@ libtalerauditor_la_SOURCES = \ auditor_api_curl_defaults.c auditor_api_curl_defaults.h \ auditor_api_handle.c auditor_api_handle.h \ auditor_api_deposit_confirmation.c \ - auditor_api_exchanges.c \ - teah_common.c + auditor_api_exchanges.c libtalerauditor_la_LIBADD = \ + $(top_builddir)/src/curl/libtalercurl.la \ $(top_builddir)/src/json/libtalerjson.la \ $(top_builddir)/src/util/libtalerutil.la \ -lgnunetcurl \ diff --git a/src/lib/teah_common.c b/src/lib/teah_common.c deleted file mode 100644 index 3e56c7536..000000000 --- a/src/lib/teah_common.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - This file is part of TALER - Copyright (C) 2019 GNUnet e.V. - - TALER is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3, or (at your - option) any later version. - - TALER is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with TALER; see the file COPYING. If not, see - <http://www.gnu.org/licenses/> -*/ - -/** - * @file lib/teah_common.c - * @brief Helper routines shared by libtalerexchange and libtalerauditor - * @author Christian Grothoff - */ -#include "platform.h" -#include "taler_curl_lib.h" - -#if COMPRESS_BODIES -#include <zlib.h> -#endif - - -/** - * Add the @a body as POST data to the easy handle in @a ctx. - * - * @param ctx[in,out] a request context (updated) - * @param eh easy handle to use - * @param body JSON body to add to @e ctx - * @return #GNUNET_OK on success #GNUNET_SYSERR on failure - */ -int -TALER_curl_easy_post (struct TEAH_PostContext *ctx, - CURL *eh, - const json_t *body) -{ - char *str; - size_t slen; - - str = json_dumps (body, - JSON_COMPACT); - if (NULL == str) - { - GNUNET_break (0); - return GNUNET_SYSERR; - } - slen = strlen (str); -#if COMPRESS_BODIES - { - Bytef *cbuf; - uLongf cbuf_size; - int ret; - - cbuf_size = compressBound (slen); - cbuf = GNUNET_malloc (cbuf_size); - ret = compress (cbuf, - &cbuf_size, - (const Bytef *) str, - slen); - if (Z_OK != ret) - { - /* compression failed!? */ - GNUNET_break (0); - GNUNET_free (cbuf); - return GNUNET_SYSERR; - } - free (str); - slen = (size_t) cbuf_size; - ctx->json_enc = (char *) cbuf; - } - GNUNET_assert - (NULL != (ctx->headers = curl_slist_append - (ctx->headers, - "Content-Encoding: deflate"))); -#else - ctx->json_enc = str; -#endif - - GNUNET_assert - (NULL != (ctx->headers = curl_slist_append - (ctx->headers, - "Content-Type: application/json"))); - - GNUNET_assert (CURLE_OK == - curl_easy_setopt (eh, - CURLOPT_POSTFIELDS, - ctx->json_enc)); - GNUNET_assert (CURLE_OK == - curl_easy_setopt (eh, - CURLOPT_POSTFIELDSIZE, - slen)); - return GNUNET_OK; -} - - -/** - * Free the data in @a ctx. - * - * @param ctx[in] a request context (updated) - */ -void -TALER_curl_easy_post_finished (struct TEAH_PostContext *ctx) -{ - curl_slist_free_all (ctx->headers); - ctx->headers = NULL; - GNUNET_free_non_null (ctx->json_enc); -} |