FIX: fixed bug with the leaving and joining from local clients
This commit is contained in:
@@ -15,7 +15,7 @@ namespace WHISPER {
|
|||||||
|
|
||||||
|
|
||||||
struct localClient{
|
struct localClient{
|
||||||
short port;
|
std::uint32_t port;
|
||||||
std::string addr;
|
std::string addr;
|
||||||
std::uint32_t id;
|
std::uint32_t id;
|
||||||
zmq::socket_t clientSocket;
|
zmq::socket_t clientSocket;
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ namespace WHISPER {
|
|||||||
if (localclients.size() > 0) {
|
if (localclients.size() > 0) {
|
||||||
for (auto it = localclients.begin(); it != localclients.end();it++)
|
for (auto it = localclients.begin(); it != localclients.end();it++)
|
||||||
{
|
{
|
||||||
if (it->get()->port == join.port) {
|
if (it->get()->port == join.port || it->get()->id == join.deviceId_) {
|
||||||
clientAllreadyIn = true;
|
clientAllreadyIn = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ namespace WHISPER {
|
|||||||
if (localclients.size() > 0) {
|
if (localclients.size() > 0) {
|
||||||
for (auto it = localclients.begin(); it != localclients.end();it++)
|
for (auto it = localclients.begin(); it != localclients.end();it++)
|
||||||
{
|
{
|
||||||
if (it->get()->port == Leave.port) {
|
if (it->get()->port == Leave.port || it->get()->id == Leave.deviceId_) {
|
||||||
it->get()->clientSocket.close();
|
it->get()->clientSocket.close();
|
||||||
it = localclients.erase(it);
|
it = localclients.erase(it);
|
||||||
LOG_S(INFO)<<"client left";
|
LOG_S(INFO)<<"client left";
|
||||||
|
|||||||
Reference in New Issue
Block a user