diff --git a/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.c b/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.c index 1ca34ed96..5898505ef 100644 --- a/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.c +++ b/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.c @@ -43,6 +43,17 @@ struct msgb *chunk_to_msgb(chunk_t *chunk) return msg; } +int get_imsi_ike(ike_sa_t *ike_sa, char *imsi, size_t imsi_len) +{ + identification_t *imsi_id = ike_sa->get_other_id(ike_sa); + if (!imsi_id) + { + return -1; + } + + return get_imsi(imsi_id, imsi, imsi_len); +} + int get_imsi(identification_t *id, char *imsi, size_t imsi_len) { chunk_t nai = id->get_encoding(id); diff --git a/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.h b/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.h index 713fd1dde..3a8ac3978 100644 --- a/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.h +++ b/src/libcharon/plugins/osmo_epdg/osmo_epdg_utils.h @@ -58,6 +58,7 @@ typedef struct osmo_epdg_ue osmo_epdg_ue_t; struct msgb *chunk_to_msgb(chunk_t *chunk); int get_imsi(identification_t *id, char *imsi, size_t imsi_len); +int get_imsi_ike(ike_sa_t *ike_sa, char *imsi, size_t imsi_len); int get_apn(ike_sa_t *sa, char *apn, size_t apn_len); #endif /* OSMO_EPDG_UTILS_H_ */