From 83da293b3f2038d969e83c4227db817046092d2d Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sat, 6 Jun 2009 18:55:48 -0400 Subject: SoupConnection/SoupSession reorg and cleanup Move CONNECT handling from SoupConnection to SoupSession so it works more like other requests. Generally clean up and simplify SoupConnection, and simplify the coordination between SoupSession and its subclasses. --- libsoup/soup-connection.h | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'libsoup/soup-connection.h') diff --git a/libsoup/soup-connection.h b/libsoup/soup-connection.h index 180ab28d..d4fe4657 100644 --- a/libsoup/soup-connection.h +++ b/libsoup/soup-connection.h @@ -28,13 +28,8 @@ typedef struct { GObjectClass parent_class; /* signals */ - void (*connect_result) (SoupConnection *, guint); void (*disconnected) (SoupConnection *); - void (*request_started) (SoupConnection *, SoupMessage *); - - /* methods */ - void (*send_request) (SoupConnection *, SoupMessage *); } SoupConnectionClass; GType soup_connection_get_type (void); @@ -44,9 +39,17 @@ typedef void (*SoupConnectionCallback) (SoupConnection *conn, guint status, gpointer data); - -#define SOUP_CONNECTION_SERVER_ADDRESS "server_address" -#define SOUP_CONNECTION_PROXY_ADDRESS "proxy-address" +typedef enum { + SOUP_CONNECTION_NEW, + SOUP_CONNECTION_CONNECTING, + SOUP_CONNECTION_IDLE, + SOUP_CONNECTION_IN_USE, + SOUP_CONNECTION_DISCONNECTED +} SoupConnectionState; + +#define SOUP_CONNECTION_REMOTE_ADDRESS "remote-address" +#define SOUP_CONNECTION_TUNNEL_ADDRESS "tunnel-address" +#define SOUP_CONNECTION_IS_PROXY "is-proxy" #define SOUP_CONNECTION_SSL_CREDENTIALS "ssl-creds" #define SOUP_CONNECTION_ASYNC_CONTEXT "async-context" #define SOUP_CONNECTION_TIMEOUT "timeout" @@ -59,20 +62,21 @@ void soup_connection_connect_async (SoupConnection *conn, SoupConnectionCallback callback, gpointer user_data); guint soup_connection_connect_sync (SoupConnection *conn); +SoupAddress *soup_connection_get_tunnel_addr(SoupConnection *conn); +gboolean soup_connection_start_ssl (SoupConnection *conn); void soup_connection_disconnect (SoupConnection *conn); SoupSocket *soup_connection_get_socket (SoupConnection *conn); -gboolean soup_connection_is_in_use (SoupConnection *conn); +SoupConnectionState soup_connection_get_state (SoupConnection *conn); +void soup_connection_set_state (SoupConnection *conn, + SoupConnectionState state); time_t soup_connection_last_used (SoupConnection *conn); void soup_connection_send_request (SoupConnection *conn, SoupMessage *req); -void soup_connection_reserve (SoupConnection *conn); -void soup_connection_release (SoupConnection *conn); - G_END_DECLS #endif /* SOUP_CONNECTION_H */ -- cgit v1.2.1 From e636754a29691d96e89297c2d7c31d829d1de878 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Sat, 6 Jun 2009 18:57:51 -0400 Subject: Implement SoupProxyURIResolver, to replace SoupProxyResolver Simplifies implementations, allows for non-http proxy resolution, and allows authentication information to be passed. http://bugzilla.gnome.org/show_bug.cgi?id=580051 --- libsoup/soup-connection.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libsoup/soup-connection.h') diff --git a/libsoup/soup-connection.h b/libsoup/soup-connection.h index d4fe4657..68a36abb 100644 --- a/libsoup/soup-connection.h +++ b/libsoup/soup-connection.h @@ -49,7 +49,7 @@ typedef enum { #define SOUP_CONNECTION_REMOTE_ADDRESS "remote-address" #define SOUP_CONNECTION_TUNNEL_ADDRESS "tunnel-address" -#define SOUP_CONNECTION_IS_PROXY "is-proxy" +#define SOUP_CONNECTION_PROXY_URI "proxy-uri" #define SOUP_CONNECTION_SSL_CREDENTIALS "ssl-creds" #define SOUP_CONNECTION_ASYNC_CONTEXT "async-context" #define SOUP_CONNECTION_TIMEOUT "timeout" @@ -68,6 +68,7 @@ gboolean soup_connection_start_ssl (SoupConnection *conn); void soup_connection_disconnect (SoupConnection *conn); SoupSocket *soup_connection_get_socket (SoupConnection *conn); +SoupURI *soup_connection_get_proxy_uri (SoupConnection *conn); SoupConnectionState soup_connection_get_state (SoupConnection *conn); void soup_connection_set_state (SoupConnection *conn, -- cgit v1.2.1