X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Foidentdconfiggenerator.h;h=edc59001248843d1c7adf9ba091e0a3975a69bff;hp=f4e819f986835c39f1ce0dc10f2ea2028cc934da;hb=339539a7ba3d7d037770fd8a273bec99ee7a5741;hpb=f81ad4f71a532ca310fae0fbe2f412bde9a37521 diff --git a/src/core/oidentdconfiggenerator.h b/src/core/oidentdconfiggenerator.h index f4e819f9..edc59001 100644 --- a/src/core/oidentdconfiggenerator.h +++ b/src/core/oidentdconfiggenerator.h @@ -26,38 +26,65 @@ #include #include #include +#include +#include +#ifndef Q_OS_WIN32 +# include +# include +#endif /* Q_OS_WIN32 */ + +#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); + ~OidentdConfigGenerator(); - QDir configDir; - QString configFileName; - -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); private: bool init(); bool writeConfig(); - bool parseConfig(bool stripQuasselStanzas = false); - bool checkLine(const QByteArray &line); + bool parseConfig(bool readQuasselStanzas = false); + bool lineByUs(const QByteArray &line); bool _initialized; QDateTime _lastSync; QFile *_configFile; - QByteArray _config; + 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 quasselStanza; + QRegExp quasselStanzaRx; + QString quasselStanzaTemplate; }; #endif // OIDENTDCONFIGGENERATOR_H