mirror of
https://github.com/arcan1s/netctl-gui.git
synced 2025-04-24 15:37:23 +00:00
add getrecommended to wpasup class
This commit is contained in:
parent
529e2dd995
commit
b63d883eb2
@ -91,6 +91,11 @@ public:
|
||||
* @return profile name
|
||||
*/
|
||||
QString existentProfile(const QString essid);
|
||||
/**
|
||||
* @brief method which check system configuration and return recommended values to keys
|
||||
* @return recommended parametrs
|
||||
*/
|
||||
static QMap<QString, QString> getRecommendedConfiguration();
|
||||
/**
|
||||
* @brief method which checks profile status by ESSID
|
||||
* @param essid ESSID name
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
|
||||
#include <QDebug>
|
||||
#include <grp.h>
|
||||
|
||||
#include "netctlgui.h"
|
||||
#include "pdebug.h"
|
||||
@ -104,6 +105,102 @@ QString WpaSup::existentProfile(const QString essid)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @fn getRecommendedConfiguration
|
||||
*/
|
||||
QMap<QString, QString> WpaSup::getRecommendedConfiguration()
|
||||
{
|
||||
QMap<QString, QString> settings;
|
||||
int size = 99;
|
||||
QString cmd;
|
||||
TaskResult process;
|
||||
QStringList recommended;
|
||||
// ctrl directory
|
||||
// nothing to do
|
||||
settings[QString("CTRL_DIR")] = QString("/run/wpa_supplicant_netctl-gui");
|
||||
// ctrl group
|
||||
// check group list and find out 'network', 'users', 'root'
|
||||
settings[QString("CTRL_GROUP")] = QString("");
|
||||
gid_t gtpList[99];
|
||||
int grpSize = getgroups(size, gtpList);
|
||||
recommended.clear();
|
||||
recommended.append("network");
|
||||
recommended.append("users");
|
||||
recommended.append("root");
|
||||
for (int i=0; i<recommended.count(); i++) {
|
||||
for (int j=0; j<grpSize; j++)
|
||||
if (recommended[i] == QString(getgrgid(gtpList[j])->gr_name)) {
|
||||
settings[QString("CTRL_GROUP")] = recommended[i];
|
||||
break;
|
||||
}
|
||||
if (!settings[QString("CTRL_GROUP")].isEmpty()) break;
|
||||
}
|
||||
// force sudo
|
||||
// find out helper exe
|
||||
settings[QString("FORCE_SUDO")] = QString("true");
|
||||
recommended.clear();
|
||||
recommended.append(QString("netctlgui-helper"));
|
||||
recommended.append(QString("netctlgui-helper-suid"));
|
||||
for (int i=0; i<recommended.count(); i++) {
|
||||
cmd = QString("which ") + recommended[i];
|
||||
process = runTask(cmd, false);
|
||||
if (process.exitCode == 0) {
|
||||
settings[QString("FORCE_SUDO")] = QString("false");
|
||||
break;
|
||||
}
|
||||
}
|
||||
// pid file
|
||||
// nothing to do
|
||||
settings[QString("PID_FILE")] = QString("/run/wpa_supplicant_netctl-gui.pid");
|
||||
// sudo path
|
||||
// find out sudo, kdesu, gksu exes
|
||||
settings[QString("SUDO_PATH")] = QString("");
|
||||
recommended.clear();
|
||||
recommended.append("sudo");
|
||||
recommended.append("kdesu");
|
||||
recommended.append("gksu");
|
||||
for (int i=0; i<recommended.count(); i++) {
|
||||
cmd = QString("which ") + recommended[i];
|
||||
process = runTask(cmd, false);
|
||||
if (process.exitCode == 0) {
|
||||
settings[QString("SUDO_PATH")] = process.output.trimmed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// wpa_cli path
|
||||
// find out wpa_cli exe
|
||||
settings[QString("WPACLI_PATH")] = QString("true");
|
||||
recommended.clear();
|
||||
recommended.append("wpa_cli");
|
||||
for (int i=0; i<recommended.count(); i++) {
|
||||
cmd = QString("which ") + recommended[i];
|
||||
process = runTask(cmd, false);
|
||||
if (process.exitCode == 0) {
|
||||
settings[QString("WPACLI_PATH")] = process.output.trimmed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// wpa drivers
|
||||
// nothing to do
|
||||
settings[QString("WPA_DRIVERS")] = QString("nl80211,wext");
|
||||
// wpa_supplicant path
|
||||
// find out wpa_supplicant exe
|
||||
settings[QString("WPASUP_PATH")] = QString("true");
|
||||
recommended.clear();
|
||||
recommended.append("wpa_supplicant");
|
||||
for (int i=0; i<recommended.count(); i++) {
|
||||
cmd = QString("which ") + recommended[i];
|
||||
process = runTask(cmd, false);
|
||||
if (process.exitCode == 0) {
|
||||
settings[QString("WPASUP_PATH")] = process.output.trimmed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @fn isProfileActive
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user