summaryrefslogtreecommitdiff
path: root/src/protocol/internal/fqterm_ssh_packet.h
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-05-09 16:33:50 +0800
committerIru Cai <mytbk920423@gmail.com>2018-05-10 14:16:42 +0800
commitedaca3e9ce514aeddde04d9f022dddfc179bf744 (patch)
tree504083543bc7c795d2875ca12de13c0be6f5847d /src/protocol/internal/fqterm_ssh_packet.h
parent456110b0c3165498f3b2b41a0dd10c7d6769ebaa (diff)
downloadfqterm-edaca3e9ce514aeddde04d9f022dddfc179bf744.tar.xz
fqterm packet: use C buffer
Tested using SSH2
Diffstat (limited to 'src/protocol/internal/fqterm_ssh_packet.h')
-rw-r--r--src/protocol/internal/fqterm_ssh_packet.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/protocol/internal/fqterm_ssh_packet.h b/src/protocol/internal/fqterm_ssh_packet.h
index 83dcac7..32f9a29 100644
--- a/src/protocol/internal/fqterm_ssh_packet.h
+++ b/src/protocol/internal/fqterm_ssh_packet.h
@@ -30,25 +30,27 @@
#include "ssh_mac.h"
#include "fqterm_serialization.h"
#include "ssh_cipher.h"
+#include "buffer.h"
namespace FQTerm {
class FQTermSSHPacketSender: public QObject {
Q_OBJECT;
public:
- FQTermSSHBuffer *output_buffer_;
- FQTermSSHBuffer *buffer_;
+ buffer orig_data; /* always unencrypted */
+ buffer data_to_send;
ssh_cipher_t *cipher;
ssh_mac_t *mac;
FQTermSSHPacketSender();
virtual ~FQTermSSHPacketSender();
- void startPacket(int pkt_type);
- void putByte(int data);
- void putInt(u_int data);
+ void startPacket(uint8_t pkt_type);
+ inline void putByte(uint8_t b) { buffer_append_byte(&orig_data, b); }
+ inline void putInt(uint32_t x) { buffer_append_be32(&orig_data, x); }
void putString(const char *string, int len = -1);
- void putRawData(const char *data, int length);
+ inline void putRawData(const uint8_t *data, size_t len)
+ { buffer_append(&orig_data, data, len); }
void putBN(BIGNUM *bignum);
void write();
@@ -84,7 +86,7 @@ class FQTermSSHPacketSender: public QObject {
class FQTermSSHPacketReceiver: public QObject {
Q_OBJECT;
public:
- FQTermSSHBuffer *buffer_;
+ buffer recvbuf;
ssh_cipher_t *cipher;
ssh_mac_t *mac;