[Xastir] compressed objects not displayed?

Tapio Sokura oh2kku at iki.fi
Thu Oct 26 20:15:23 EDT 2006


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");


More information about the Xastir mailing list