From e6fd1fc30e3afdb85b8d3eaca765e0c6877bf165 Mon Sep 17 00:00:00 2001 From: David Baird Date: Sat, 27 Apr 2013 23:34:09 -0600 Subject: [PATCH] Close only if not already closed. --- easywsclient.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easywsclient.cpp b/easywsclient.cpp index d9d36ed..b392574 100644 --- a/easywsclient.cpp +++ b/easywsclient.cpp @@ -207,8 +207,8 @@ struct _RealWebSocket : public WebSocket } else if (ws.opcode == wsheader_type::PING) { } else if (ws.opcode == wsheader_type::PONG) { } - else if (ws.opcode == wsheader_type::CLOSE) { closed = true; ::close(sockfd); } - else { fprintf(stderr, "ERROR: Got unexpected WebSocket message.\n"); closed = true; ::close(sockfd); } + else if (ws.opcode == wsheader_type::CLOSE) { close(); } + else { fprintf(stderr, "ERROR: Got unexpected WebSocket message.\n"); close(); } rxbuf.erase(rxbuf.begin(), rxbuf.begin() + ws.header_size+ws.N); } @@ -245,6 +245,7 @@ struct _RealWebSocket : public WebSocket } void close() { + if (closed) { return; } closed = true; ::close(sockfd); }