1 diff -up bmpx-0.40.13/configure.ac.libsoup24 bmpx-0.40.13/configure.ac
2 --- bmpx-0.40.13/configure.ac.libsoup24 2007-10-18 19:17:17.000000000 +0200
3 +++ bmpx-0.40.13/configure.ac 2008-02-15 20:26:58.000000000 +0100
4 @@ -240,8 +240,7 @@ AC_ARG_WITH([pkgconfig-dir],
5 AC_SUBST([pkgconfigdir])
8 -PKG_CHECK_MODULES([SOUP], [libsoup-2.2 >= 2.2.100])
9 -BMP_CHECK_SOUP_EXTERN_C
10 +PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.3.0.1])
13 PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.3])
14 diff -up bmpx-0.40.13/sentinel/beep-media-player-2-sentinel.cc.libsoup24 bmpx-0.40.13/sentinel/beep-media-player-2-sentinel.cc
15 --- bmpx-0.40.13/sentinel/beep-media-player-2-sentinel.cc.libsoup24 2007-10-18 19:17:06.000000000 +0200
16 +++ bmpx-0.40.13/sentinel/beep-media-player-2-sentinel.cc 2008-02-15 20:26:58.000000000 +0100
18 #include <bmp/dbus.hh>
19 #include <src/paths.hh>
21 -#ifndef LIBSOUP_HAS_EXTERN_C
24 #include <libsoup/soup.h>
25 -#ifndef LIBSOUP_HAS_EXTERN_C
29 #define SERVER_NAME "beep-media-player.org"
31 diff -up bmpx-0.40.13/src/minisoup.hh.libsoup24 bmpx-0.40.13/src/minisoup.hh
32 --- bmpx-0.40.13/src/minisoup.hh.libsoup24 2007-10-18 19:17:08.000000000 +0200
33 +++ bmpx-0.40.13/src/minisoup.hh 2008-02-15 20:26:58.000000000 +0100
38 -#ifndef LIBSOUP_HAS_EXTERN_C
40 -# include <libsoup/soup.h>
43 -# include <libsoup/soup.h>
44 -#endif // !LIBSOUP_HAS_EXTERN_C
45 +#include <libsoup/soup.h>
49 @@ -111,7 +105,7 @@ namespace Bmp
50 restarted (SoupMessage* /*message*/, gpointer /*data*/);
53 - got_chunk (SoupMessage* /*message*/, gpointer /*data*/);
54 + got_chunk (SoupMessage* /*message*/, SoupBuffer* /*chunk*/, gpointer /*data*/);
57 got_content_length (SoupMessage* /*message*/, gpointer /*data*/);
58 @@ -161,7 +155,7 @@ namespace Bmp
59 restarted (SoupMessage* /*message*/, gpointer /*data*/);
62 - got_answer (SoupMessage* /*message*/, gpointer /*data*/);
63 + got_answer (SoupSession* /*session*/, SoupMessage* /*message*/, gpointer /*data*/);
67 @@ -224,10 +218,10 @@ namespace Bmp
68 restarted (SoupMessage* /*message*/, gpointer /*data*/);
71 - got_answer (SoupMessage* /*message*/, gpointer /*data*/);
72 + got_answer (SoupSession* /*session*/, SoupMessage* /*message*/, gpointer /*data*/);
75 - got_chunk (SoupMessage* /*message*/, gpointer /*data*/);
76 + got_chunk (SoupMessage* /*message*/, SoupBuffer* /*chunk*/, gpointer /*data*/);
79 got_content_length (SoupMessage* /*message*/, gpointer /*data*/);
80 diff -up bmpx-0.40.13/src/minisoup.cc.libsoup24 bmpx-0.40.13/src/minisoup.cc
81 --- bmpx-0.40.13/src/minisoup.cc.libsoup24 2007-10-18 19:17:08.000000000 +0200
82 +++ bmpx-0.40.13/src/minisoup.cc 2008-02-15 20:26:58.000000000 +0100
83 @@ -60,8 +60,8 @@ namespace Bmp
85 g_signal_connect (G_OBJECT (m_message), "got-chunk", G_CALLBACK (got_chunk), this);
86 g_signal_connect (G_OBJECT (m_message), "restarted", G_CALLBACK (restarted), this);
87 - soup_message_add_header_handler (m_message, "content-length", SOUP_HANDLER_PRE_BODY,
88 - SoupMessageCallbackFn (got_content_length), this);
89 + soup_message_add_header_handler (m_message, "got-headers", "content-length",
90 + G_CALLBACK (got_content_length), this);
91 return soup_session_send_message (m_session, m_message);
94 @@ -75,26 +75,26 @@ namespace Bmp
95 RequestSync::get_data ()
98 - buffer.append (m_message->response.body, m_message->response.length);
99 + buffer.append (m_message->response_body->data, m_message->response_body->length);
104 RequestSync::get_data (std::string & buffer)
106 - buffer.append (m_message->response.body, m_message->response.length);
107 + buffer.append (m_message->response_body->data, m_message->response_body->length);
111 RequestSync::get_data_raw ()
113 - return m_message->response.body;
114 + return m_message->response_body->data;
118 RequestSync::get_data_size ()
120 - return m_message->response.length;
121 + return m_message->response_body->length;
125 @@ -102,15 +102,15 @@ namespace Bmp
126 RequestSync::add_header (std::string const& name,
127 std::string const& value)
129 - soup_message_add_header (m_message->request_headers, name.c_str(), value.c_str());
130 + soup_message_headers_append (m_message->request_headers, name.c_str(), value.c_str());
134 RequestSync::add_request (std::string const& type,
135 std::string const& request)
137 - soup_message_set_request (m_message, type.c_str(), SOUP_BUFFER_SYSTEM_OWNED /* we can't rely on the std::string not being destroyed */,
138 - g_strdup (const_cast<char*>(request.c_str())), strlen (request.c_str()));
139 + soup_message_set_request (m_message, type.c_str(), SOUP_MEMORY_COPY,
140 + request.c_str(), strlen (request.c_str()));
144 @@ -125,11 +125,11 @@ namespace Bmp
148 - RequestSync::got_chunk (SoupMessage* message, gpointer data)
149 + RequestSync::got_chunk (SoupMessage* message, SoupBuffer* chunk, gpointer data)
151 RequestSync & request = (*(reinterpret_cast<RequestSync*>(data)));
153 - request.m_read += message->response.length;
154 + request.m_read += chunk->length;
155 double percent = (double (request.m_read) / double (request.m_size));
156 if(percent >= 0. && percent <= 1.)
158 @@ -141,7 +141,7 @@ namespace Bmp
159 RequestSync::got_content_length (SoupMessage* message, gpointer data)
161 RequestSync & request = (*(reinterpret_cast<RequestSync*>(data)));
162 - request.m_size = g_ascii_strtoull (soup_message_get_header (message->response_headers, "content-length"), NULL, 10);
163 + request.m_size = soup_message_headers_get_content_length (message->response_headers);
167 @@ -180,17 +180,17 @@ namespace Bmp
168 return m_message->status_code;
172 - Request::message_status ()
174 - return m_message->status;
177 + //Request::message_status ()
179 + // return m_message->status;
185 g_signal_connect (G_OBJECT (m_message), "restarted", G_CALLBACK (restarted), this);
186 - soup_session_queue_message (m_session, m_message, SoupMessageCallbackFn (got_answer), this);
187 + soup_session_queue_message (m_session, m_message, SoupSessionCallback (got_answer), this);
191 @@ -199,9 +199,6 @@ namespace Bmp
192 if (G_IS_OBJECT(m_session))
194 soup_session_abort (m_session);
195 - //soup_message_set_status (m_message, SOUP_STATUS_CANCELLED);
196 - //soup_session_cancel_message (m_session, m_message);
201 @@ -210,15 +207,15 @@ namespace Bmp
202 Request::add_header (std::string const& name,
203 std::string const& value)
205 - soup_message_add_header (m_message->request_headers, name.c_str(), value.c_str());
206 + soup_message_headers_append (m_message->request_headers, name.c_str(), value.c_str());
210 Request::add_request (std::string const& type,
211 std::string const& request)
213 - soup_message_set_request (m_message, type.c_str(), SOUP_BUFFER_SYSTEM_OWNED /* we can't rely on the std::string not being destroyed */,
214 - g_strdup (const_cast<char*>(request.c_str())), strlen (request.c_str()));
215 + soup_message_set_request (m_message, type.c_str(), SOUP_MEMORY_COPY,
216 + request.c_str(), strlen (request.c_str()));
220 @@ -230,7 +227,7 @@ namespace Bmp
224 - Request::got_answer (SoupMessage* message, gpointer data)
225 + Request::got_answer (SoupSession* session, SoupMessage* message, gpointer data)
227 Request & request = (*(reinterpret_cast<Request*>(data)));
229 @@ -241,15 +238,12 @@ namespace Bmp
233 - if( request.m_message->status != SOUP_MESSAGE_STATUS_FINISHED )
236 //if( request.m_message->status_code == SOUP_STATUS_CANCELLED )
239 request.Signals.Callback.emit(
240 - request.m_message->response.body,
241 - request.m_message->response.length,
242 + request.m_message->response_body->data,
243 + request.m_message->response_body->length,
244 request.m_message->status_code
247 @@ -269,6 +263,7 @@ namespace Bmp
249 m_session = soup_session_async_new ();
250 m_message = soup_message_new ("GET", m_url.c_str());
251 + soup_message_set_flags (m_message, SOUP_MESSAGE_OVERWRITE_CHUNKS);
254 Glib::RefPtr<RequestFile>
255 @@ -279,9 +274,9 @@ namespace Bmp
257 RequestFile::~RequestFile ()
259 - if (G_IS_OBJECT(m_message) && m_message->status == SOUP_MESSAGE_STATUS_RUNNING)
260 + if (m_file.is_open())
264 Signals.Aborted.emit ((boost::format (_("Download of file '%s' was cancelled prematurely!")) % filename_to_utf8 (m_filename).c_str()).str());
266 g_object_unref (m_session);
267 @@ -316,9 +311,9 @@ namespace Bmp
269 g_signal_connect (G_OBJECT (m_message), "got-chunk", G_CALLBACK (got_chunk), this);
270 g_signal_connect (G_OBJECT (m_message), "restarted", G_CALLBACK (restarted), this);
271 - soup_message_add_header_handler (m_message, "content-length", SOUP_HANDLER_PRE_BODY,
272 - SoupMessageCallbackFn (got_content_length), this);
273 - soup_session_queue_message (m_session, m_message, SoupMessageCallbackFn (got_answer), this);
274 + soup_message_add_header_handler (m_message, "got-headers", "content-length",
275 + G_CALLBACK (got_content_length), this);
276 + soup_session_queue_message (m_session, m_message, SoupSessionCallback (got_answer), this);
280 @@ -327,8 +322,7 @@ namespace Bmp
282 if (G_IS_OBJECT(m_message))
284 - soup_message_set_status (m_message, SOUP_STATUS_CANCELLED);
285 - soup_session_cancel_message (m_session, m_message);
286 + soup_session_cancel_message (m_session, m_message, SOUP_STATUS_CANCELLED);
290 @@ -340,7 +334,7 @@ namespace Bmp
291 RequestFile::add_header (std::string const& name,
292 std::string const& value)
294 - soup_message_add_header (m_message->request_headers, name.c_str(), value.c_str());
295 + soup_message_headers_append (m_message->request_headers, name.c_str(), value.c_str());
299 @@ -356,7 +350,7 @@ namespace Bmp
303 - RequestFile::got_answer (SoupMessage* message, gpointer data)
304 + RequestFile::got_answer (SoupSession* session, SoupMessage* message, gpointer data)
306 RequestFile & request = (*(reinterpret_cast<RequestFile*>(data)));
308 @@ -368,25 +362,22 @@ namespace Bmp
312 - if( request.m_message->status != SOUP_MESSAGE_STATUS_FINISHED )
315 if( request.m_message->status_code == SOUP_STATUS_CANCELLED)
318 - debug("soup","%s: status: %d, status_code: %d", G_STRLOC, request.m_message->status, request.m_message->status_code);
319 + debug("soup","%s: status_code: %d", G_STRLOC, request.m_message->status_code);
321 request.fileClose ();
322 request.Signals.Done.emit (request.m_filename);
326 - RequestFile::got_chunk (SoupMessage* message, gpointer data)
327 + RequestFile::got_chunk (SoupMessage* message, SoupBuffer* chunk, gpointer data)
329 RequestFile & request = (*(reinterpret_cast<RequestFile*>(data)));
331 - request.m_file.write (message->response.body, message->response.length);
332 - request.m_read += message->response.length;
333 + request.m_file.write (chunk->data, chunk->length);
334 + request.m_read += chunk->length;
336 double percent = (double (request.m_read) / double (request.m_size));
337 if(percent >= 0. && percent <= 1.)
338 @@ -399,7 +390,7 @@ namespace Bmp
339 RequestFile::got_content_length (SoupMessage* message, gpointer data)
341 RequestFile & request = (*(reinterpret_cast<RequestFile*>(data)));
342 - request.m_size = g_ascii_strtoull (soup_message_get_header (message->response_headers, "content-length"), NULL, 10);
343 + request.m_size = soup_message_headers_get_content_length (message->response_headers);
347 diff -up bmpx-0.40.13/README.libsoup24 bmpx-0.40.13/README
348 --- bmpx-0.40.13/README.libsoup24 2007-10-18 19:17:17.000000000 +0200
349 +++ bmpx-0.40.13/README 2008-02-15 20:26:58.000000000 +0100
350 @@ -16,7 +16,7 @@ Requirements:
351 * libglademm-2.4 >= 2.6.2
354 - * libsoup >= 2.2.100
355 + * libsoup >= 2.3.0.1
359 diff -up bmpx-0.40.13/m4/soup.m4.libsoup24 bmpx-0.40.13/m4/soup.m4
360 --- bmpx-0.40.13/m4/soup.m4.libsoup24 2007-10-18 19:17:06.000000000 +0200
361 +++ bmpx-0.40.13/m4/soup.m4 2008-02-15 20:26:58.000000000 +0100
363 dnl -*- Mode: Autoconf; -*-
364 +dnl -*- Mode: Autoconf; -*-
366 +AC_DEFUN([BMP_CHECK_SOUP_EXTERN_C],
368 + CPPFLAGS_SAVED="$CPPFLAGS"
369 + CPPFLAGS="$CPPFLAGS $SOUP_CFLAGS"
372 + LDFLAGS_SAVED="$LDFLAGS"
373 + LDFLAGS="$LDFLAGS $SOUP_LDFLAGS"
376 + AC_MSG_CHECKING(for extern in libsoup headers)
379 + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
380 + @%:@include <libsoup/soup.h>
382 + SoupSession * session = soup_session_sync_new ();
387 + AC_DEFINE(LIBSOUP_HAS_EXTERN_C,,[define if libsoup has extern c])
391 + CPPFLAGS="$CPPFLAGS_SAVED"
392 + LDFLAGS="$LDFLAGS_SAVED"
395 AC_DEFUN([BMP_CHECK_SOUP_EXTERN_C],