sndcp: Allow cb users taking ownership of primitives

Change-Id: Ie3ddc835d8393e934d3f357108c81f639247c485
This commit is contained in:
Pau Espin 2023-05-03 13:23:53 +02:00
parent dbb588df52
commit 1352cae927
1 changed files with 12 additions and 3 deletions

View File

@ -304,7 +304,10 @@ int gprs_sndcp_prim_call_up_cb(struct osmo_gprs_sndcp_prim *sndcp_prim)
rc = g_sndcp_ctx->sndcp_up_cb(sndcp_prim, g_sndcp_ctx->sndcp_up_cb_user_data);
else
rc = sndcp_up_cb_dummy(sndcp_prim, g_sndcp_ctx->sndcp_up_cb_user_data);
msgb_free(sndcp_prim->oph.msg);
if (rc != 1)
msgb_free(sndcp_prim->oph.msg);
else
rc = 0;
return rc;
}
@ -443,7 +446,10 @@ int gprs_sndcp_prim_call_down_cb(struct osmo_gprs_llc_prim *llc_prim)
rc = g_sndcp_ctx->sndcp_down_cb(llc_prim, g_sndcp_ctx->sndcp_down_cb_user_data);
else
rc = sndcp_down_cb_dummy(llc_prim, g_sndcp_ctx->sndcp_down_cb_user_data);
msgb_free(llc_prim->oph.msg);
if (rc != 1)
msgb_free(llc_prim->oph.msg);
else
rc = 0;
return rc;
}
@ -581,7 +587,10 @@ int gprs_sndcp_prim_call_snsm_cb(struct osmo_gprs_sndcp_prim *sndcp_prim)
rc = g_sndcp_ctx->sndcp_snsm_cb(sndcp_prim, g_sndcp_ctx->sndcp_snsm_cb_user_data);
else
rc = sndcp_snsm_cb_dummy(sndcp_prim, g_sndcp_ctx->sndcp_snsm_cb_user_data);
msgb_free(sndcp_prim->oph.msg);
if (rc != 1)
msgb_free(sndcp_prim->oph.msg);
else
rc = 0;
return rc;
}