On Mon, Dec 8, 2008 at 5:28 AM, Vadim Lebedev <[EMAIL PROTECTED]> wrote:
> Unfortunately we don't have here 64 bit env available, so could you please
> run it under debugger and examine some local vars?
>
> Or if it is possible i can login remotely and try to debug myself
Unfortunately I am doing in my laptop, so I have no remotely accessible system.
However I had some time to debug and figured out the problem.
It is a bug of libpurple, still present also in the latest stable
release of libpurple. This happens only on 64-bit *and* when
HAVE_GETADDRINFO is *not* defined.
1) The bug can be solved with the attached patch
libpurple-dnsquery.patch (which I am going to submit to libpurple
developers)
2) However I think we should have HAVE_GETADDRINFO defined (attached
patch libpurple_HAVE_GETADDRINFO.patch). Are we building qutecom on
unix environment where we do not have getaddrinfo()? Mac OS X?
Actually it would be better to have it detected at runtime... Do
anybody know how to do that with cmake?
3) Is the version of libpurple beging used a verbatim inclusion from
the upstream release? Would there be any problem in using the system
libpurple shared library? If you think it would be ok I could write
the patch for that.
Thanks,
Ludovico
Index: qutecom-2.2/libs/3rdparty/libpurple/pidgin-2.5.1/libpurple/dnsquery.c
===================================================================
--- qutecom-2.2.orig/libs/3rdparty/libpurple/pidgin-2.5.1/libpurple/dnsquery.c 2008-12-09 03:11:29.000000000 +0000
+++ qutecom-2.2/libs/3rdparty/libpurple/pidgin-2.5.1/libpurple/dnsquery.c 2008-12-09 03:11:33.000000000 +0000
@@ -185,6 +185,7 @@
{
dns_params_t dns_params;
const size_t zero = 0;
+ const int zero_int = 0;
int rc;
#ifdef HAVE_GETADDRINFO
struct addrinfo hints, *res, *tmp;
@@ -289,7 +290,7 @@
sin.sin_family = AF_INET;
sin.sin_port = htons(dns_params.port);
- write_to_parent(child_out, &zero, sizeof(zero));
+ write_to_parent(child_out, &zero_int, sizeof(zero_int));
write_to_parent(child_out, &addrlen, sizeof(addrlen));
write_to_parent(child_out, &sin, addrlen);
write_to_parent(child_out, &zero, sizeof(zero));
Index: qutecom-2.2/libs/3rdparty/libpurple/CMakeLists-unix.txt
===================================================================
--- qutecom-2.2.orig/libs/3rdparty/libpurple/CMakeLists-unix.txt 2008-12-09 03:16:15.000000000 +0000
+++ qutecom-2.2/libs/3rdparty/libpurple/CMakeLists-unix.txt 2008-12-09 03:16:31.000000000 +0000
@@ -34,6 +34,7 @@
-DHAVE_SSL
-DHAVE_GNUTLS
-DHAVE_OPENSSL
+ -DHAVE_GETADDRINFO
-DDATADIR=\\\\\\\\\\\\\\\\\\\\\"$(datadir)\\\\\\\\\\\\\\\\\\\\\"
-DLOCALEDIR=\\\\\\\\\\\\\\\\\\\\\"$(datadir)/locale\\\\\\\\\\\\\\\\\\\\\"
-DLIBDIR=\\\\\\\\\\\\\\\\\\\\\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)\\\\\\\\\\\\\\\\\\\\\"
_______________________________________________
QuteCom-dev mailing list
[email protected]
http://lists.qutecom.org/mailman/listinfo/qutecom-dev