* @param re The reason of the xline
* @param t The line type, should be set by the derived class constructor
*/
- XLine(time_t s_time, long d, std::string src, std::string re, const std::string &t)
- : set_time(s_time), duration(d), source(src), reason(re), type(t)
+ XLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& t)
+ : set_time(s_time)
+ , duration(d)
+ , source(src)
+ , reason(re)
+ , type(t)
+ , from_config(false)
{
expiry = set_time + duration;
}
* in a form which can be used to construct an entire derived xline,
* even if it is stored differently internally (e.g. GLine stores the
* ident and host parts seperately but will still return ident\@host
- * for its Displayable() method)
+ * for its Displayable() method).
*/
- virtual const char* Displayable() = 0;
+ virtual const std::string& Displayable() = 0;
/** Called when the xline has just been added.
*/
/** The duration of the ban, or 0 if permenant
*/
- long duration;
+ unsigned long duration;
/** Source of the ban. This can be a servername or an oper nickname
*/
*/
const std::string type;
+ // Whether this XLine was loaded from the server config.
+ bool from_config;
+
virtual bool IsBurstable();
};
* @param ident Ident to match
* @param host Host to match
*/
- KLine(time_t s_time, long d, std::string src, std::string re, std::string ident, std::string host)
+ KLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& ident, const std::string& host)
: XLine(s_time, d, src, re, "K"), identmask(ident), hostmask(host)
{
matchtext = this->identmask;
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
- virtual bool IsBurstable();
+ bool IsBurstable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
* @param ident Ident to match
* @param host Host to match
*/
- GLine(time_t s_time, long d, std::string src, std::string re, std::string ident, std::string host)
+ GLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& ident, const std::string& host)
: XLine(s_time, d, src, re, "G"), identmask(ident), hostmask(host)
{
matchtext = this->identmask;
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
* @param ident Ident to match
* @param host Host to match
*/
- ELine(time_t s_time, long d, std::string src, std::string re, std::string ident, std::string host)
+ ELine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& ident, const std::string& host)
: XLine(s_time, d, src, re, "E"), identmask(ident), hostmask(host)
{
matchtext = this->identmask;
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Unset();
+ void Unset() CXX11_OVERRIDE;
- virtual void OnAdd();
+ void OnAdd() CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
* @param re The reason of the xline
* @param ip IP to match
*/
- ZLine(time_t s_time, long d, std::string src, std::string re, std::string ip)
+ ZLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& ip)
: XLine(s_time, d, src, re, "Z"), ipaddr(ip)
{
}
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** IP mask (no ident part)
*/
* @param re The reason of the xline
* @param nickname Nickname to match
*/
- QLine(time_t s_time, long d, std::string src, std::string re, std::string nickname)
+ QLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& nickname)
: XLine(s_time, d, src, re, "Q"), nick(nickname)
{
}
~QLine()
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Nickname mask
*/
* @param xline_specific_mask The mask string for the line, specific to the XLine type being created.
* @return A specialized XLine class of the given type for this factory.
*/
- virtual XLine* Generate(time_t set_time, long duration, std::string source, std::string reason, std::string xline_specific_mask) = 0;
+ virtual XLine* Generate(time_t set_time, unsigned long duration, const std::string& source, const std::string& reason, const std::string& xline_specific_mask) = 0;
virtual bool AutoApplyToUserList(XLine* x) { return true; }
* will be expired and removed before the list is displayed.
* @param type The type of stats to show
* @param numeric The numeric to give to each result line
- * @param user The username making the query
- * @param results The string_list to receive the results
+ * @param stats Stats context
*/
- void InvokeStats(const std::string &type, int numeric, User* user, string_list &results);
-};
+ void InvokeStats(const std::string& type, unsigned int numeric, Stats::Context& stats);
+ /** Clears any XLines which were added by the server configuration. */
+ void ClearConfigLines();
+};