libgaim/sslconn.h

Tue, 29 Aug 2006 02:22:08 +0000

author
Hil <allhilbert@users.sourceforge.net>
date
Tue, 29 Aug 2006 02:22:08 +0000
changeset 14432
3710852cdab5
parent 14324
8cbedd82b6ac
child 20470
77693555855f
permissions
-rw-r--r--

[gaim-migrate @ 17076]
SF Patch #1547720 from Hilbert
Fixes SF Bug #1541097

If you search, leave the Find dialog open, switch tabs, and search again, the search happens in the original tab. This patch fixes that bug. Now when you search, it searches in the active conversation window.

committer: Richard Laager <rlaager@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;
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14312
diff changeset
57 GaimProxyConnectData *connect_data;
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
58
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
59 void *private_data;
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 /**
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
63 * SSL implementation operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
64 *
14222
71d8761db708 [gaim-migrate @ 16808]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
65 * Every SSL implementation must provide all of these and register it.
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
66 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
67 typedef struct
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
68 {
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
69 gboolean (*init)(void);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
70 void (*uninit)(void);
14241
7b47f525742a [gaim-migrate @ 16829]
Mark Doliner <markdoliner@pidgin.im>
parents: 14222
diff changeset
71 void (*connectfunc)(GaimSslConnection *gsc);
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
72 void (*close)(GaimSslConnection *gsc);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
73 size_t (*read)(GaimSslConnection *gsc, void *data, size_t len);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
74 size_t (*write)(GaimSslConnection *gsc, const void *data, size_t len);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
75
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
76 } GaimSslOps;
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
77
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78 #ifdef __cplusplus
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 extern "C" {
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 #endif
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 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83 /** @name SSL API */
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 /**
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88 * Returns whether or not SSL is currently supported.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90 * @return TRUE if SSL is supported, or FALSE otherwise.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
91 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92 gboolean gaim_ssl_is_supported(void);
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 /**
14312
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
95 * Makes a SSL connection to the specified host and port. The caller
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
96 * should keep track of the returned value and use it to cancel the
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
97 * connection, if needed.
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
98 *
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
99 * @param account The account making the connection.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
100 * @param host The destination host.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
101 * @param port The destination port.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
102 * @param func The SSL input handler function.
14312
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
103 * @param error_func The SSL error handler function. This function
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
104 * should NOT call gaim_ssl_close(). In the event
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
105 * of an error the GaimSslConnection will be
6ce4512aa9a8 [gaim-migrate @ 16932]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
106 * destroyed for you.
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
107 * @param data User-defined data.
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
108 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
109 * @return The SSL connection handle.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
110 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111 GaimSslConnection *gaim_ssl_connect(GaimAccount *account, const char *host,
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
112 int port, GaimSslInputFunction func,
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
113 GaimSslErrorFunction error_func,
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
114 void *data);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
115
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
116 /**
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
117 * Makes a SSL connection using an already open file descriptor.
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 * @param account The account making the connection.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
120 * @param fd The file descriptor.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
121 * @param func The SSL input handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
122 * @param error_func The SSL error handler function.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
123 * @param data User-defined data.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
124 *
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
125 * @return The SSL connection handle.
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
126 */
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
127 GaimSslConnection *gaim_ssl_connect_fd(GaimAccount *account, int fd,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
128 GaimSslInputFunction func,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
129 GaimSslErrorFunction error_func,
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
130 void *data);
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
131
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
132 /**
6764
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
133 * Adds an input watcher for the specified SSL connection.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
134 *
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
135 * @param gsc The SSL connection handle.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
136 * @param func The callback function.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
137 * @param data User-defined data.
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
138 */
a3f8025c0631 [gaim-migrate @ 7296]
Nathan Walp <nwalp@pidgin.im>
parents: 6762
diff changeset
139 void gaim_ssl_input_add(GaimSslConnection *gsc, GaimSslInputFunction func,
7274
42ec5f56e32a [gaim-migrate @ 7851]
Christian Hammond <chipx86@chipx86.com>
parents: 6783
diff changeset
140 void *data);
6762
2349053f14aa [gaim-migrate @ 7294]
Christian Hammond <chipx86@chipx86.com>
parents: 6738
diff changeset
141
2349053f14aa [gaim-migrate @ 7294]
Christian Hammond <chipx86@chipx86.com>
parents: 6738
diff changeset
142 /**
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
143 * Closes a SSL connection.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
144 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
145 * @param gsc The SSL connection to close.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
146 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
147 void gaim_ssl_close(GaimSslConnection *gsc);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
148
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 * Reads data from an SSL connection.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
152 * @param gsc The SSL connection handle.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153 * @param buffer The destination buffer.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 * @param len The maximum number of bytes to read.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155 *
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
156 * @return The number of bytes read.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
157 */
6720
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
158 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
159
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 * Writes data to an SSL connection.
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 * @param gsc The SSL connection handle.
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
164 * @param buffer The buffer to write.
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
165 * @param len The length of the data to write.
6703
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 * @return The number of bytes written.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
168 */
6720
cdc5348dd848 [gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents: 6703
diff changeset
169 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
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
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
173 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
174 /** @name Subsystem API */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
175 /**************************************************************************/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
176 /*@{*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
177
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 /**
6738
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
179 * Sets the current SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
180 *
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
181 * @param ops The SSL operations structure to assign.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
182 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
183 void gaim_ssl_set_ops(GaimSslOps *ops);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
184
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 * Returns the current SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
187 *
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
188 * @return The SSL operations structure.
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
189 */
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
190 GaimSslOps *gaim_ssl_get_ops(void);
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
191
aa797bcc69dd [gaim-migrate @ 7270]
Christian Hammond <chipx86@chipx86.com>
parents: 6720
diff changeset
192 /**
6703
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193 * Initializes the SSL subsystem.
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194 */
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
195 void gaim_ssl_init(void);
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 * Uninitializes the SSL subsystem.
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 void gaim_ssl_uninit(void);
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
201
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
202 /*@}*/
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
203
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
204 #ifdef __cplusplus
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
205 }
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
206 #endif
6f9d558270c9 [gaim-migrate @ 7229]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
207
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 8362
diff changeset
208 #endif /* _GAIM_SSLCONN_H_ */

mercurial