Skip to content

Commit 48f524d

Browse files
committed
issue 530 - Put * after all used addresses.
1 parent 312d558 commit 48f524d

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/server.c

+15-8
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,9 @@ void server_send_monitored (int chan, packet_t pp, int own_xmit)
976976
// Format addresses in AGWPR monitoring format such as:
977977
// 1:Fm ZL4FOX-8 To Q7P2U2 Via WIDE3-3
978978

979+
// Issue 530 pointed out that in this situation it is customary to put * after each used address,
980+
// not just the last used as in the TNC-2 monitoring format.
981+
979982
static void mon_addrs (int chan, packet_t pp, char *result, int result_size)
980983
{
981984
char src[AX25_MAX_ADDR_LEN];
@@ -986,16 +989,20 @@ static void mon_addrs (int chan, packet_t pp, char *result, int result_size)
986989
int num_digi = ax25_get_num_repeaters(pp);
987990

988991
if (num_digi > 0) {
992+
char via[AX25_MAX_REPEATERS*(AX25_MAX_ADDR_LEN+1)]; // complete via path
993+
strlcpy (via, "", sizeof(via));
989994

990-
char via[AX25_MAX_REPEATERS*(AX25_MAX_ADDR_LEN+1)];
991-
char stemp[AX25_MAX_ADDR_LEN+1];
992-
int j;
995+
for (int j = 0; j < num_digi; j++) {
996+
char digiaddr[AX25_MAX_ADDR_LEN];
993997

994-
ax25_get_addr_with_ssid (pp, AX25_REPEATER_1, via);
995-
for (j = 1; j < num_digi; j++) {
996-
ax25_get_addr_with_ssid (pp, AX25_REPEATER_1 + j, stemp);
997-
strlcat (via, ",", sizeof(via));
998-
strlcat (via, stemp, sizeof(via));
998+
if (j != 0) {
999+
strlcat (via, ",", sizeof(via)); // comma if not first address
1000+
}
1001+
ax25_get_addr_with_ssid (pp, AX25_REPEATER_1 + j, digiaddr);
1002+
strlcat (via, digiaddr, sizeof(via));
1003+
if (ax25_get_h(pp, AX25_REPEATER_1 + j)) {
1004+
strlcat (via, "*", sizeof(via));
1005+
}
9991006
}
10001007
snprintf (result, result_size, " %d:Fm %s To %s Via %s ",
10011008
chan+1, src, dst, via);

0 commit comments

Comments
 (0)