Skip to content

Commit af80934

Browse files
authored
Merge pull request #2 from palkan/feature/no-verify-support
Add support for noverify config options
2 parents fd265a2 + c70169d commit af80934

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

mrblib/config.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ def self.new(options = {})
2828
end
2929
when :verify_depth
3030
instance.verify_depth = v
31+
when :noverify
32+
if v == true
33+
instance.noverify('cert')
34+
else
35+
instance.noverify(v)
36+
end
3137
else
3238
raise ArgumentError, "unknown option #{k}"
3339
end

src/mrb_tls.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,26 @@ mrb_tls_config_clear_keys(mrb_state* mrb, mrb_value self)
221221
return self;
222222
}
223223

224+
static mrb_value
225+
mrb_tls_config_noverify(mrb_state* mrb, mrb_value self)
226+
{
227+
char* mode;
228+
229+
mrb_get_args(mrb, "z", &mode);
230+
231+
if (strcmp(mode, "cert") == 0) {
232+
tls_config_insecure_noverifycert((tls_config_t*)DATA_PTR(self));
233+
} else if (strcmp(mode, "name") == 0) {
234+
tls_config_insecure_noverifyname((tls_config_t*)DATA_PTR(self));
235+
} else if (strcmp(mode, "time") == 0) {
236+
tls_config_insecure_noverifytime((tls_config_t*)DATA_PTR(self));
237+
} else {
238+
mrb_raise(mrb, E_ARGUMENT_ERROR, "unknown noverify mode");
239+
}
240+
241+
return self;
242+
}
243+
224244
static mrb_value
225245
mrb_tls_load_file(mrb_state* mrb, mrb_value self)
226246
{
@@ -612,6 +632,7 @@ mrb_mruby_tls_gem_init(mrb_state* mrb)
612632
mrb_define_method(mrb, tls_conf_c, "protocols=", mrb_tls_config_set_protocols, MRB_ARGS_REQ(1));
613633
mrb_define_method(mrb, tls_conf_c, "verify_depth=", mrb_tls_config_set_verify_depth, MRB_ARGS_REQ(1));
614634
mrb_define_method(mrb, tls_conf_c, "clear_keys", mrb_tls_config_clear_keys, MRB_ARGS_NONE());
635+
mrb_define_method(mrb, tls_conf_c, "noverify", mrb_tls_config_noverify, MRB_ARGS_REQ(1));
615636

616637
tls_ctx_c = mrb_define_class_under(mrb, tls_mod, "Context", mrb->object_class);
617638
MRB_SET_INSTANCE_TT(tls_ctx_c, MRB_TT_DATA);

0 commit comments

Comments
 (0)