diff --git a/QnetGateway.cpp b/QnetGateway.cpp index 9794140..5be8922 100644 --- a/QnetGateway.cpp +++ b/QnetGateway.cpp @@ -1209,8 +1209,13 @@ void CQnetGateway::Process() rptrbuf.vpkt.streamid = g2buf.streamid; rptrbuf.vpkt.ctrl = g2buf.ctrl; memcpy(rptrbuf.vpkt.hdr.flag, g2buf.hdr.flag, 3); - memcpy(rptrbuf.vpkt.hdr.r1, g2buf.hdr.rpt1, 8); - memcpy(rptrbuf.vpkt.hdr.r2, g2buf.hdr.rpt2, 8); + if (is_icom) { + memcpy(rptrbuf.vpkt.hdr.r1, g2buf.hdr.rpt2, 8); + memcpy(rptrbuf.vpkt.hdr.r2, g2buf.hdr.rpt1, 8); + } else { + memcpy(rptrbuf.vpkt.hdr.r1, g2buf.hdr.rpt1, 8); + memcpy(rptrbuf.vpkt.hdr.r2, g2buf.hdr.rpt2, 8); + } memcpy(rptrbuf.vpkt.hdr.ur, g2buf.hdr.urcall, 8); memcpy(rptrbuf.vpkt.hdr.my, g2buf.hdr.mycall, 8); memcpy(rptrbuf.vpkt.hdr.nm, g2buf.hdr.sfx, 4); diff --git a/QnetLink.cpp b/QnetLink.cpp index 5293478..a0689de 100644 --- a/QnetLink.cpp +++ b/QnetLink.cpp @@ -1509,8 +1509,7 @@ void CQnetLink::Process() found = false; for (int i=0; i<3; i++) { - if ((fromDst4.sin_addr.s_addr == to_remote_g2[i].toDst4.sin_addr.s_addr) && - (to_remote_g2[i].toDst4.sin_port == htons(rmt_xrf_port))) { + if ((fromDst4.sin_addr.s_addr == to_remote_g2[i].toDst4.sin_addr.s_addr) && (to_remote_g2[i].toDst4.sin_port == htons(rmt_xrf_port))) { to_remote_g2[i].countdown = TIMEOUT; found = true; } @@ -1524,8 +1523,7 @@ void CQnetLink::Process() source_stn[8] = '\0'; /* some bad hotspot programs out there using INCORRECT flag */ - if (dsvt.hdr.flag[0]==0x40U || dsvt.hdr.flag[0]==0x48U || dsvt.hdr.flag[0]==0x60U || dsvt.hdr.flag[0]==0x68U) - dsvt.hdr.flag[0] -= 0x40; + if (dsvt.hdr.flag[0]==0x40U || dsvt.hdr.flag[0]==0x48U || dsvt.hdr.flag[0]==0x60U || dsvt.hdr.flag[0]==0x68U) dsvt.hdr.flag[0] -= 0x40; /* A reflector will send to us its own RPT1 */ /* A repeater will send to us our RPT1 */ @@ -1573,9 +1571,7 @@ void CQnetLink::Process() /* Last Heard */ if (old_sid[i].sid != dsvt.streamid) { if (qso_details) - printf("START from remote g2: streamID=%04x, flags=%02x:%02x:%02x, my=%.8s, sfx=%.4s, ur=%.8s, rpt1=%.8s, rpt2=%.8s, %d bytes fromIP=%s, source=%.8s\n", - ntohs(dsvt.streamid), dsvt.hdr.flag[0], dsvt.hdr.flag[1], dsvt.hdr.flag[2], dsvt.hdr.mycall, dsvt.hdr.sfx, - dsvt.hdr.urcall, dsvt.hdr.rpt1, dsvt.hdr.rpt2, length, inet_ntoa(fromDst4.sin_addr), source_stn); + printf("START from remote g2: streamID=%04x, flags=%02x:%02x:%02x, my=%.8s, sfx=%.4s, ur=%.8s, rpt1=%.8s, rpt2=%.8s, %d bytes fromIP=%s, source=%.8s\n", ntohs(dsvt.streamid), dsvt.hdr.flag[0], dsvt.hdr.flag[1], dsvt.hdr.flag[2], dsvt.hdr.mycall, dsvt.hdr.sfx, dsvt.hdr.urcall, dsvt.hdr.rpt1, dsvt.hdr.rpt2, length, inet_ntoa(fromDst4.sin_addr), source_stn); // put user into tmp1 memcpy(tmp1, dsvt.hdr.mycall, 8);