1
1

cmake,options: Allow to set global client config file

This allows the global client (ssh_session) configuration file path to
be set in configuration time by defining GLOBAL_CLIENT_CONFIG when
calling cmake.  If it is not defined, the default path is set as
"/etc/ssh/ssh_config".

usage example:

$ cmake -DGLOBAL_CLIENT_CONFIG=/etc/my/custom/path ..

Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
Anderson Toshiyuki Sasaki 2019-05-06 15:19:40 +02:00 коммит произвёл Andreas Schneider
родитель 248e5acd5c
Коммит 7cc159d720
5 изменённых файлов: 11 добавлений и 1 удалений

Просмотреть файл

@ -243,6 +243,7 @@ message(STATUS "Benchmarks: ${WITH_BENCHMARKS}")
message(STATUS "Symbol versioning: ${WITH_SYMBOL_VERSIONING}") message(STATUS "Symbol versioning: ${WITH_SYMBOL_VERSIONING}")
message(STATUS "Allow ABI break: ${WITH_ABI_BREAK}") message(STATUS "Allow ABI break: ${WITH_ABI_BREAK}")
message(STATUS "Release is final: ${WITH_FINAL}") message(STATUS "Release is final: ${WITH_FINAL}")
message(STATUS "Global client config: ${GLOBAL_CLIENT_CONFIG}")
if (WITH_SERVER) if (WITH_SERVER)
message(STATUS "Global bind config: ${GLOBAL_BIND_CONFIG}") message(STATUS "Global bind config: ${GLOBAL_BIND_CONFIG}")
endif() endif()

Просмотреть файл

@ -53,3 +53,7 @@ endif (WITH_ABI_BREAK)
if (NOT GLOBAL_BIND_CONFIG) if (NOT GLOBAL_BIND_CONFIG)
set(GLOBAL_BIND_CONFIG "/etc/ssh/libssh_server_config") set(GLOBAL_BIND_CONFIG "/etc/ssh/libssh_server_config")
endif (NOT GLOBAL_BIND_CONFIG) endif (NOT GLOBAL_BIND_CONFIG)
if (NOT GLOBAL_CLIENT_CONFIG)
set(GLOBAL_CLIENT_CONFIG "/etc/ssh/ssh_config")
endif (NOT GLOBAL_CLIENT_CONFIG)

Просмотреть файл

@ -15,6 +15,9 @@
/* Global bind configuration file path */ /* Global bind configuration file path */
#cmakedefine GLOBAL_BIND_CONFIG "${GLOBAL_BIND_CONFIG}" #cmakedefine GLOBAL_BIND_CONFIG "${GLOBAL_BIND_CONFIG}"
/* Global client configuration file path */
#cmakedefine GLOBAL_CLIENT_CONFIG "${GLOBAL_CLIENT_CONFIG}"
/************************** HEADER FILES *************************/ /************************** HEADER FILES *************************/
/* Define to 1 if you have the <argp.h> header file. */ /* Define to 1 if you have the <argp.h> header file. */

Просмотреть файл

@ -1399,7 +1399,7 @@ int ssh_options_parse_config(ssh_session session, const char *filename) {
goto out; goto out;
} }
if (filename == NULL) { if (filename == NULL) {
r = ssh_config_parse_file(session, "/etc/ssh/ssh_config"); r = ssh_config_parse_file(session, GLOBAL_CLIENT_CONFIG);
} }
/* Do not process the default configuration as part of connection again */ /* Do not process the default configuration as part of connection again */

Просмотреть файл

@ -394,6 +394,8 @@ static void torture_config_unknown(void **state) {
assert_true(ret == 0); assert_true(ret == 0);
ret = ssh_config_parse_file(session, "/etc/ssh/ssh_config"); ret = ssh_config_parse_file(session, "/etc/ssh/ssh_config");
assert_true(ret == 0); assert_true(ret == 0);
ret = ssh_config_parse_file(session, GLOBAL_CLIENT_CONFIG);
assert_true(ret == 0);
} }