properly rewind oidentd config file
[quassel.git] / src / core / oidentdconfiggenerator.h
index db4016c..bc2e25a 100644 (file)
 #include <QDir>
 #include <QFile>
 #include <QDateTime>
+#include <QHostAddress>
+#include <QMutex>
 
+#include "quassel.h"
+#include "coreidentity.h"
 #include <QDebug>
 
 class OidentdConfigGenerator : public QObject
@@ -34,27 +38,28 @@ class OidentdConfigGenerator : public QObject
 public:
   explicit OidentdConfigGenerator(QObject *parent = 0);
 
-  QDir configDir;
-  QString configFileName;
-    
 signals:
     
 public slots:
-  bool update();
+  bool addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
+  bool removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
 
 private:
   bool init();
   bool writeConfig();
-  bool parseConfig();
-  bool checkLine(const QByteArray &line);
+  bool parseConfig(bool keepQuasselStanzas = true);
+  bool lineByUs(const QByteArray &line);
 
   bool _initialized;
   QDateTime _lastSync;
   QFile *_configFile;
   QByteArray _config;
+  QMutex _mutex;
 
+  QDir configDir;
+  QString configFileName;
+  QString configPath;
   QString configTag;
-
   QRegExp quasselStanza;
 };