X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fio%2FopensslBIO.cpp;h=13699605bf2827b90b5b54c2696c95b7d4bb56ce;hb=5163a9658ba7ef4a875ee1103e82c0be81698689;hp=056c2911f657085a844fe557ddc211029f525187;hpb=eac5817fe5ed5052599bbfb1ab3f6ade426010d0;p=cassiopeia.git diff --git a/src/io/opensslBIO.cpp b/src/io/opensslBIO.cpp index 056c291..1369960 100644 --- a/src/io/opensslBIO.cpp +++ b/src/io/opensslBIO.cpp @@ -1,6 +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() { @@ -29,33 +30,37 @@ int OpensslBIOWrapper::gets( char* str, int size ) { const char* OpensslBIOWrapper::getName() { return "OpenSSLWrapper"; } -#include -std::string OpensslBIOWrapper::readLine(){ +std::string OpensslBIOWrapper::readLine() { int target = 0; - while(1){ - logger::warn("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::warn("emit"); + logger::debug( "emit" ); return res; } + target++; } + std::stringstream ss; ss << "target: " << target << ", pos:" << pos; - logger::warn(ss.str()); - int dlen = read(buffer.data() + pos, buffer.size() - pos); - if ( dlen <= 0 ){ - logger::warn(" error! "); - throw EOFException(); + 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::warn(ss2.str()); + logger::debug( ss2.str() ); pos += dlen; } }