X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fio%2FopensslBIO.cpp;h=13699605bf2827b90b5b54c2696c95b7d4bb56ce;hb=6121035a7d8ea738bc89c2de8e6602fb1099b0e2;hp=02fd4728a10f2396d8f9d00ee162b1c09181f801;hpb=03ea7aa51a52517a74b5f9ffd925551cc91986fe;p=cassiopeia.git diff --git a/src/io/opensslBIO.cpp b/src/io/opensslBIO.cpp index 02fd472..1369960 100644 --- a/src/io/opensslBIO.cpp +++ b/src/io/opensslBIO.cpp @@ -1,7 +1,7 @@ #include "opensslBIO.h" #include -OpensslBIOWrapper::OpensslBIOWrapper( std::shared_ptr _b ) : b( _b ), buffer( 2*0xFFFF+20, 0 ), pos(0) { +OpensslBIOWrapper::OpensslBIOWrapper( std::shared_ptr _b ) : b( _b ), buffer( 2 * 0xFFFF + 20, 0 ), pos( 0 ) { } OpensslBIOWrapper::~OpensslBIOWrapper() { @@ -30,31 +30,37 @@ int OpensslBIOWrapper::gets( char* str, int size ) { const char* OpensslBIOWrapper::getName() { return "OpenSSLWrapper"; } -std::string OpensslBIOWrapper::readLine(){ +std::string OpensslBIOWrapper::readLine() { int target = 0; - while(1){ - logger::debug("doing data"); - while(target < pos){ - if(buffer[target] == '\n'){ + + while( 1 ) { + logger::debug( "doing data" ); + + while( target < pos ) { + if( buffer[target] == '\n' ) { target++; - std::string res(buffer.data(), 0, target); - std::copy(buffer.data() + target, buffer.data() + pos, buffer.data() ); + std::string res( buffer.data(), 0, target ); + std::copy( buffer.data() + target, buffer.data() + pos, buffer.data() ); pos -= target; - logger::debug("emit"); + logger::debug( "emit" ); return res; } + target++; } + std::stringstream ss; ss << "target: " << target << ", pos:" << pos; - logger::debug(ss.str()); - int dlen = read(buffer.data() + pos, buffer.size() - pos); - if ( dlen <= 0 ){ + logger::debug( ss.str() ); + int dlen = read( buffer.data() + pos, buffer.size() - pos ); + + if( dlen <= 0 ) { throw eof_exception(); } + std::stringstream ss2; ss2 << "done: " << dlen; - logger::debug(ss2.str()); + logger::debug( ss2.str() ); pos += dlen; } }