28#ifndef LIBSSH_CONNECTION_HPP
29#define LIBSSH_CONNECTION_HPP
36#if HAVE_LIBSSH_LIBSSH_H
37#include <libssh/libssh.h>
38#include <libssh/sftp.h>
59 class libssh_connection
63 libssh_connection(
const std::shared_ptr<user_interaction> & dialog,
64 const std::string & login,
65 const secu_string & password,
66 const std::string & host,
67 const std::string & port,
69 const std::string & sftp_pub_keyfile,
70 const std::string & sftp_prv_keyfile,
71 const std::string & sftp_known_hosts,
73 bool verbose =
false);
75 libssh_connection(
const libssh_connection & ref) =
delete;
76 libssh_connection(libssh_connection && ref) =
delete;
77 libssh_connection & operator = (
const libssh_connection & ref) =
delete;
78 libssh_connection & operator = (libssh_connection && ref) =
delete;
79 ~libssh_connection() { cleanup_session(); };
81 ssh_session & get_ssh_session() {
return sess; };
82 sftp_session & get_sftp_session() {
return sftp_sess; };
83 U_I get_retry_delay()
const {
return waiting; };
84 U_I get_max_read()
const {
return max_read; };
85 U_I get_max_write()
const {
return max_write; };
87 const char* get_sftp_error_msg()
const;
91 sftp_session sftp_sess;
97 void create_session(
const std::string & host,
98 const std::string & port,
99 const std::string & login,
100 const std::string sftp_known_hosts,
102 const std::string sftp_pub_keyfile,
103 const std::string & sftp_prv_keyfile);
105 void server_authentication(user_interaction & dialog);
106 void user_authentication(user_interaction & dialog,
107 const secu_string & password,
109 const std::string & login,
110 const std::string & host,
111 const std::string & sftp_pub_keyfile,
112 const std::string & sftp_prv_keyfile);
113 void create_sftp_session();
114 void set_max_limits();
115 void cleanup_session();
117 static const char* get_key_error_msg(
int code);
118 static const char* get_auth_error_msg(
int code);
are defined here basic integer types that tend to be portable
include macro defined by the configure script and some specific additional ones
libdar namespace encapsulate all libdar symbols
this file contains the definition of secu_string class, a std::string like class but allocated in sec...
defines the interaction interface between libdar and users.