|  |  |  | Camel Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
struct CamelTcpStream; enum CamelSockOpt; typedef CamelLinger; CamelSockOptData; gint camel_tcp_stream_connect (CamelTcpStream *stream,const gchar *host,const gchar *service,gint fallback_port,GCancellable *cancellable,GError **error); 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); void camel_tcp_stream_set_socks_proxy (CamelTcpStream *stream,const gchar *socks_host,gint socks_port); void camel_tcp_stream_peek_socks_proxy (CamelTcpStream *stream,const gchar **socks_host_ret,gint *socks_port_ret); struct sockaddr * camel_tcp_stream_get_local_address (CamelTcpStream *stream,socklen_t *len); struct sockaddr * camel_tcp_stream_get_remote_address (CamelTcpStream *stream,socklen_t *len);
GObject +----CamelObject +----CamelStream +----CamelTcpStream +----CamelTcpStreamRaw
typedef enum {
	CAMEL_SOCKOPT_NONBLOCKING,     /* nonblocking io */
	CAMEL_SOCKOPT_LINGER,          /* linger on close if data present */
	CAMEL_SOCKOPT_REUSEADDR,       /* allow local address reuse */
	CAMEL_SOCKOPT_KEEPALIVE,       /* keep connections alive */
	CAMEL_SOCKOPT_RECVBUFFERSIZE,  /* receive buffer size */
	CAMEL_SOCKOPT_SENDBUFFERSIZE,  /* send buffer size */
	CAMEL_SOCKOPT_IPTIMETOLIVE,    /* time to live */
	CAMEL_SOCKOPT_IPTYPEOFSERVICE, /* type of service and precedence */
	CAMEL_SOCKOPT_ADDMEMBER,       /* add an IP group membership */
	CAMEL_SOCKOPT_DROPMEMBER,      /* drop an IP group membership */
	CAMEL_SOCKOPT_MCASTINTERFACE,  /* multicast interface address */
	CAMEL_SOCKOPT_MCASTTIMETOLIVE, /* multicast timetolive */
	CAMEL_SOCKOPT_MCASTLOOPBACK,   /* multicast loopback */
	CAMEL_SOCKOPT_NODELAY,         /* don't delay send to coalesce packets */
	CAMEL_SOCKOPT_MAXSEGMENT,      /* maximum segment size */
	CAMEL_SOCKOPT_BROADCAST,       /* enable broadcast */
	CAMEL_SOCKOPT_LAST
} CamelSockOpt;
typedef struct {
	CamelSockOpt option;
	union {
		guint       ip_ttl;              /* IP time to live */
		guint       mcast_ttl;           /* IP multicast time to live */
		guint       tos;                 /* IP type of service and precedence */
		gboolean    non_blocking;        /* Non-blocking (network) I/O */
		gboolean    reuse_addr;          /* Allow local address reuse */
		gboolean    keep_alive;          /* Keep connections alive */
		gboolean    mcast_loopback;      /* IP multicast loopback */
		gboolean    no_delay;            /* Don't delay send to coalesce packets */
		gboolean    broadcast;           /* Enable broadcast */
		gsize      max_segment;         /* Maximum segment size */
		gsize      recv_buffer_size;    /* Receive buffer size */
		gsize      send_buffer_size;    /* Send buffer size */
		CamelLinger linger;              /* Time to linger on close if data present */
	} value;
} CamelSockOptData;
gint camel_tcp_stream_connect (CamelTcpStream *stream,const gchar *host,const gchar *service,gint fallback_port,GCancellable *cancellable,GError **error);
Create a socket and connect based upon the data provided.
| 
 | a CamelTcpStream object | 
| 
 | Hostname for connection | 
| 
 | Service name or port number in string form | 
| 
 | Port number to retry if serviceis not present
in the system's services database, or 0 to avoid retrying | 
| 
 | optional GCancellable object, or NULL | 
| 
 | return location for a GError, or NULL | 
| Returns : | 0on success or-1on fail | 
gint camel_tcp_stream_getsockopt (CamelTcpStream *stream,CamelSockOptData *data);
Get the socket options set on the stream and populate data.
| 
 | a CamelTcpStream object | 
| 
 | socket option data | 
| Returns : | 0on success or-1on fail | 
gint camel_tcp_stream_setsockopt (CamelTcpStream *stream,const CamelSockOptData *data);
Set the socket options contained in data on the stream.
| 
 | a CamelTcpStream object | 
| 
 | socket option data | 
| Returns : | 0on success or-1on fail | 
PRFileDesc *        camel_tcp_stream_get_file_desc      (CamelTcpStream *stream);
| 
 | a CamelTcpStream | 
Since 2.32
void camel_tcp_stream_set_socks_proxy (CamelTcpStream *stream,const gchar *socks_host,gint socks_port);
Configures a SOCKS proxy for the specified stream.  Instead of
direct connections, this stream will instead go through the proxy.
| 
 | a CamelTcpStream object | 
| 
 | hostname to use for the SOCKS proxy | 
| 
 | port number to use for the SOCKS proxy | 
Since 2.32
void camel_tcp_stream_peek_socks_proxy (CamelTcpStream *stream,const gchar **socks_host_ret,gint *socks_port_ret);
Queries the SOCKS proxy that is configured for a stream.  This will
return NULL in socks_host_ret if no proxy is configured.
| 
 | a CamelTcpStream | 
| 
 | location to return the name of the SOCKS host | 
| 
 | location to return the port number in the SOCKS host | 
Since 2.32
struct sockaddr * camel_tcp_stream_get_local_address (CamelTcpStream *stream,socklen_t *len);
Get the local address of stream.
| 
 | a CamelTcpStream object | 
| 
 | pointer to address length which must be supplied | 
| Returns : | the stream's local address (which must be freed with
g_free) if the stream is connected, or NULLif not | 
Since 2.22
struct sockaddr * camel_tcp_stream_get_remote_address (CamelTcpStream *stream,socklen_t *len);
Get the remote address of stream.
| 
 | a CamelTcpStream object | 
| 
 | pointer to address length, which must be supplied | 
| Returns : | the stream's remote address (which must be freed with
g_free) if the stream is connected, or NULLif not. | 
Since 2.22