diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/cull_list.h | 2 | ||||
-rw-r--r-- | include/users.h | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/cull_list.h b/include/cull_list.h index 5a74aa724..bf12cc6d8 100644 --- a/include/cull_list.h +++ b/include/cull_list.h @@ -22,11 +22,13 @@ class CoreExport CullList { std::vector<classbase*> list; + std::vector<LocalUser*> SQlist; public: /** Adds an item to the cull list */ void AddItem(classbase* item) { list.push_back(item); } + void AddSQItem(LocalUser* item) { SQlist.push_back(item); } /** Applies the cull list (deletes the contents) */ diff --git a/include/users.h b/include/users.h index ed7b6bf5e..3536fc350 100644 --- a/include/users.h +++ b/include/users.h @@ -348,6 +348,12 @@ class CoreExport User : public Extensible */ unsigned int quitting:1; + /** Recursion fix: user is out of SendQ and will be quit as soon as possible. + * This can't be handled normally because QuitUser itself calls Write on other + * users, which could trigger their SendQ to overrun. + */ + unsigned int quitting_sendq:1; + /** This is true if the user matched an exception (E:Line). It is used to save time on ban checks. */ unsigned int exempt:1; |