@@ -169,8 +169,8 @@ namespace SL {
169169 }
170170 Threads.clear ();
171171 }
172- unsigned int ReadTimeout = 30 ;
173- unsigned int WriteTimeout = 30 ;
172+ std::chrono::seconds ReadTimeout = std::chrono::seconds( 30 ) ;
173+ std::chrono::seconds WriteTimeout = std::chrono::seconds( 30 ) ;
174174 size_t MaxPayload = 1024 * 1024 * 20 ;// 20 MB
175175 asio::io_service io_service;
176176 std::vector<ThreadContext> Threads;
@@ -270,33 +270,33 @@ namespace SL {
270270 }
271271 };
272272
273- template <class PARENTTYPE , class SOCKETTYPE > void readexpire_from_now (const std::shared_ptr<PARENTTYPE>& parent, const std::shared_ptr<WSocketImpl>& websocket, const SOCKETTYPE& socket, int seconds)
273+ template <class PARENTTYPE , class SOCKETTYPE > void readexpire_from_now (const std::shared_ptr<PARENTTYPE>& parent, const std::shared_ptr<WSocketImpl>& websocket, const SOCKETTYPE& socket, std::chrono:: seconds secs )
274274 {
275275
276276 std::error_code ec;
277- if (seconds <= 0 ) websocket->read_deadline .cancel (ec);
278- else websocket->read_deadline .expires_from_now (std::chrono::seconds (seconds) , ec);
277+ if (secs. count () <= 0 ) websocket->read_deadline .cancel (ec);
278+ else websocket->read_deadline .expires_from_now (secs , ec);
279279 if (ec) {
280280 SL_WS_LITE_LOG (Logging_Levels::ERROR_log_level, ec.message ());
281281 }
282- else if (seconds >= 0 ) {
282+ else if (secs. count () >= 0 ) {
283283 websocket->read_deadline .async_wait ([parent, websocket, socket](const std::error_code& ec) {
284284 if (ec != asio::error::operation_aborted) {
285285 return closeImpl (parent, websocket, 1001 , " read timer expired on the socket " );
286286 }
287287 });
288288 }
289289 }
290- template <class PARENTTYPE , class SOCKETTYPE > void writeexpire_from_now (const std::shared_ptr<PARENTTYPE>& parent, const std::shared_ptr<WSocketImpl>& websocket, const SOCKETTYPE& socket, int seconds)
290+ template <class PARENTTYPE , class SOCKETTYPE > void writeexpire_from_now (const std::shared_ptr<PARENTTYPE>& parent, const std::shared_ptr<WSocketImpl>& websocket, const SOCKETTYPE& socket, std::chrono:: seconds secs )
291291 {
292292 std::error_code ec;
293- if (seconds <= 0 ) websocket->write_deadline .cancel (ec);
294- else websocket->write_deadline .expires_from_now (std::chrono::seconds (seconds) , ec);
293+ if (secs. count () <= 0 ) websocket->write_deadline .cancel (ec);
294+ else websocket->write_deadline .expires_from_now (secs , ec);
295295 if (ec) {
296296 SL_WS_LITE_LOG (Logging_Levels::ERROR_log_level, ec.message ());
297297 }
298- else if (seconds >= 0 ) {
299- websocket->write_deadline .async_wait ([parent, websocket, socket, seconds ](const std::error_code& ec) {
298+ else if (secs. count () >= 0 ) {
299+ websocket->write_deadline .async_wait ([parent, websocket, socket](const std::error_code& ec) {
300300 if (ec != asio::error::operation_aborted) {
301301 return closeImpl (parent, websocket, 1001 , " write timer expired on the socket " );
302302 }
@@ -638,12 +638,10 @@ namespace SL {
638638 return closeImpl (parent, websocket, 1002 , " Closing connection because mask requirement not met" );
639639 }
640640
641- if (getrsv2 (websocket->ReceiveHeader ) || getrsv3 (websocket->ReceiveHeader )) {
642- return closeImpl (parent, websocket, 1002 , " Closing connection. rsv bit set" );
643- }
644- if ((getrsv1 (websocket->ReceiveHeader ) && !websocket->CompressionEnabled )) {
641+ if (getrsv2 (websocket->ReceiveHeader ) || getrsv3 (websocket->ReceiveHeader ) ||(getrsv1 (websocket->ReceiveHeader ) && !websocket->CompressionEnabled )) {
645642 return closeImpl (parent, websocket, 1002 , " Closing connection. rsv bit set" );
646643 }
644+
647645 auto opcode = getOpCode (websocket->ReceiveHeader );
648646
649647 size_t size = getpayloadLength1 (websocket->ReceiveHeader );
0 commit comments