Sometimes I cannot think properly
This commit is contained in:
+2
-2
@@ -108,14 +108,14 @@ public:
|
|||||||
|
|
||||||
/* Special path for long sends of non-compressed, non-SSL messages */
|
/* Special path for long sends of non-compressed, non-SSL messages */
|
||||||
if (message.length() >= 16 * 1024 && !compress && !SSL && !webSocketData->subscriber && getBufferedAmount() == 0 && Super::getLoopData()->corkOffset == 0) {
|
if (message.length() >= 16 * 1024 && !compress && !SSL && !webSocketData->subscriber && getBufferedAmount() == 0 && Super::getLoopData()->corkOffset == 0) {
|
||||||
char header[14];
|
char header[10];
|
||||||
int header_length = (int) protocol::formatMessage<isServer>(header, nullptr, 0, opCode, message.length(), compress, fin);
|
int header_length = (int) protocol::formatMessage<isServer>(header, nullptr, 0, opCode, message.length(), compress, fin);
|
||||||
int written = us_socket_write2(0, (struct us_socket_t *)this, header, header_length, message.data(), (int) message.length());
|
int written = us_socket_write2(0, (struct us_socket_t *)this, header, header_length, message.data(), (int) message.length());
|
||||||
|
|
||||||
if (written != header_length + (int) message.length()) {
|
if (written != header_length + (int) message.length()) {
|
||||||
/* Buffer up backpressure */
|
/* Buffer up backpressure */
|
||||||
if (written > header_length) {
|
if (written > header_length) {
|
||||||
webSocketData->buffer.append(message.data() + written, message.length() - (size_t) written);
|
webSocketData->buffer.append(message.data() + written - header_length, message.length() - (size_t) (written - header_length));
|
||||||
} else {
|
} else {
|
||||||
webSocketData->buffer.append(header + written, (size_t) header_length - (size_t) written);
|
webSocketData->buffer.append(header + written, (size_t) header_length - (size_t) written);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user