This commit is contained in:
@ -165,13 +165,13 @@ namespace dropshell
|
||||
return false;
|
||||
|
||||
std::stringstream ssh_cmd;
|
||||
ssh_cmd << "ssh -p " << ssh_info.port << " " << (hasFlag(mode, cMode::Interactive) ? "-tt " : "")
|
||||
<< ssh_info.user << "@" << ssh_info.host;
|
||||
ssh_cmd << "ssh -p " << ssh_info.get_port() << " " << (hasFlag(mode, cMode::Interactive) ? "-tt " : "")
|
||||
<< ssh_info.get_user() << "@" << ssh_info.get_host();
|
||||
|
||||
std::string remote_bb64_path;
|
||||
|
||||
if (!hasFlag(mode, cMode::NoBB64))
|
||||
remote_bb64_path = remotepath(ssh_info.server_ID, ssh_info.user).agent() + "/bb64";
|
||||
remote_bb64_path = remotepath(ssh_info.get_server_ID(), ssh_info.get_user()).agent() + "/bb64";
|
||||
|
||||
bool rval = execute_local_command(
|
||||
"", // local directory to run in
|
||||
@ -237,4 +237,15 @@ namespace dropshell
|
||||
return cmdstr;
|
||||
}
|
||||
|
||||
bool sSSHInfo::valid() const
|
||||
{
|
||||
if (host.empty() || user.empty() || port.empty() || server_ID.empty() || user_dir.empty())
|
||||
return false;
|
||||
|
||||
if (atoi(port.c_str()) == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace dropshell
|
@ -24,12 +24,25 @@ inline cMode operator|=(cMode & lhs, cMode rhs) {return lhs = lhs | rhs;}
|
||||
inline bool hasFlag(cMode mode, cMode flag) {return (mode & flag) == flag;}
|
||||
|
||||
|
||||
typedef struct sSSHInfo {
|
||||
std::string host;
|
||||
std::string user;
|
||||
std::string port;
|
||||
std::string server_ID; // dropshell name for server.
|
||||
} sSSHInfo;
|
||||
class sSSHInfo {
|
||||
public:
|
||||
sSSHInfo(std::string host, std::string user, std::string port, std::string server_ID, std::string user_dir) :
|
||||
host(host), user(user), port(port), server_ID(server_ID), user_dir(user_dir) {}
|
||||
|
||||
std::string get_host() const { return host; }
|
||||
std::string get_user() const { return user; }
|
||||
std::string get_port() const { return port; }
|
||||
std::string get_server_ID() const { return server_ID; }
|
||||
std::string get_user_dir() const { return user_dir; }
|
||||
|
||||
bool valid() const;
|
||||
private:
|
||||
std::string host;
|
||||
std::string user;
|
||||
std::string port;
|
||||
std::string server_ID; // dropshell name for server.
|
||||
std::string user_dir; // dropshell directory for the user.
|
||||
};
|
||||
|
||||
bool execute_local_command(std::string directory_to_run_in, std::string command_to_run, const std::map<std::string, std::string> & env_vars, std::string * output = nullptr, cMode mode = cMode::Defaults);
|
||||
bool execute_ssh_command(const sSSHInfo & ssh_info, const sCommand & remote_command, cMode mode = cMode::Defaults, std::string * output = nullptr);
|
||||
|
Reference in New Issue
Block a user