diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/xline.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/xline.cpp b/src/xline.cpp index 6501a7f6d..66d24f439 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -262,7 +262,12 @@ bool XLineManager::AddLine(XLine* line, User* user) LookupIter i = x->second.find(line->Displayable()); if (i != x->second.end()) { - return false; + // XLine propagation bug was here, if the line to be added already exists and + // it's expired then expire it and add the new one instead of returning false + if ((!i->second->duration) || (ServerInstance->Time() < i->second->expiry)) + return false; + + ExpireLine(x, i); } } |