]>
Commit | Line | Data |
---|---|---|
8808173d MB |
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]) | |
6 | ||
7 | # libsoup | |
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]) | |
11 | ||
12 | # sqlite | |
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 | |
17 | @@ -68,13 +68,7 @@ | |
18 | #include <bmp/dbus.hh> | |
19 | #include <src/paths.hh> | |
20 | ||
21 | -#ifndef LIBSOUP_HAS_EXTERN_C | |
22 | -G_BEGIN_DECLS | |
23 | -#endif | |
24 | #include <libsoup/soup.h> | |
25 | -#ifndef LIBSOUP_HAS_EXTERN_C | |
26 | -G_END_DECLS | |
27 | -#endif | |
28 | ||
29 | #define SERVER_NAME "beep-media-player.org" | |
30 | ||
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 | |
34 | @@ -33,13 +33,7 @@ | |
35 | #include <iostream> | |
36 | #include <fstream> | |
37 | ||
38 | -#ifndef LIBSOUP_HAS_EXTERN_C | |
39 | -G_BEGIN_DECLS | |
40 | -# include <libsoup/soup.h> | |
41 | -G_END_DECLS | |
42 | -#else | |
43 | -# include <libsoup/soup.h> | |
44 | -#endif // !LIBSOUP_HAS_EXTERN_C | |
45 | +#include <libsoup/soup.h> | |
46 | ||
47 | namespace Bmp | |
48 | { | |
49 | @@ -111,7 +105,7 @@ namespace Bmp | |
50 | restarted (SoupMessage* /*message*/, gpointer /*data*/); | |
51 | ||
52 | static void | |
53 | - got_chunk (SoupMessage* /*message*/, gpointer /*data*/); | |
54 | + got_chunk (SoupMessage* /*message*/, SoupBuffer* /*chunk*/, gpointer /*data*/); | |
55 | ||
56 | static void | |
57 | got_content_length (SoupMessage* /*message*/, gpointer /*data*/); | |
58 | @@ -161,7 +155,7 @@ namespace Bmp | |
59 | restarted (SoupMessage* /*message*/, gpointer /*data*/); | |
60 | ||
61 | static void | |
62 | - got_answer (SoupMessage* /*message*/, gpointer /*data*/); | |
63 | + got_answer (SoupSession* /*session*/, SoupMessage* /*message*/, gpointer /*data*/); | |
64 | }; | |
65 | ||
66 | ||
67 | @@ -224,10 +218,10 @@ namespace Bmp | |
68 | restarted (SoupMessage* /*message*/, gpointer /*data*/); | |
69 | ||
70 | static void | |
71 | - got_answer (SoupMessage* /*message*/, gpointer /*data*/); | |
72 | + got_answer (SoupSession* /*session*/, SoupMessage* /*message*/, gpointer /*data*/); | |
73 | ||
74 | static void | |
75 | - got_chunk (SoupMessage* /*message*/, gpointer /*data*/); | |
76 | + got_chunk (SoupMessage* /*message*/, SoupBuffer* /*chunk*/, gpointer /*data*/); | |
77 | ||
78 | static void | |
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 | |
84 | { | |
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); | |
92 | } | |
93 | ||
94 | @@ -75,26 +75,26 @@ namespace Bmp | |
95 | RequestSync::get_data () | |
96 | { | |
97 | std::string buffer; | |
98 | - buffer.append (m_message->response.body, m_message->response.length); | |
99 | + buffer.append (m_message->response_body->data, m_message->response_body->length); | |
100 | return buffer; | |
101 | } | |
102 | ||
103 | void | |
104 | RequestSync::get_data (std::string & buffer) | |
105 | { | |
106 | - buffer.append (m_message->response.body, m_message->response.length); | |
107 | + buffer.append (m_message->response_body->data, m_message->response_body->length); | |
108 | } | |
109 | ||
110 | char const* | |
111 | RequestSync::get_data_raw () | |
112 | { | |
113 | - return m_message->response.body; | |
114 | + return m_message->response_body->data; | |
115 | } | |
116 | ||
117 | guint | |
118 | RequestSync::get_data_size () | |
119 | { | |
120 | - return m_message->response.length; | |
121 | + return m_message->response_body->length; | |
122 | } | |
123 | ||
124 | ||
125 | @@ -102,15 +102,15 @@ namespace Bmp | |
126 | RequestSync::add_header (std::string const& name, | |
127 | std::string const& value) | |
128 | { | |
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()); | |
131 | } | |
132 | ||
133 | void | |
134 | RequestSync::add_request (std::string const& type, | |
135 | std::string const& request) | |
136 | { | |
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())); | |
141 | m_post = true; | |
142 | } | |
143 | ||
144 | @@ -125,11 +125,11 @@ namespace Bmp | |
145 | } | |
146 | ||
147 | void | |
148 | - RequestSync::got_chunk (SoupMessage* message, gpointer data) | |
149 | + RequestSync::got_chunk (SoupMessage* message, SoupBuffer* chunk, gpointer data) | |
150 | { | |
151 | RequestSync & request = (*(reinterpret_cast<RequestSync*>(data))); | |
152 | ||
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.) | |
157 | { | |
158 | @@ -141,7 +141,7 @@ namespace Bmp | |
159 | RequestSync::got_content_length (SoupMessage* message, gpointer data) | |
160 | { | |
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); | |
164 | } | |
165 | ||
166 | ||
167 | @@ -180,17 +180,17 @@ namespace Bmp | |
168 | return m_message->status_code; | |
169 | } | |
170 | ||
171 | - guint | |
172 | - Request::message_status () | |
173 | - { | |
174 | - return m_message->status; | |
175 | - } | |
176 | + //guint | |
177 | + //Request::message_status () | |
178 | + //{ | |
179 | + // return m_message->status; | |
180 | + //} | |
181 | ||
182 | void | |
183 | Request::run () | |
184 | { | |
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); | |
188 | } | |
189 | ||
190 | void | |
191 | @@ -199,9 +199,6 @@ namespace Bmp | |
192 | if (G_IS_OBJECT(m_session)) | |
193 | { | |
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); | |
197 | - //m_message = 0; | |
198 | } | |
199 | } | |
200 | ||
201 | @@ -210,15 +207,15 @@ namespace Bmp | |
202 | Request::add_header (std::string const& name, | |
203 | std::string const& value) | |
204 | { | |
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()); | |
207 | } | |
208 | ||
209 | void | |
210 | Request::add_request (std::string const& type, | |
211 | std::string const& request) | |
212 | { | |
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())); | |
217 | m_post = true; | |
218 | } | |
219 | ||
220 | @@ -230,7 +227,7 @@ namespace Bmp | |
221 | } | |
222 | ||
223 | void | |
224 | - Request::got_answer (SoupMessage* message, gpointer data) | |
225 | + Request::got_answer (SoupSession* session, SoupMessage* message, gpointer data) | |
226 | { | |
227 | Request & request = (*(reinterpret_cast<Request*>(data))); | |
228 | ||
229 | @@ -241,15 +238,12 @@ namespace Bmp | |
230 | if( block ) | |
231 | return; | |
232 | ||
233 | - if( request.m_message->status != SOUP_MESSAGE_STATUS_FINISHED ) | |
234 | - return; | |
235 | - | |
236 | //if( request.m_message->status_code == SOUP_STATUS_CANCELLED ) | |
237 | //return; | |
238 | ||
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 | |
245 | ); | |
246 | } | |
247 | @@ -269,6 +263,7 @@ namespace Bmp | |
248 | ||
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); | |
252 | } | |
253 | ||
254 | Glib::RefPtr<RequestFile> | |
255 | @@ -279,9 +274,9 @@ namespace Bmp | |
256 | ||
257 | RequestFile::~RequestFile () | |
258 | { | |
259 | - if (G_IS_OBJECT(m_message) && m_message->status == SOUP_MESSAGE_STATUS_RUNNING) | |
260 | + if (m_file.is_open()) | |
261 | { | |
262 | - cancel (); | |
263 | + cancel (); | |
264 | Signals.Aborted.emit ((boost::format (_("Download of file '%s' was cancelled prematurely!")) % filename_to_utf8 (m_filename).c_str()).str()); | |
265 | } | |
266 | g_object_unref (m_session); | |
267 | @@ -316,9 +311,9 @@ namespace Bmp | |
268 | { | |
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); | |
277 | fileOpen (); | |
278 | } | |
279 | ||
280 | @@ -327,8 +322,7 @@ namespace Bmp | |
281 | { | |
282 | if (G_IS_OBJECT(m_message)) | |
283 | { | |
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); | |
287 | m_message = 0; | |
288 | } | |
289 | ||
290 | @@ -340,7 +334,7 @@ namespace Bmp | |
291 | RequestFile::add_header (std::string const& name, | |
292 | std::string const& value) | |
293 | { | |
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()); | |
296 | } | |
297 | ||
298 | ||
299 | @@ -356,7 +350,7 @@ namespace Bmp | |
300 | } | |
301 | ||
302 | void | |
303 | - RequestFile::got_answer (SoupMessage* message, gpointer data) | |
304 | + RequestFile::got_answer (SoupSession* session, SoupMessage* message, gpointer data) | |
305 | { | |
306 | RequestFile & request = (*(reinterpret_cast<RequestFile*>(data))); | |
307 | ||
308 | @@ -368,25 +362,22 @@ namespace Bmp | |
309 | return; | |
310 | } | |
311 | ||
312 | - if( request.m_message->status != SOUP_MESSAGE_STATUS_FINISHED ) | |
313 | - return; | |
314 | - | |
315 | if( request.m_message->status_code == SOUP_STATUS_CANCELLED) | |
316 | return; | |
317 | ||
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); | |
320 | ||
321 | request.fileClose (); | |
322 | request.Signals.Done.emit (request.m_filename); | |
323 | } | |
324 | ||
325 | void | |
326 | - RequestFile::got_chunk (SoupMessage* message, gpointer data) | |
327 | + RequestFile::got_chunk (SoupMessage* message, SoupBuffer* chunk, gpointer data) | |
328 | { | |
329 | RequestFile & request = (*(reinterpret_cast<RequestFile*>(data))); | |
330 | ||
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; | |
335 | ||
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) | |
340 | { | |
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); | |
344 | } | |
345 | } | |
346 | } | |
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 | |
352 | * libsexymm >= 0.1.9 | |
353 | * librsvg >= 2.14.0 | |
354 | - * libsoup >= 2.2.100 | |
355 | + * libsoup >= 2.3.0.1 | |
356 | * libofa >= 0.9.3 | |
357 | * sqlite >= 3.3.11 | |
358 | * libxml >= 2.6.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 | |
362 | @@ -1,4 +1,34 @@ | |
363 | dnl -*- Mode: Autoconf; -*- | |
364 | +dnl -*- Mode: Autoconf; -*- | |
365 | + | |
366 | +AC_DEFUN([BMP_CHECK_SOUP_EXTERN_C], | |
367 | +[ | |
368 | + CPPFLAGS_SAVED="$CPPFLAGS" | |
369 | + CPPFLAGS="$CPPFLAGS $SOUP_CFLAGS" | |
370 | + export CPPFLAGS | |
371 | + | |
372 | + LDFLAGS_SAVED="$LDFLAGS" | |
373 | + LDFLAGS="$LDFLAGS $SOUP_LDFLAGS" | |
374 | + export LDFLAGS | |
375 | + | |
376 | + AC_MSG_CHECKING(for extern in libsoup headers) | |
377 | + | |
378 | + AC_LANG_PUSH(C++) | |
379 | + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |
380 | + @%:@include <libsoup/soup.h> | |
381 | + ]], [[ | |
382 | + SoupSession * session = soup_session_sync_new (); | |
383 | + ]])],[ | |
384 | + AC_MSG_RESULT(no) | |
385 | + ],[ | |
386 | + AC_MSG_RESULT(yes) | |
387 | + AC_DEFINE(LIBSOUP_HAS_EXTERN_C,,[define if libsoup has extern c]) | |
388 | + ]) | |
389 | + AC_LANG_POP([C++]) | |
390 | + | |
391 | + CPPFLAGS="$CPPFLAGS_SAVED" | |
392 | + LDFLAGS="$LDFLAGS_SAVED" | |
393 | +]) | |
394 | ||
395 | AC_DEFUN([BMP_CHECK_SOUP_EXTERN_C], | |
396 | [ |