mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2026-01-11 07:05:48 +01:00
2019-05-17 Fred Gleason <fredg@paravelsystems.com>
* Added '--end-startup-after-caed', '--end-startup-after-ripcd', '--end-startup-after-rdcatchd', '--end-startup-after-rdpadd', '--end-startup-after-rdpadengined', '--end-startup-after-rdvairplayd', and '--end-startup-after-rdrepld' command line switches to rdservice(8).
This commit is contained in:
@@ -57,6 +57,8 @@ MainObject::MainObject(QObject *parent)
|
||||
QString err_msg;
|
||||
RDApplication::ErrorType err_type=RDApplication::ErrorOk;
|
||||
|
||||
svc_startup_target=MainObject::TargetAll;
|
||||
|
||||
//
|
||||
// Open the syslog
|
||||
//
|
||||
@@ -80,6 +82,23 @@ MainObject::MainObject(QObject *parent)
|
||||
exit(2);
|
||||
}
|
||||
|
||||
//
|
||||
// Process Startup Options
|
||||
//
|
||||
for(unsigned i=0;i<rda->cmdSwitch()->keys();i++) {
|
||||
for(int j=0;j<MainObject::TargetAll;j++) {
|
||||
MainObject::StartupTarget target=(MainObject::StartupTarget)j;
|
||||
if(rda->cmdSwitch()->key(i)==TargetCommandString(target)) {
|
||||
svc_startup_target=target;
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
}
|
||||
if(!rda->cmdSwitch()->processed(i)) {
|
||||
fprintf(stderr,"rdservice: unknown command-line option\n");
|
||||
exit(4);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Exit Timer
|
||||
//
|
||||
|
||||
@@ -44,6 +44,9 @@ class MainObject : public QObject
|
||||
{
|
||||
Q_OBJECT;
|
||||
public:
|
||||
enum StartupTarget {TargetCaed=0,TargetRipcd=1,TargetRdcatchd=2,
|
||||
TargetRdpadd=3,TargetRdpadengined=4,
|
||||
TargetRdvairplayd=5,TargetRdrepld=6,TargetAll=7};
|
||||
MainObject(QObject *parent=0);
|
||||
|
||||
private slots:
|
||||
@@ -62,9 +65,11 @@ class MainObject : public QObject
|
||||
int GetMaintInterval() const;
|
||||
void RunEphemeralProcess(int id,const QString &program,
|
||||
const QStringList &args);
|
||||
QString TargetCommandString(StartupTarget target) const;
|
||||
QMap<int,RDProcess *> svc_processes;
|
||||
QTimer *svc_maint_timer;
|
||||
QTimer *svc_exit_timer;
|
||||
StartupTarget svc_startup_target;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -58,6 +58,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_CAED_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetCaed) {
|
||||
fprintf(stderr,"Startup target caed(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// ripcd(8)
|
||||
@@ -71,6 +75,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_RIPCD_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetRipcd) {
|
||||
fprintf(stderr,"Startup target ripcd(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// rdcatchd(8)
|
||||
@@ -84,6 +92,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_RDCATCHD_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetRdcatchd) {
|
||||
fprintf(stderr,"Startup target rdcatchd(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// rdpadd(8)
|
||||
@@ -97,6 +109,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_RDPADD_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetRdpadd) {
|
||||
fprintf(stderr,"Startup target rdpadd(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// *** BAND-AID * BAND_AID * YEECH! ***
|
||||
@@ -118,6 +134,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_RDPADENGINED_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetRdpadengined) {
|
||||
fprintf(stderr,"Startup target rdpadengined(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// rdvairplayd(8)
|
||||
@@ -131,6 +151,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
svc_processes[RDSERVICE_RDVAIRPLAYD_ID]->errorText();
|
||||
return false;
|
||||
}
|
||||
if(svc_startup_target==MainObject::TargetRdvairplayd) {
|
||||
fprintf(stderr,"Startup target rdvairplayd(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// rdrepld(8)
|
||||
@@ -150,6 +174,10 @@ bool MainObject::Startup(QString *err_msg)
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
if(svc_startup_target==MainObject::TargetRdrepld) {
|
||||
fprintf(stderr,"Startup target rdrepld(8) reached\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!StartDropboxes(err_msg)) {
|
||||
return false;
|
||||
@@ -296,3 +324,35 @@ void MainObject::KillProgram(const QString &program)
|
||||
pids=RDGetPids(program);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QString MainObject::TargetCommandString(MainObject::StartupTarget target) const
|
||||
{
|
||||
switch(target) {
|
||||
case MainObject::TargetCaed:
|
||||
return QString("--end-startup-after-caed");
|
||||
|
||||
case MainObject::TargetRipcd:
|
||||
return QString("--end-startup-after-ripcd");
|
||||
|
||||
case MainObject::TargetRdcatchd:
|
||||
return QString("--end-startup-after-rdcatchd");
|
||||
|
||||
case MainObject::TargetRdpadd:
|
||||
return QString("--end-startup-after-rdpadd");
|
||||
|
||||
case MainObject::TargetRdpadengined:
|
||||
return QString("--end-startup-after-rdpadengined");
|
||||
|
||||
case MainObject::TargetRdvairplayd:
|
||||
return QString("--end-startup-after-rdvairplayd");
|
||||
|
||||
case MainObject::TargetRdrepld:
|
||||
return QString("--end-startup-after-rdrepld");
|
||||
|
||||
case MainObject::TargetAll:
|
||||
break;
|
||||
}
|
||||
|
||||
return QString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user