summaryrefslogtreecommitdiff
path: root/src/general.c
diff options
context:
space:
mode:
authorBryan Ischo <bryan@ischo.com>2008-07-21 12:28:51 +0000
committerBryan Ischo <bryan@ischo.com>2008-07-21 12:28:51 +0000
commit8a2f22506a4e3a8f07356aaa3a223428243acda4 (patch)
tree50a226caf30348afc47a227295f85511f2692c0d /src/general.c
parent5b2d5978bfea855912ba38e32985cee8c0f35a89 (diff)
downloadceph-libs3-8a2f22506a4e3a8f07356aaa3a223428243acda4.tar.gz
* Removed http response code from complete callback (libs3 users should only
care about the actual response code) * Cleaned up some stuff * Added S3_status_is_retryable
Diffstat (limited to 'src/general.c')
-rw-r--r--src/general.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/general.c b/src/general.c
index 4915b0e..39e5cd8 100644
--- a/src/general.c
+++ b/src/general.c
@@ -173,7 +173,7 @@ const char *S3_get_status_name(S3Status status)
return #s
handlecase(OK);
- handlecase(Failure);
+ handlecase(InternalError);
handlecase(OutOfMemory);
handlecase(Interrupted);
handlecase(FailedToCreateMutex);
@@ -216,6 +216,10 @@ const char *S3_get_status_name(S3Status status)
handlecase(BadAclGrantee);
handlecase(BadAclPermission);
handlecase(AclXmlDocumentTooLarge);
+ handlecase(NameLookupError);
+ handlecase(FailedToConnect);
+ handlecase(ConnectionFailed);
+ handlecase(AbortedByCallback);
handlecase(ErrorAccessDenied);
handlecase(ErrorAccountProblem);
handlecase(ErrorAmbiguousGrantByEmailAddress);
@@ -562,3 +566,20 @@ S3Status S3_convert_acl(char *aclXml, char *ownerId, char *ownerDisplayName,
return S3StatusOK;
}
+
+
+int S3_status_is_retryable(S3Status status)
+{
+ switch (status) {
+ case S3StatusNameLookupError:
+ case S3StatusFailedToConnect:
+ case S3StatusConnectionFailed:
+ case S3StatusErrorInternalError:
+ case S3StatusErrorOperationAborted:
+ case S3StatusErrorRequestTimeout:
+ return 1;
+ default:
+ return 0;
+ }
+}
+