mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-04 12:20:42 +09:00
tests: modify proxyjump tests to check for ssh_jump_info_struct tests: add proxyjump functionality test feat: add SSH_OPTIONS_PROXYJUMP tests: proxyjump, check authentication fix: ssh_socket_connect_proxyjump add exit label to exit on error feat: implement io forwarding using pthread feat: proxyjump: use threading instead of forking feat: proxyjump: cancel forwarding threads on ssh_disconnect fix: proxyjump remove ProxyJump bool and put pthread ifdefs feat: use ssh_event for io forwarding instead of threads reformat: tests to use assert_int_not_equal fix: link to pthread refactor: make function to free proxy jump list docs: add comment for proxy jump channel feat: add env variable to enable libssh proxy jump feat: open channel for proxyjump like OpenSSH feat: add more tests for proxy jump fix: use a global variable to close io forwarding, this prevents segfaults fix: handle proxy list in thread without creating copy Signed-off-by: Gauravsingh Sisodia <xaerru@gmail.com> Reviewed-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com>
87 lines
2.9 KiB
C
87 lines
2.9 KiB
C
/*
|
|
* config_parser.h - Common configuration file parser functions
|
|
*
|
|
* This file is part of the SSH Library
|
|
*
|
|
* Copyright (c) 2019 by Red Hat, Inc.
|
|
*
|
|
* Author: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
*
|
|
* The SSH Library is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* The SSH Library is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
* License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with the SSH Library; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
* MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef CONFIG_PARSER_H_
|
|
#define CONFIG_PARSER_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "libssh/libssh.h"
|
|
#include <stdbool.h>
|
|
|
|
char *ssh_config_get_cmd(char **str);
|
|
|
|
char *ssh_config_get_token(char **str);
|
|
|
|
long ssh_config_get_long(char **str, long notfound);
|
|
|
|
const char *ssh_config_get_str_tok(char **str, const char *def);
|
|
|
|
int ssh_config_get_yesno(char **str, int notfound);
|
|
|
|
/* @brief Parse SSH URI in format [user@]host[:port] from the given string
|
|
*
|
|
* @param[in] tok String to parse
|
|
* @param[out] username Pointer to the location, where the new username will
|
|
* be stored or NULL if we do not care about the result.
|
|
* @param[out] hostname Pointer to the location, where the new hostname will
|
|
* be stored or NULL if we do not care about the result.
|
|
* @param[out] port Pointer to the location, where the new port will
|
|
* be stored or NULL if we do not care about the result.
|
|
* @param[in] ignore_port Set to true if we should not attempt to parse
|
|
* port number.
|
|
*
|
|
* @returns SSH_OK if the provided string is in format of SSH URI,
|
|
* SSH_ERROR on failure
|
|
*/
|
|
int ssh_config_parse_uri(const char *tok,
|
|
char **username,
|
|
char **hostname,
|
|
char **port,
|
|
bool ignore_port);
|
|
|
|
/**
|
|
* @brief: Parse the ProxyJump configuration line and if parsing,
|
|
* stores the result in the configuration option
|
|
*
|
|
* @param[in] session The ssh session
|
|
* @param[in] s The string to be parsed.
|
|
* @param[in] do_parsing Whether to parse or not.
|
|
*
|
|
* @returns SSH_OK if the provided string is formatted and parsed correctly
|
|
* SSH_ERROR on failure
|
|
*/
|
|
int ssh_config_parse_proxy_jump(ssh_session session,
|
|
const char *s,
|
|
bool do_parsing);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* LIBSSH_CONFIG_H_ */
|