Skip to content
Snippets Groups Projects
Commit e43ac72e authored by jan.koester's avatar jan.koester
Browse files

small bugix release

parent 1a56d5df
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <signal.h>
#include <string.h>
#include <errno.h>
#include <thread>
#include <netplus/exception.h>
......@@ -53,6 +54,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "pgsql.cpp"
#include "sqlite.cpp"
blogi::Blogi::Blogi(Config *blgcfg,netplus::socket *serversocket) : HttpEvent(serversocket){
PlgArgs = new PluginArgs;
......@@ -354,9 +356,7 @@ RETRY_REQUEST:
}catch(libhttppp::HTTPException &e){
if(!PlgArgs->database->isConnected()){
PlgArgs->database->reset();
if(PlgArgs->database->isConnected()){
goto RETRY_REQUEST;
}
goto RETRY_REQUEST;
}
throw e;
}
......
......@@ -95,9 +95,6 @@ blogi::DBResult::DBResult(){
firstRow=nullptr;
}
blogi::DBResult::~DBResult(){
}
blogi::DBResult2 blogi::DBResult::operator[](int value){
DBResult2 result(this,value);
return result;
......
......@@ -59,7 +59,21 @@ namespace blogi {
class DBResult {
public:
DBResult();
~DBResult();
~DBResult(){
clear();
}
void clear(){
Data *curres=firstRow;
while(curres){
Data *next=curres->nextData;
curres->nextData=nullptr;
delete curres;
curres = next;
}
firstRow=nullptr;
};
DBResult2 operator[](int value);
......@@ -73,9 +87,6 @@ namespace blogi {
nextData=nullptr;
}
virtual ~Data(){
}
int row;
int col;
std::vector<char> Column;
......@@ -94,6 +105,9 @@ namespace blogi {
row=value;
}
~DBResult2(){
}
const char *operator[](int value2){
for(DBResult::Data *pos=result->firstRow; pos; pos=pos->nextData){
if( row==pos->row && pos->col==value2){
......
......@@ -25,6 +25,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
#include <mutex>
#include <httppp/exception.h>
#include <libpq-fe.h>
......@@ -32,6 +34,9 @@
#include "../database.h"
namespace blogi {
std::mutex g_lock_mutex;
class Postgresql : public Database{
public:
Postgresql(const char *constr) : Database (constr) {
......@@ -59,12 +64,9 @@ namespace blogi {
throw exp;
}
if(res.firstRow){
delete res.firstRow;
}
res.clear();
res.firstRow=nullptr;
DBResult::Data *lastdat;
DBResult::Data *lastdat=nullptr;
int rcount=PQntuples(pres);
......@@ -94,13 +96,15 @@ namespace blogi {
}
bool isConnected() override{
const std::lock_guard<std::mutex> lock(g_lock_mutex);
if(PQstatus(_dbconn)==CONNECTION_OK)
return true;
return false;
}
void reset() override{
// PQresetStart(_dbconn);
const std::lock_guard<std::mutex> lock(g_lock_mutex);
PQreset(_dbconn);
}
private:
......
......@@ -65,11 +65,8 @@ namespace blogi {
sqlite3_stmt *prep;
int rcount = 0;
if(res.firstRow){
delete res.firstRow;
}
res.clear();
res.firstRow=nullptr;
DBResult::Data *lastdat;
const char *cssql=ssql;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment