-
Vladimir Davydov authored
Currently, all the EE configuration options are visible in CE, but an attempt to set them either fails or ignored. Let's be consistent and simply hide those options from CE, like we do with the feedback daemon. The only problem here is that some tests print the whole config to the result file: box/cfg, box/admin, app-tap/init_script. We fixed box/cfg and box/admin tests by adding EE keys to the cfg_filter if tests are run by a EE binary. This should make the output the same between CE and EE. As for app-tap/init_script, since it doesn't use cfg_filter, we removed printing of the whole config to the result file and instead print just box.cfg.memtx_memory - it should be enough to check that box.cfg is accessible from an init script. Note, we use explicit 'if' statement in ifdef_XXX functions rather than 'a and b or c', because the latter doesn't work as expected if 'b' is boolean false. While we are at it, make cfg_getb helper return a boolean value instead of integer, and false instead of -1 in case of nil. (I've no idea why it was made to return -1 in case of nil in the first place.) NO_DOC=undocumented NO_CHANGELOG=undocumented
Vladimir Davydov authoredCurrently, all the EE configuration options are visible in CE, but an attempt to set them either fails or ignored. Let's be consistent and simply hide those options from CE, like we do with the feedback daemon. The only problem here is that some tests print the whole config to the result file: box/cfg, box/admin, app-tap/init_script. We fixed box/cfg and box/admin tests by adding EE keys to the cfg_filter if tests are run by a EE binary. This should make the output the same between CE and EE. As for app-tap/init_script, since it doesn't use cfg_filter, we removed printing of the whole config to the result file and instead print just box.cfg.memtx_memory - it should be enough to check that box.cfg is accessible from an init script. Note, we use explicit 'if' statement in ifdef_XXX functions rather than 'a and b or c', because the latter doesn't work as expected if 'b' is boolean false. While we are at it, make cfg_getb helper return a boolean value instead of integer, and false instead of -1 in case of nil. (I've no idea why it was made to return -1 in case of nil in the first place.) NO_DOC=undocumented NO_CHANGELOG=undocumented
cfg.h 2.35 KiB
#ifndef INCLUDES_TARANTOOL_CFG_H
#define INCLUDES_TARANTOOL_CFG_H
/*
* Copyright 2010-2016, Tarantool AUTHORS, please see AUTHORS file.
*
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the following
* conditions are met:
*
* 1. Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* <COPYRIGHT HOLDER> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <stdint.h>
struct uri_set;
#if defined(__cplusplus)
extern "C" {
#endif /* defined(__cplusplus) */
/**
* Fill @a uri_set according to cfg @a param.
* Return 0 if success, otherwise return -1
*/
int
cfg_get_uri_set(const char *param, struct uri_set *uri_set);
int
cfg_geti(const char *param);
/**
* Test if cfg parameter is a number.
*/
bool
cfg_isnumber(const char *param);
/**
* Gets boolean parameter of cfg.
* Returns false in case of nil
*/
bool
cfg_getb(const char *param);
int
cfg_geti_default(const char *param, int default_val);
int64_t
cfg_geti64(const char *param);
const char *
cfg_gets(const char *param);
double
cfg_getd(const char *param);
double
cfg_getd_default(const char *param, double default_val);
int
cfg_getarr_size(const char *name);
const char *
cfg_getarr_elem(const char *name, int i);
#if defined(__cplusplus)
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* INCLUDES_TARANTOOL_CFG_H */