[evolution-data-server/camel-socks-proxy-master: 8/10] New method CamelTcpStream::get_file_desc()



commit 9a0d409d5005706c5e52891f4cb37e30f22cb76d
Author: Federico Mena Quintero <federico novell com>
Date:   Wed Jul 14 15:15:01 2010 -0500

    New method CamelTcpStream::get_file_desc()
    
    This returns a (PRFileDesc *).  We will make CamelTcpStream derivates deal only
    in PRFileDesc objects, instead of plain FDs.  This will allow us to implement
    TCP socket functionality only once, instead of twice - one for raw streams, one
    for SSL streams.  Mainly this will let us have a raw stream and then an
    SSL stream overlaid on that one.
    
    Signed-off-by: Federico Mena Quintero <federico novell com>

 camel/camel-tcp-stream.c |   13 +++++++++++++
 camel/camel-tcp-stream.h |    5 +++++
 2 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/camel/camel-tcp-stream.c b/camel/camel-tcp-stream.c
index 23ddb6f..c8e5c38 100644
--- a/camel/camel-tcp-stream.c
+++ b/camel/camel-tcp-stream.c
@@ -213,6 +213,19 @@ camel_tcp_stream_get_remote_address (CamelTcpStream *stream,
 	return class->get_remote_address (stream, len);
 }
 
+PRFileDesc *
+camel_tcp_stream_get_file_desc (CamelTcpStream *stream)
+{
+	CamelTcpStreamClass *class;
+
+	g_return_val_if_fail (CAMEL_IS_TCP_STREAM (stream), NULL);
+
+	class = CAMEL_TCP_STREAM_GET_CLASS (stream);
+	g_return_val_if_fail (class->get_file_desc != NULL, NULL);
+
+	return class->get_file_desc (stream);
+}
+
 /**
  * camel_tcp_stream_set_socks_proxy:
  * @stream: a #CamelTcpStream object
diff --git a/camel/camel-tcp-stream.h b/camel/camel-tcp-stream.h
index 389d1fe..4680d0e 100644
--- a/camel/camel-tcp-stream.h
+++ b/camel/camel-tcp-stream.h
@@ -44,6 +44,8 @@ struct addrinfo;
 #endif
 #include <unistd.h>
 
+#include <prio.h>
+
 #include <camel/camel-stream.h>
 
 /* Standard GObject macros */
@@ -135,6 +137,8 @@ struct _CamelTcpStreamClass {
 	struct sockaddr *
 			(*get_remote_address)	(CamelTcpStream *stream,
 						 socklen_t *len);
+
+	PRFileDesc *    (*get_file_desc)        (CamelTcpStream *stream);
 };
 
 GType		camel_tcp_stream_get_type	(void);
@@ -145,6 +149,7 @@ gint		camel_tcp_stream_getsockopt	(CamelTcpStream *stream,
 						 CamelSockOptData *data);
 gint		camel_tcp_stream_setsockopt	(CamelTcpStream *stream,
 						 const CamelSockOptData *data);
+PRFileDesc  *   camel_tcp_stream_get_file_desc  (CamelTcpStream *stream);
 
 /* Note about SOCKS proxies:
  *



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]