[evolution-data-server/camel-socks-proxy-master: 8/10] New method CamelTcpStream::get_file_desc()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/camel-socks-proxy-master: 8/10] New method CamelTcpStream::get_file_desc()
- Date: Sat, 24 Jul 2010 03:06:35 +0000 (UTC)
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]