summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2014-07-13 23:06:19 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2014-07-13 23:06:19 +0000
commiteede121c340508412e23b0664274f4a9e38bc272 (patch)
treef95332ea369cd38c99c2981de1b1130f24958d56 /lib
parent01994d80a3fec30278a9ee40044ca7c0b6906078 (diff)
Split the context allocation out from the configuration. This will allow
us to properly report errors that occur during configuration processing. Discussed with tedu@
Diffstat (limited to 'lib')
-rw-r--r--lib/libressl/ressl.c16
-rw-r--r--lib/libressl/ressl.h3
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/libressl/ressl.c b/lib/libressl/ressl.c
index dc82f321b11..08ec061bf58 100644
--- a/lib/libressl/ressl.c
+++ b/lib/libressl/ressl.c
@@ -65,21 +65,29 @@ ressl_set_error(struct ressl *ctx, char *fmt, ...)
}
struct ressl *
-ressl_new(struct ressl_config *config)
+ressl_new(void)
{
struct ressl *ctx;
if ((ctx = calloc(1, sizeof(*ctx))) == NULL)
return (NULL);
+ ctx->config = &ressl_config_default;
+
+ ressl_reset(ctx);
+
+ return (ctx);
+}
+
+int
+ressl_configure(struct ressl *ctx, struct ressl_config *config)
+{
if (config == NULL)
config = &ressl_config_default;
ctx->config = config;
- ressl_reset(ctx);
-
- return (ctx);
+ return (0);
}
void
diff --git a/lib/libressl/ressl.h b/lib/libressl/ressl.h
index a1d220028f2..766335aa0cd 100644
--- a/lib/libressl/ressl.h
+++ b/lib/libressl/ressl.h
@@ -36,7 +36,8 @@ void ressl_config_set_verify_depth(struct ressl_config *config,
void ressl_config_insecure_no_verify(struct ressl_config *config);
void ressl_config_verify(struct ressl_config *config);
-struct ressl *ressl_new(struct ressl_config *config);
+struct ressl *ressl_new(void);
+int ressl_configure(struct ressl *ctx, struct ressl_config *config);
void ressl_reset(struct ressl *ctx);
void ressl_free(struct ressl *ctx);