diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-08-03 11:05:41 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-08-03 11:05:41 +0200 |
commit | 91f07f2b0a5e6c2213f8a903b8751176ad9c72fe (patch) | |
tree | fb2c1e3b6903ee1705ab56c50c4da8cc0e043920 /src/backend/taler-merchant-httpd_get-orders-ID.c | |
parent | adf0f4fd36290becd33292d56d819aeaf260d5f6 (diff) | |
download | merchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.tar.gz merchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.tar.bz2 merchant-91f07f2b0a5e6c2213f8a903b8751176ad9c72fe.zip |
separate out QR logic
Diffstat (limited to 'src/backend/taler-merchant-httpd_get-orders-ID.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_get-orders-ID.c | 81 |
1 files changed, 3 insertions, 78 deletions
diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c b/src/backend/taler-merchant-httpd_get-orders-ID.c index f34b7ec7..f51b1962 100644 --- a/src/backend/taler-merchant-httpd_get-orders-ID.c +++ b/src/backend/taler-merchant-httpd_get-orders-ID.c @@ -21,12 +21,12 @@ */ #include "platform.h" #include <jansson.h> -#include <qrencode.h> #include <taler/taler_signatures.h> #include <taler/taler_json_lib.h> #include <taler/taler_exchange_service.h> #include "taler-merchant-httpd_exchanges.h" #include "taler-merchant-httpd_get-orders-ID.h" +#include "taler-merchant-httpd_qr.h" #include "taler-merchant-httpd_templating.h" @@ -258,81 +258,6 @@ static struct GetOrderData *god_tail; /** - * Create the QR code image for a URI. - * - * @param uri input string to encode - * @return NULL on error, encoded URI otherwise - */ -static char * -create_qrcode (const char *uri) -{ - QRinput *qri; - QRcode *qrc; - struct GNUNET_Buffer buf = { 0 }; - - qri = QRinput_new2 (0, - QR_ECLEVEL_M); - if (NULL == qri) - { - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, - "QRinput_new2"); - return NULL; - } - /* first try encoding as uppercase-only alpha-numerical - QR code (much smaller encoding); if that fails, also - try using binary encoding */ - if ( (0 != - QRinput_append (qri, - QR_MODE_AN, - strlen (uri), - (unsigned char *) uri)) && - (0 != - QRinput_append (qri, - QR_MODE_8, - strlen (uri), - (unsigned char *) uri)) ) - { - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, - "QRinput_append"); - QRinput_free (qri); - return NULL; - } - qrc = QRcode_encodeInput (qri); - if (NULL == qrc) - { - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, - "QRcode_encodeInput"); - QRinput_free (qri); - return NULL; - } - QRinput_free (qri); - /* FIXME-Dold: generate <img> with inline SVG instead of <pre> here! */ - GNUNET_buffer_write_str (&buf, - "<p class=\"qrtext\"><br>\n<br>\n<br>\n<br>\n"); - for (unsigned int y = 0; y<qrc->width; y++) - { - GNUNET_buffer_write_str (&buf, - " "); - for (unsigned int x = 0; x<qrc->width; x++) - { - unsigned int off = x + y * qrc->width; - GNUNET_buffer_write_fstr (&buf, - "%s", - (0 != (qrc->data[off] & 1)) - ? "██" - : " "); - } - GNUNET_buffer_write_str (&buf, - " <br>"); - } - GNUNET_buffer_write_str (&buf, - "<br>\n<br>\n<br>\n<br>\n</p>"); - QRcode_free (qrc); - return GNUNET_buffer_reap_str (&buf); -} - - -/** * Force resuming all suspended order lookups, needed during shutdown. */ void @@ -495,7 +420,7 @@ send_pay_request (struct GetOrderData *god, { char *qr; - qr = create_qrcode (taler_pay_uri); + qr = TMH_create_qrcode (taler_pay_uri); if (NULL == qr) { GNUNET_break (0); @@ -1317,7 +1242,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, { char *qr; - qr = create_qrcode ("taler://refund/FIXME"); + qr = TMH_create_qrcode ("taler://refund/FIXME"); if (NULL == qr) { GNUNET_break (0); |