You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
2.1 KiB

// node_config.h — Simplified INI config manager for embedded uTun node
#ifndef NODE_CONFIG_H
#define NODE_CONFIG_H
#include <QString>
#include <QList>
#include <QPair>
struct NodeClient {
QString name;
QString pubKeyHex;
QString serverName;
QString remoteAddr;
};
class NodeConfig {
public:
explicit NodeConfig(const QString& path);
bool exists() const;
bool create(const QString& nodeName, quint16 listenPort);
bool load();
bool save();
QString nodeName() const { return m_nodeName; }
void setNodeName(const QString& n) { m_nodeName = n; }
QString nodeId() const { return m_nodeId; }
QString pubKey() const { return m_pubKey; }
QString privKey() const { return m_privKey; }
uint64_t nodeIdU64() const;
QList<QPair<QString,QString>> servers() const { return m_servers; }
bool addServer(const QString& name, const QString& addr);
bool removeServer(const QString& name);
QList<NodeClient> clients() const { return m_clients; }
bool addClient(const QString& name, const QString& pubKeyHex,
const QString& serverName, const QString& remoteAddr);
bool removeClient(const QString& name);
QString controlAddr() const { return m_controlAddr; }
void setControlAddr(const QString& a) { m_controlAddr = a; }
quint16 controlPort() const;
void setControlPort(quint16 p);
QString filePath() const { return m_path; }
/* GUI settings (from [gui] section) */
QString dbPath() const { return m_dbPath; }
QString debugFile() const { return m_debugFile; }
QString debugLevel() const { return m_debugLevel; }
QString debugCategories() const { return m_debugCategories; }
/* Identity generation (public for fixing invalid keys) */
void generateIdentity();
private:
QString m_path;
QString m_nodeName;
QString m_nodeId;
QString m_pubKey;
QString m_privKey;
QList<QPair<QString,QString>> m_servers;
QList<NodeClient> m_clients;
QString m_controlAddr;
QString m_dbPath;
QString m_debugFile;
QString m_debugLevel;
QString m_debugCategories;
};
#endif // NODE_CONFIG_H