From: Felix Dörre Date: Thu, 13 Aug 2015 22:45:53 +0000 (+0200) Subject: upd: various logging updates X-Git-Url: https://code.wpia.club/?p=cassiopeia.git;a=commitdiff_plain;h=d92d96bebe9ad5b4f17e4aef580f7dfd8d34d58b upd: various logging updates --- diff --git a/src/apps/client.cpp b/src/apps/client.cpp index 999b453..1434a90 100644 --- a/src/apps/client.cpp +++ b/src/apps/client.cpp @@ -103,14 +103,15 @@ int main( int argc, const char* argv[] ) { std::shared_ptr job = jp->fetchJob(); if( !job ) { - logger::debug( "Nothing to work on." ); + logger::note( "Nothing to work on." ); sleep( 5 ); continue; } std::shared_ptr logPtr = openLogfile( std::string( "logs/" ) + job->id + std::string( "_" ) + job->warning + std::string( ".log" ) ); - sign->setLog( logPtr ); + logger::logger_set log_set({logger::log_target(*logPtr, logger::level::debug)}, logger::auto_register::on); + logger::note( "TASK ID: ", job->id ); logger::note( "TRY: ", job->warning ); logger::note( "TARGET: ", job->target ); diff --git a/src/apps/signer.cpp b/src/apps/signer.cpp index f7f61d8..b955943 100644 --- a/src/apps/signer.cpp +++ b/src/apps/signer.cpp @@ -53,6 +53,7 @@ int main( int argc, const char* argv[] ) try { DefaultRecordHandler* dh = new DefaultRecordHandler( std::shared_ptr( new SimpleOpensslSigner( ) ), slip1 ); + logger::note( "Entering mainloop" ); while( true ) { try { dh->handle(); diff --git a/src/crypto/remoteSigner.cpp b/src/crypto/remoteSigner.cpp index 7436846..d461eda 100644 --- a/src/crypto/remoteSigner.cpp +++ b/src/crypto/remoteSigner.cpp @@ -18,7 +18,7 @@ void RemoteSigner::send( std::shared_ptr bio, RecordHeader& h head.command = ( uint16_t ) cmd; head.command_count++; head.totalLength = data.size(); - sendCommand( head, data, bio, log ); + sendCommand( head, data, bio ); } std::shared_ptr RemoteSigner::sign( std::shared_ptr cert ) { @@ -82,7 +82,7 @@ std::shared_ptr RemoteSigner::sign( std::shared_ptr, std::string> RemoteSigner::revoke( std::shared_p throw "Error, no response data"; } - payload = parseCommand( head, std::string( buffer.data(), length ), log ); + payload = parseCommand( head, std::string( buffer.data(), length ) ); std::shared_ptr crl( new CRL( ca->path + std::string( "/ca.crl" ) ) ); std::string date; @@ -211,7 +211,7 @@ std::pair, std::string> RemoteSigner::revoke( std::shared_p throw "Error, no response data"; } - payload = parseCommand( head, std::string( buffer.data(), length ), log ); + payload = parseCommand( head, std::string( buffer.data(), length ) ); if( ( RecordHeader::SignerResult ) head.command != RecordHeader::SignerResult::FULL_CRL ) { throw "Protocol violation"; diff --git a/src/crypto/simpleOpensslSigner.cpp b/src/crypto/simpleOpensslSigner.cpp index 7f75142..8576fad 100644 --- a/src/crypto/simpleOpensslSigner.cpp +++ b/src/crypto/simpleOpensslSigner.cpp @@ -72,6 +72,7 @@ std::pair, std::string> SimpleOpensslSigner::nextSerial( std::shared_ptr SimpleOpensslSigner::sign( std::shared_ptr cert ) { std::stringstream signlog; + logger::logger_set log_set_sign({logger::log_target(signlog, logger::level::debug)}, logger::auto_register::on); logger::note( "FINE: Profile name is: ", cert->profile ); diff --git a/src/db/mysql.cpp b/src/db/mysql.cpp index 51cfdcb..4b5e75c 100644 --- a/src/db/mysql.cpp +++ b/src/db/mysql.cpp @@ -5,6 +5,7 @@ #include #include +#include //This static variable exists to handle initializing and finalizing the MySQL driver library std::shared_ptr MySQLJobProvider::lib_ref( @@ -114,8 +115,6 @@ std::shared_ptr MySQLJobProvider::fetchJob() { return nullptr; } - unsigned int num = mysql_num_fields( res.get() ); - MYSQL_ROW row = mysql_fetch_row( res.get() ); if( !row ) { @@ -137,11 +136,7 @@ std::shared_ptr MySQLJobProvider::fetchJob() { job->to = std::string( row[4], row[4] + l[4] ); job->warning = std::string( row[5], row[5] + l[5] ); - for( unsigned int i = 0; i < num; i++ ) { - printf( "[%.*s] ", ( int ) l[i], row[i] ? row[i] : "NULL" ); - } - - printf( "\n" ); + logger::note( "Got a job: (id=%s, target=%s, task=%s, from=%s, to=%s, warnings=%s)", job->id, job->target, job->task, job->from, job->to, job->warning ); return job; } diff --git a/src/io/record.cpp b/src/io/record.cpp index 5f51ec1..1332a0f 100644 --- a/src/io/record.cpp +++ b/src/io/record.cpp @@ -24,7 +24,7 @@ std::string toHexAndChecksum( const std::string& src ) { return ss.str(); } -void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr bio, std::shared_ptr log ) { +void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr bio ) { head.payloadLength = data.size(); std::string s; s += head.packToString(); @@ -32,9 +32,7 @@ void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptrwrite( res.data(), res.size() ); } @@ -53,10 +51,8 @@ int32_t fromHexDigit( char c ) { return res; } -std::string parseCommand( RecordHeader& head, const std::string& input, std::shared_ptr log ) { - if( log ) { - logger::debug( "FINE: RECORD input: ", input ); - } +std::string parseCommand( RecordHeader& head, const std::string& input) { + logger::debug( "FINE: RECORD input: ", input ); int32_t dlen = ( input.size() - 2 ) / 2; char checksum = 0; diff --git a/src/io/record.h b/src/io/record.h index 0a13681..28a9b1e 100644 --- a/src/io/record.h +++ b/src/io/record.h @@ -104,6 +104,6 @@ public: }; -std::string parseCommand( RecordHeader& head, const std::string& input, std::shared_ptr log ); +std::string parseCommand( RecordHeader& head, const std::string& input ); -void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr bio, std::shared_ptr log ); +void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr bio ); diff --git a/src/io/recordHandler.cpp b/src/io/recordHandler.cpp index a1d7b47..b491d93 100644 --- a/src/io/recordHandler.cpp +++ b/src/io/recordHandler.cpp @@ -1,6 +1,7 @@ #include "io/recordHandler.h" #include +#include #include #include #include @@ -36,22 +37,30 @@ public: DefaultRecordHandler* parent; std::shared_ptr signer; - std::shared_ptr log; + std::shared_ptr logFile; + //std::stringstream sessionlog; std::vector serials; + logger::logger_set logger; + RecordHandlerSession( DefaultRecordHandler* parent, std::shared_ptr signer, std::shared_ptr ctx, std::shared_ptr output ) : sessid( 0 ), lastCommandCount( 0 ), - tbs( new TBSCertificate() ) { + tbs( new TBSCertificate() ), + logFile(openLogfile( std::string( "logs/log_" ) + std::to_string( [](){ + time_t c_time; + if( time( &c_time ) == -1 ) { + throw "Error while fetching time?"; + } + return c_time; + }() ) )), + logger( { + logger::log_target(std::cout, logger::level::note), + //logger::log_target(sessionlog, logger::level::note), + logger::log_target(*logFile, logger::level::note) + }, logger::auto_register::on) { this->parent = parent; this->signer = signer; - time_t c_time; - - if( time( &c_time ) == -1 ) { - throw "Error while fetching time?"; - } - - log = openLogfile( std::string( "logs/log_" ) + std::to_string( c_time ) ); ssl = std::shared_ptr( SSL_new( ctx.get() ), SSL_free ); std::shared_ptr bio( @@ -71,7 +80,7 @@ public: rh.flags = 0; rh.command_count = 0; // TODO i++ rh.totalLength = payload.size(); - sendCommand( rh, payload, io, log ); + sendCommand( rh, payload, io ); } void work() { @@ -88,13 +97,10 @@ public: try { RecordHeader head; - std::string payload = parseCommand( head, content, log ); + std::string payload = parseCommand( head, content ); execute( head, payload ); } catch( const char* msg ) { - if( log ) { - logger::error( "ERROR: ", msg ); - } - + logger::error( "ERROR: ", msg ); parent->reset(); return; } @@ -195,9 +201,10 @@ public: case RecordHeader::SignerCommand::REVOKE: { + logger::note("Revoking: ", data); std::string ca = data; auto reqCA = CAs.at( ca ); - logger::note( "CA found" ); + logger::note( "CA found in recordHandler" ); std::shared_ptr crl; std::string date; std::tie, std::string>( crl, date ) = signer->revoke( reqCA, serials ); @@ -208,6 +215,7 @@ public: case RecordHeader::SignerCommand::GET_FULL_CRL: { + logger::note("Requesting full CRL: ", data); auto ca = CAs.at( data ); CRL c( ca->path + "/ca.crl" ); respondCommand( RecordHeader::SignerResult::FULL_CRL, c.toString() );