玉兔远程控制 0.1.0-alpha.2
载入中...
搜索中...
未找到
ChannelSSH.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include "libssh/libssh.h"
6#include "libssh/callbacks.h"
7#include "Channel.h"
8#include "ParameterSSH.h"
9#include "Backend.h"
10#include "plugin_export.h"
11#include "Event.h"
12
13class PLUGIN_EXPORT CChannelSSH : public CChannel
14{
15 Q_OBJECT
16public:
17 explicit CChannelSSH(CBackend *pBackend, CParameterSSH* pPara,
18 bool bWakeUp = true, QObject *parent = nullptr);
19 virtual ~CChannelSSH();
20
21public:
22 virtual bool open(OpenMode mode) override;
23 virtual void close() override;
24 virtual int WakeUp();
25
26public:
27 virtual QString GetDetails() override;
28
29private:
30 static void cb_log(ssh_session session,
31 int priority,
32 const char *message,
33 void *userdata);
34 int verifyKnownhost(ssh_session session);
35 int authentication(
36 ssh_session session,
37 const QString szUser,
38 const QString szPassword,
39 const QString szPassphrase,
40 const int nMethod = SSH_AUTH_METHOD_PASSWORD);
41 int authenticationPublicKey(
42 ssh_session session,
43 const QString szUser,
44 const QString szPublicKeyFile,
45 const QString szPrivateKeyFile,
46 const QString szPassphrase);
47 virtual int OnOpen(ssh_session session);
48 virtual void OnClose();
49
50protected:
51 ssh_session m_Session;
52 ssh_channel m_Channel;
53 CBackend *m_pBackend;
54 CParameterSSH* m_pParameter;
55 Channel::CEvent* m_pEvent;
56
57private:
58 ssh_pcap_file m_pcapFile;
59};
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
Definition Backend.h:42
通道接口类。此类默认实现一个 TCP 的通道。
Definition Channel.h:27
virtual bool open(OpenMode mode) override
Definition Channel.cpp:88
virtual QString GetDetails()
依赖信息
Definition Channel.cpp:125