Hello,
I contact you about a problem with libsoup-2.34.1.
I had developed an application which use gupnp and libsoup. When I
have begun to work I used libsoup-2.24.3.
I had change the version of gupnp I used. And of course I needed
to change lipsoup too.
Now I use libsoup-2.34.1 and I have a bug. When I ask a request to
a dlna server, I send it (header + message) the server send a
response (header + correct format response), the logger receives
the response... but the callback is never called. I tried to find
a solution in the sources of libsoup and I found this :
static gboolean
idle_run_queue (gpointer sa)
{
SoupSessionAsyncPrivate *priv = SOUP_SESSION_ASYNC_GET_PRIVATE
(sa);
priv->idle_run_queue_source = NULL;
run_queue (sa);
return FALSE;
}
static void
do_idle_run_queue (SoupSession *session)
{
SoupSessionAsyncPrivate *priv = SOUP_SESSION_ASYNC_GET_PRIVATE
(session);
if (!priv->idle_run_queue_source) {
priv->idle_run_queue_source = soup_add_completion (
soup_session_get_async_context (session),
idle_run_queue, session);
}
}
In the function do_idle_run_queue, soup_add_completion is never
called because priv->idle_run_queue_source is not null.
Idle_run_queue is correctly called before the message was sent.
I don't understand why priv->idle_run_queue_source is not null,
I didn't find function which modify it between those two steps.
But if I comment the 'if' my application works!
So I ask you if I can do this. I don't have a global view of
libsoup and I'm sure this test has an utility. I would like to
know how I can properly corrected this error, in libsoup or
perhaps in my application.
Thanks
Sincerely
Pierre-Yves Denonfoux
|