diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-11-14 17:46:38 +0100 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2018-12-07 16:20:53 +0000 |
commit | d6e2c69129900f50dd8c0ed6cb9a7a17c141a85e (patch) | |
tree | 3d1dbf35fe2a00120d5e23c47beed154757eae48 /src/mm-modem-helpers-mbim.c | |
parent | 4cb6751dafc20a55192b61eb8a6ab97d3c95c398 (diff) |
helpers-mbim: new method to convert auth settings to/from MM
Diffstat (limited to 'src/mm-modem-helpers-mbim.c')
-rw-r--r-- | src/mm-modem-helpers-mbim.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c index 680b774b..fd5948bb 100644 --- a/src/mm-modem-helpers-mbim.c +++ b/src/mm-modem-helpers-mbim.c @@ -315,6 +315,56 @@ mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error) /*****************************************************************************/ +MMBearerAllowedAuth +mm_bearer_allowed_auth_from_mbim_auth_protocol (MbimAuthProtocol auth_protocol) +{ + switch (auth_protocol) { + case MBIM_AUTH_PROTOCOL_NONE: + return MM_BEARER_ALLOWED_AUTH_NONE; + case MBIM_AUTH_PROTOCOL_PAP: + return MM_BEARER_ALLOWED_AUTH_PAP; + case MBIM_AUTH_PROTOCOL_CHAP: + return MM_BEARER_ALLOWED_AUTH_CHAP; + case MBIM_AUTH_PROTOCOL_MSCHAPV2: + return MM_BEARER_ALLOWED_AUTH_MSCHAPV2; + default: + return MM_BEARER_ALLOWED_AUTH_UNKNOWN; + } +} + +MbimAuthProtocol +mm_bearer_allowed_auth_to_mbim_auth_protocol (MMBearerAllowedAuth bearer_auth, + GError **error) +{ + gchar *str; + + /* NOTE: the input is a BITMASK, so we try to find a "best match" */ + + if (bearer_auth == MM_BEARER_ALLOWED_AUTH_UNKNOWN) { + mm_dbg ("Using default (PAP) authentication method"); + return MBIM_AUTH_PROTOCOL_PAP; + } + if (bearer_auth & MM_BEARER_ALLOWED_AUTH_PAP) + return MBIM_AUTH_PROTOCOL_PAP; + if (bearer_auth & MM_BEARER_ALLOWED_AUTH_CHAP) + return MBIM_AUTH_PROTOCOL_CHAP; + if (bearer_auth & MM_BEARER_ALLOWED_AUTH_MSCHAPV2) + return MBIM_AUTH_PROTOCOL_MSCHAPV2; + if (bearer_auth & MM_BEARER_ALLOWED_AUTH_NONE) + return MBIM_AUTH_PROTOCOL_NONE; + + str = mm_bearer_allowed_auth_build_string_from_mask (bearer_auth); + g_set_error (error, + MM_CORE_ERROR, + MM_CORE_ERROR_UNSUPPORTED, + "No match for the requested authentication methods (%s)", + str); + g_free (str); + return MBIM_AUTH_PROTOCOL_NONE; +} + +/*****************************************************************************/ + MMSmsState mm_sms_state_from_mbim_message_status (MbimSmsStatus status) { |