diff --git a/src/bridge/HostBridge.cpp b/src/bridge/HostBridge.cpp index 088849fe..89faa792 100644 --- a/src/bridge/HostBridge.cpp +++ b/src/bridge/HostBridge.cpp @@ -1041,8 +1041,7 @@ void HostBridge::processUDPAudio() m_txStreamId = 1U; // prevent further false starts -- this isn't the right way to handle this... LogMessage(LOG_HOST, "%s, call start, srcId = %u, dstId = %u", UDP_CALL, m_udpSrcId, m_udpDstId); if (m_grantDemand) { - switch (m_txMode) - { + switch (m_txMode) { case TX_MODE_P25: { p25::lc::LC lc = p25::lc::LC(); @@ -2101,6 +2100,7 @@ void HostBridge::callEnd(uint32_t srcId, uint32_t dstId) data.setSrcId(srcId); m_network->writeDMRTerminator(data, &m_dmrSeqNo, &m_dmrN, m_dmrEmbeddedData); + m_network->resetDMR(data.getSlotNo()); } break; case TX_MODE_P25: @@ -2114,6 +2114,7 @@ void HostBridge::callEnd(uint32_t srcId, uint32_t dstId) uint8_t controlByte = 0x00U; m_network->writeP25TDU(lc, lsd, controlByte); + m_network->resetP25(); } break; } diff --git a/src/fne/network/influxdb/InfluxDB.h b/src/fne/network/influxdb/InfluxDB.h index d9074e8f..d353a6e4 100644 --- a/src/fne/network/influxdb/InfluxDB.h +++ b/src/fne/network/influxdb/InfluxDB.h @@ -191,12 +191,19 @@ namespace network // set SO_REUSEADDR option const int sockOptVal = 1; +#if defined(_WIN32) + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&sockOptVal, sizeof(int)) < 0) { + LogError(LOG_NET, "Failed to connect to InfluxDB server, err: %d", errno); + closesocket(fd); + return 1; + } +#else if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &sockOptVal, sizeof(int)) < 0) { LogError(LOG_NET, "Failed to connect to InfluxDB server, err: %d", errno); closesocket(fd); return 1; } - +#endif // connect to the server ret = connect(fd, addr->ai_addr, addr->ai_addrlen); if (ret < 0) { @@ -297,9 +304,11 @@ namespace network struct linger sl; sl.l_onoff = 1; /* non-zero value enables linger option in kernel */ sl.l_linger = 0; /* timeout interval in seconds */ - +#if defined(_WIN32) + setsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&sl, sizeof(sl)); +#else setsockopt(fd, SOL_SOCKET, SO_LINGER, &sl, sizeof(sl)); - +#endif // close socket closesocket(fd); return ret / 100 == 2 ? 0 : ret;