Changeset 69cb623 for lib/ssl_client.h
- Timestamp:
- 2006-10-15T09:41:12Z (18 years ago)
- Branches:
- master
- Children:
- 2529faf
- Parents:
- 695e392 (diff), e97827b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
lib/ssl_client.h
r695e392 r69cb623 24 24 */ 25 25 26 /* ssl_client makes it easier to open SSL connections to servers. (It 27 doesn't offer SSL server functionality yet, but it could be useful 28 to add it later.) Different ssl_client modules are available, and 29 ssl_client tries to make them all behave the same. It's very simple 30 and basic, it just imitates the proxy_connect() function from the 31 Gaim libs and passes the socket to the program once the handshake 32 is completed. */ 33 26 34 #include <glib.h> 27 35 #include "proxy.h" 28 36 37 /* Some generic error codes. Especially SSL_AGAIN is important if you 38 want to do asynchronous I/O. */ 29 39 #define SSL_OK 0 30 40 #define SSL_NOHANDSHAKE 1 … … 33 43 extern int ssl_errno; 34 44 45 /* This is what your callback function should look like. */ 35 46 typedef gboolean (*ssl_input_function)(gpointer, void*, b_input_condition); 36 47 48 49 /* Connect to host:port, call the given function when the connection is 50 ready to be used for SSL traffic. This is all done asynchronously, no 51 blocking I/O! (Except for the DNS lookups, for now...) */ 37 52 G_MODULE_EXPORT void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data ); 53 54 /* Obviously you need special read/write functions to read data. */ 38 55 G_MODULE_EXPORT int ssl_read( void *conn, char *buf, int len ); 39 56 G_MODULE_EXPORT int ssl_write( void *conn, const char *buf, int len ); 57 58 /* Abort the SSL connection and disconnect the socket. Do not use close() 59 directly, both the SSL library and the peer will be unhappy! */ 40 60 G_MODULE_EXPORT void ssl_disconnect( void *conn_ ); 61 62 /* Get the fd for this connection, you will usually need it for event 63 handling. */ 41 64 G_MODULE_EXPORT int ssl_getfd( void *conn ); 65 66 /* This function returns GAIM_INPUT_READ/WRITE. With SSL connections it's 67 possible that something has to be read while actually were trying to 68 write something (think about key exchange/refresh/etc). So when an 69 SSL operation returned SSL_AGAIN, *always* use this function when 70 adding an event handler to the queue. (And it should perform exactly 71 the same action as the handler that just received the SSL_AGAIN.) */ 42 72 G_MODULE_EXPORT b_input_condition ssl_getdirection( void *conn );
Note: See TracChangeset
for help on using the changeset viewer.