1
1

Implement ssh_options_get_port(ssh_session, unsigned int*).

Этот коммит содержится в:
Lee Hambley 2011-10-28 10:26:32 +02:00 коммит произвёл Andreas Schneider
родитель 6bd95b50f5
Коммит e797781bb5
3 изменённых файлов: 41 добавлений и 0 удалений

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

@ -429,6 +429,7 @@ LIBSSH_API int ssh_options_set(ssh_session session, enum ssh_options_e type,
const void *value);
LIBSSH_API int ssh_options_get(ssh_session session, enum ssh_options_e type,
char **value);
LIBSSH_API int ssh_options_get_port(ssh_session session, unsigned int * port_target);
LIBSSH_API int ssh_pcap_file_close(ssh_pcap_file pcap);
LIBSSH_API void ssh_pcap_file_free(ssh_pcap_file pcap);
LIBSSH_API ssh_pcap_file ssh_pcap_file_new(void);

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

@ -778,6 +778,32 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type,
return 0;
}
/**
* @brief This function can get ssh the ssh port. It must only be used on
* a valid ssh session. This function is useful when the session
* options have been automatically inferred from the environment
* or configuration files and one
*
* @param session An allocated SSH session structure.
*
* @param unsigned int An unsigned integer into which the
* port will be set from the ssh session.
*
* @return 0 on success, < 0 on error.
*
*/
int ssh_options_get_port(ssh_session session, unsigned int* port_target) {
if (session == NULL) {
return -1;
}
if (!session->port) {
ssh_set_error_invalid(session);
return -1;
}
*port_target = session->port;
return 0;
}
/**
* @brief This function can get ssh options, it does not support all options provided for
* ssh options set, but mostly those which a user-space program may care about having

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

@ -66,6 +66,19 @@ static void torture_options_set_port(void **state) {
assert_true(rc == -1);
}
static void torture_options_get_port(void **state) {
ssh_session session = *state;
ssh_session uninitialized_session = NULL;
unsigned int given_port = 1234;
unsigned int port_container;
int rc;
rc = ssh_options_set(session, SSH_OPTIONS_PORT, &given_port);
assert_true(rc == 0);
rc = ssh_options_get_port(session, &port_container);
assert_true(rc == 0);
assert_int_equal(port_container, 1234);
}
static void torture_options_get_user(void **state) {
ssh_session session = *state;
char* user = NULL;
@ -166,6 +179,7 @@ int torture_run_tests(void) {
unit_test_setup_teardown(torture_options_set_host, setup, teardown),
unit_test_setup_teardown(torture_options_get_host, setup, teardown),
unit_test_setup_teardown(torture_options_set_port, setup, teardown),
unit_test_setup_teardown(torture_options_get_port, setup, teardown),
unit_test_setup_teardown(torture_options_set_fd, setup, teardown),
unit_test_setup_teardown(torture_options_set_user, setup, teardown),
unit_test_setup_teardown(torture_options_get_user, setup, teardown),