summaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-11-17 21:01:42 +0100
committerChristian Grothoff <christian@grothoff.org>2019-11-17 21:01:42 +0100
commitc96c9e1656e86c059ab5e8ce239783fc8cbebda7 (patch)
tree90ecbd2a36ff685a87ff71b60c610c9aaa51b1ad /src/sync
parent398692841c64a0c486af1bfbeb47df3bc0cc3534 (diff)
downloadsync-c96c9e1656e86c059ab5e8ce239783fc8cbebda7.tar.gz
sync-c96c9e1656e86c059ab5e8ce239783fc8cbebda7.tar.bz2
sync-c96c9e1656e86c059ab5e8ce239783fc8cbebda7.zip
adjust to spec
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/sync-httpd.c33
-rw-r--r--src/sync/sync-httpd.h4
-rw-r--r--src/sync/sync-httpd_backup_post.c2
-rw-r--r--src/sync/sync-httpd_terms.c6
-rw-r--r--src/sync/sync.conf5
5 files changed, 34 insertions, 16 deletions
diff --git a/src/sync/sync-httpd.c b/src/sync/sync-httpd.c
index ec5ae46..d8f8072 100644
--- a/src/sync/sync-httpd.c
+++ b/src/sync/sync-httpd.c
@@ -61,9 +61,9 @@ struct TALER_Amount SH_annual_fee;
char *SH_backend_url;
/**
- * Our own base URL
+ * Our fulfillment URL.
*/
-char *SH_my_base_url;
+char *SH_fulfillment_url;
/**
* Our context for making HTTP requests.
@@ -187,6 +187,11 @@ url_handler (void *cls,
&SH_handler_terms, MHD_HTTP_OK },
{NULL, NULL, NULL, NULL, 0, 0 }
};
+ static struct SH_RequestHandler h400 = {
+ "", NULL, "text/plain",
+ "Invalid account key", 0,
+ &SH_MHD_handler_static_response, MHD_HTTP_BAD_REQUEST
+ };
static struct SH_RequestHandler h404 = {
"", NULL, "text/html",
"<html><title>404: not found</title></html>", 0,
@@ -235,11 +240,23 @@ url_handler (void *cls,
method,
url);
- if (GNUNET_OK ==
- GNUNET_CRYPTO_eddsa_public_key_from_string (url,
- strlen (url),
- &account_pub.eddsa_pub))
+ if (0 == strncmp (url,
+ "/backups/",
+ strlen ("/backups/")))
{
+ const char *ac = &url[strlen ("/backups/")];
+
+ if (GNUNET_OK !=
+ GNUNET_CRYPTO_eddsa_public_key_from_string (ac,
+ strlen (ac),
+ &account_pub.eddsa_pub))
+ {
+ return SH_MHD_handler_static_response (&h400,
+ connection,
+ con_cls,
+ upload_data,
+ upload_data_size);
+ }
if (0 == strcasecmp (method,
MHD_HTTP_METHOD_GET))
{
@@ -537,8 +554,8 @@ run (void *cls,
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string (config,
"sync",
- "BASE_URL",
- &SH_my_base_url))
+ "FULFILLMENT_URL",
+ &SH_fulfillment_url))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"sync",
diff --git a/src/sync/sync-httpd.h b/src/sync/sync-httpd.h
index a922991..33cdb26 100644
--- a/src/sync/sync-httpd.h
+++ b/src/sync/sync-httpd.h
@@ -147,9 +147,9 @@ extern struct TALER_Amount SH_annual_fee;
extern char *SH_backend_url;
/**
- * Our own base URL
+ * Our fulfillment URL
*/
-extern char *SH_my_base_url;
+extern char *SH_fulfillment_url;
/**
* Our context for making HTTP requests.
diff --git a/src/sync/sync-httpd_backup_post.c b/src/sync/sync-httpd_backup_post.c
index 0866784..deb6701 100644
--- a/src/sync/sync-httpd_backup_post.c
+++ b/src/sync/sync-httpd_backup_post.c
@@ -449,7 +449,7 @@ begin_payment (struct BackupContext *bc,
order = json_pack ("{s:o, s:s, s:s}",
"amount", TALER_JSON_from_amount (&SH_annual_fee),
"summary", "annual fee for sync service",
- "fulfillment_url", SH_my_base_url);
+ "fulfillment_url", SH_fulfillment_url);
bc->po = TALER_MERCHANT_order_put (SH_ctx,
SH_backend_url,
order,
diff --git a/src/sync/sync-httpd_terms.c b/src/sync/sync-httpd_terms.c
index 710f2c6..a96e4d5 100644
--- a/src/sync/sync-httpd_terms.c
+++ b/src/sync/sync-httpd_terms.c
@@ -43,9 +43,11 @@ SH_handler_terms (struct SH_RequestHandler *rh,
{
return SH_RESPONSE_reply_json_pack (connection,
MHD_HTTP_OK,
- "{s:I, s:o}",
+ "{s:I, s:o, s:s}",
"storage_limit_in_megabytes",
(json_int_t) SH_upload_limit_mb,
"annual_fee",
- TALER_JSON_from_amount (&SH_annual_fee));
+ TALER_JSON_from_amount (&SH_annual_fee),
+ "version",
+ "0.0");
}
diff --git a/src/sync/sync.conf b/src/sync/sync.conf
index 459c5c6..2b1d1d0 100644
--- a/src/sync/sync.conf
+++ b/src/sync/sync.conf
@@ -31,9 +31,8 @@ ANNUAL_FEE = TESTKUDOS:0.1
# Upload limit per backup, in megabytes
UPLOAD_LIMIT_MB = 16
-# Public base URL of the SYNC service itself. Used for the
-# fulfillment URL.
-BASE_URL = https://localhost:9967/
+# Fulfillment URL of the SYNC service itself.
+FULFILLMENT_URL = taler://fulfillment-success
# Base URL of our payment backend
PAYMENT_BACKEND_URL = http://localhost:9966/