mirror of
https://github.com/ShaYmez/NXDNClients.git
synced 2025-08-03 05:22:24 -04:00
Merge pull request #205 from f1rmb/network_status
Add new remote command:
This commit is contained in:
commit
f907b4ce3c
@ -38,6 +38,7 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#include <netdb.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -539,6 +540,21 @@ void CNXDNGateway::run()
|
|||||||
voice->linkedTo(currentTG);
|
voice->linkedTo(currentTG);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (::memcmp(buffer + 0U, "status", 6U) == 0) {
|
||||||
|
std::string state = std::string("nxdn:") + ((currentAddrLen > 0) ? "conn" : "disc");
|
||||||
|
remoteSocket->write((unsigned char*)state.c_str(), (unsigned int)state.length(), addr, addrLen);
|
||||||
|
} else if (::memcmp(buffer + 0U, "host", 4U) == 0) {
|
||||||
|
std::string ref;
|
||||||
|
|
||||||
|
if (currentAddrLen > 0) {
|
||||||
|
char buffer[INET6_ADDRSTRLEN];
|
||||||
|
if (getnameinfo((struct sockaddr*)¤tAddr, currentAddrLen, buffer, sizeof(buffer), 0, 0, NI_NUMERICHOST | NI_NUMERICSERV) == 0) {
|
||||||
|
ref = std::string(buffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string host = std::string("nxdn:\"") + ((ref.length() == 0) ? "NONE" : ref) + "\"";
|
||||||
|
remoteSocket->write((unsigned char*)host.c_str(), (unsigned int)host.length(), addr, addrLen);
|
||||||
} else {
|
} else {
|
||||||
CUtils::dump("Invalid remote command received", buffer, res);
|
CUtils::dump("Invalid remote command received", buffer, res);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user