X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Foidentdconfiggenerator.h;h=bfd351fe92d5b3eb3ec32156b991c77295375748;hp=8b92321f163ab9581fc3108290fa259e8b2a08b1;hb=752237a05d424c132f51a0bba76dea84e2d72b81;hpb=2f4b9ffd04fad33c75254ccc3ca751a396a8470f diff --git a/src/core/oidentdconfiggenerator.h b/src/core/oidentdconfiggenerator.h index 8b92321f..bfd351fe 100644 --- a/src/core/oidentdconfiggenerator.h +++ b/src/core/oidentdconfiggenerator.h @@ -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 * @@ -15,54 +15,80 @@ * 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 +#include #include #include #include #include #include +#include + +#ifdef HAVE_UMASK +# include +# include +#endif /* HAVE_UMASK */ #include "quassel.h" #include "coreidentity.h" -#include + +//! Produces oidentd configuration files +/*! + Upon IRC connect this class puts the clients' ident data into an oidentd configuration file. + + The default path is <~/.oidentd.conf>. + + For oidentd to incorporate this file, the global oidentd.conf has to state something like this: + + user "quassel" { + default { + allow spoof + allow spoof_all + } + } + +*/ class OidentdConfigGenerator : public QObject { Q_OBJECT public: - explicit OidentdConfigGenerator(QObject *parent = 0); + explicit OidentdConfigGenerator(QObject *parent = 0); + ~OidentdConfigGenerator(); -signals: - public slots: - 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); + 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 keepQuasselStanzas = true); - bool lineByUs(const QByteArray &line); - - bool _initialized; - QDateTime _lastSync; - QFile *_configFile; - QByteArray _config; - // Mutex isn't strictly necessary at the moment, since with the current invocation in Core only one instance at a time exists - QMutex _mutex; - - QDir configDir; - QString configFileName; - QString configPath; - QString configTag; - QRegExp quasselStanzaRx; - QString quasselStanzaTemplate; + QString sysIdentForIdentity(const CoreIdentity *identity) const; + bool init(); + bool writeConfig(); + bool parseConfig(bool readQuasselStanzas = false); + bool lineByUs(const QByteArray &line); + + bool _initialized; + bool _strict; + QDateTime _lastSync; + QFile *_configFile; + QByteArray _parsedConfig; + QByteArray _quasselConfig; + // Mutex isn't strictly necessary at the moment, since with the current invocation in Core only one instance at a time exists + QMutex _mutex; + + QDir _configDir; + QString _configFileName; + QString _configPath; + QString _configTag; + QRegExp _quasselStanzaRx; + QString _quasselStanzaTemplate; }; + #endif // OIDENTDCONFIGGENERATOR_H