aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-tcp-stream.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2002-03-11 08:53:49 +0800
committerDan Winship <danw@src.gnome.org>2002-03-11 08:53:49 +0800
commitb1b809031f5a11223d97ee02d21fb6bb3693a367 (patch)
tree60bdae233e7421dde0564d0296c9767550f372c1 /camel/camel-tcp-stream.h
parent592ec9daac1b91f89036d2a3598f7f1fa6b6cbaa (diff)
downloadgsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar.gz
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar.bz2
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar.lz
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar.xz
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.tar.zst
gsoc2013-evolution-b1b809031f5a11223d97ee02d21fb6bb3693a367.zip
Remove this: it couldn't be generically used, because different subclasses
* camel-tcp-stream.c (camel_tcp_stream_get_socket): Remove this: it couldn't be generically used, because different subclasses returned entirely different types of data. (camel_tcp_stream_get_local_address, camel_tcp_stream_get_remote_address): Add these to replace what get_socket was being used for. (camel_tcp_address_new, camel_tcp_address_free): Utility functions for get_{local,remote}_address. * providers/smtp/camel-smtp-transport.c: Change localaddr to a CamelTcpAddress *. (connect_to_server): Call camel_tcp_stream_get_local_address to get the local IP address. (smtp_disconnect): free localaddr. (smtp_helo): Update for localaddr change. * camel-tcp-stream-raw.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. * camel-tcp-stream-ssl.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. * camel-tcp-stream-openssl.c (stream_get_socket): Remove (stream_get_local_address, stream_get_remote_address): Implement. svn path=/trunk/; revision=16092
Diffstat (limited to 'camel/camel-tcp-stream.h')
-rw-r--r--camel/camel-tcp-stream.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/camel/camel-tcp-stream.h b/camel/camel-tcp-stream.h
index 5134aea7c6..e6651e6ccd 100644
--- a/camel/camel-tcp-stream.h
+++ b/camel/camel-tcp-stream.h
@@ -88,6 +88,17 @@ typedef struct _CamelSockOptData {
} value;
} CamelSockOptData;
+typedef enum {
+ CAMEL_TCP_ADDRESS_IPV4
+} CamelTcpAddressFamily;
+
+typedef struct {
+ CamelTcpAddressFamily family;
+ gushort port, length;
+ guint8 address[1];
+} CamelTcpAddress;
+
+
struct _CamelTcpStream
{
CamelStream parent_object;
@@ -102,7 +113,8 @@ typedef struct {
int (*getsockopt) (CamelTcpStream *stream, CamelSockOptData *data);
int (*setsockopt) (CamelTcpStream *stream, const CamelSockOptData *data);
- gpointer (*get_socket) (CamelTcpStream *stream);
+ CamelTcpAddress * (*get_local_address) (CamelTcpStream *stream);
+ CamelTcpAddress * (*get_remote_address) (CamelTcpStream *stream);
} CamelTcpStreamClass;
/* Standard Camel function */
@@ -113,7 +125,13 @@ int camel_tcp_stream_connect (CamelTcpStream *stream, struct hostent
int camel_tcp_stream_getsockopt (CamelTcpStream *stream, CamelSockOptData *data);
int camel_tcp_stream_setsockopt (CamelTcpStream *stream, const CamelSockOptData *data);
-gpointer camel_tcp_stream_get_socket (CamelTcpStream *stream);
+CamelTcpAddress *camel_tcp_stream_get_local_address (CamelTcpStream *stream);
+CamelTcpAddress *camel_tcp_stream_get_remote_address (CamelTcpStream *stream);
+
+CamelTcpAddress *camel_tcp_address_new (CamelTcpAddressFamily family,
+ gushort port, gushort length,
+ gpointer address);
+void camel_tcp_address_free (CamelTcpAddress *address);
#ifdef __cplusplus
}