X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2FslipBio.cpp;h=da1253a6b1aa04695f8a297f6f447a337ff63077;hb=1da0a75827f3b6af11c6a30880984c511cb624c9;hp=5baae773cb55f084e3a9d99b414b83489031961c;hpb=e0272f77eded433ba3593621d84dc0b3e47f4098;p=cassiopeia.git diff --git a/src/slipBio.cpp b/src/slipBio.cpp index 5baae77..da1253a 100644 --- a/src/slipBio.cpp +++ b/src/slipBio.cpp @@ -1,8 +1,10 @@ #include "slipBio.h" +#include + #include -#include +#define BUFFER_SIZE 8192 char hexDigit( char c ) { if( c < 0 ) { @@ -21,27 +23,23 @@ char hexDigit( char c ) { } std::string toHex( const char* buf, int len ) { - char* c = ( char* ) malloc( len * 2 ); - - if( !c ) { - return ""; - } - - std::shared_ptr mem = std::shared_ptr( c, free ); + std::string data = "000000"; for( int i = 0; i < len; i++ ) { - c[i * 2] = hexDigit( ( buf[i] >> 4 ) & 0xF ); - c[i * 2 + 1] = hexDigit( buf[i] & 0xF ); + data.append( 1, ' ' ); + data.append( 1, hexDigit( ( buf[i] >> 4 ) & 0xF ) ); + data.append( 1, hexDigit( buf[i] & 0xF ) ); } - return std::string( mem.get(), len * 2 ); + return data; } SlipBIO::SlipBIO() { - this->buffer = std::vector( 4096 ); + this->buffer = std::vector( BUFFER_SIZE ); this->decodeTarget = 0; this->decodePos = 0; this->rawPos = 0; + this->failed = false; } void SlipBIO::setTarget( std::shared_ptr target ) { @@ -50,7 +48,8 @@ void SlipBIO::setTarget( std::shared_ptr target ) { SlipBIO::SlipBIO( std::shared_ptr target ) { this->target = target; - this->buffer = std::vector( 4096 ); + + this->buffer = std::vector( BUFFER_SIZE ); this->decodeTarget = 0; this->decodePos = 0; this->rawPos = 0; @@ -61,6 +60,7 @@ SlipBIO::SlipBIO( std::shared_ptr target ) { SlipBIO::~SlipBIO() {} int SlipBIO::write( const char* buf, int num ) { + std::cout << "Out: " << toHex( buf, num ) << std::endl; int badOnes = 0; for( int i = 0; i < num; i++ ) {