GNOME 2.22 will have a new API-incompatible version of libsoup. The first beta tarball release of libsoup 2.4 is now available on ftp.gnome.org (http://ftp.gnome.org/pub/GNOME/sources/libsoup/2.3/libsoup-2.3.0.1.tar.bz2).
I'm attaching a patch that makes libsyncml support either libsoup 2.2 or libsoup 2.4 (preferring 2.4 if both are available). It compiles but is completely untested, because I don't have anything to test it with...
Some notes on the patch:
- I've never used CMake before, I probably did the tests in an icky way
- smlTransportHttpClientFinalize was doing really wacky stuff. I changed it to just call soup_session_abort() (which means that if there are any pending requests, they will immediately finish and invoke _msgReceived with a status of SOUP_STATUS_CANCELLED), and updated _msgReceived accordingly. _msgReceived is probably leaking memory actually (env->data), but that was true before as well.
- SoupServer? has changed enough that I ended up having completely separate _server_callback() methods for 2.2 and 2.4. You might decide to try to clean that up a little...
- I added a FIXME to the 2.4 _server_callback(), which also applies to the 2.2 one: it causes a leak on both the client and server side. Someone needs to figure out what's actually going on there.
- AFAICT, smlTransportHttpServerFinalize was leaking the server. I uncommented the unref.
- I added a FIXME to smlTransportHttpServerSend() suggesting that setting the Accept header is probably a bug. Remove the comment or the code accordingly.