Bugzilla – Attachment 51279 Details for
Bug 116762
Exchange crashes randomly in Tasks view
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
proposed patch
libsoup.diff (text/plain), 3.07 KB, created by
Dan Winship
on 2005-09-30 19:23:58 UTC
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Dan Winship
Created:
2005-09-30 19:23:58 UTC
Size:
3.07 KB
patch
obsolete
>Index: libsoup/soup-connection-ntlm.c >=================================================================== >RCS file: /cvs/gnome/libsoup/libsoup/soup-connection-ntlm.c,v >retrieving revision 1.10 >diff -u -r1.10 soup-connection-ntlm.c >--- libsoup/soup-connection-ntlm.c 8 Jun 2005 14:35:47 -0000 1.10 >+++ libsoup/soup-connection-ntlm.c 30 Sep 2005 19:22:37 -0000 >@@ -28,7 +28,6 @@ > } SoupConnectionNTLMState; > > typedef struct { >- char *user; > guchar nt_hash[21], lm_hash[21]; > SoupConnectionNTLMState state; > } SoupConnectionNTLMPrivate; >@@ -56,7 +55,6 @@ > { > SoupConnectionNTLMPrivate *priv = SOUP_CONNECTION_NTLM_GET_PRIVATE (object); > >- g_free (priv->user); > memset (priv->nt_hash, 0, sizeof (priv->nt_hash)); > memset (priv->lm_hash, 0, sizeof (priv->lm_hash)); > >@@ -161,6 +159,16 @@ > soup_message_get_header (msg->request_headers, "Authorization")) { > /* We just added the last Auth header, so restart it. */ > priv->state = SOUP_CONNECTION_NTLM_SENT_RESPONSE; >+ >+ /* soup_message_restarted() will call soup_message_io_stop(), >+ * which will release the connection, and may cause another >+ * message to be queued on the connection before it returns. >+ * That's no good, so we stop the message first and then >+ * reclaim the connection so that soup_message_restarted() >+ * won't be able to steal it. >+ */ >+ soup_message_io_stop (msg); >+ soup_connection_reserve (conn); > soup_message_restarted (msg); > soup_connection_send_request (conn, msg); > } >Index: libsoup/soup-connection.c >=================================================================== >RCS file: /cvs/gnome/libsoup/libsoup/soup-connection.c,v >retrieving revision 1.33 >diff -u -r1.33 soup-connection.c >--- libsoup/soup-connection.c 22 Aug 2005 14:28:27 -0000 1.33 >+++ libsoup/soup-connection.c 30 Sep 2005 19:22:38 -0000 >@@ -355,14 +355,18 @@ > SoupConnectionPrivate *priv = SOUP_CONNECTION_GET_PRIVATE (conn); > > if (priv->cur_req) { >- if (!soup_message_is_keepalive (priv->cur_req)) >- soup_connection_disconnect (conn); >- else >- priv->last_used = time (NULL); >+ SoupMessage *cur_req = priv->cur_req; > > g_object_remove_weak_pointer (G_OBJECT (priv->cur_req), > (gpointer *)&priv->cur_req); > priv->cur_req = NULL; >+ >+ if (!soup_message_is_keepalive (cur_req)) >+ soup_connection_disconnect (conn); >+ else { >+ priv->last_used = time (NULL); >+ soup_message_io_stop (cur_req); >+ } > } > priv->in_use = FALSE; > } >Index: libsoup/soup-message-io.c >=================================================================== >RCS file: /cvs/gnome/libsoup/libsoup/soup-message-io.c,v >retrieving revision 1.20 >diff -u -r1.20 soup-message-io.c >--- libsoup/soup-message-io.c 16 Aug 2005 14:33:42 -0000 1.20 >+++ libsoup/soup-message-io.c 30 Sep 2005 19:22:38 -0000 >@@ -128,8 +128,12 @@ > > if (io->read_state != SOUP_MESSAGE_IO_STATE_DONE) > soup_socket_disconnect (io->sock); >- else if (io->conn) >- soup_connection_release (io->conn); >+ else if (io->conn) { >+ SoupConnection *conn = io->conn; >+ io->conn = NULL; >+ soup_connection_release (conn); >+ g_object_unref (conn); >+ } > } > > #define SOUP_MESSAGE_IO_EOL "\r\n"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 116762
:
49768
|
49769
|
49770
|
51042
|
51279
|
54960