X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fio%2Frecord.h;h=5d6e659b7439689157c704a303eefbf7cfcc0d64;hb=5163a9658ba7ef4a875ee1103e82c0be81698689;hp=28a9b1e710da79be26bbff034207328bf7fd86aa;hpb=d92d96bebe9ad5b4f17e4aef580f7dfd8d34d58b;p=cassiopeia.git diff --git a/src/io/record.h b/src/io/record.h index 28a9b1e..5d6e659 100644 --- a/src/io/record.h +++ b/src/io/record.h @@ -4,8 +4,9 @@ #include #include - +#include #include "bios.h" +#include "io/opensslBIO.h" #define RECORD_HEADER_SIZE 17 @@ -89,7 +90,7 @@ public: void unpackFromString( const std::string& str ) { if( str.size() != RECORD_HEADER_SIZE ) { - throw "Invalid string length"; + throw std::runtime_error( "Invalid string length" ); } auto it = str.cbegin(); @@ -101,9 +102,12 @@ public: read( it, offset ); read( it, payloadLength ); } - + bool isFollowupOf( const RecordHeader& head ) { + return head.command == command && head.flags == flags && head.sessid == sessid && head.command_count == command_count && head.totalLength == totalLength && head.offset + 1 == offset; + } }; std::string parseCommand( RecordHeader& head, const std::string& input ); +std::string parseCommandChunked( RecordHeader& head, std::shared_ptr conn ); void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr bio );