Close only if not already closed.

This commit is contained in:
David Baird
2013-04-27 23:34:09 -06:00
parent f7d998481c
commit e6fd1fc30e
+3 -2
View File
@@ -207,8 +207,8 @@ struct _RealWebSocket : public WebSocket
} }
else if (ws.opcode == wsheader_type::PING) { } else if (ws.opcode == wsheader_type::PING) { }
else if (ws.opcode == wsheader_type::PONG) { } else if (ws.opcode == wsheader_type::PONG) { }
else if (ws.opcode == wsheader_type::CLOSE) { closed = true; ::close(sockfd); } else if (ws.opcode == wsheader_type::CLOSE) { close(); }
else { fprintf(stderr, "ERROR: Got unexpected WebSocket message.\n"); closed = true; ::close(sockfd); } else { fprintf(stderr, "ERROR: Got unexpected WebSocket message.\n"); close(); }
rxbuf.erase(rxbuf.begin(), rxbuf.begin() + ws.header_size+ws.N); rxbuf.erase(rxbuf.begin(), rxbuf.begin() + ws.header_size+ws.N);
} }
@@ -245,6 +245,7 @@ struct _RealWebSocket : public WebSocket
} }
void close() { void close() {
if (closed) { return; }
closed = true; closed = true;
::close(sockfd); ::close(sockfd);
} }