map and cloud fix, add cloud debug

This commit is contained in:
2024-02-22 17:10:38 +03:00
parent 7297b9aee0
commit 50bff12364
5 changed files with 29 additions and 48 deletions

View File

@@ -34,12 +34,12 @@ PICloudServer::PICloudServer(const PIString & path, PIIODevice::DeviceMode mode)
opened_ = true;
cvar.notifyOne();
open_mutex.unlock();
// piCoutObj << "connected";
piCoutObj << "connected";
tcp.sendStart();
});
CONNECTL(&eth, disconnected, [this](bool) {
if (is_deleted) return;
// piCoutObj << "disconnected";
piCoutObj << "disconnected";
clients_mutex.lock();
for (auto c: clients_) {
c->is_connected = false;
@@ -89,7 +89,7 @@ PIVector<PICloudServer::Client *> PICloudServer::clients() const {
bool PICloudServer::openDevice() {
// piCout << "PICloudServer open device" << path();
piCoutObj << "open device" << path();
if (is_deleted) return false;
bool op = eth.connect(PINetworkAddress::resolve(path()), false);
if (op) {
@@ -293,12 +293,6 @@ void PICloudServer::clientDeleted(PIObject * o) {
clients_mutex.lock();
clients_.removeOne(c);
removed_clients_.removeAll(c);
auto it = index_clients.makeIterator();
while (it.next()) {
if (it.value() == c) {
index_clients.remove(it.key());
break;
}
}
index_clients.removeWhere([c](uint, Client * v) { return v == c; });
clients_mutex.unlock();
}

View File

@@ -425,6 +425,7 @@ public:
--i;
}
}
return *this;
}
//! \~english Same as \a remove().

View File

@@ -357,8 +357,7 @@ void PIEthernet::applyTimeout(int fd, int opt, double ms) {
void PIEthernet::applyOptInt(int level, int opt, int val) {
if (sock < 0) return;
ethSetsockoptInt(sock, level, opt, val);
if (sock != -1) ethSetsockoptInt(sock, level, opt, val);
if (sock_s != sock && sock_s != -1) ethSetsockoptInt(sock_s, level, opt, val);
}
@@ -1335,14 +1334,16 @@ void PIEthernet::ethClosesocket(int sock, bool shutdown) {
int PIEthernet::ethSetsockopt(int sock, int level, int optname, const void * optval, int optlen) {
if (sock < 0) return -1;
return setsockopt(sock,
level,
optname,
auto ret = setsockopt(sock,
level,
optname,
#ifdef WINDOWS
(char *)
(char *)
#endif
optval,
optlen);
optval,
optlen);
if (ret != 0) piCout << "setsockopt error:" << ethErrorString();
return ret;
}