mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-19 14:26:01 -04:00
Merge branch 'bugfix/ws_transport_revert_masked_after_sending' into 'master'
tcp_transport: websocket layer modifies in-buffer data (for masked transports).... See merge request espressif/esp-idf!5546
This commit is contained in:
commit
14c7f8e150
@ -208,7 +208,17 @@ static int _ws_write(esp_transport_handle_t t, int opcode, int mask_flag, const
|
||||
if (len == 0) {
|
||||
return 0;
|
||||
}
|
||||
return esp_transport_write(ws->parent, buffer, len, timeout_ms);
|
||||
|
||||
int ret = esp_transport_write(ws->parent, buffer, len, timeout_ms);
|
||||
// in case of masked transport we have to revert back to the original data, as ws layer
|
||||
// does not create its own copy of data to be sent
|
||||
if (mask_flag) {
|
||||
mask = &ws_header[header_len-4];
|
||||
for (i = 0; i < len; ++i) {
|
||||
buffer[i] = (buffer[i] ^ mask[i % 4]);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ws_write(esp_transport_handle_t t, const char *b, int len, int timeout_ms)
|
||||
|
Loading…
Reference in New Issue
Block a user