Skip to content

Commit

Permalink
refactor finished
Browse files Browse the repository at this point in the history
  • Loading branch information
waahm7 committed Dec 2, 2023
1 parent 4c76994 commit 23c7b52
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions source/s3_auto_ranged_get.c
Original file line number Diff line number Diff line change
Expand Up @@ -609,14 +609,15 @@ static void s_s3_auto_ranged_get_request_finished(

bool found_object_size = false;
bool request_failed = error_code != AWS_ERROR_SUCCESS;
int request_error_code = error_code;

if (request->discovers_object_size) {

/* Try to discover the object-range and content length.*/
if (s_discover_object_range_and_content_length(
meta_request, request, error_code, &total_content_length, &object_range_start, &object_range_end)) {

error_code = aws_last_error_or_unknown();
request_error_code = aws_last_error_or_unknown();

goto update_synced_data;
}
Expand All @@ -627,7 +628,7 @@ static void s_s3_auto_ranged_get_request_finished(

if (aws_http_headers_get(request->send_data.response_headers, g_etag_header_name, &etag_header_value)) {
aws_raise_error(AWS_ERROR_S3_MISSING_ETAG);
error_code = AWS_ERROR_S3_MISSING_ETAG;
request_error_code = AWS_ERROR_S3_MISSING_ETAG;
goto update_synced_data;
}

Expand All @@ -639,6 +640,9 @@ static void s_s3_auto_ranged_get_request_finished(
auto_ranged_get->etag = aws_string_new_from_cursor(auto_ranged_get->base.allocator, &etag_header_value);
}

/* If we were able to discover the object-range/content length successfully, then any error code that was passed
* into this function is being handled and does not indicate an overall failure.*/
request_error_code = AWS_ERROR_SUCCESS;
found_object_size = true;

if (meta_request->headers_callback != NULL) {
Expand Down Expand Up @@ -667,7 +671,7 @@ static void s_s3_auto_ranged_get_request_finished(
s_s3_auto_ranged_get_success_status(meta_request),
meta_request->user_data)) {

error_code = aws_last_error_or_unknown();
request_error_code = aws_last_error_or_unknown();
}
meta_request->headers_callback = NULL;

Expand All @@ -684,10 +688,6 @@ static void s_s3_auto_ranged_get_request_finished(
/* If the object range was found, then record it. */
if (found_object_size) {
AWS_ASSERT(!auto_ranged_get->synced_data.object_range_known);
if (error_code == AWS_ERROR_S3_PART_TOO_LARGE_FOR_GET_PART) {
--auto_ranged_get->synced_data.num_parts_requested;
}
error_code = AWS_ERROR_SUCCESS;
auto_ranged_get->synced_data.object_range_known = true;
auto_ranged_get->synced_data.object_range_empty = (total_content_length == 0);
auto_ranged_get->synced_data.object_range_start = object_range_start;
Expand All @@ -702,7 +702,11 @@ static void s_s3_auto_ranged_get_request_finished(
AWS_LOGF_DEBUG(AWS_LS_S3_META_REQUEST, "id=%p Head object completed.", (void *)meta_request);
break;
case AWS_S3_AUTO_RANGE_GET_REQUEST_TYPE_GET_PART_NUMBER:
break;
if (error_code == AWS_ERROR_S3_PART_TOO_LARGE_FOR_GET_PART) {
--auto_ranged_get->synced_data.num_parts_requested;
break;
}
/* fall through */
case AWS_S3_AUTO_RANGE_GET_REQUEST_TYPE_PART:
++auto_ranged_get->synced_data.num_parts_completed;

Expand Down

0 comments on commit 23c7b52

Please sign in to comment.