12 static VALUE cConfig, eConfigError;
15 nconf_free(
void *conf)
40 config_s_alloc(
VALUE klass)
46 conf = NCONF_new(
NULL);
54 config_load_bio(CONF *conf, BIO *bio)
58 if (!NCONF_load_bio(conf, bio, &eline)) {
61 ossl_raise(eConfigError,
"wrong config format");
63 ossl_raise(eConfigError,
"error in line %d", eline);
84 VALUE obj = config_s_alloc(klass);
89 config_load_bio(conf, bio);
109 obj = config_s_parse(klass, io);
110 sections = config_get_sections(obj);
141 if (!
NIL_P(filename)) {
145 config_load_bio(conf, bio);
151 config_initialize_copy(
VALUE self,
VALUE other)
160 config_load_bio(conf, bio);
188 const char *
str, *sectionp;
233 if (!(sk = NCONF_get_section(conf,
RSTRING_PTR(section)))) {
237 entries = sk_CONF_VALUE_num(sk);
238 for (i = 0; i < entries; i++) {
239 CONF_VALUE *entry = sk_CONF_VALUE_value(sk, i);
247 get_conf_section_doall_arg(CONF_VALUE *cv,
VALUE *aryp)
255 static IMPLEMENT_LHASH_DOALL_ARG_FN(get_conf_section, CONF_VALUE,
VALUE)
264 config_get_sections(
VALUE self)
270 lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(get_conf_section),
276 dump_conf_value_doall_arg(CONF_VALUE *cv,
VALUE *strp)
284 sk = (
STACK_OF(CONF_VALUE) *)cv->value;
285 num = sk_CONF_VALUE_num(sk);
289 for (i = 0; i < num; i++){
290 CONF_VALUE *v = sk_CONF_VALUE_value(sk, i);
299 static IMPLEMENT_LHASH_DOALL_ARG_FN(dump_conf_value, CONF_VALUE,
VALUE)
332 config_to_s(
VALUE self)
338 lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(dump_conf_value),
344 each_conf_value_doall_arg(CONF_VALUE *cv,
void *unused)
352 sk = (
STACK_OF(CONF_VALUE) *)cv->value;
353 num = sk_CONF_VALUE_num(sk);
355 for (i = 0; i < num; i++){
356 CONF_VALUE *v = sk_CONF_VALUE_value(sk, i);
363 static IMPLEMENT_LHASH_DOALL_ARG_FN(each_conf_value, CONF_VALUE,
void)
376 config_each(
VALUE self)
382 lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(each_conf_value),
395 config_inspect(
VALUE self)
397 VALUE str, ary = config_get_sections(
self);
457 path = CONF_get1_default_config_file();