]> WPIA git - cassiopeia.git/blobdiff - src/apps/client.cpp
fmt: run format script excluding lambdas
[cassiopeia.git] / src / apps / client.cpp
index bfb7fb1688148e104ccfaaea1cb69fd9472f155f..f044c2b84a43d42394ddf457f4b33aad3f06726d 100644 (file)
@@ -16,6 +16,7 @@
 #include "io/bios.h"
 #include "io/slipBio.h"
 #include "config.h"
+#include <internal/bio.h>
 
 #ifdef NO_DAEMON
 #define DAEMON false
@@ -45,19 +46,20 @@ void checkCRLs( std::shared_ptr<Signer> sign ) {
         try {
             std::vector<std::string> serials;
             std::pair<std::shared_ptr<CRL>, std::string> rev = sign->revoke( x.second, serials );
-        } catch( const std::exception &e ) {
+        } catch( const std::exceptione ) {
             logger::error( "Exception: ", e.what() );
         }
     }
 }
 
-int main( int argc, const charargv[] ) {
+int main( int argc, const char *argv[] ) {
     bool once = false;
     bool resetOnly = false;
 
     if( argc == 2 && std::string( "--once" ) == argv[1] ) {
         once = true;
     }
+
     if( argc == 2 && std::string( "--reset" ) == argv[1] ) {
         resetOnly = true;
     }
@@ -65,7 +67,7 @@ int main( int argc, const char* argv[] ) {
     std::string path;
 
 #ifdef NDEBUG
-    path = "/etc/cacert/cassiopeia/cassiopeia.conf";
+    path = "/etc/wpia/cassiopeia/cassiopeia.conf";
 #else
     path = "config.txt";
 #endif
@@ -79,10 +81,12 @@ int main( int argc, const char* argv[] ) {
         logger::fatal( "Error: no serial device is given!" );
         return -1;
     }
+
     std::shared_ptr<JobProvider> jp = std::make_shared<PostgresJobProvider>( sqlHost, sqlUser, sqlPass, sqlDB );
     std::shared_ptr<BIO> b = openSerial( serialPath );
-    std::shared_ptr<BIO> slip1( BIO_new( toBio<SlipBIO>() ), BIO_free );
-    static_cast<SlipBIO*>( slip1->ptr )->setTarget( std::make_shared<OpensslBIOWrapper>( b ), false );
+    std::shared_ptr<BIO_METHOD> m( toBio<SlipBIO>(), BIO_meth_free );
+    std::shared_ptr<BIO> slip1( BIO_new( m.get() ), BIO_free );
+    static_cast<SlipBIO *>( slip1->ptr )->setTarget( std::make_shared<OpensslBIOWrapper>( b ), false );
     auto sign = std::make_shared<RemoteSigner>( slip1, generateSSLContext( false ) );
     // std::shared_ptr<Signer> sign( new SimpleOpensslSigner() );
 
@@ -96,7 +100,7 @@ int main( int argc, const char* argv[] ) {
     time_t lastCRLCheck = 0;
 
     while( true ) {
-       try {
+        try {
             time_t current;
             time( &current );
 
@@ -112,20 +116,21 @@ int main( int argc, const char* argv[] ) {
             }
 
             std::shared_ptr<Job> job;
+
             try {
                 job = jp->fetchJob();
-            } catch ( std::exception &e ){
-                logger::errorf ( "Exception while fetchJob: %s", e.what() );
-           }
+            } catch( std::exception& e ) {
+                logger::errorf( "Exception while fetchJob: %s", e.what() );
+            }
+
             if( !job ) {
-                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" ) );
 
-            logger::logger_set log_set({logger::log_target(*logPtr, logger::level::debug)}, logger::auto_register::on);
+            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 );
@@ -135,6 +140,13 @@ int main( int argc, const char* argv[] ) {
             if( job->task == "sign" ) {
                 try {
                     std::shared_ptr<TBSCertificate> cert = jp->fetchTBSCert( job );
+
+                    if( !cert ) {
+                        logger::error( "Unable to load CSR" );
+                        jp->failJob( job );
+                        continue;
+                    }
+
                     cert->wishFrom = job->from;
                     cert->wishTo = job->to;
                     logger::note( "INFO: Message Digest: ", cert->md );
@@ -148,12 +160,6 @@ int main( int argc, const char* argv[] ) {
                         logger::notef( "INFO: AVA %s: %s", AVA->name, AVA->value );
                     }
 
-                    if( !cert ) {
-                        logger::error( "Unable to load CSR" );
-                        jp->failJob( job );
-                        continue;
-                    }
-
                     logger::notef( "FINE: Found the CSR at '%s'", cert->csr );
                     cert->csr_content = readFile( keyDir + "/../" + cert->csr );
                     logger::note( "FINE: CSR content:\n", cert->csr_content );
@@ -166,8 +172,9 @@ int main( int argc, const char* argv[] ) {
                         continue;
                     }
 
-                    logger::note( "FINE: CERTIFICATE LOG:\n", res->log );
-                    logger::note( "FINE: CERTIFICATE:\n", res->certificate );
+                    logger::note( "FINE: CERTIFICATE LOG:\n", res->log,
+                                  "FINE: CERTIFICATE:\n", res->certificate );
+
                     std::string fn = writeBackFile( job->target.c_str(), res->certificate, keyDir );
 
                     if( fn.empty() ) {
@@ -203,7 +210,7 @@ int main( int argc, const char* argv[] ) {
                     logger::note( "revoking" );
                     std::pair<std::shared_ptr<CRL>, std::string> rev = sign->revoke( CAs.at( data.second ), serials );
                     std::string date = rev.second;
-                    const unsigned char* pos = ( const unsigned char* ) date.data();
+                    const unsigned char *pos = ( const unsigned char * ) date.data();
                     std::shared_ptr<ASN1_TIME> time( d2i_ASN1_TIME( NULL, &pos, date.size() ), ASN1_TIME_free );
 
                     jp->writeBackRevocation( job, timeToString( time ) );
@@ -219,8 +226,8 @@ int main( int argc, const char* argv[] ) {
             if( !DAEMON || once ) {
                 return 0;
             }
-        } catch ( std::exception &e ){
-            logger::errorf ( "std::exception in mainloop: %s", e.what() );
+        } catch( std::exception& e ) {
+            logger::errorf( "std::exception in mainloop: %s", e.what() );
         }
 
     }