Skip to content

Commit 009c17a

Browse files
committed
Tidy up timeout and rengotiate handling
1 parent 7b41c6f commit 009c17a

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

src/platforms/macos/daemon/wgsessionmacos.cpp

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ namespace {
2626
Logger logger("WgSessionMacos");
2727
}; // namespace
2828

29-
constexpr const int WG_SESSION_TICK_INTERVAL = 1000;
30-
constexpr const int WG_DEFRAG_TIMEOUT = 3000;
29+
constexpr const int WG_SESSION_TICK_INTERVAL = 100;
30+
constexpr const int WG_DEFRAG_TIMEOUT = 1000;
3131
constexpr const int WG_PACKET_OVERHEAD = 32;
32+
constexpr const int WG_MAX_HANDSHAKE_SIZE = 148;
3233

3334
WgSessionMacos::WgSessionMacos(const InterfaceConfig& config, QObject* parent)
3435
: QObject(parent), m_config(config) {
@@ -95,7 +96,7 @@ void WgSessionMacos::processResult(int op, const QByteArray& buf) {
9596

9697
void WgSessionMacos::timeout() {
9798
QByteArray buffer;
98-
buffer.resize(1500);
99+
buffer.resize(WG_MAX_HANDSHAKE_SIZE);
99100

100101
uint8_t* bufptr = reinterpret_cast<uint8_t*>(buffer.data());
101102
auto result = wireguard_tick(m_tunnel, bufptr, buffer.length());
@@ -111,34 +112,35 @@ void WgSessionMacos::timeout() {
111112
}
112113

113114
void WgSessionMacos::renegotiate() {
114-
QByteArray buffer;
115-
buffer.resize(1500);
115+
QByteArray output;
116+
output.resize(WG_MAX_HANDSHAKE_SIZE);
116117

117-
uint8_t* bufptr = reinterpret_cast<uint8_t*>(buffer.data());
118-
auto result = wireguard_force_handshake(m_tunnel, bufptr, buffer.length());
119-
processResult(result.op, buffer.first(result.size));
118+
uint8_t* outptr = reinterpret_cast<uint8_t*>(output.data());
119+
auto res = wireguard_force_handshake(m_tunnel, outptr, output.size());
120+
121+
processResult(res.op, output.first(res.size));
120122
}
121123

122-
void WgSessionMacos::encrypt(const QByteArray& data) {
123-
QByteArray buffer;
124-
buffer.resize(data.length() + WG_PACKET_OVERHEAD);
124+
void WgSessionMacos::encrypt(const QByteArray& pkt) {
125+
QByteArray output;
126+
output.resize(output.size() + WG_PACKET_OVERHEAD);
125127

126-
const uint8_t* dataptr = reinterpret_cast<const uint8_t*>(data.constData());
127-
uint8_t* bufptr = reinterpret_cast<uint8_t*>(buffer.data());
128-
auto result =
129-
wireguard_write(m_tunnel, dataptr, data.length(), bufptr, buffer.length());
130-
processResult(result.op, buffer.first(result.size));
128+
const uint8_t* ptr = reinterpret_cast<const uint8_t*>(pkt.constData());
129+
uint8_t* outptr = reinterpret_cast<uint8_t*>(output.data());
130+
auto res = wireguard_write(m_tunnel, ptr, pkt.size(), outptr, output.size());
131+
132+
processResult(res.op, output.first(res.size));
131133
}
132134

133-
void WgSessionMacos::netInput(const QByteArray& data) {
134-
QByteArray buffer;
135-
buffer.resize(data.length());
135+
void WgSessionMacos::netInput(const QByteArray& pkt) {
136+
QByteArray output;
137+
output.resize(pkt.size());
136138

137-
const uint8_t* dataptr = reinterpret_cast<const uint8_t*>(data.constData());
138-
uint8_t* bufptr = reinterpret_cast<uint8_t*>(buffer.data());
139-
auto result = wireguard_read(m_tunnel, dataptr, data.length(), bufptr,
140-
buffer.length());
141-
processResult(result.op, buffer.first(result.size));
139+
const uint8_t* ptr = reinterpret_cast<const uint8_t*>(pkt.constData());
140+
uint8_t* outptr = reinterpret_cast<uint8_t*>(output.data());
141+
auto res = wireguard_read(m_tunnel, ptr, pkt.size(), outptr, output.size());
142+
143+
processResult(res.op, output.first(res.size));
142144
}
143145

144146
void WgSessionMacos::readyRead() {

0 commit comments

Comments
 (0)