Maybe I 'am in over my head here, but I'll try anyway.
I have used Kannel for some years now and lately trying to get Mbuni
working
as well.
Mbuni, mbuni.org, is a MMS gateway for those who don't know it.
Using Kannel 1.4.1 stable version, released in the Gentoo portage
tree and
Mbuni 1.30 self compiled, leaves me with the same problem as anybody
else.
When using the mmsproxy in the this setup, it crashes every time it
enters
mm7dispatch.
From asking the Mbuni user mail list, the answer is a problem with
Kannel
1.4.1's gwlib.
I browsed their mail list archives and it seems to be a general
problem.
Now, I don't have the necessary skills to solve the problem, but I
can
provide some information for starts.
So I anybody involved in the development of Kannel will either "pick
up the
glove" or point towards a solution to this problem, many Mbuni users
will be
affected.
I have pasted some mbuni-mmsc log lines and a part of the Kannel
gwlib/octstr.c file below
Thank you!
/Nis
Mbuni-mmsc log
--------------
DEBUG: --> Enterred mm7dispatch interface, mreq=[Ok]
mtype=[SubmitReq] <--
PANIC: gwlib/octstr.c:2447: seems_valid_real: Assertion `ostr !=
NULL'
failed. (Called from gwlib/octstr.c:661:octstr_base64_to_binary.)
PANIC: gwlib/octstr.c:2447: seems_valid_real: Assertion `ostr !=
NULL'
failed. (Called from gwlib/octstr.c:661:octstr_base64_to_binary.)
PANIC: /usr/local/bin/mmsproxy(gw_panic+0x101) [0x808e8e1]
PANIC: /usr/local/bin/mmsproxy [0x8091855]
PANIC: /usr/local/bin/mmsproxy(octstr_base64_to_binary+0x25)
[0x8092d75]
PANIC: /usr/local/bin/mmsproxy(unbase64_mimeparts+0x100) [0x806f9e0]
PANIC: /usr/local/bin/mmsproxy(mms_frommime+0x72) [0x80624d2]
PANIC: /usr/local/bin/mmsproxy(mm7_soap_to_mmsmsg+0x1ab) [0x8072cdb]
PANIC: /usr/local/bin/mmsproxy [0x805b05b]
PANIC: /usr/local/bin/mmsproxy [0x8085b80]
PANIC: /lib/libpthread.so.0 [0xb7c9d18b]
PANIC: /lib/libc.so.6(clone+0x5e) [0xb7a9804e]
gwlib/octstr.c
--------------
static void seems_valid_real(const Octstr *ostr, const char
*filename, long
lineno,
const char *function) {
gw_assert(immutables_init);
gw_assert_place(ostr != NULL, ( !!! LINE 2447 !!! )
filename, lineno, function);
gw_assert_allocated(ostr,
filename, lineno, function);
gw_assert_place(ostr->len >= 0,
filename, lineno, function);
gw_assert_place(ostr->size >= 0,
filename, lineno, function);
if (ostr->size == 0) {
gw_assert_place(ostr->len == 0,
filename, lineno, function);
gw_assert_place(ostr->data == NULL,
filename, lineno, function);
} else {
gw_assert_place(ostr->len + 1 <= ostr->size,
filename, lineno, function);
gw_assert_place(ostr->data != NULL,
filename, lineno, function);
if (!ostr->immutable)
gw_assert_allocated(ostr->data,
filename, lineno, function);
gw_assert_place(ostr->data[ostr->len] == '\0',
filename, lineno, function);
}
}