Latest update.
This commit is contained in:
+30
-39
@@ -16,33 +16,31 @@
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/conf_api.h>
|
||||
|
||||
DEFINE_STACK_OF(CONF_VALUE)
|
||||
|
||||
static void value_free_hash(const CONF_VALUE *a, LHASH_OF(CONF_VALUE) *conf);
|
||||
static void value_free_stack_doall(CONF_VALUE *a);
|
||||
|
||||
/* Up until OpenSSL 0.9.5a, this was get_section */
|
||||
CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section)
|
||||
{
|
||||
CONF_VALUE *v, vv;
|
||||
CONF_VALUE vv;
|
||||
|
||||
if ((conf == NULL) || (section == NULL))
|
||||
if (conf == NULL || section == NULL)
|
||||
return NULL;
|
||||
vv.name = NULL;
|
||||
vv.section = (char *)section;
|
||||
v = lh_CONF_VALUE_retrieve(conf->data, &vv);
|
||||
return v;
|
||||
return lh_CONF_VALUE_retrieve(conf->data, &vv);
|
||||
}
|
||||
|
||||
/* Up until OpenSSL 0.9.5a, this was CONF_get_section */
|
||||
STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf,
|
||||
const char *section)
|
||||
{
|
||||
CONF_VALUE *v;
|
||||
|
||||
v = _CONF_get_section(conf, section);
|
||||
if (v != NULL)
|
||||
return ((STACK_OF(CONF_VALUE) *)v->value);
|
||||
else
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
return ((STACK_OF(CONF_VALUE) *)v->value);
|
||||
}
|
||||
|
||||
int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value)
|
||||
@@ -53,9 +51,8 @@ int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value)
|
||||
ts = (STACK_OF(CONF_VALUE) *)section->value;
|
||||
|
||||
value->section = section->section;
|
||||
if (!sk_CONF_VALUE_push(ts, value)) {
|
||||
if (!sk_CONF_VALUE_push(ts, value))
|
||||
return 0;
|
||||
}
|
||||
|
||||
v = lh_CONF_VALUE_insert(conf->data, value);
|
||||
if (v != NULL) {
|
||||
@@ -75,28 +72,26 @@ char *_CONF_get_string(const CONF *conf, const char *section,
|
||||
|
||||
if (name == NULL)
|
||||
return NULL;
|
||||
if (conf != NULL) {
|
||||
if (section != NULL) {
|
||||
vv.name = (char *)name;
|
||||
vv.section = (char *)section;
|
||||
v = lh_CONF_VALUE_retrieve(conf->data, &vv);
|
||||
if (v != NULL)
|
||||
return v->value;
|
||||
if (strcmp(section, "ENV") == 0) {
|
||||
p = ossl_safe_getenv(name);
|
||||
if (p != NULL)
|
||||
return p;
|
||||
}
|
||||
}
|
||||
vv.section = "default";
|
||||
if (conf == NULL)
|
||||
return ossl_safe_getenv(name);
|
||||
if (section != NULL) {
|
||||
vv.name = (char *)name;
|
||||
vv.section = (char *)section;
|
||||
v = lh_CONF_VALUE_retrieve(conf->data, &vv);
|
||||
if (v != NULL)
|
||||
return v->value;
|
||||
else
|
||||
return NULL;
|
||||
} else
|
||||
return ossl_safe_getenv(name);
|
||||
if (strcmp(section, "ENV") == 0) {
|
||||
p = ossl_safe_getenv(name);
|
||||
if (p != NULL)
|
||||
return p;
|
||||
}
|
||||
}
|
||||
vv.section = "default";
|
||||
vv.name = (char *)name;
|
||||
v = lh_CONF_VALUE_retrieve(conf->data, &vv);
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
return v->value;
|
||||
}
|
||||
|
||||
static unsigned long conf_value_hash(const CONF_VALUE *v)
|
||||
@@ -110,24 +105,21 @@ static int conf_value_cmp(const CONF_VALUE *a, const CONF_VALUE *b)
|
||||
|
||||
if (a->section != b->section) {
|
||||
i = strcmp(a->section, b->section);
|
||||
if (i)
|
||||
if (i != 0)
|
||||
return i;
|
||||
}
|
||||
|
||||
if ((a->name != NULL) && (b->name != NULL)) {
|
||||
i = strcmp(a->name, b->name);
|
||||
return i;
|
||||
} else if (a->name == b->name)
|
||||
if (a->name != NULL && b->name != NULL)
|
||||
return strcmp(a->name, b->name);
|
||||
if (a->name == b->name)
|
||||
return 0;
|
||||
else
|
||||
return ((a->name == NULL) ? -1 : 1);
|
||||
return (a->name == NULL) ? -1 : 1;
|
||||
}
|
||||
|
||||
int _CONF_new_data(CONF *conf)
|
||||
{
|
||||
if (conf == NULL) {
|
||||
if (conf == NULL)
|
||||
return 0;
|
||||
}
|
||||
if (conf->data == NULL) {
|
||||
conf->data = lh_CONF_VALUE_new(conf_value_hash, conf_value_cmp);
|
||||
if (conf->data == NULL)
|
||||
@@ -185,7 +177,6 @@ static void value_free_stack_doall(CONF_VALUE *a)
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
||||
/* Up until OpenSSL 0.9.5a, this was new_section */
|
||||
CONF_VALUE *_CONF_new_section(CONF *conf, const char *section)
|
||||
{
|
||||
STACK_OF(CONF_VALUE) *sk = NULL;
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
DEFINE_STACK_OF(BIO)
|
||||
|
||||
#ifndef S_ISDIR
|
||||
# define S_ISDIR(a) (((a) & S_IFMT) == S_IFDIR)
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
#include <openssl/trace.h>
|
||||
#include <openssl/engine.h>
|
||||
|
||||
DEFINE_STACK_OF(CONF_VALUE)
|
||||
DEFINE_STACK_OF(CONF_MODULE)
|
||||
DEFINE_STACK_OF(CONF_IMODULE)
|
||||
|
||||
#define DSO_mod_init_name "OPENSSL_init"
|
||||
#define DSO_mod_finish_name "OPENSSL_finish"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include "internal/sslconf.h"
|
||||
#include "conf_local.h"
|
||||
|
||||
DEFINE_STACK_OF(CONF_VALUE)
|
||||
|
||||
/*
|
||||
* SSL library configuration module placeholder. We load it here but defer
|
||||
* all decisions about its contents to libssl.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
# Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
Reference in New Issue
Block a user