1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#ifndef INTERFACES_H
#define INTERFACES_H
#include <qstring.h>
#include <qstringlist.h>
#define INTERFACES_LOOPBACK "loopback"
#define INTERFACES_FAMILY_INET "inet"
#define INTERFACES_FAMILY_IPX "ipx"
#define INTERFACES_FAMILY_INET6 "inet6"
#define INTERFACES_METHOD_DHCP "dhcp"
#define INTERFACES_METHOD_STATIC "static"
#define INTERFACES_METHOD_PPP "ppp"
/**
* This class provides a clean frontend for parsing the network interfaces file.
* It provides helper functions to minipulate the options within the file.
* See the interfaces man page for the syntax rules.
*/
class Interfaces {
public:
Interfaces(QString useInterfacesFile = "/etc/network/interfaces");
bool isAuto(QString interface);
bool setAuto(QString interface, bool setAuto);
bool removeInterface();
bool addInterface(QString interface, QString family, QString method);
bool setInterface(QString interface);
bool isInterfaceSet();
QString getInterfaceName(bool &error);
bool setInterfaceName(QString newName);
QString getInterfaceFamily(bool &error);
bool setInterfaceFamily(QString newName);
QString getInterfaceMethod(bool &error);
bool setInterfaceMethod(QString newName);
QString getInterfaceOption(QString option, bool &error);
bool setInterfaceOption(QString option, QString value);
bool removeAllInterfaceOptions();
bool setMapping(QString interface);
void addMapping(QString interfaces);
bool setMap(QString map, QString value);
QString getMap(QString map, bool &error);
bool setScript(QString);
QString getScript(bool &error);
bool write();
private:
bool setStanza(QString stanza, QString option,QStringList::Iterator &iterator);
bool setOption(QStringList::Iterator start, QString option, QString value);
QString getOption(QStringList::Iterator start, QString option, bool &error);
bool removeAllOptions(QStringList::Iterator start);
QString interfacesFile;
QStringList interfaces;
QStringList::Iterator currentIface;
QStringList::Iterator currentMapping;
QStringList acceptedFamily;
};
#endif
// interfaces
|