summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/sync_api_download.c23
-rw-r--r--src/lib/sync_api_upload.c51
2 files changed, 33 insertions, 41 deletions
diff --git a/src/lib/sync_api_download.c b/src/lib/sync_api_download.c
index 9a7c8f5..a5515dd 100644
--- a/src/lib/sync_api_download.c
+++ b/src/lib/sync_api_download.c
@@ -100,6 +100,9 @@ handle_download_finished (void *cls,
size_t data_size)
{
struct SYNC_DownloadOperation *download = cls;
+ struct SYNC_DownloadDetails dd = {
+ .http_status = (unsigned int) response_code
+ };
download->job = NULL;
switch (response_code)
@@ -108,7 +111,6 @@ handle_download_finished (void *cls,
break;
case MHD_HTTP_OK:
{
- struct SYNC_DownloadDetails dd;
struct SYNC_UploadSignaturePS usp = {
.purpose.purpose = htonl (TALER_SIGNATURE_SYNC_BACKUP_UPLOAD),
.purpose.size = htonl (sizeof (usp)),
@@ -125,18 +127,16 @@ handle_download_finished (void *cls,
&download->account_pub.eddsa_pub))
{
GNUNET_break_op (0);
- response_code = 0;
+ dd.http_status = 0;
break;
}
/* Success, call callback with all details! */
- memset (&dd, 0, sizeof (dd));
- dd.sig = download->account_sig;
- dd.prev_backup_hash = download->sync_previous;
- dd.curr_backup_hash = usp.new_backup_hash;
- dd.backup = data;
- dd.backup_size = data_size;
+ dd.details.ok.sig = download->account_sig;
+ dd.details.ok.prev_backup_hash = download->sync_previous;
+ dd.details.ok.curr_backup_hash = usp.new_backup_hash;
+ dd.details.ok.backup = data;
+ dd.details.ok.backup_size = data_size;
download->cb (download->cb_cls,
- response_code,
&dd);
download->cb = NULL;
SYNC_download_cancel (download);
@@ -159,14 +159,13 @@ handle_download_finished (void *cls,
"Unexpected response code %u\n",
(unsigned int) response_code);
GNUNET_break (0);
- response_code = 0;
+ dd.http_status = 0;
break;
}
if (NULL != download->cb)
{
download->cb (download->cb_cls,
- response_code,
- NULL);
+ &dd);
download->cb = NULL;
}
SYNC_download_cancel (download);
diff --git a/src/lib/sync_api_upload.c b/src/lib/sync_api_upload.c
index daaa2eb..26d3708 100644
--- a/src/lib/sync_api_upload.c
+++ b/src/lib/sync_api_upload.c
@@ -92,44 +92,40 @@ handle_upload_finished (void *cls,
size_t data_size)
{
struct SYNC_UploadOperation *uo = cls;
- enum TALER_ErrorCode ec = TALER_EC_INVALID;
- struct SYNC_UploadDetails ud;
- struct SYNC_UploadDetails *udp;
+ struct SYNC_UploadDetails ud = {
+ .http_status = (unsigned int) response_code,
+ .ec = TALER_EC_INVALID
+ };
uo->job = NULL;
- udp = NULL;
- memset (&ud, 0, sizeof (ud));
switch (response_code)
{
case 0:
break;
case MHD_HTTP_NO_CONTENT:
ud.us = SYNC_US_SUCCESS;
- ud.details.curr_backup_hash = &uo->new_upload_hash;
- udp = &ud;
- ec = TALER_EC_NONE;
+ ud.details.success.curr_backup_hash = &uo->new_upload_hash;
+ ud.ec = TALER_EC_NONE;
break;
case MHD_HTTP_NOT_MODIFIED:
ud.us = SYNC_US_SUCCESS;
- ud.details.curr_backup_hash = &uo->new_upload_hash;
- udp = &ud;
- ec = TALER_EC_NONE;
+ ud.details.not_modified.curr_backup_hash = &uo->new_upload_hash;
+ ud.ec = TALER_EC_NONE;
break;
case MHD_HTTP_BAD_REQUEST:
GNUNET_break (0);
- ec = TALER_JSON_get_error_code2 (data,
- data_size);
+ ud.ec = TALER_JSON_get_error_code2 (data,
+ data_size);
break;
case MHD_HTTP_PAYMENT_REQUIRED:
ud.us = SYNC_US_PAYMENT_REQUIRED;
- ud.details.payment_request = uo->pay_uri;
- udp = &ud;
- ec = TALER_EC_NONE;
+ ud.details.payment_required.payment_request = uo->pay_uri;
+ ud.ec = TALER_EC_NONE;
break;
case MHD_HTTP_FORBIDDEN:
GNUNET_break (0);
- ec = TALER_JSON_get_error_code2 (data,
- data_size);
+ ud.ec = TALER_JSON_get_error_code2 (data,
+ data_size);
break;
case MHD_HTTP_CONFLICT:
ud.us = SYNC_US_CONFLICTING_BACKUP;
@@ -140,23 +136,22 @@ handle_upload_finished (void *cls,
= data_size;
ud.details.recovered_backup.existing_backup
= data;
- udp = &ud;
- ec = TALER_EC_NONE;
+ ud.ec = TALER_EC_NONE;
break;
case MHD_HTTP_GONE:
- ec = TALER_JSON_get_error_code2 (data,
- data_size);
+ ud.ec = TALER_JSON_get_error_code2 (data,
+ data_size);
break;
case MHD_HTTP_LENGTH_REQUIRED:
GNUNET_break (0);
break;
case MHD_HTTP_REQUEST_ENTITY_TOO_LARGE:
- ec = TALER_JSON_get_error_code2 (data,
- data_size);
+ ud.ec = TALER_JSON_get_error_code2 (data,
+ data_size);
break;
case MHD_HTTP_TOO_MANY_REQUESTS:
- ec = TALER_JSON_get_error_code2 (data,
- data_size);
+ ud.ec = TALER_JSON_get_error_code2 (data,
+ data_size);
break;
case MHD_HTTP_INTERNAL_SERVER_ERROR:
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -168,9 +163,7 @@ handle_upload_finished (void *cls,
if (NULL != uo->cb)
{
uo->cb (uo->cb_cls,
- ec,
- response_code,
- udp);
+ &ud);
uo->cb = NULL;
}
SYNC_upload_cancel (uo);