]> WPIA git - cassiopeia.git/commitdiff
upd: various logging updates
authorFelix Dörre <felix@dogcraft.de>
Thu, 13 Aug 2015 22:45:53 +0000 (00:45 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 13 Aug 2015 22:45:53 +0000 (00:45 +0200)
src/apps/client.cpp
src/apps/signer.cpp
src/crypto/remoteSigner.cpp
src/crypto/simpleOpensslSigner.cpp
src/db/mysql.cpp
src/io/record.cpp
src/io/record.h
src/io/recordHandler.cpp

index 999b4532cb1cef0741e020ac835b157b3cc126e2..1434a905b7f3204a8b229d8e9b40a8c206db1f16 100644 (file)
@@ -103,14 +103,15 @@ int main( int argc, const char* argv[] ) {
         std::shared_ptr<Job> job = jp->fetchJob();
 
         if( !job ) {
-            logger::debug( "Nothing to work on." );
+            logger::note( "Nothing to work on." );
             sleep( 5 );
             continue;
         }
 
         std::shared_ptr<std::ofstream> 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 );
index f7f61d8d2932eb26bd4b36366936cc16bd195949..b955943452cf93bd31c36529d1d43cf33204a29c 100644 (file)
@@ -53,6 +53,7 @@ int main( int argc, const char* argv[] ) try {
 
     DefaultRecordHandler* dh = new DefaultRecordHandler( std::shared_ptr<Signer>( new SimpleOpensslSigner( ) ), slip1 );
 
+    logger::note( "Entering mainloop" );
     while( true ) {
         try {
             dh->handle();
index 74368467540de8af841e24a16ec6a9b618f571fc..d461eda2508ea15b308f4d932a422e6daed4b5cf 100644 (file)
@@ -18,7 +18,7 @@ void RemoteSigner::send( std::shared_ptr<OpensslBIOWrapper> 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<SignedCertificate> RemoteSigner::sign( std::shared_ptr<TBSCertificate> cert ) {
@@ -82,7 +82,7 @@ std::shared_ptr<SignedCertificate> RemoteSigner::sign( std::shared_ptr<TBSCertif
             }
 
             RecordHeader head;
-            std::string payload = parseCommand( head, std::string( buffer.data(), length ), log );
+            std::string payload = parseCommand( head, std::string( buffer.data(), length ) );
 
             switch( ( RecordHeader::SignerResult ) head.command ) {
             case RecordHeader::SignerResult::CERTIFICATE:
@@ -176,7 +176,7 @@ std::pair<std::shared_ptr<CRL>, 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> crl( new CRL( ca->path + std::string( "/ca.crl" ) ) );
     std::string date;
@@ -211,7 +211,7 @@ std::pair<std::shared_ptr<CRL>, 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";
index 7f75142f2f964330a69cf784d9140cfda10b2441..8576fad1feb088316484343524e53a23f25ec6e2 100644 (file)
@@ -72,6 +72,7 @@ std::pair<std::shared_ptr<BIGNUM>, std::string> SimpleOpensslSigner::nextSerial(
 
 std::shared_ptr<SignedCertificate> SimpleOpensslSigner::sign( std::shared_ptr<TBSCertificate> 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 );
 
index 51cfdcbcfa486d0211d51dce2b5a118c4077e015..4b5e75c028f5ce9abe9c989fffe6a77f0a26b483 100644 (file)
@@ -5,6 +5,7 @@
 #include <iostream>
 
 #include <mysql/errmsg.h>
+#include <log/logger.hpp>
 
 //This static variable exists to handle initializing and finalizing the MySQL driver library
 std::shared_ptr<int> MySQLJobProvider::lib_ref(
@@ -114,8 +115,6 @@ std::shared_ptr<Job> 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<Job> 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;
 }
index 5f51ec1023f01f83aa7c5c76bd68b49b291d44f8..1332a0ffce437625691db71a656ea535aac8e38c 100644 (file)
@@ -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<OpensslBIO> bio, std::shared_ptr<std::ostream> log ) {
+void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr<OpensslBIO> 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_ptr<O
 
     std::string res = toHexAndChecksum( s );
 
-    if( log ) {
-        logger::debug( "FINE: RECORD output: ", res );
-    }
+    logger::debug( "FINE: RECORD output: ", res );
 
     bio->write( 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<std::ostream> 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;
index 0a1368117fc681099fe74b6cf8dca60a45da926d..28a9b1e710da79be26bbff034207328bf7fd86aa 100644 (file)
@@ -104,6 +104,6 @@ public:
 
 };
 
-std::string parseCommand( RecordHeader& head, const std::string& input, std::shared_ptr<std::ostream> log );
+std::string parseCommand( RecordHeader& head, const std::string& input );
 
-void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr<OpensslBIO> bio, std::shared_ptr<std::ostream> log );
+void sendCommand( RecordHeader& head, const std::string& data, std::shared_ptr<OpensslBIO> bio );
index a1d7b47d1e7b0853bd04de66ebc1a807357d26d6..b491d933e622e3fe8ccdf8dd2ab0ab3c87ea8d5e 100644 (file)
@@ -1,6 +1,7 @@
 #include "io/recordHandler.h"
 
 #include <iostream>
+#include <sstream>
 #include <fstream>
 #include <ctime>
 #include <unordered_map>
@@ -36,22 +37,30 @@ public:
     DefaultRecordHandler* parent;
     std::shared_ptr<Signer> signer;
 
-    std::shared_ptr<std::ofstream> log;
+    std::shared_ptr<std::ofstream> logFile;
+    //std::stringstream sessionlog;
     std::vector<std::string> serials;
+    logger::logger_set logger;
+
 
     RecordHandlerSession( DefaultRecordHandler* parent, std::shared_ptr<Signer> signer, std::shared_ptr<SSL_CTX> ctx, std::shared_ptr<BIO> 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>( SSL_new( ctx.get() ), SSL_free );
         std::shared_ptr<BIO> 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> crl;
                 std::string date;
                 std::tie<std::shared_ptr<CRL>, 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() );