Add strict-oidentd mode
[quassel.git] / src / core / oidentdconfiggenerator.h
index 4026e55..f4128d6 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2012 by the Quassel Project                             *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
 #ifndef OIDENTDCONFIGGENERATOR_H
 #define OIDENTDCONFIGGENERATOR_H
 
 #include <QObject>
+#include <QString>
 #include <QDir>
 #include <QFile>
 #include <QDateTime>
@@ -58,7 +59,11 @@ class OidentdConfigGenerator : public QObject
 {
     Q_OBJECT
 public:
-    explicit OidentdConfigGenerator(QObject *parent = 0);
+    /**
+     * @param strict If false, any identity a user chooses is reported to servers as authoritative.
+     *               If true, the user's quassel username is always reported.
+     */
+    explicit OidentdConfigGenerator(bool strict = false, QObject *parent = 0);
     ~OidentdConfigGenerator();
 
 public slots:
@@ -66,12 +71,14 @@ public slots:
     bool removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
 
 private:
+    const QString sysidentForIdentity(const CoreIdentity *identity);
     bool init();
     bool writeConfig();
     bool parseConfig(bool readQuasselStanzas = false);
     bool lineByUs(const QByteArray &line);
 
     bool _initialized;
+    bool _strict;
     QDateTime _lastSync;
     QFile *_configFile;
     QByteArray _parsedConfig;