]> WPIA git - cassiopeia.git/blobdiff - src/main.cpp
fix: resolve some memory issues with slipBio testing
[cassiopeia.git] / src / main.cpp
index cf4f383d843e396b1850e87e2a2aeccc05a9eea9..072547de31f39f8616b5e4b29440fdfb9462886a 100644 (file)
@@ -8,6 +8,7 @@
 #include "database.h"
 #include "mysql.h"
 #include "simpleOpensslSigner.h"
+#include "util.h"
 
 #ifdef NO_DAEMON
 #define DAEMON false
@@ -27,14 +28,13 @@ std::string writeBackFile( uint32_t serial, std::string cert ) {
     filename += "/" + std::to_string( serial / 1000 );
     mkdir( filename.c_str(), 0755 );
     filename += "/" + std::to_string( serial ) + ".crt";
-    std::ofstream file;
-    file.open( filename.c_str() );
-    file << cert.c_str();
-    file.close();
+    writeFile( filename, cert );
     std::cout << "wrote to " << filename << std::endl;
     return filename;
 }
 
+int handlermain( int argc, const char* argv[] );
+
 int main( int argc, const char* argv[] ) {
     ( void ) argc;
     ( void ) argv;
@@ -45,10 +45,11 @@ int main( int argc, const char* argv[] ) {
     }
 
     std::ifstream config;
-    if(DAEMON){
-      config.open( "/etc/cacert/cassiopeia/cassiopeia.conf" );
-    }else{
-      config.open( "config.txt" );
+
+    if( DAEMON ) {
+        config.open( "/etc/cacert/cassiopeia/cassiopeia.conf" );
+    } else {
+        config.open( "config.txt" );
     }
 
     if( !config.is_open() ) {
@@ -120,6 +121,7 @@ int main( int argc, const char* argv[] ) {
     }
 
     config.close();
+    return handlermain( argc, argv );
 
     std::shared_ptr<JobProvider> jp( new MySQLJobProvider( sqlHost, sqlUser, sqlPass, sqlDB ) );
     std::shared_ptr<Signer> sign( new SimpleOpensslSigner() );
@@ -143,8 +145,7 @@ int main( int argc, const char* argv[] ) {
                 }
 
                 std::cout << "Found a CSR at '" << cert->csr << "' signing" << std::endl;
-                std::ifstream t( cert->csr );
-                cert->csr_content = std::string( std::istreambuf_iterator<char>( t ), std::istreambuf_iterator<char>() );
+                cert->csr_content = readFile( cert->csr );
 
                 std::shared_ptr<SignedCertificate> res = sign->sign( cert );
                 std::string fn = writeBackFile( atoi( job->target.c_str() ), res->certificate );