aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/epee')
-rw-r--r--contrib/epee/include/net/levin_protocol_handler_async.h7
-rw-r--r--contrib/epee/src/wipeable_string.cpp7
2 files changed, 10 insertions, 4 deletions
diff --git a/contrib/epee/include/net/levin_protocol_handler_async.h b/contrib/epee/include/net/levin_protocol_handler_async.h
index 5774c0ba7..1341a4ae6 100644
--- a/contrib/epee/include/net/levin_protocol_handler_async.h
+++ b/contrib/epee/include/net/levin_protocol_handler_async.h
@@ -949,7 +949,12 @@ bool async_protocol_handler_config<t_connection_context>::close(boost::uuids::uu
{
CRITICAL_REGION_LOCAL(m_connects_lock);
async_protocol_handler<t_connection_context>* aph = find_connection(connection_id);
- return 0 != aph ? aph->close() : false;
+ if (!aph)
+ return false;
+ if (!aph->close())
+ return false;
+ m_connects.erase(connection_id);
+ return true;
}
//------------------------------------------------------------------------------------------
template<class t_connection_context>
diff --git a/contrib/epee/src/wipeable_string.cpp b/contrib/epee/src/wipeable_string.cpp
index 4209b71bf..4928db172 100644
--- a/contrib/epee/src/wipeable_string.cpp
+++ b/contrib/epee/src/wipeable_string.cpp
@@ -188,13 +188,14 @@ void wipeable_string::split(std::vector<wipeable_string> &fields) const
while (len--)
{
const char c = *ptr++;
- if (c != ' ')
+ const bool space_prev = space;
+ space = std::isspace(c);
+ if (!space)
{
- if (space)
+ if (space_prev)
fields.push_back({});
fields.back().push_back(c);
}
- space = c == ' ';
}
}