add functions to get the error codes rather than error strings

This commit is contained in:
Hubert Chathi 2021-06-16 22:40:14 -04:00
parent 60be1ca55f
commit 7263c4221b
11 changed files with 140 additions and 14 deletions

View file

@ -92,6 +92,7 @@ install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/include/olm/inbound_group_session.h
${CMAKE_CURRENT_SOURCE_DIR}/include/olm/pk.h
${CMAKE_CURRENT_SOURCE_DIR}/include/olm/sas.h
${CMAKE_CURRENT_SOURCE_DIR}/include/olm/error.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/olm)
if (UNIX AND NOT APPLE)

View file

@ -18,6 +18,8 @@
#include <stddef.h>
#include <stdint.h>
#include "olm/error.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -43,6 +45,13 @@ const char *olm_inbound_group_session_last_error(
const OlmInboundGroupSession *session
);
/**
* An error code describing the most recent error to happen to a group
* session */
enum OlmErrorCode olm_inbound_group_session_last_error_code(
const OlmInboundGroupSession *session
);
/** Clears the memory used to back this group session */
size_t olm_clear_inbound_group_session(
OlmInboundGroupSession *session

View file

@ -19,6 +19,7 @@
#include <stddef.h>
#include <stdint.h>
#include "olm/error.h"
#include "olm/inbound_group_session.h"
#include "olm/outbound_group_session.h"
@ -71,19 +72,34 @@ size_t olm_error(void);
/** A null terminated string describing the most recent error to happen to an
* account */
const char * olm_account_last_error(
OlmAccount * account
const OlmAccount * account
);
/** An error code describing the most recent error to happen to an account */
enum OlmErrorCode olm_account_last_error_code(
const OlmAccount * account
);
/** A null terminated string describing the most recent error to happen to a
* session */
const char * olm_session_last_error(
OlmSession * session
const OlmSession * session
);
/** An error code describing the most recent error to happen to a session */
enum OlmErrorCode olm_session_last_error_code(
const OlmSession * session
);
/** A null terminated string describing the most recent error to happen to a
* utility */
const char * olm_utility_last_error(
OlmUtility * utility
const OlmUtility * utility
);
/** An error code describing the most recent error to happen to a utility */
enum OlmErrorCode olm_utility_last_error_code(
const OlmUtility * utility
);
/** Clears the memory used to back this account */

View file

@ -18,6 +18,8 @@
#include <stddef.h>
#include <stdint.h>
#include "olm/error.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -43,6 +45,13 @@ const char *olm_outbound_group_session_last_error(
const OlmOutboundGroupSession *session
);
/**
* An error code describing the most recent error to happen to a group
* session */
enum OlmErrorCode olm_outbound_group_session_last_error_code(
const OlmOutboundGroupSession *session
);
/** Clears the memory used to back this group session */
size_t olm_clear_outbound_group_session(
OlmOutboundGroupSession *session

View file

@ -19,6 +19,8 @@
#include <stddef.h>
#include <stdint.h>
#include "olm/error.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -37,7 +39,13 @@ OlmPkEncryption *olm_pk_encryption(
/** A null terminated string describing the most recent error to happen to an
* encryption object */
const char * olm_pk_encryption_last_error(
OlmPkEncryption * encryption
const OlmPkEncryption * encryption
);
/** An error code describing the most recent error to happen to an encryption
* object */
enum OlmErrorCode olm_pk_encryption_last_error_code(
const OlmPkEncryption * encryption
);
/** Clears the memory used to back this encryption object */
@ -104,7 +112,13 @@ OlmPkDecryption *olm_pk_decryption(
/** A null terminated string describing the most recent error to happen to a
* decription object */
const char * olm_pk_decryption_last_error(
OlmPkDecryption * decryption
const OlmPkDecryption * decryption
);
/** An error code describing the most recent error to happen to a decription
* object */
enum OlmErrorCode olm_pk_decryption_last_error_code(
const OlmPkDecryption * decryption
);
/** Clears the memory used to back this decryption object */
@ -221,7 +235,13 @@ OlmPkSigning *olm_pk_signing(
/** A null terminated string describing the most recent error to happen to a
* signing object */
const char * olm_pk_signing_last_error(
OlmPkSigning * sign
const OlmPkSigning * sign
);
/** A null terminated string describing the most recent error to happen to a
* signing object */
enum OlmErrorCode olm_pk_signing_last_error_code(
const OlmPkSigning * sign
);
/** Clears the memory used to back this signing object */

View file

@ -19,6 +19,8 @@
#include <stddef.h>
#include "olm/error.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -34,7 +36,13 @@ typedef struct OlmSAS OlmSAS;
/** A null terminated string describing the most recent error to happen to an
* SAS object. */
const char * olm_sas_last_error(
OlmSAS * sas
const OlmSAS * sas
);
/** An error code describing the most recent error to happen to an SAS
* object. */
enum OlmErrorCode olm_sas_last_error_code(
const OlmSAS * sas
);
/** The size of an SAS object in bytes. */

View file

@ -76,6 +76,12 @@ const char *olm_inbound_group_session_last_error(
return _olm_error_to_string(session->last_error);
}
enum OlmErrorCode olm_inbound_group_session_last_error_code(
const OlmInboundGroupSession *session
) {
return session->last_error;
}
size_t olm_clear_inbound_group_session(
OlmInboundGroupSession *session
) {

View file

@ -42,14 +42,26 @@ static olm::Account * from_c(OlmAccount * account) {
return reinterpret_cast<olm::Account *>(account);
}
static const olm::Account * from_c(const OlmAccount * account) {
return reinterpret_cast<const olm::Account *>(account);
}
static olm::Session * from_c(OlmSession * session) {
return reinterpret_cast<olm::Session *>(session);
}
static const olm::Session * from_c(const OlmSession * session) {
return reinterpret_cast<const olm::Session *>(session);
}
static olm::Utility * from_c(OlmUtility * utility) {
return reinterpret_cast<olm::Utility *>(utility);
}
static const olm::Utility * from_c(const OlmUtility * utility) {
return reinterpret_cast<const olm::Utility *>(utility);
}
static std::uint8_t * from_c(void * bytes) {
return reinterpret_cast<std::uint8_t *>(bytes);
}
@ -110,27 +122,44 @@ size_t olm_error(void) {
const char * olm_account_last_error(
OlmAccount * account
const OlmAccount * account
) {
auto error = from_c(account)->last_error;
return _olm_error_to_string(error);
}
enum OlmErrorCode olm_account_last_error_code(
const OlmAccount * account
) {
return from_c(account)->last_error;
}
const char * olm_session_last_error(
OlmSession * session
const OlmSession * session
) {
auto error = from_c(session)->last_error;
return _olm_error_to_string(error);
}
enum OlmErrorCode olm_session_last_error_code(
const OlmSession * session
) {
return from_c(session)->last_error;
}
const char * olm_utility_last_error(
OlmUtility * utility
const OlmUtility * utility
) {
auto error = from_c(utility)->last_error;
return _olm_error_to_string(error);
}
enum OlmErrorCode olm_utility_last_error_code(
const OlmUtility * utility
) {
return from_c(utility)->last_error;
}
size_t olm_account_size(void) {
return sizeof(olm::Account);
}

View file

@ -61,6 +61,12 @@ const char *olm_outbound_group_session_last_error(
return _olm_error_to_string(session->last_error);
}
enum OlmErrorCode olm_outbound_group_session_last_error_code(
const OlmOutboundGroupSession *session
) {
return session->last_error;
}
size_t olm_clear_outbound_group_session(
OlmOutboundGroupSession *session
) {

View file

@ -37,12 +37,18 @@ struct OlmPkEncryption {
};
const char * olm_pk_encryption_last_error(
OlmPkEncryption * encryption
const OlmPkEncryption * encryption
) {
auto error = encryption->last_error;
return _olm_error_to_string(error);
}
OlmErrorCode olm_pk_encryption_last_error_code(
const OlmPkEncryption * encryption
) {
return encryption->last_error;
}
size_t olm_pk_encryption_size(void) {
return sizeof(OlmPkEncryption);
}
@ -162,12 +168,18 @@ struct OlmPkDecryption {
};
const char * olm_pk_decryption_last_error(
OlmPkDecryption * decryption
const OlmPkDecryption * decryption
) {
auto error = decryption->last_error;
return _olm_error_to_string(error);
}
OlmErrorCode olm_pk_decryption_last_error_code(
const OlmPkDecryption * decryption
) {
return decryption->last_error;
}
size_t olm_pk_decryption_size(void) {
return sizeof(OlmPkDecryption);
}
@ -446,11 +458,15 @@ OlmPkSigning *olm_pk_signing(void * memory) {
return new(memory) OlmPkSigning;
}
const char * olm_pk_signing_last_error(OlmPkSigning * sign) {
const char * olm_pk_signing_last_error(const OlmPkSigning * sign) {
auto error = sign->last_error;
return _olm_error_to_string(error);
}
OlmErrorCode olm_pk_signing_last_error_code(const OlmPkSigning * sign) {
return sign->last_error;
}
size_t olm_clear_pk_signing(OlmPkSigning *sign) {
/* Clear the memory backing the signing */
olm::unset(sign, sizeof(OlmPkSigning));

View file

@ -27,11 +27,17 @@ struct OlmSAS {
};
const char * olm_sas_last_error(
OlmSAS * sas
const OlmSAS * sas
) {
return _olm_error_to_string(sas->last_error);
}
enum OlmErrorCode olm_sas_last_error_code(
const OlmSAS * sas
) {
return sas->last_error;
}
size_t olm_sas_size(void) {
return sizeof(OlmSAS);
}