src/sslconn.h

Fri, 03 Dec 2004 04:02:10 +0000

author
Andrew Hart <arhart@users.sourceforge.net>
date
Fri, 03 Dec 2004 04:02:10 +0000
changeset 10311
2380cae46dbd
parent 9713
bb37562302a1
child 14222
71d8761db708
permissions
-rw-r--r--

[gaim-migrate @ 11505]
Hitting the enter key when you're cursor is in the alias field of the
Add Chat dialog now activates the dialogs default action.

Closes bug 1075200 and patch 1078079. Thanks to Andrew Hart for
taking a stab at this and wounding, but not killing. Killing is wrong!

committer: Mark Doliner <markdoliner@pidgin.im>

6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file sslconn.h SSL API
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup core
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7274
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7274
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7274
diff changeset
9 * source distribution.
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 8362
diff changeset
25 #ifndef _GAIM_SSLCONN_H_
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 8362
diff changeset
26 #define _GAIM_SSLCONN_H_
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 #include "proxy.h"
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
30 #define GAIM_SSL_DEFAULT_PORT 443
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
31
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
32 typedef enum
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
33 {
8362
1dc105ff1804 [gaim-migrate @ 9087]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
34 GAIM_SSL_HANDSHAKE_FAILED = 1,
1dc105ff1804 [gaim-migrate @ 9087]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
35 GAIM_SSL_CONNECT_FAILED = 2
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
36 } GaimSslErrorType;
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
37
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
38 typedef struct _GaimSslConnection GaimSslConnection;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
39
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
40 typedef void (*GaimSslInputFunction)(gpointer, GaimSslConnection *,
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
41 GaimInputCondition);
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
42 typedef void (*GaimSslErrorFunction)(GaimSslConnection *, GaimSslErrorType,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
43 gpointer);
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
44
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
45 struct _GaimSslConnection
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
46 {
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
47 char *host;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
48 int port;
6764
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
49 void *connect_cb_data;
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
50 GaimSslInputFunction connect_cb;
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
51 GaimSslErrorFunction error_cb;
6764
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
52 void *recv_cb_data;
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
53 GaimSslInputFunction recv_cb;
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
54
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
55 int fd;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
56 int inpa;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
57
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
58 void *private_data;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
59 };
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
60
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
61 /**
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
62 * SSL implementation operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
63 *
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
64 * Every SSL implementation must provide one of these and register it.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
65 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
66 typedef struct
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
67 {
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
68 gboolean (*init)(void);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
69 void (*uninit)(void);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
70 GaimInputFunction connect_cb;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
71 void (*close)(GaimSslConnection *gsc);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
72 size_t (*read)(GaimSslConnection *gsc, void *data, size_t len);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
73 size_t (*write)(GaimSslConnection *gsc, const void *data, size_t len);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
74
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
75 } GaimSslOps;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
76
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 #ifdef __cplusplus
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78 extern "C" {
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 #endif
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
81 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82 /** @name SSL API */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84 /*@{*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 * Returns whether or not SSL is currently supported.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 * @return TRUE if SSL is supported, or FALSE otherwise.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
91 gboolean gaim_ssl_is_supported(void);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
93 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94 * Makes a SSL connection to the specified host and port.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95 *
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
96 * @param account The account making the connection.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
97 * @param host The destination host.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
98 * @param port The destination port.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
99 * @param func The SSL input handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
100 * @param error_func The SSL error handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
101 * @param data User-defined data.
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
102 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
103 * @return The SSL connection handle.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
104 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
105 GaimSslConnection *gaim_ssl_connect(GaimAccount *account, const char *host,
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
106 int port, GaimSslInputFunction func,
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
107 GaimSslErrorFunction error_func,
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108 void *data);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
110 /**
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
111 * Makes a SSL connection using an already open file descriptor.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
112 *
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
113 * @param account The account making the connection.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
114 * @param fd The file descriptor.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
115 * @param func The SSL input handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
116 * @param error_func The SSL error handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
117 * @param data User-defined data.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
118 *
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
119 * @return The SSL connection handle.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
120 */
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
121 GaimSslConnection *gaim_ssl_connect_fd(GaimAccount *account, int fd,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
122 GaimSslInputFunction func,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
123 GaimSslErrorFunction error_func,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
124 void *data);
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
125
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
126 /**
6764
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
127 * Adds an input watcher for the specified SSL connection.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
128 *
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
129 * @param gsc The SSL connection handle.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
130 * @param func The callback function.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
131 * @param data User-defined data.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
132 */
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
133 void gaim_ssl_input_add(GaimSslConnection *gsc, GaimSslInputFunction func,
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
134 void *data);
6762
2349053f14aa [gaim-migrate @ 7294]
Christian Hammond <chipx86@chipx86.com>
parents: 6738
diff changeset
135
2349053f14aa [gaim-migrate @ 7294]
Christian Hammond <chipx86@chipx86.com>
parents: 6738
diff changeset
136 /**
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
137 * Closes a SSL connection.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
138 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
139 * @param gsc The SSL connection to close.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
140 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
141 void gaim_ssl_close(GaimSslConnection *gsc);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
142
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
143 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
144 * Reads data from an SSL connection.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
145 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
146 * @param gsc The SSL connection handle.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
147 * @param buffer The destination buffer.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
148 * @param len The maximum number of bytes to read.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150 * @return The number of bytes read.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 */
6720
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
152 size_t gaim_ssl_read(GaimSslConnection *gsc, void *buffer, size_t len);
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155 * Writes data to an SSL connection.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
156 *
6720
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
157 * @param gsc The SSL connection handle.
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
158 * @param buffer The buffer to write.
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
159 * @param len The length of the data to write.
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
160 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
161 * @return The number of bytes written.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
162 */
6720
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
163 size_t gaim_ssl_write(GaimSslConnection *gsc, const void *buffer, size_t len);
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
164
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
165 /*@}*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
166
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
167 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
168 /** @name Subsystem API */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
169 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170 /*@{*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
171
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
172 /**
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
173 * Sets the current SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
174 *
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
175 * @param ops The SSL operations structure to assign.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
176 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
177 void gaim_ssl_set_ops(GaimSslOps *ops);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
178
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
179 /**
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
180 * Returns the current SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
181 *
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
182 * @return The SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
183 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
184 GaimSslOps *gaim_ssl_get_ops(void);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
185
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
186 /**
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
187 * Initializes the SSL subsystem.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
188 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
189 void gaim_ssl_init(void);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
190
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
191 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
192 * Uninitializes the SSL subsystem.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194 void gaim_ssl_uninit(void);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
195
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
196 /*@}*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
197
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
198 #ifdef __cplusplus
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 }
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
200 #endif
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
201
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 8362
diff changeset
202 #endif /* _GAIM_SSLCONN_H_ */

mercurial