aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hnbgw.c2
-rw-r--r--src/hnbgw_hnbap.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/hnbgw.c b/src/hnbgw.c
index 3f94a01..dea5c5a 100644
--- a/src/hnbgw.c
+++ b/src/hnbgw.c
@@ -287,7 +287,7 @@ struct hnb_context *hnb_context_alloc(struct hnb_gw *gw, struct osmo_stream_srv_
ctx->gw = gw;
ctx->conn = osmo_stream_srv_create(tall_hnb_ctx, link, new_fd, hnb_read_cb, NULL, ctx);
- if (!ctx->conn) {
+ if (!ctx->conn || (ctx->hnb_register_attempted && !ctx->hnb_registered)) {
LOGP(DMAIN, LOGL_INFO, "error while creating connection\n");
talloc_free(ctx);
return NULL;
diff --git a/src/hnbgw_hnbap.c b/src/hnbgw_hnbap.c
index 142b0d5..737536b 100644
--- a/src/hnbgw_hnbap.c
+++ b/src/hnbgw_hnbap.c
@@ -417,6 +417,8 @@ static int hnbgw_rx_hnb_register_req(struct hnb_context *ctx, ANY_t *in)
HNBRegisterRequestIEs_t ies;
int rc;
+ ctx->hnb_register_attempted = true;
+
rc = hnbap_decode_hnbregisterrequesties(&ies, in);
if (rc < 0) {
LOGP(DHNBAP, LOGL_ERROR, "Failure to decode HNB-REGISTER-REQ from %s: rc=%d\n",