summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings/interfaces/interfaces.h
authorbenmeyer <benmeyer>2002-10-25 19:32:57 (UTC)
committer benmeyer <benmeyer>2002-10-25 19:32:57 (UTC)
commit9adbe632ec54bf155b9882e4e0b51c293259cdf2 (patch) (side-by-side diff)
tree5bd90a1d9d0178b157f0b70bc0144b839501271c /noncore/settings/networksettings/interfaces/interfaces.h
parenta2275295f506dca663b545eda17b4b4dc2e4ad40 (diff)
downloadopie-9adbe632ec54bf155b9882e4e0b51c293259cdf2.zip
opie-9adbe632ec54bf155b9882e4e0b51c293259cdf2.tar.gz
opie-9adbe632ec54bf155b9882e4e0b51c293259cdf2.tar.bz2
Initial
Diffstat (limited to 'noncore/settings/networksettings/interfaces/interfaces.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/interfaces/interfaces.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/noncore/settings/networksettings/interfaces/interfaces.h b/noncore/settings/networksettings/interfaces/interfaces.h
new file mode 100644
index 0000000..e09ea71
--- a/dev/null
+++ b/noncore/settings/networksettings/interfaces/interfaces.h
@@ -0,0 +1,76 @@
+#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");
+ QStringList getInterfaceList();
+
+ bool isAuto(QString interface);
+ bool setAuto(QString interface, bool setAuto);
+
+ bool removeInterface();
+ bool addInterface(QString interface, QString family, QString method);
+ bool copyInterface(QString oldInterface, QString newInterface);
+ 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 removeInterfaceOption(QString option, QString value);
+ bool removeAllInterfaceOptions();
+
+ bool setMapping(QString interface);
+ bool removeMapping();
+ void addMapping(QString options);
+ bool setMap(QString map, QString value);
+ bool removeMap(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);
+ bool removeOption(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
+