@@ -26,9 +26,10 @@ namespace {
2626Logger 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 ;
3131constexpr const int WG_PACKET_OVERHEAD = 32 ;
32+ constexpr const int WG_MAX_HANDSHAKE_SIZE = 148 ;
3233
3334WgSessionMacos::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
9697void 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
113114void 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
144146void WgSessionMacos::readyRead () {
0 commit comments