<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13562">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">smpp: Make libsmpp34 use talloc for its allocations<br><br>We are just introducing smpp34_set_memory_functions() in libsmpp34<br>to allow applications like OsmoMSC to provide their own heap allocator<br>callback functions.  Let's used this to integrate with talloc and<br>hence allow talloc tracking/debugging for libsmpp34 internal<br>allocations.<br><br>Depends: libsmpp34 Change-Id I3656117115e89638c093bfbcbc4369ce302f7a94<br>Change-Id: Ie2725ffab6a225813e65768735f01678e2022128<br>Related: OS#3913<br>---<br>M src/libmsc/smpp_openbsc.c<br>1 file changed, 27 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/62/13562/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c</span><br><span>index 9156445..b80b473 100644</span><br><span>--- a/src/libmsc/smpp_openbsc.c</span><br><span>+++ b/src/libmsc/smpp_openbsc.c</span><br><span>@@ -28,6 +28,7 @@</span><br><span> #include <smpp34.h></span><br><span> #include <smpp34_structs.h></span><br><span> #include <smpp34_params.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <smpp34_heap.h></span><br><span> </span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/core/msgb.h></span><br><span>@@ -48,6 +49,31 @@</span><br><span> </span><br><span> #include "smpp_smsc.h"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* talloc integration for libsmpp34 */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static struct smsc *g_smsc;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void *smpp34_talloc_malloc(size_t sz)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      return talloc_size(g_smsc, sz);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void *smpp34_talloc_realloc(void *ptr, size_t sz)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     return talloc_realloc_size(g_smsc, ptr, sz);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void smpp34_talloc_free(void *ptr)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       talloc_free(ptr);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static const struct smpp34_memory_functions smpp34_talloc = {</span><br><span style="color: hsl(120, 100%, 40%);">+ .malloc_fun = smpp34_talloc_malloc,</span><br><span style="color: hsl(120, 100%, 40%);">+   .realloc_fun = smpp34_talloc_realloc,</span><br><span style="color: hsl(120, 100%, 40%);">+ .free_fun = smpp34_talloc_free,</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! \brief find vlr_subscr for a given SMPP NPI/TON/Address */</span><br><span> static struct vlr_subscr *subscr_by_dst(struct gsm_network *net,</span><br><span>                                      uint8_t npi, uint8_t ton,</span><br><span>@@ -739,8 +765,6 @@</span><br><span>                          deliver.sequence_number);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct smsc *g_smsc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> int smpp_route_smpp_first(struct gsm_sms *sms, struct ran_conn *conn)</span><br><span> {</span><br><span>  return g_smsc->smpp_first;</span><br><span>@@ -779,6 +803,7 @@</span><br><span>          LOGP(DSMPP, LOGL_FATAL, "Cannot allocate smsc struct\n");</span><br><span>          return -1;</span><br><span>   }</span><br><span style="color: hsl(120, 100%, 40%);">+     smpp34_set_memory_functions(&smpp34_talloc);</span><br><span>     return smpp_vty_init();</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13562">change 13562</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13562"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie2725ffab6a225813e65768735f01678e2022128 </div>
<div style="display:none"> Gerrit-Change-Number: 13562 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>