summaryrefslogtreecommitdiff
path: root/src/general.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/general.c')
-rw-r--r--src/general.c51
1 files changed, 24 insertions, 27 deletions
diff --git a/src/general.c b/src/general.c
index 39e5cd8..f7aa034 100644
--- a/src/general.c
+++ b/src/general.c
@@ -81,6 +81,23 @@ static void dynlock_destroy(struct CRYPTO_dynlock_value *pLock,
}
+static void deinitialize_locks()
+{
+ CRYPTO_set_dynlock_destroy_callback(NULL);
+ CRYPTO_set_dynlock_lock_callback(NULL);
+ CRYPTO_set_dynlock_create_callback(NULL);
+ CRYPTO_set_locking_callback(NULL);
+ CRYPTO_set_id_callback(NULL);
+
+ int count = CRYPTO_num_locks();
+ for (int i = 0; i < count; i++) {
+ (*mutexDestroyCallbackG)(pLocksG[i]);
+ }
+
+ free(pLocksG);
+}
+
+
struct S3Mutex *mutex_create()
{
return (*mutexCreateCallbackG)();
@@ -138,7 +155,7 @@ S3Status S3_initialize(const char *userAgentInfo,
S3Status status = request_api_initialize(userAgentInfo);
if (status != S3StatusOK) {
- S3_deinitialize();
+ deinitialize_locks();
return status;
}
@@ -150,21 +167,9 @@ void S3_deinitialize()
{
request_api_deinitialize();
- CRYPTO_set_dynlock_destroy_callback(NULL);
- CRYPTO_set_dynlock_lock_callback(NULL);
- CRYPTO_set_dynlock_create_callback(NULL);
- CRYPTO_set_locking_callback(NULL);
- CRYPTO_set_id_callback(NULL);
-
- int count = CRYPTO_num_locks();
- for (int i = 0; i < count; i++) {
- (*mutexDestroyCallbackG)(pLocksG[i]);
- }
-
- free(pLocksG);
+ deinitialize_locks();
}
-
const char *S3_get_status_name(S3Status status)
{
switch (status) {
@@ -184,9 +189,7 @@ const char *S3_get_status_name(S3Status status)
handlecase(InvalidBucketNameTooShort);
handlecase(InvalidBucketNameDotQuadNotation);
handlecase(QueryParamsTooLong);
- handlecase(FailedToCreateRequest);
handlecase(FailedToInitializeRequest);
- handlecase(FailedToCreateRequestContext);
handlecase(MetaDataHeadersTooLong);
handlecase(BadMetaData);
handlecase(BadContentType);
@@ -504,10 +507,10 @@ static S3Status convertAclXmlCallback(const char *elementPath,
grant->permission = S3PermissionWrite;
}
else if (!strcmp(caData->permission, "READ_ACP")) {
- grant->permission = S3PermissionReadAcp;
+ grant->permission = S3PermissionReadACP;
}
else if (!strcmp(caData->permission, "WRITE_ACP")) {
- grant->permission = S3PermissionWriteAcp;
+ grant->permission = S3PermissionWriteACP;
}
else if (!strcmp(caData->permission, "FULL_CONTROL")) {
grant->permission = S3PermissionFullControl;
@@ -552,19 +555,13 @@ S3Status S3_convert_acl(char *aclXml, char *ownerId, char *ownerDisplayName,
// Use a simplexml parser
SimpleXml simpleXml;
+ simplexml_initialize(&simpleXml, &convertAclXmlCallback, &data);
- S3Status status;
-
- if (((status = simplexml_initialize
- (&simpleXml, &convertAclXmlCallback, &data)) != S3StatusOK) ||
- ((status = simplexml_add
- (&simpleXml, aclXml, strlen(aclXml))) != S3StatusOK)) {
- return status;
- }
+ S3Status status = simplexml_add(&simpleXml, aclXml, strlen(aclXml));
simplexml_deinitialize(&simpleXml);
- return S3StatusOK;
+ return status;
}