X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fmysql.cpp;h=ab37553ce1899f1fd00c776264398b24209559c8;hb=da88bc5970335698b482b21c97c91330704dcbe3;hp=38cb606658511fff675051ac028c1bce0902006c;hpb=8bf7fb7bedf899a6a1dd62ad56ad9f09f6228747;p=cassiopeia.git diff --git a/src/mysql.cpp b/src/mysql.cpp index 38cb606..ab37553 100644 --- a/src/mysql.cpp +++ b/src/mysql.cpp @@ -139,6 +139,10 @@ std::shared_ptr MySQLJobProvider::fetchJob() { } job->id = std::string( row[0], row[0] + l[0] ); + job->target = std::string( row[1], row[1] + l[1] ); + job->task = std::string( row[2], row[2] + l[2] ); + job->from = std::string( row[3], row[3] + l[3] ); + job->to = std::string( row[4], row[4] + l[4] ); for( unsigned int i = 0; i < num; i++ ) { printf( "[%.*s] ", ( int ) l[i], row[i] ? row[i] : "NULL" ); @@ -178,3 +182,38 @@ bool MySQLJobProvider::finishJob( std::shared_ptr job ) { return true; } + +std::shared_ptr MySQLJobProvider::fetchTBSCert( std::shared_ptr job ) { + std::shared_ptr cert = std::shared_ptr( new TBSCertificate() ); + std::string q = "SELECT CN, subject, md, profile, csr_name, csr_type FROM certs WHERE id='" + this->escape_string( job->id ) + "'"; + + int err = 0; + std::shared_ptr res; + + std::tie( err, res ) = query( q ); + + if( err ) { + return std::shared_ptr(); + } + + MYSQL_ROW row = mysql_fetch_row( res.get() ); + + if( !row ) { + return std::shared_ptr(); + } + + unsigned long* l = mysql_fetch_lengths( res.get() ); + + if( !l ) { + return std::shared_ptr(); + } + + cert->CN = std::string( row[0], row[0] + l[0] ); + cert->subj = std::string( row[1], row[1] + l[1] ); + cert->md = std::string( row[2], row[2] + l[2] ); + cert->profile = std::string( row[3], row[3] + l[3] ); + cert->csr = std::string( row[4], row[4] + l[4] ); + cert->csr_type = std::string( row[5], row[5] + l[5] ); + + return cert; +}