diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/sync_api_download.c | 23 | ||||
-rw-r--r-- | src/lib/sync_api_upload.c | 51 |
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); |