GnuTLS is now supported on client side.

FossilOrigin-Name: 1cb3d6ca96bf4b9447418b5a3983a3abc8918d60ef745cc2600a353f4a7f559b
This commit is contained in:
7u83@mail.ru
2015-02-08 20:07:55 +00:00
parent 7264630ca8
commit 2dd03898b4
21 changed files with 145 additions and 128 deletions

View File

@ -33,6 +33,11 @@ int dtls_gnutls_init()
return 1;
}
int dtls_gnutls_shutdown(struct conn *conn)
{
/* implement it */
return 1;
}
void dtls_gnutls_data_destroy(struct dtls_gnutls_data *d)
{
@ -74,7 +79,7 @@ int dtls_gnutls_read(struct conn * conn, uint8_t *buffer, int len)
}
struct dtls_gnutls_data *dtls_gnutls_data_create(struct conn *conn)
struct dtls_gnutls_data *dtls_gnutls_data_create(struct conn *conn,int config)
{
struct dtls_gnutls_data *d = malloc(sizeof(struct dtls_gnutls_data));
if (!d)
@ -106,7 +111,7 @@ struct dtls_gnutls_data *dtls_gnutls_data_create(struct conn *conn)
}
rc = gnutls_init(&d->session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
rc = gnutls_init(&d->session, config);
if (rc < 0) {
cw_log(LOG_ERR, "DTLS - Can't init session: %s", gnutls_strerror(rc));
dtls_gnutls_data_destroy(d);
@ -132,10 +137,10 @@ struct dtls_gnutls_data *dtls_gnutls_data_create(struct conn *conn)
return 0;
}
gnutls_certificate_server_set_request(d->session,GNUTLS_CERT_REQUEST);
gnutls_transport_set_pull_function(d->session, dtls_gnutls_bio_read);
gnutls_transport_set_push_function(d->session, dtls_gnutls_bio_write);
gnutls_transport_set_pull_timeout_function(d->session, dtls_gnutls_bio_wait);
return d;
}