Re: soup, glib2/libxml2

Michael Rothwell <[email protected]> 27 Aug 2002 22:45:31 -0400
Newsgroups gmane.comp.gnome.ximian.soup
Message-ID <[email protected]>
On Tue, 2002-08-27 at 21:10, Michael Rothwell wrote:
> version of soup that uses glib2 and libxml2? If not, is one planned?

Well, I fiddled with the source code a little, and built soap with
libxml2 and glib2. Patch attached. tests/simple-test works.
tests/stress-test seems to work. Everything else segfaults.

I ran server-test inside gdb, and telnetted to its port. I typed
"<hello>hello</hello>" and hit enter twice. Here's a backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x4206de1c in _int_free () from /lib/i686/libc.so.6
(gdb) bt
#0  0x4206de1c in _int_free () from /lib/i686/libc.so.6
#1  0x4206e89c in free () from /lib/i686/libc.so.6
#2  0x4007fdc4 in g_free () from /usr/lib/libglib-2.0.so.0
#3  0x40040b11 in destroy_message (msg=0x80542e0) at soup-server.c:252
#4  0x40040fb8 in read_headers_cb (headers=0x400488ed,
encoding=0x8054478,
    content_len=0x805447c, user_data=0x80542e0) at soup-server.c:534
#5  0x4004642a in soup_transfer_read_cb (iochannel=0x8054400,
condition=G_IO_IN,
    r=0x8054458) at soup-transfer.c:513
#6  0x4009b2ef in g_io_unix_dispatch () from /usr/lib/libglib-2.0.so.0
#7  0x40079e85 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#8  0x4007aeb8 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#9  0x4007b1cd in g_main_context_iterate () from
/usr/lib/libglib-2.0.so.0
#10 0x4007b93f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#11 0x40041af5 in soup_server_run (server=0x804a260) at
soup-server.c:1095
#12 0x08048ee7 in main (argc=1, argv=0xbffff8e4) at server-test.c:244
#13 0x42016664 in __libc_start_main () from /lib/i686/libc.so.6


-- 
Michael Rothwell
e: rothwell at holly-springs.nc.us
k: http://www.rothwells.info/rothwell-public-key.txt
2patch.diff (text/plain, 6.1 KB)
? 2patch.diff
? autom4te-2.53.cache
? stamp-h1
Index: configure.in
===================================================================
RCS file: /cvs/gnome/soup/configure.in,v
retrieving revision 1.57
diff -u -r1.57 configure.in
--- configure.in	12 Mar 2002 00:38:47 -0000	1.57
+++ configure.in	28 Aug 2002 02:42:32 -0000
@@ -74,9 +74,12 @@
 AM_PATH_GLIB(1.2.0,,
              AC_MSG_ERROR([Cannot find GLIB: Is glib-config in path?]))
 
-GLIB_CFLAGS=`glib-config --cflags glib`
-GLIB_LIBS=`glib-config --libs glib`
-GMODULE_LIBS=`glib-config --libs gmodule`
+#GLIB_CFLAGS=`glib-config --cflags glib`
+#GLIB_LIBS=`glib-config --libs glib`
+#GMODULE_LIBS=`glib-config --libs gmodule`
+GLIB_CFLAGS=`pkg-config glib-2.0 glib --cflags`
+GLIB_LIBS=`pkg-config glib-2.0 --libs`
+GMODULE_LIBS=`pkg-config glib-2.0 gmodule --libs`
 
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
Index: src/libsoup/soup-dav-server.c
===================================================================
RCS file: /cvs/gnome/soup/src/libsoup/soup-dav-server.c,v
retrieving revision 1.11
diff -u -r1.11 soup-dav-server.c
--- src/libsoup/soup-dav-server.c	12 Mar 2002 00:38:58 -0000	1.11
+++ src/libsoup/soup-dav-server.c	28 Aug 2002 02:42:34 -0000
@@ -11,9 +11,9 @@
 #include <ctype.h>
 #include <glib.h>
 #include <string.h>
-#include <tree.h>
-#include <parser.h>
-#include <xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/xmlmemory.h>
 
 #include "soup-dav.h"
 #include "soup-dav-server.h"
Index: src/libsoup/soup-parser.c
===================================================================
RCS file: /cvs/gnome/soup/src/libsoup/soup-parser.c,v
retrieving revision 1.7
diff -u -r1.7 soup-parser.c
--- src/libsoup/soup-parser.c	15 Jun 2001 14:17:45 -0000	1.7
+++ src/libsoup/soup-parser.c	28 Aug 2002 02:42:34 -0000
@@ -9,7 +9,7 @@
  */
 
 #include <string.h>
-#include <parser.h>
+#include <libxml/parser.h>
 
 #include "soup-parser.h"
 
Index: src/libsoup/soup-serializer.h
===================================================================
RCS file: /cvs/gnome/soup/src/libsoup/soup-serializer.h,v
retrieving revision 1.11
diff -u -r1.11 soup-serializer.h
--- src/libsoup/soup-serializer.h	14 Sep 2001 23:53:16 -0000	1.11
+++ src/libsoup/soup-serializer.h	28 Aug 2002 02:42:34 -0000
@@ -13,7 +13,7 @@
 
 #include <time.h>
 #include <glib.h>
-#include <tree.h>
+#include <libxml/tree.h>
 
 #include <libsoup/soup-message.h>
 
Index: src/libwsdl/wsdl-schema-glib.c
===================================================================
RCS file: /cvs/gnome/soup/src/libwsdl/wsdl-schema-glib.c,v
retrieving revision 1.6
diff -u -r1.6 wsdl-schema-glib.c
--- src/libwsdl/wsdl-schema-glib.c	27 Aug 2001 01:38:53 -0000	1.6
+++ src/libwsdl/wsdl-schema-glib.c	28 Aug 2002 02:42:35 -0000
@@ -12,7 +12,7 @@
 #include <glib.h>
 #include <string.h>
 
-#include <tree.h>
+#include <libxml/tree.h>
 
 #include "wsdl-schema.h"
 #include "wsdl-schema-glib.h"
Index: src/libwsdl/wsdl-schema-glib.h
===================================================================
RCS file: /cvs/gnome/soup/src/libwsdl/wsdl-schema-glib.h,v
retrieving revision 1.7
diff -u -r1.7 wsdl-schema-glib.h
--- src/libwsdl/wsdl-schema-glib.h	29 Aug 2001 23:01:36 -0000	1.7
+++ src/libwsdl/wsdl-schema-glib.h	28 Aug 2002 02:42:35 -0000
@@ -13,7 +13,7 @@
 #define _WSDL_SCHEMA_GLIB_H_
 
 #include <glib.h>
-#include <tree.h>
+#include <libxml/tree.h>
 #include <libwsdl/wsdl-typecodes.h>
 
 void wsdl_schema_glib_start_element (const xmlDocPtr    doc,
Index: src/libwsdl/wsdl-schema.c
===================================================================
RCS file: /cvs/gnome/soup/src/libwsdl/wsdl-schema.c,v
retrieving revision 1.6
diff -u -r1.6 wsdl-schema.c
--- src/libwsdl/wsdl-schema.c	27 Aug 2001 01:38:53 -0000	1.6
+++ src/libwsdl/wsdl-schema.c	28 Aug 2002 02:42:35 -0000
@@ -12,7 +12,7 @@
 #include <glib.h>
 #include <string.h>
 
-#include <tree.h>
+#include <libxml/tree.h>
 
 #include "wsdl-schema.h"
 #include "wsdl-schema-glib.h"
Index: src/libwsdl/wsdl-schema.h
===================================================================
RCS file: /cvs/gnome/soup/src/libwsdl/wsdl-schema.h,v
retrieving revision 1.6
diff -u -r1.6 wsdl-schema.h
--- src/libwsdl/wsdl-schema.h	27 Aug 2001 01:38:53 -0000	1.6
+++ src/libwsdl/wsdl-schema.h	28 Aug 2002 02:42:35 -0000
@@ -13,7 +13,7 @@
 #define _WSDL_SCHEMA_H_
 
 #include <glib.h>
-#include <tree.h>
+#include <libxml/tree.h>
 
 #define WSDLNS "http://schemas.xmlsoap.org/wsdl/"
 #define SOAPNS "http://schemas.xmlsoap.org/wsdl/soap/"
Index: src/libwsdl/wsdl-soap-parse.c
===================================================================
RCS file: /cvs/gnome/soup/src/libwsdl/wsdl-soap-parse.c,v
retrieving revision 1.18
diff -u -r1.18 wsdl-soap-parse.c
--- src/libwsdl/wsdl-soap-parse.c	13 Mar 2002 10:29:04 -0000	1.18
+++ src/libwsdl/wsdl-soap-parse.c	28 Aug 2002 02:42:35 -0000
@@ -11,9 +11,9 @@
 #include <glib.h>
 #include <string.h>
 #include <stdlib.h>
-#include <tree.h>
-#include <parser.h>
-#include <xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/xmlmemory.h>
 
 #include <libsoup/soup-parser.h>
 
Index: src/soup-wsdl/wsdl-parse.c
===================================================================
RCS file: /cvs/gnome/soup/src/soup-wsdl/wsdl-parse.c,v
retrieving revision 1.16
diff -u -r1.16 wsdl-parse.c
--- src/soup-wsdl/wsdl-parse.c	14 Sep 2001 23:53:17 -0000	1.16
+++ src/soup-wsdl/wsdl-parse.c	28 Aug 2002 02:42:37 -0000
@@ -11,9 +11,9 @@
 #include <glib.h>
 #include <string.h>
 #include <stdlib.h>
-#include <parser.h>
-#include <parserInternals.h>
-#include <xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xmlmemory.h>
 
 #include <libwsdl/wsdl-schema.h>
 
Index: src/soup-wsdl/wsdl-parse.h
===================================================================
RCS file: /cvs/gnome/soup/src/soup-wsdl/wsdl-parse.h,v
retrieving revision 1.11
diff -u -r1.11 wsdl-parse.h
--- src/soup-wsdl/wsdl-parse.h	29 Aug 2001 23:01:39 -0000	1.11
+++ src/soup-wsdl/wsdl-parse.h	28 Aug 2002 02:42:37 -0000
@@ -12,7 +12,7 @@
 #define _WSDL_PARSE_H_
 
 #include <glib.h>
-#include <tree.h>
+#include <libxml/tree.h>
 
 #include <libwsdl/wsdl-typecodes.h>
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQA9bDlKq9YwRBS9+sQRAgS3AKCaXji1PqTBRckB7j+jgqOL6gM8hwCgsqwl
iak4wUy2kpbt/njT74ChM9Q=
=bB/C
-----END PGP SIGNATURE-----