aboutsummaryrefslogtreecommitdiffstats
path: root/src/hnbgw_hnbap.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-08-30 12:28:29 +0200
committerHarald Welte <laforge@gnumonks.org>2015-08-30 12:28:29 +0200
commit30afef3073e6f9d0c00275b7c41009eb64661f67 (patch)
treeeea2959ffd3b0977e18b12a546ce8f2604c1678b /src/hnbgw_hnbap.c
parentb3dae30e5ee3d9109b07023327df1c6c00b06806 (diff)
move asn.1 helper functions to asn1helpers.[ch]
Diffstat (limited to 'src/hnbgw_hnbap.c')
-rw-r--r--src/hnbgw_hnbap.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/src/hnbgw_hnbap.c b/src/hnbgw_hnbap.c
index fd3a328..8d9e1c8 100644
--- a/src/hnbgw_hnbap.c
+++ b/src/hnbgw_hnbap.c
@@ -4,6 +4,8 @@
#include <unistd.h>
#include <string.h>
+#include "asn1helpers.h"
+
#include "hnbap.h"
#include "hnbgw.h"
#include "hnbap_const.h"
@@ -43,30 +45,6 @@ static void *find_ie(const struct ProtocolIE_Container_1 *cont, ProtocolIE_ID id
return NULL;
}
-static inline uint16_t asn1str_to_u16(ASN1String *as)
-{
- if (as->len < 2)
- return 0;
- else
- return *(uint16_t *)as->buf;
-}
-
-static inline uint8_t asn1str_to_u8(ASN1String *as)
-{
- if (as->len < 1)
- return 0;
- else
- return *(uint8_t *)as->buf;
-}
-
-static inline uint8_t asn1bitstr_to_u32(ASN1BitString *as)
-{
- if (as->len < 25)
- return 0;
- else
- return *(uint32_t *)as->buf;
-}
-
static int hnbgw_rx_hnb_register_req(struct hnb_context *ctx, struct HNBRegisterRequest *req)
{
HNB_Identity *identity =
@@ -86,7 +64,7 @@ static int hnbgw_rx_hnb_register_req(struct hnb_context *ctx, struct HNBRegister
return -1;
/* copy all identity parameters from the message to ctx */
- strncpy(ctx->identity_info, (const char *) identity->hNB_Identity_Info.buf,
+ asn1_strncpy(ctx->identity_info, &identity->hNB_Identity_Info,
sizeof(ctx->identity_info));
ctx->id.lac = asn1str_to_u16(lac);
ctx->id.sac = asn1str_to_u16(sac);