#include "io/bios.h"
#include "io/slipBio.h"
#include "config.h"
+#include <internal/bio.h>
#ifdef NO_DAEMON
#define DAEMON false
try {
std::vector<std::string> serials;
std::pair<std::shared_ptr<CRL>, std::string> rev = sign->revoke( x.second, serials );
- } catch( const char* c ) {
- logger::error( "Exception: ", c );
+ } catch( const std::exception &e ) {
+ logger::error( "Exception: ", e.what() );
}
}
}
if( argc == 2 && std::string( "--once" ) == argv[1] ) {
once = true;
}
+
if( argc == 2 && std::string( "--reset" ) == argv[1] ) {
resetOnly = true;
}
std::string path;
#ifdef NDEBUG
- path = "/etc/cacert/cassiopeia/cassiopeia.conf";
+ path = "/etc/wpia/cassiopeia/cassiopeia.conf";
#else
path = "config.txt";
#endif
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 );
+ 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() );
time_t lastCRLCheck = 0;
while( true ) {
- try {
+ try {
time_t current;
time( ¤t );
}
std::shared_ptr<Job> job;
+
try {
job = jp->fetchJob();
} catch ( std::exception &e ){
- logger::errorf ( "Exception while fetchJob: %s", e.what() );
- }
+ 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 );
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() ) {
}
continue;
- } catch( const char* c ) {
- logger::error( "ERROR: ", c );
- } catch( std::string& c ) {
- logger::error( "ERROR: ", c );
+ } catch( std::exception& c ) {
+ logger::error( "ERROR: ", c.what() );
}
try {
jp->failJob( job );
- } catch( const char* c ) {
- logger::error( "ERROR: ", c );
- } catch( std::string& c ) {
- logger::error( "ERROR: ", c );
+ } catch( std::exception& c ) {
+ logger::error( "ERROR: ", c.what() );
}
} else if( job->task == "revoke" ) {
try {
jp->writeBackRevocation( job, timeToString( time ) );
jp->finishJob( job );
- } catch( const char* c ) {
- logger::error( "Exception: ", c );
- } catch( const std::string& c ) {
- logger::error( "Exception: ", c );
+ } catch( const std::exception& c ) {
+ logger::error( "Exception: ", c.what() );
}
} else {
logger::errorf( "Unknown job type (\"%s\")", job->task );
if( !DAEMON || once ) {
return 0;
}
- } catch( const char* c ) {
- logger::error( "Exception: ", c );
- } catch( const std::string& c ) {
- logger::error( "Exception: ", c );
} catch ( std::exception &e ){
- logger::errorf ( "std::exception in mainloop: %s", e.what() );
+ logger::errorf( "std::exception in mainloop: %s", e.what() );
}
}