blob: 7b96fc5e5c163c33cf35a2949b28e05812391255 [file] [log] [blame]
#include <rawrtc/dtls_transport.h>
#include <rawrtcc/code.h>
#include <re.h>
/*
* Get the corresponding name for an ICE transport state.
*/
char const* rawrtc_dtls_transport_state_to_name(enum rawrtc_dtls_transport_state const state) {
switch (state) {
case RAWRTC_DTLS_TRANSPORT_STATE_NEW:
return "new";
case RAWRTC_DTLS_TRANSPORT_STATE_CONNECTING:
return "connecting";
case RAWRTC_DTLS_TRANSPORT_STATE_CONNECTED:
return "connected";
case RAWRTC_DTLS_TRANSPORT_STATE_CLOSED:
return "closed";
case RAWRTC_DTLS_TRANSPORT_STATE_FAILED:
return "failed";
default:
return "???";
}
}
static enum rawrtc_dtls_role const map_enum_dtls_role[] = {
RAWRTC_DTLS_ROLE_AUTO,
RAWRTC_DTLS_ROLE_CLIENT,
RAWRTC_DTLS_ROLE_SERVER,
};
static char const* const map_str_dtls_role[] = {
"auto",
"client",
"server",
};
static size_t const map_dtls_role_length = ARRAY_SIZE(map_enum_dtls_role);
/*
* Translate a DTLS role to str.
*/
char const* rawrtc_dtls_role_to_str(enum rawrtc_dtls_role const role) {
size_t i;
for (i = 0; i < map_dtls_role_length; ++i) {
if (map_enum_dtls_role[i] == role) {
return map_str_dtls_role[i];
}
}
return "???";
}
/*
* Translate a str to a DTLS role (case-insensitive).
*/
enum rawrtc_code rawrtc_str_to_dtls_role(
enum rawrtc_dtls_role* const rolep, // de-referenced
char const* const str) {
size_t i;
// Check arguments
if (!rolep || !str) {
return RAWRTC_CODE_INVALID_ARGUMENT;
}
for (i = 0; i < map_dtls_role_length; ++i) {
if (str_casecmp(map_str_dtls_role[i], str) == 0) {
*rolep = map_enum_dtls_role[i];
return RAWRTC_CODE_SUCCESS;
}
}
return RAWRTC_CODE_NO_VALUE;
}