diff --git a/lib/pki_key.cpp b/lib/pki_key.cpp index d8df5ee9..99ee7809 100644 --- a/lib/pki_key.cpp +++ b/lib/pki_key.cpp @@ -1,3 +1,4 @@ +/* vi: set sw=4 ts=4: */ /* * Copyright (C) 2001 Christian Hohnstaedt. * @@ -58,6 +59,11 @@ char pki_key::passwd[40]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 QPixmap *pki_key::icon[2]= { NULL, NULL }; +void pki_key::erasePasswd(){ + for (int i=0; i<40; i++) + passwd[i] = 0; +} + void pki_key::init() { ucount = 0; diff --git a/lib/pki_key.h b/lib/pki_key.h index 99430f1a..ca3f0a3c 100644 --- a/lib/pki_key.h +++ b/lib/pki_key.h @@ -76,6 +76,7 @@ class pki_key: public pki_base public: static QPixmap *icon[2]; static char passwd[MAX_PASS_LENGTH]; + static void erasePasswd(); /* constructor to generate a key ..... * d is the description diff --git a/view/TempView.cpp b/view/TempView.cpp index f97610e4..0d553de8 100644 --- a/view/TempView.cpp +++ b/view/TempView.cpp @@ -85,6 +85,7 @@ void TempView::newServerTemp() void TempView::newItem(int type) { + CHECK_DB pki_temp *temp = new pki_temp("--", type); if (alterTemp(temp)) { db->insert(temp); diff --git a/widgets/ImportMulti.cpp b/widgets/ImportMulti.cpp index 2ec0cf08..e43fda76 100644 --- a/widgets/ImportMulti.cpp +++ b/widgets/ImportMulti.cpp @@ -171,6 +171,8 @@ void ImportMulti::import(pki_base *pki) QListViewItem *lvi = pki->getLvi(); pki->delLvi(); QString cn = pki->getClassName(); + emit init_database(); + if (cn == "pki_x509") { MainWindow::certs->insert(pki); } diff --git a/widgets/ImportMulti.h b/widgets/ImportMulti.h index 78235fba..8a83956e 100644 --- a/widgets/ImportMulti.h +++ b/widgets/ImportMulti.h @@ -79,6 +79,8 @@ class ImportMulti: public ImportMulti_UI void details(); void import(); void importAll(); + signals: + void init_database(); }; #endif diff --git a/widgets/MW_database.cpp b/widgets/MW_database.cpp index 4f35e11c..d0c2856c 100644 --- a/widgets/MW_database.cpp +++ b/widgets/MW_database.cpp @@ -115,11 +115,6 @@ void MainWindow::init_database() { void MainWindow::close_database() { if (!dbenv) return; - crlList->rmDB(crls); - certList->rmDB(certs); - reqList->rmDB(reqs); - tempList->rmDB(temps); - keyList->rmDB(keys); delete(crls); delete(reqs); @@ -133,8 +128,14 @@ void MainWindow::close_database() temps = NULL; keys = NULL; settings = NULL; + crlList->rmDB(crls); + certList->rmDB(certs); + reqList->rmDB(reqs); + tempList->rmDB(temps); + keyList->rmDB(keys); global_tid->commit(0); dbenv->close(0); + pki_key::erasePasswd(); dbenv = NULL; } diff --git a/widgets/MW_menu.cpp b/widgets/MW_menu.cpp index 3e4aa63c..83ed74a8 100644 --- a/widgets/MW_menu.cpp +++ b/widgets/MW_menu.cpp @@ -69,5 +69,7 @@ void MainWindow::init_menu() mb = new QMenuBar( this ); mb->insertItem( "&File", file ); + mb->insertSeparator(); mb->insertItem( "&Help", help ); + mb->setSeparator( QMenuBar::InWindowsStyle ); } diff --git a/widgets/MainWindow.cpp b/widgets/MainWindow.cpp index 89999077..e1faa29d 100644 --- a/widgets/MainWindow.cpp +++ b/widgets/MainWindow.cpp @@ -262,8 +262,7 @@ void MainWindow::read_cmdline() cnt++; } - //init_database(); - + connect( dlgi, SIGNAL(init_database()), this, SLOT(init_database())); dlgi->execute(1); /* force showing of import dialog */ delete dlgi; } @@ -290,8 +289,8 @@ void MainWindow::initPass() settings->putString( "pwhash", md5passwd(pki_key::passwd) ); } else { - int keylen=0; - while (md5passwd(pki_key::passwd) != passHash) { + int keylen=0; + while (md5passwd(pki_key::passwd) != passHash) { if (keylen !=0) QMessageBox::warning(this,tr(XCA_TITLE), tr("Password verify error, please try again")); p.setTitle(tr("Password"));