Just to document this somewhere publicly, I'm following up on my earlier post..

Tapio Sokura wrote:
I just cvs-updated my Xastir, but still can't see compressed objects on my map. I can see the packets in Xastir's net.log just fine, they just aren't displayed on the map. station -> filter data -> select

After exchanging a few emails with Curt, the reason for those objects not being displayed turned out to be the path of those objects. It had nothing to do with those packets being objects and/or using compressed location format. The paths contained lower case characters (other than the q-construct) and thus were rejected by valid_path() in util.c. An example of such a path is "OH2KKU-1>APRS,TCPIP*,qAC,Core-2".

I've attached a simple one-minute diff against the current CVS that fixes it for me, but it might have unintended consequences as the same function is also used for validating AX.25 paths. Maybe in the future path checking should be partly separated to AX.25 and to the more relaxed APRS-IS format. Here's how Pete, AE5PL, just described current consensus on valid APRS-IS path components on the aprsspec mailing list:

'The generally accepted restrictions are A-Z, a-z, 0-9 with a maximum of
one hyphen used to designate a one or two character SSID.  The SSID does
not have to be numeric.  An asterisk may only be used at the end of a
callsign-SSID to designate "repeated by".'

  Tapio

PS. I'm putting the diff both inline and attached, in case attachments are stripped by the mailing list processor. The inline version will be word-wrapped, so don't apply it as it is..

--- util.c.orig 2006-10-27 02:43:04.000000000 +0300
+++ util.c      2006-10-27 02:44:13.000000000 +0300
@@ -4112,11 +4112,9 @@
                 allast++;               // count asterisks in path
             }
             else if ((ch <'A' || ch > 'Z')
+                    && (ch <'a' || ch > 'z')
                     && (ch <'0' || ch > '9')
-                    && ch != '-'
-                    && ch != 'q'        // Q-construct stuff
-                    && ch != 'r'        // Q-construct stuff
-                    && ch != 'o') {     // Q-construct stuff
+                    && ch != '-') {


                 if (debug_level & 1)
fprintf(stderr, "valid_path: Bad Path: Anti-loop stuff from aprsd or lower-case chars found\n");
_______________________________________________
Xastir mailing list
[email protected]
http://lists.xastir.org/cgi-bin/mailman/listinfo/xastir

Reply via email to