2017-12-22 Fred Gleason <fredg@paravelsystems.com>

* Added a lock check for before deleting logs in rdlogedit(1).
This commit is contained in:
Fred Gleason 2017-12-22 16:09:15 -05:00
parent 54a807fe3d
commit 606816591e
9 changed files with 94 additions and 20 deletions

View File

@ -16537,3 +16537,5 @@
* Added log locking logic to the 'SaveLog' Web API call. * Added log locking logic to the 'SaveLog' Web API call.
2017-12-21 Fred Gleason <fredg@paravelsystems.com> 2017-12-21 Fred Gleason <fredg@paravelsystems.com>
* Added log locking logic to rdlogmanager(1). * Added log locking logic to rdlogmanager(1).
2017-12-22 Fred Gleason <fredg@paravelsystems.com>
* Added a lock check for before deleting logs in rdlogedit(1).

View File

@ -40,25 +40,25 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qpainter.h> #include <qpainter.h>
#include <dbversion.h>
#include <rd.h> #include <rd.h>
#include <rdadd_log.h>
#include <rdcheck_daemons.h>
#include <rdcmd_switch.h>
#include <rdconf.h> #include <rdconf.h>
#include <rddb.h>
#include <rdescape_string.h>
#include <rdloglock.h>
#include <rdmixer.h>
#include <rdripc.h> #include <rdripc.h>
#include <rdstation.h> #include <rdstation.h>
#include <rdcheck_daemons.h>
//#include <rdcreate_log.h>
#include <rdadd_log.h>
#include <rdcmd_switch.h>
#include <rddb.h>
#include <rdtextfile.h> #include <rdtextfile.h>
#include <rdmixer.h>
#include <dbversion.h>
#include <rdescape_string.h>
#include <rdlogedit.h> #include "edit_log.h"
#include <edit_log.h> #include "globals.h"
#include <globals.h> #include "rdlogedit.h"
#ifndef WIN32 #ifndef WIN32
#include <voice_tracker.h> #include "voice_tracker.h"
#endif // WIN32 #endif // WIN32
// //
@ -531,17 +531,33 @@ void MainWidget::deleteData()
} }
for(unsigned i=0;i<items.size();i++) { for(unsigned i=0;i<items.size();i++) {
RDLog *log=new RDLog(items.at(i)->text(1)); QString username;
if(log->remove(rdstation_conf,rduser,log_config)) { QString stationname;
delete items.at(i); QHostAddress addr;
RDLogLock *log_lock=new RDLogLock(items.at(i)->text(1),rduser,
rdstation_conf,this);
if(log_lock->tryLock(&username,&stationname,&addr)) {
RDLog *log=new RDLog(items.at(i)->text(1));
if(log->remove(rdstation_conf,rduser,log_config)) {
delete items.at(i);
}
else {
QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),
tr("Unable to delete log")+" \""+
items.at(i)->text(1)+"\", "+
tr("audio deletion error!"));
}
delete log;
} }
else { else {
QMessageBox::warning(this,"RDLogEdit - "+tr("Error"), QString msg=tr("Log")+" "+items.at(i)->text(1)+"\" "+
tr("Unable to delete log")+" \""+ tr("is in use by")+" "+username+"@"+stationname;
items.at(i)->text(1)+"\", "+ if(stationname!=addr.toString()) {
tr("audio deletion error!")); msg+=" ["+addr.toString()+"]";
}
QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),msg);
} }
delete log; delete log_lock;
} }
} }
} }

View File

@ -939,6 +939,14 @@ Vyhledejte svého správce systému kvůli aktualizaci!</translation>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -938,6 +938,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -935,6 +935,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -851,6 +851,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -956,6 +956,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -956,6 +956,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>

View File

@ -935,6 +935,14 @@ See your system administrator for an update!</source>
<source>Windows</source> <source>Windows</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>is in use by</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RenderDialog</name> <name>RenderDialog</name>