Changes in protocols/ssl_gnutls.c [a03a9f3:701acdd4]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/ssl_gnutls.c
ra03a9f3 r701acdd4 38 38 struct scd 39 39 { 40 ssl_input_function func;40 SslInputFunction func; 41 41 gpointer data; 42 42 int fd; … … 51 51 52 52 53 void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data )53 void *ssl_connect( char *host, int port, SslInputFunction func, gpointer data ) 54 54 { 55 55 struct scd *conn = g_new0( struct scd, 1 ); … … 111 111 112 112 if( conn->inpa != -1 ) 113 {114 113 gaim_input_remove( conn->inpa ); 115 conn->inpa = -1;116 }117 114 118 115 if( ( st = gnutls_handshake( conn->session ) ) < 0 ) … … 120 117 if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED ) 121 118 { 122 conn->inpa = gaim_input_add( conn->fd, ssl_getdirection( conn ), 119 conn->inpa = gaim_input_add( conn->fd, 120 gnutls_record_get_direction( conn->session ) ? 121 GAIM_INPUT_WRITE : GAIM_INPUT_READ, 123 122 ssl_handshake, data ); 124 123 } … … 146 145 int ssl_read( void *conn, char *buf, int len ) 147 146 { 148 int st;149 150 147 if( !((struct scd*)conn)->established ) 151 148 { … … 154 151 } 155 152 156 st = gnutls_record_recv( ((struct scd*)conn)->session, buf, len);153 return( gnutls_record_recv( ((struct scd*)conn)->session, buf, len ) ); 157 154 158 ssl_errno = SSL_OK;159 if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )160 ssl_errno = SSL_AGAIN;161 162 return st;163 155 } 164 156 165 157 int ssl_write( void *conn, const char *buf, int len ) 166 158 { 167 int st;168 169 159 if( !((struct scd*)conn)->established ) 170 160 { … … 173 163 } 174 164 175 st = gnutls_record_send( ((struct scd*)conn)->session, buf, len ); 176 177 ssl_errno = SSL_OK; 178 if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED ) 179 ssl_errno = SSL_AGAIN; 180 181 return st; 165 return( gnutls_record_send( ((struct scd*)conn)->session, buf, len ) ); 182 166 } 183 167 … … 185 169 { 186 170 struct scd *conn = conn_; 187 188 if( conn->inpa != -1 )189 gaim_input_remove( conn->inpa );190 171 191 172 if( conn->established ) … … 203 184 return( ((struct scd*)conn)->fd ); 204 185 } 205 206 GaimInputCondition ssl_getdirection( void *conn )207 {208 return( gnutls_record_get_direction( ((struct scd*)conn)->session ) ?209 GAIM_INPUT_WRITE : GAIM_INPUT_READ );210 }
Note: See TracChangeset
for help on using the changeset viewer.