sslconn.h File Reference

SSL API. More...

#include "proxy.h"

Include dependency graph for sslconn.h:

Go to the source code of this file.

Data Structures

struct  _PurpleSslConnection
struct  PurpleSslOps
 SSL implementation operations structure. More...

Defines

#define PURPLE_SSL_DEFAULT_PORT   443

Typedefs

typedef _PurpleSslConnection PurpleSslConnection
typedef void(*) PurpleSslErrorFunction (PurpleSslConnection *, PurpleSslErrorType, gpointer)
typedef void(*) PurpleSslInputFunction (gpointer, PurpleSslConnection *, PurpleInputCondition)

Enumerations

enum  PurpleSslErrorType { PURPLE_SSL_HANDSHAKE_FAILED = 1, PURPLE_SSL_CONNECT_FAILED = 2 }

Functions

SSL API
void purple_ssl_close (PurpleSslConnection *gsc)
 Closes a SSL connection.
PurpleSslConnectionpurple_ssl_connect (PurpleAccount *account, const char *host, int port, PurpleSslInputFunction func, PurpleSslErrorFunction error_func, void *data)
 Makes a SSL connection to the specified host and port.
PurpleSslConnectionpurple_ssl_connect_fd (PurpleAccount *account, int fd, PurpleSslInputFunction func, PurpleSslErrorFunction error_func, void *data)
 Makes a SSL connection using an already open file descriptor.
void purple_ssl_input_add (PurpleSslConnection *gsc, PurpleSslInputFunction func, void *data)
 Adds an input watcher for the specified SSL connection.
gboolean purple_ssl_is_supported (void)
 Returns whether or not SSL is currently supported.
size_t purple_ssl_read (PurpleSslConnection *gsc, void *buffer, size_t len)
 Reads data from an SSL connection.
size_t purple_ssl_write (PurpleSslConnection *gsc, const void *buffer, size_t len)
 Writes data to an SSL connection.
Subsystem API
PurpleSslOpspurple_ssl_get_ops (void)
 Returns the current SSL operations structure.
void purple_ssl_init (void)
 Initializes the SSL subsystem.
void purple_ssl_set_ops (PurpleSslOps *ops)
 Sets the current SSL operations structure.
void purple_ssl_uninit (void)
 Uninitializes the SSL subsystem.


Detailed Description

SSL API.

purple

Purple is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Definition in file sslconn.h.


Enumeration Type Documentation

enum PurpleSslErrorType

Enumerator:
PURPLE_SSL_HANDSHAKE_FAILED 
PURPLE_SSL_CONNECT_FAILED 

Definition at line 32 of file sslconn.h.


Function Documentation

void purple_ssl_close ( PurpleSslConnection gsc  ) 

Closes a SSL connection.

Parameters:
gsc The SSL connection to close.

PurpleSslConnection* purple_ssl_connect ( PurpleAccount account,
const char *  host,
int  port,
PurpleSslInputFunction  func,
PurpleSslErrorFunction  error_func,
void *  data 
)

Makes a SSL connection to the specified host and port.

The caller should keep track of the returned value and use it to cancel the connection, if needed.

Parameters:
account The account making the connection.
host The destination host.
port The destination port.
func The SSL input handler function.
error_func The SSL error handler function. This function should NOT call purple_ssl_close(). In the event of an error the PurpleSslConnection will be destroyed for you.
data User-defined data.
Returns:
The SSL connection handle.

PurpleSslConnection* purple_ssl_connect_fd ( PurpleAccount account,
int  fd,
PurpleSslInputFunction  func,
PurpleSslErrorFunction  error_func,
void *  data 
)

Makes a SSL connection using an already open file descriptor.

Parameters:
account The account making the connection.
fd The file descriptor.
func The SSL input handler function.
error_func The SSL error handler function.
data User-defined data.
Returns:
The SSL connection handle.

PurpleSslOps* purple_ssl_get_ops ( void   ) 

Returns the current SSL operations structure.

Returns:
The SSL operations structure.

void purple_ssl_input_add ( PurpleSslConnection gsc,
PurpleSslInputFunction  func,
void *  data 
)

Adds an input watcher for the specified SSL connection.

Once the SSL handshake is complete, use this to watch for actual data across it.

Parameters:
gsc The SSL connection handle.
func The callback function.
data User-defined data.

gboolean purple_ssl_is_supported ( void   ) 

Returns whether or not SSL is currently supported.

Returns:
TRUE if SSL is supported, or FALSE otherwise.

size_t purple_ssl_read ( PurpleSslConnection gsc,
void *  buffer,
size_t  len 
)

Reads data from an SSL connection.

Parameters:
gsc The SSL connection handle.
buffer The destination buffer.
len The maximum number of bytes to read.
Returns:
The number of bytes read.

void purple_ssl_set_ops ( PurpleSslOps ops  ) 

Sets the current SSL operations structure.

Parameters:
ops The SSL operations structure to assign.

size_t purple_ssl_write ( PurpleSslConnection gsc,
const void *  buffer,
size_t  len 
)

Writes data to an SSL connection.

Parameters:
gsc The SSL connection handle.
buffer The buffer to write.
len The length of the data to write.
Returns:
The number of bytes written.