[libsoup/wip/server-api: 3/7] soup-socket: add flag close_on_dispose to SoupSocket
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup/wip/server-api: 3/7] soup-socket: add flag close_on_dispose to SoupSocket
- Date: Mon, 17 Mar 2014 16:24:11 +0000 (UTC)
commit 2f068309d486d003cdbff19333065566e501c2a6
Author: Dirkjan Ochtman <dirkjan ochtman nl>
Date: Mon Jan 6 08:42:00 2014 -0500
soup-socket: add flag close_on_dispose to SoupSocket
https://bugzilla.gnome.org/show_bug.cgi?id=721343
libsoup/soup-socket-private.h | 1 +
libsoup/soup-socket.c | 18 +++++++++++++++++-
2 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/libsoup/soup-socket-private.h b/libsoup/soup-socket-private.h
index 2f3fbdc..a059768 100644
--- a/libsoup/soup-socket-private.h
+++ b/libsoup/soup-socket-private.h
@@ -10,6 +10,7 @@
#define SOUP_SOCKET_CLEAN_DISPOSE "clean-dispose"
#define SOUP_SOCKET_PROXY_RESOLVER "proxy-resolver"
+#define SOUP_SOCKET_CLOSE_ON_DISPOSE "close-on-dispose"
gboolean soup_socket_connect_sync_internal (SoupSocket *sock,
GCancellable *cancellable,
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index 9b9b540..754fa46 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -60,6 +60,7 @@ enum {
PROP_TLS_CERTIFICATE,
PROP_TLS_ERRORS,
PROP_PROXY_RESOLVER,
+ PROP_CLOSE_ON_DISPOSE,
LAST_PROP
};
@@ -79,6 +80,7 @@ typedef struct {
guint ssl_strict:1;
guint ssl_fallback:1;
guint clean_dispose:1;
+ guint close_on_dispose:1;
guint use_thread_context:1;
gpointer ssl_creds;
@@ -136,7 +138,7 @@ soup_socket_finalize (GObject *object)
g_warning ("Disposing socket %p during connect", object);
g_object_unref (priv->connect_cancel);
}
- if (priv->gsock) {
+ if (priv->gsock && priv->close_on_dispose) {
if (priv->clean_dispose)
g_warning ("Disposing socket %p while still connected", object);
disconnect_internal (SOUP_SOCKET (object), TRUE);
@@ -229,6 +231,9 @@ soup_socket_set_property (GObject *object, guint prop_id,
case PROP_CLEAN_DISPOSE:
priv->clean_dispose = g_value_get_boolean (value);
break;
+ case PROP_CLOSE_ON_DISPOSE:
+ priv->close_on_dispose = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -287,6 +292,9 @@ soup_socket_get_property (GObject *object, guint prop_id,
case PROP_PROXY_RESOLVER:
g_value_set_object (value, priv->proxy_resolver);
break;
+ case PROP_CLOSE_ON_DISPOSE:
+ g_value_set_boolean (value, priv->close_on_dispose);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -628,6 +636,14 @@ soup_socket_class_init (SoupSocketClass *socket_class)
"GProxyResolver to use",
G_TYPE_PROXY_RESOLVER,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property (
+ object_class, PROP_CLOSE_ON_DISPOSE,
+ g_param_spec_boolean (SOUP_SOCKET_CLOSE_ON_DISPOSE,
+ "Close socket on disposal",
+ "Whether the socket is closed on disposal",
+ TRUE,
+ G_PARAM_READWRITE));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]