lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/38930?usp=email )
Change subject: gtp_new(): use talloc instead of calloc/free ......................................................................
gtp_new(): use talloc instead of calloc/free
Required for SGSN Context Req fsm which is using talloc.
Change-Id: I7c4a29c4bb1ef3c7bf506e59e99b3a804cabe34b --- M gtp/gsn.c M gtp/gsn_internal.h 2 files changed, 11 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/30/38930/1
diff --git a/gtp/gsn.c b/gtp/gsn.c index 612baf2..b620279 100644 --- a/gtp/gsn.c +++ b/gtp/gsn.c @@ -116,6 +116,8 @@ {} };
+void *tall_gsn_ctx; +
/* API Functions */
@@ -466,7 +468,7 @@ { LOGP(DLGTP, LOGL_NOTICE, "GTP: gtp_newgsn() started at %s\n", inet_ntoa(*listen));
- *gsn = calloc(sizeof(struct gsn_t), 1); /* TODO */ + *gsn = talloc_zero(tall_gsn_ctx, struct gsn_t);
(*gsn)->statedir = statedir; log_restart(*gsn); @@ -551,7 +553,7 @@
rate_ctr_group_free(gsn->ctrg);
- free(gsn); + talloc_free(gsn); return 0; }
@@ -584,3 +586,8 @@ /* dummy API, deprecated. Return a huge timer to do nothing */ return 0; } + +static __attribute__((constructor)) void gtp_talloc_init(void) +{ + tall_gsn_ctx = talloc_named_const(NULL, 0, "libgtp"); +} diff --git a/gtp/gsn_internal.h b/gtp/gsn_internal.h index deb60c3..860d37b 100644 --- a/gtp/gsn_internal.h +++ b/gtp/gsn_internal.h @@ -1,3 +1,5 @@ #pragma once
+extern void *tall_gsn_ctx; + void gtp_queue_timer_start(struct gsn_t *gsn);