Yes, you must allocate with pkg, because at the end those chunks are
freed, once the new message is built. You can also look at how other
operations with data lumps are done inside the textops module.
On 11.06.19 14:44, Mojtaba wrote:
I assigned a const sdp string to it just for checking.
Does it matter
to allocate new memory for newbody?
On Tue, 11 Jun 2019, 15:22 Daniel-Constantin Mierla <miconda(a)gmail.com
<mailto:miconda@gmail.com> wrote:
Hello,
how do you set newbody.s and newbody.len?
Daniel
On 11.06.19 12:29, Mojtaba wrote:
Not yet, because it is under developing, i could
paste it here
right away.
{
.
.
.
body.s = get_body(msg);
if (body.s == 0) {
LM_ERR("failed to get the message body\n");
return -1;
}
body.len = msg->len - (int) (body.s - msg->buf);
// body.len = strlen(body.s);
if (body.len == 0) {
LM_DBG("message body has zero length\n");
return -1;
}
l = del_lump(msg, body.s - msg->buf, body.len, 0);
if (!l) {
LM_ERR("del_lump failed\n");
return -1;
}
if (!insert_new_lump_after(l, newbody.s, newbody.len, 0)) {
LM_ERR("insert_new_lump_after failed\n");
return -1;
}
}
I asked related issue in this regards in Kamailio developer forum,
before. let me paste it at below. The means of other_process
function
is above code.
In during developing new module in Kamailio, I encountered with
strange behaviour. I used htable module instead of linked list for
save some temporary data during call process.dependencies module to
save some information. the skeleton of my code is like thus:
if (SIP_REQUEST &METHOD_INVITE) {
insert_data_htable("some data");
other_process(msg);
}else if(SIP_REPLY){
get_data_htable("some data");
other_process(msg);
}
In other_process function i have some changes in msg's body with
message
lump.
But after i make first call in kamailio. The
kamailio was
crashed.What
is it's problem?
In additional if i comment either insert/get_data_htable function or
othet_process function, i dont have this issue.
With best regards.
On Tue, Jun 11, 2019 at 2:46 PM Daniel-Constantin Mierla
<miconda(a)gmail.com <mailto:miconda@gmail.com>> wrote:
> Hello,
>
> likely you didn't allocate the pointer inserted in data lump
list. Is
> the code using data lumps available to look
at on git?
>
> Cheers,
> Daniel
>
> On 11.06.19 12:01, Mojtaba wrote:
>> Hello,
>> What does this CRITICAL error mean?
>> Jun 11 05:48:13 debian8 /usr/local/sbin/kamailio[8468]: {1 1
INVITE
>>
Njg0MzNhMzJhOTY3MzQ3NmNlNWY0ODkzMTJmNTM1ZTk.} CRITICAL: <core>
>> [core/mem/q_malloc.c:486]: qm_free(): BUG: bad pointer
0xa3c188 (out
>> of memory block!) called from core:
core/data_lump.c:
free_lump(466) -
>> aborting
>>
>> I got it when i make new call during debugging new module in
Kamailio?
>> In module we have to change some
message's body with data_lump.
>> I asked relaed issue (strange behaviour while developing new
module)
>> in Kamailio developer forum
<sr-dev(a)lists.kamailio.org
<mailto:sr-dev@lists.kamailio.org>>
>> With Best Regards.
>>
> --
> Daniel-Constantin Mierla --
www.asipto.com <http://www.asipto.com>
>
www.twitter.com/miconda <http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
--
--Mojtaba Esfandiari.S
--
Daniel-Constantin Mierla --
www.asipto.com <http://www.asipto.com>
www.twitter.com/miconda <http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>