--- a/src/sock_gnutls.c Sun Feb 22 06:44:16 2009 +0200
+++ b/src/sock_gnutls.c Sun Feb 22 06:52:55 2009 +0200
@@ -43,24 +43,26 @@
/*
* Configure the given gnutls socket context to use simple anonymous client credentials
- *
- * XXX: errors
*/
-void sock_gnutls_client_ctx_anon (struct sock_gnutls_client_ctx *ctx)
+static err_t sock_gnutls_client_ctx_anon (struct sock_gnutls_client_ctx *ctx, struct error_info *err)
{
- gnutls_certificate_allocate_credentials(&ctx->xcred);
+ // init to use anonymous x509 cert
+ if ((ERROR_EXTRA(err) = gnutls_certificate_allocate_credentials(&ctx->xcred)) < 0)
+ return SET_ERROR(err, ERR_GNUTLS_CERT_ALLOC_CRED);
+
+ // done
+ return SUCCESS;
}
-err_t sock_gnutls_init (void)
+err_t sock_gnutls_init (struct error_info *err)
{
- int _err;
-
// global init
- if ((_err = gnutls_global_init()) < 0)
- errx(1, "gnutls_global_init: %s", gnutls_strerror(_err));
+ if ((ERROR_EXTRA(err) = gnutls_global_init()) < 0)
+ return SET_ERROR(err, ERR_GNUTLS_GLOBAL_INIT);
// init _sock_gnutls_ctx
- sock_gnutls_client_ctx_anon(&_sock_gnutls_client_ctx);
+ if (sock_gnutls_client_ctx_anon(&_sock_gnutls_client_ctx, err))
+ return ERROR_CODE(err);
// done
return SUCCESS;