Comments (4)
I didn't find any plausible justification, but this fixes the issue:
diff --git a/WebSocketServer.cpp b/WebSocketServer.cpp
index 9609ad2..01cf74c 100644
--- a/WebSocketServer.cpp
+++ b/WebSocketServer.cpp
@@ -48,8 +48,9 @@ static int callback_main( struct lws *wsi,
while( !self->connections[fd]->buffer.empty( ) )
{
string message = self->connections[fd]->buffer.front( );
- int charsSent = lws_write( wsi, (unsigned char*)message.c_str( ), message.length( ), LWS_WRITE_TEXT );
- if( charsSent < message.length( ) )
+ int msgLen = message.length();
+ int charsSent = lws_write( wsi, (unsigned char*)message.c_str(), msgLen, LWS_WRITE_TEXT );
+ if( charsSent < msgLen )
self->onErrorWrapper( fd, string( "Error writing to socket" ) );
else
// Only pop the message if it was sent successfully.
I verified that with the original code it always used to fall in the error branch.
from cppwebsockets.
Thanks I'll take a look this evening
from cppwebsockets.
Please close this issue. As it is fixed now by updating as suggested in above comment.
from cppwebsockets.
Thanks @HDBaggy for opening a PR and @MrBan for the fix.
Closing this as the PR is merged but still curious about root cause. Is it a networking partition? Curious what the errno
is from the underlying socket.
from cppwebsockets.
Related Issues (13)
- Just tested echoserver example with the latest libwebsockets.
- Using this project in a commercial project HOT 1
- Proposed solution to "double free or corruption (out)"
- CMake build/install CMakeLists.txt HOT 4
- Messages that are 3-4 k can be fragmented which isn't handled correctly in the callback and wait() hangs until connection
- libwebsockets doesn't exist anymore...
- lws_get_internal_extensions() not found !!
- issues with the lib on embedded systems
- How does this compare to Beast? HOT 3
- double free or corruption (out): 0x01114358 ***
- Yet another "double free or corruption (out)" HOT 4
- memory leak when sending large strings
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cppwebsockets.