Removed portmap

pull/14/head
Tom Early 7 years ago
parent 508558ca66
commit 55cd2295a7

@ -1344,10 +1344,7 @@ void CQnetGateway::ProcessModem()
bool result = get_yrcall_rptr(temp_radio_user, arearp_cs, zonerp_cs, &temp_mod, ip, 'R');
if (result) { /* it is a repeater */
to_remote_g2[i].streamid = dsvt.streamid;
// if the address is in the portmap, we'll use that saved port instead of the default port
auto theAddress = portmap.find(ip);
uint16_t port = htons((theAddress==portmap.end()) ? (uint16_t)g2_external.port : theAddress->second);
to_remote_g2[i].toDstar.Initialize(af_family, port, ip.c_str());
to_remote_g2[i].toDstar.Initialize(af_family, (uint16_t)g2_external.port, ip.c_str());
/* set rpt1 */
memset(dsvt.hdr.rpt1, ' ', 8);
@ -1404,10 +1401,7 @@ void CQnetGateway::ProcessModem()
if (to_remote_g2[i].toDstar.AddressIsZero()) {
/* set the destination */
to_remote_g2[i].streamid = dsvt.streamid;
// if the address is in the portmap, we'll use that port instead of the default
auto theAddress = portmap.find(ip);
uint16_t port = htons((theAddress==portmap.end())? (uint16_t)g2_external.port : theAddress->second);
to_remote_g2[i].toDstar.Initialize(af_family, port, ip.c_str());
to_remote_g2[i].toDstar.Initialize(af_family, (uint16_t)g2_external.port, ip.c_str());
/* set rpt1 */
memset(dsvt.hdr.rpt1, ' ', 8);
@ -1748,12 +1742,6 @@ void CQnetGateway::ProcessModem()
for (int i=0; i<3; i++) {
/* find out if data must go to the remote G2 */
if (to_remote_g2[i].streamid == dsvt.streamid) {
const char *address = to_remote_g2[i].toDstar.GetAddress();
// if the address is in the portmap, we'll use that port instead of the default
auto it = portmap.find(address);
uint16_t port = htons((it==portmap.end())? g2_external.port : it->second);
to_remote_g2[i].toDstar.Initialize(af_family, port, address);
sendto(g2_sock, dsvt.title, 27, 0, to_remote_g2[i].toDstar.GetPointer(), to_remote_g2[i].toDstar.GetSize());
time(&(to_remote_g2[i].last_time));
@ -1891,19 +1879,6 @@ void CQnetGateway::Process()
SDSVT dsvt;
socklen_t fromlen = sizeof(struct sockaddr_storage);
ssize_t g2buflen = recvfrom(g2_sock, dsvt.title, 56, 0, fromDstar.GetPointer(), &fromlen);
// save incoming port for mobile systems
const char *paddr = fromDstar.GetAddress();
uint16_t port = ntohs(fromDstar.GetPort());
if (portmap.end() == portmap.find(paddr)) {
printf("New g2 contact at %s on port %u\n", paddr, port);
portmap[paddr] = port;
} else {
if (port != portmap[paddr]) {
printf("New g2 port from %s is now %u, it was %u\n", paddr, port, portmap[paddr]);
portmap[paddr] = port;
}
}
ProcessG2(g2buflen, dsvt, true);
FD_CLR(g2_sock, &fdset);
}

@ -107,7 +107,6 @@ private:
unsigned int vPacketCount;
std::map<std::string, uint16_t> portmap;
std::set<std::string> findRoute;
// data needed for aprs login and aprs beacon

Loading…
Cancel
Save

Powered by TurnKey Linux.