Finish soup messaging cleanly and free private data
This commit is contained in:
parent
e1dd0194b1
commit
b53a2ebb37
1 changed files with 11 additions and 0 deletions
|
@ -168,8 +168,11 @@ katze_net_got_headers_cb (SoupMessage* msg,
|
|||
}
|
||||
|
||||
if (!priv->status_cb (request, priv->user_data))
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (msg, katze_net_got_headers_cb, priv);
|
||||
soup_session_cancel_message (priv->net->session, msg, msg->status_code);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
katze_net_got_body_cb (SoupMessage* msg,
|
||||
|
@ -202,6 +205,12 @@ katze_net_got_body_cb (SoupMessage* msg,
|
|||
}
|
||||
|
||||
priv->transfer_cb (request, priv->user_data);
|
||||
}
|
||||
|
||||
static void
|
||||
katze_net_finished_cb (SoupMessage* msg,
|
||||
KatzeNetPriv* priv)
|
||||
{
|
||||
katze_net_priv_free (priv);
|
||||
}
|
||||
#endif
|
||||
|
@ -329,6 +338,8 @@ katze_net_load_uri (KatzeNet* net,
|
|||
if (transfer_cb)
|
||||
g_signal_connect (msg, "got-body",
|
||||
G_CALLBACK (katze_net_got_body_cb), priv);
|
||||
g_signal_connect (msg, "finished",
|
||||
G_CALLBACK (katze_net_finished_cb), priv);
|
||||
soup_session_queue_message (net->session, msg, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue