summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2014-07-13 23:06:18 +0000
committerjsing <>2014-07-13 23:06:18 +0000
commit52d7e6dec2e1e75fcac1a3f02ca708176e0c1ee9 (patch)
treec72e6ad789780361a170fe3440164af5e61d85ed /src
parent02332d5d0dcdf23c14ec45f52fb95d580089f34a (diff)
downloadopenbsd-52d7e6dec2e1e75fcac1a3f02ca708176e0c1ee9.tar.gz
openbsd-52d7e6dec2e1e75fcac1a3f02ca708176e0c1ee9.tar.bz2
openbsd-52d7e6dec2e1e75fcac1a3f02ca708176e0c1ee9.zip
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 'src')
-rw-r--r--src/lib/libressl/ressl.c16
-rw-r--r--src/lib/libressl/ressl.h3
2 files changed, 14 insertions, 5 deletions
diff --git a/src/lib/libressl/ressl.c b/src/lib/libressl/ressl.c
index dc82f321b1..08ec061bf5 100644
--- a/src/lib/libressl/ressl.c
+++ b/src/lib/libressl/ressl.c
@@ -65,21 +65,29 @@ ressl_set_error(struct ressl *ctx, char *fmt, ...)
65} 65}
66 66
67struct ressl * 67struct ressl *
68ressl_new(struct ressl_config *config) 68ressl_new(void)
69{ 69{
70 struct ressl *ctx; 70 struct ressl *ctx;
71 71
72 if ((ctx = calloc(1, sizeof(*ctx))) == NULL) 72 if ((ctx = calloc(1, sizeof(*ctx))) == NULL)
73 return (NULL); 73 return (NULL);
74 74
75 ctx->config = &ressl_config_default;
76
77 ressl_reset(ctx);
78
79 return (ctx);
80}
81
82int
83ressl_configure(struct ressl *ctx, struct ressl_config *config)
84{
75 if (config == NULL) 85 if (config == NULL)
76 config = &ressl_config_default; 86 config = &ressl_config_default;
77 87
78 ctx->config = config; 88 ctx->config = config;
79 89
80 ressl_reset(ctx); 90 return (0);
81
82 return (ctx);
83} 91}
84 92
85void 93void
diff --git a/src/lib/libressl/ressl.h b/src/lib/libressl/ressl.h
index a1d220028f..766335aa0c 100644
--- a/src/lib/libressl/ressl.h
+++ b/src/lib/libressl/ressl.h
@@ -36,7 +36,8 @@ void ressl_config_set_verify_depth(struct ressl_config *config,
36void ressl_config_insecure_no_verify(struct ressl_config *config); 36void ressl_config_insecure_no_verify(struct ressl_config *config);
37void ressl_config_verify(struct ressl_config *config); 37void ressl_config_verify(struct ressl_config *config);
38 38
39struct ressl *ressl_new(struct ressl_config *config); 39struct ressl *ressl_new(void);
40int ressl_configure(struct ressl *ctx, struct ressl_config *config);
40void ressl_reset(struct ressl *ctx); 41void ressl_reset(struct ressl *ctx);
41void ressl_free(struct ressl *ctx); 42void ressl_free(struct ressl *ctx);
42 43