1010
1111namespace SL {
1212namespace WS_LITE {
13- template <bool isServer, class SOCKETTYPE >
14- void ReadHeaderNext (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket,
15- const std::shared_ptr<asio::streambuf> &extradata);
1613 template <bool isServer, class SOCKETTYPE >
17- void ReadHeaderStart (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket,
18- const std::shared_ptr<asio::streambuf> &extradata);
14+ void ReadHeaderNext (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const std::shared_ptr<asio::streambuf> &extradata);
15+ template <bool isServer, class SOCKETTYPE >
16+ void ReadHeaderStart (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const std::shared_ptr<asio::streambuf> &extradata);
1917 template <bool isServer, class SOCKETTYPE , class SENDBUFFERTYPE >
2018 void write_end (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const SENDBUFFERTYPE &msg);
21-
19+
2220 template <bool isServer, class SOCKETTYPE >
2321 void readexpire_from_now (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, std::chrono::seconds secs)
2422 {
@@ -82,7 +80,7 @@ template <bool isServer, class SOCKETTYPE>
8280 });
8381 }
8482 }
85-
83+
8684 template <bool isServer, class SOCKETTYPE , class SENDBUFFERTYPE >
8785 void writeend (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const SENDBUFFERTYPE &msg, bool iserver)
8886 {
@@ -245,7 +243,6 @@ template <bool isServer, class SOCKETTYPE>
245243 }));
246244 }
247245
248-
249246 inline void UnMaskMessage (size_t readsize, unsigned char *buffer, bool isserver)
250247 {
251248 if (isserver) {
@@ -483,10 +480,9 @@ template <bool isServer, class SOCKETTYPE>
483480 return sendclosemessage<isServer>(parent, socket, 1002 , " Closing connection. nonvalid op code" );
484481 }
485482 }
486-
483+
487484 template <bool isServer, class SOCKETTYPE >
488- void ReadHeaderNext (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket,
489- const std::shared_ptr<asio::streambuf> &extradata)
485+ void ReadHeaderNext (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const std::shared_ptr<asio::streambuf> &extradata)
490486 {
491487 readexpire_from_now<isServer>(parent, socket, parent->ReadTimeout );
492488 size_t dataconsumed = 0 ;
@@ -498,46 +494,40 @@ template <bool isServer, class SOCKETTYPE>
498494 else if (extradata->size () == 1 ) {
499495 dataconsumed = 1 ;
500496 }
501- else {
502- dataconsumed = 0 ;
503- }
504497 // zero is not possible
505498 bytestoread -= dataconsumed;
506499 memcpy (socket->ReceiveHeader , asio::buffer_cast<const void *>(extradata->data ()), dataconsumed);
507500 extradata->consume (dataconsumed);
508501
509502 asio::async_read (socket->Socket , asio::buffer (socket->ReceiveHeader + dataconsumed, bytestoread),
510- [parent, socket, extradata](const std::error_code &ec, size_t ) {
503+ [parent, socket, extradata](const std::error_code &ec, size_t readdata ) {
511504 if (!ec) {
512- size_t readbytes = getpayloadLength1 (socket->ReceiveHeader );
513- switch (readbytes ) {
505+ size_t bytestoread = getpayloadLength1 (socket->ReceiveHeader );
506+ switch (bytestoread ) {
514507 case 126 :
515- readbytes = 2 ;
508+ bytestoread = 2 ;
516509 break ;
517510 case 127 :
518- readbytes = 8 ;
511+ bytestoread = 8 ;
519512 break ;
520513 default :
521- readbytes = 0 ;
514+ bytestoread = 0 ;
522515 }
523- if (readbytes > 1 ) {
516+ if (bytestoread > 1 ) {
524517 size_t dataconsumed = 0 ;
525- size_t bytestoread = 2 ;
526518 if (extradata->size () > 1 ) {
527519 dataconsumed = 2 ;
528520 }
529521 else if (extradata->size () == 1 ) {
530522 dataconsumed = 1 ;
531523 }
532- else {
533- dataconsumed = 0 ;
534- }
535524 bytestoread -= dataconsumed;
536525 memcpy (socket->ReceiveHeader + 2 , asio::buffer_cast<const void *>(extradata->data ()), dataconsumed);
537526 extradata->consume (dataconsumed);
527+ memset (socket->ReceiveHeader + 2 , 255 , 2 );
538528
539529 asio::async_read (socket->Socket , asio::buffer (socket->ReceiveHeader + 2 + dataconsumed, bytestoread),
540- [parent, socket, extradata](const std::error_code &ec, size_t ) {
530+ [parent, socket, extradata](const std::error_code &ec, size_t readdata ) {
541531 if (!ec) {
542532 ReadBody<isServer>(parent, socket, extradata);
543533 }
@@ -557,8 +547,7 @@ template <bool isServer, class SOCKETTYPE>
557547 });
558548 }
559549 template <bool isServer, class SOCKETTYPE >
560- void ReadHeaderStart (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket,
561- const std::shared_ptr<asio::streambuf> &extradata)
550+ void ReadHeaderStart (const std::shared_ptr<WSContextImpl> parent, const SOCKETTYPE &socket, const std::shared_ptr<asio::streambuf> &extradata)
562551 {
563552 free (socket->ReceiveBuffer );
564553 socket->ReceiveBuffer = nullptr ;
@@ -567,7 +556,6 @@ template <bool isServer, class SOCKETTYPE>
567556 ReadHeaderNext<isServer>(parent, socket, extradata);
568557 }
569558
570-
571559 class WSClient : public IWSHub {
572560 std::shared_ptr<WSContextImpl> Impl_;
573561
0 commit comments