summaryrefslogtreecommitdiff
path: root/src/lib/sync_api_upload.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/sync_api_upload.c')
-rw-r--r--src/lib/sync_api_upload.c51
1 files changed, 22 insertions, 29 deletions
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);