sslconn.h File Reference

SSL API

purple. 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...

SSL API

gboolean purple_ssl_is_supported (void)
 Returns whether or not SSL is currently supported.
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.
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.
void purple_ssl_input_add (PurpleSslConnection *gsc, PurpleSslInputFunction func, void *data)
 Adds an input watcher for the specified SSL connection.
void purple_ssl_close (PurpleSslConnection *gsc)
 Closes a SSL connection.
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

void purple_ssl_set_ops (PurpleSslOps *ops)
 Sets the current SSL operations structure.
PurpleSslOpspurple_ssl_get_ops (void)
 Returns the current SSL operations structure.
void purple_ssl_init (void)
 Initializes the SSL subsystem.
void purple_ssl_uninit (void)
 Uninitializes the SSL subsystem.

Defines

#define PURPLE_SSL_DEFAULT_PORT   443

Typedefs

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

Enumerations

enum  PurpleSslErrorType { PURPLE_SSL_HANDSHAKE_FAILED = 1, PURPLE_SSL_CONNECT_FAILED = 2 }


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


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.