Re: Kannel crashes sendsms in emi2 and dlrmask=7
Andreas Fink <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
On Montag, Dezember 2, 2002, at 07:05 Uhr, Stipe Tolj wrote:
> Andreas Fink schrieb:
>>
>> On Montag, Dezember 2, 2002, at 06:25 Uhr, Stipe Tolj wrote:
>>
>> João Miranda schrieb:
>>
>> My RDBMS is Oracle, and it seems to me that the operation
>> is list_lock().
>>
>> have you located at which position in Kannel's code this
>> happens?!
>>
>> I have a slightly modified version of Kannel's gwlib which modifies a
>> lot of kannel gwlib calls with macro's passing the location where
>> they are called from so debug calls will show the real place, not the
>> one in gwlib. Nowadays its often not very helpful to know that
>> octstr_xxx function has an assert without knowing which calling
>> functions did the "bad" thing like modifying an octstr which is NULL
>> etc.
>
> so why didn't you post a patch?! :))
Its not a patch, its a modified version of the gwlib directory which
was copied out from the kannel cvs which I use in one of my own
projects. I've put my current version on
http://www.fink.org/gwlib-modif.tar.gz.
You can not simply copy it over to run with it and some very recent
changes in gwlib might also not be in it.
What did I do? Here's an example to give you the idea:
before:
in octstr.h
char *octstr_get_cstr(Octstr *ostr)
replaced with something like this:
char *octstr_get_cstr_real(Octstr *ostr, const char *file, long line,
const char *func);
#define octstr_get_cstr(ostr) (octstr_get_cstr_real(ostr, __FILE__,
__LINE__, __func__))
in octstr.c:
changed function octstr_get_cstr to:
char *octstr_get_cstr_real(Octstr *ostr, const char *file, long line,
const char *func)
{
if (!ostr)
return "(null)";
seems_valid_real(ostr, file, line, func);
if (ostr->len == 0)
return "";
return ostr->data;
}
seems_valid_real is a modified version of seems_valid which points out
the called locations etc.
Basically all important functions pass along the calling locations from
the place the original macro is called from.
Most functions of octstr are done this way as well as a few list
functions. The biggest problem is octstr_format and
octstr_format_append.
Andreas Fink
Global Networks Switzerland AG
------------------------------------------------------------------
Tel: +41-61-6666333 Fax: +41-61-6666334 Mobile: +41-79-2457333
Global Networks, Inc. Clarastrasse 3, 4058 Basel, Switzerland
Web: http://www.global-networks.ch/ [email protected]
------------------------------------------------------------------
Member of the GSM Association
Andreas Fink
Global Networks Switzerland AG
------------------------------------------------------------------
Tel: +41-61-6666333 Fax: +41-61-6666334 Mobile: +41-79-2457333
Global Networks, Inc. Clarastrasse 3, 4058 Basel, Switzerland
Web: http://www.global-networks.ch/ [email protected]
------------------------------------------------------------------
Member of the GSM Association