X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fxline.h;h=5f1f568fc7bba04e37b430c1085666757c25a219;hb=a68424a611e37f16ba8593bf630a77d49d98708d;hp=f593c1c9728f299a5e915d16a70616fa95c6025d;hpb=d5b50d9ed107d6a8b9241a831c1dae713963b524;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/xline.h b/include/xline.h index f593c1c97..5f1f568fc 100644 --- a/include/xline.h +++ b/include/xline.h @@ -1,10 +1,14 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2019 Matt Schatz + * Copyright (C) 2013 Attila Molnar + * Copyright (C) 2012-2013, 2017-2018, 2020 Sadie Powell + * Copyright (C) 2012, 2018-2019 Robby * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2004-2007 Craig Edwards - * Copyright (C) 2007 Robin Burchell + * Copyright (C) 2007-2008 Robin Burchell * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006-2008, 2010 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -25,7 +29,7 @@ /** XLine is the base class for ban lines such as G-lines and K-lines. * Modules may derive from this, and their xlines will automatically be * handled as expected by any protocol modules (e.g. m_spanningtree will - * propogate them using AddLine). The process of translating a type+pattern + * propagate them using AddLine). The process of translating a type+pattern * to a known line type is done by means of an XLineFactory object (see * below). */ @@ -124,7 +128,7 @@ class CoreExport XLine : public classbase */ time_t set_time; - /** The duration of the ban, or 0 if permenant + /** The duration of the ban, or 0 if permanent */ unsigned long duration; @@ -431,7 +435,7 @@ class CoreExport XLineManager */ ~XLineManager(); - /** Split an ident and host into two seperate strings. + /** Split an ident and host into two separate strings. * This allows for faster matching. */ IdentHostPair IdentSplit(const std::string &ident_and_host); @@ -515,8 +519,9 @@ class CoreExport XLineManager /** Expire a line given two iterators which identify it in the main map. * @param container Iterator to the first level of entries the map * @param item Iterator to the second level of entries in the map + * @param silent If true, doesn't send an expiry SNOTICE. */ - void ExpireLine(ContainerIter container, LookupIter item); + void ExpireLine(ContainerIter container, LookupIter item, bool silent = false); /** Apply any new lines that are pending to be applied. * This will only apply lines in the pending_lines list, to save on @@ -524,15 +529,16 @@ class CoreExport XLineManager */ void ApplyLines(); - /** Handle /STATS for a given type. - * NOTE: Any items in the list for this particular line type which have expired - * 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 stats Stats context + /** DEPRECATED: use the `bool InvokeStats(const std::string&, Stats::Context&)` overload instead. */ + DEPRECATED_METHOD(void InvokeStats(const std::string& type, unsigned int numeric, Stats::Context& stats)); + + /** Generates a /STATS response for the given X-line type. + * @param type The type of X-line to look up. + * @param context The stats context to respond with. + * @return True if a response was sent; otherwise, false. */ - void InvokeStats(const std::string& type, unsigned int numeric, Stats::Context& stats); + bool InvokeStats(const std::string& type, Stats::Context& context); - /** Clears any XLines which were added by the server configuration. */ - void ClearConfigLines(); + /** Expire X-lines which were added by the server configuration and have been removed. */ + void ExpireRemovedConfigLines(const std::string& type, const insp::flat_set& configlines); };