Giter VIP home page Giter VIP logo

aprx's People

Contributors

dandrzejewski avatar hessu avatar kevans91 avatar owenduffy avatar patrickdk77 avatar phirephly avatar videobuff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aprx's Issues

Aprx does not support messaging

Aprx contains no behavior for APRS Messaging. At a minimum, aprx should reject all messages directed at any of its aprx_interfaces. Further actions based on APRS Messages (forward as email, send to syslog, etc) would be a nice bonus but not as important from a spec compliance point of view.

Software not building

Hi,

is this software still under development/support?

I have got the following build error:

gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c aprx.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c ttyreader.c
In Datei, eingebunden von /usr/include/bits/libc-header-start.h:33,
                 von /usr/include/stdio.h:27,
                 von aprx.h:13,
                 von ttyreader.c:13:
/usr/include/features.h:187:3: Warnung: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  187 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~
ttyreader.c: In Funktion »aprx_cfmakeraw«:
ttyreader.c:706:1: Warnung: Typ von »f« ist auf »int« voreingestellt [-Wimplicit-int]
  706 | aprx_cfmakeraw(t, f)
      | ^~~~~~~~~~~~~~
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c ax25.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c aprsis.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c beacon.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c config.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c netax25.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c erlang.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c aprxpolls.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c telemetry.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c igate.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c cellmalloc.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c historydb.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c keyhash.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c parse_aprs.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c dupecheck.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c kiss.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c interface.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c pbuf.c
In Datei, eingebunden von /usr/include/bits/libc-header-start.h:33,
                 von /usr/include/stdio.h:27,
                 von aprx.h:13,
                 von pbuf.c:13:
/usr/include/features.h:187:3: Warnung: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
  187 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
      |   ^~~~~~~
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c digipeater.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c valgrind.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c filter.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c dprsgw.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c crc.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c agwpesocket.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c netresolver.c
gcc -g -O2 -pthread   -DAPRXVERSION="\"2.9.0-28-g13c6e79\"" -DVARRUN="\"/var/run\"" -DVARLOG="\"/var/log/aprx\"" -DCFGFILE="\"/etc/aprx.conf\"" -c timercmp.c
gcc  -o aprx aprx.o ttyreader.o ax25.o aprsis.o beacon.o config.o netax25.o erlang.o aprxpolls.o telemetry.o igate.o cellmalloc.o historydb.o keyhash.o parse_aprs.o dupecheck.o  kiss.o interface.o pbuf.o digipeater.o valgrind.o filter.o dprsgw.o  crc.o  agwpesocket.o netresolver.o timercmp.o  -lutil    -lm -pthread  
/usr/bin/ld: ttyreader.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: ttyreader.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: ax25.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: ax25.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: aprsis.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: aprsis.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: beacon.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: beacon.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: config.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: config.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: netax25.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: netax25.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: erlang.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: erlang.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: aprxpolls.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: aprxpolls.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: telemetry.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: telemetry.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: igate.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: igate.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: historydb.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: historydb.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: parse_aprs.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: parse_aprs.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: dupecheck.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: dupecheck.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: kiss.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: kiss.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: interface.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: interface.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: pbuf.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: pbuf.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: digipeater.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: digipeater.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: filter.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: filter.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: dprsgw.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: dprsgw.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: crc.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: crc.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: agwpesocket.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: agwpesocket.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: netresolver.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: netresolver.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
/usr/bin/ld: timercmp.o:/home/dl1ue/aprx/aprx.h:45: multiple definition of `pthr_attrs'; aprx.o:/home/dl1ue/aprx/aprx.h:45: first defined here
/usr/bin/ld: timercmp.o:/home/dl1ue/aprx/aprx.h:44: multiple definition of `aprsis_thread'; aprx.o:/home/dl1ue/aprx/aprx.h:44: first defined here
collect2: Fehler: ld gab 1 als Ende-Status zurück
make: *** [Makefile:102: aprx] Fehler 1

GCC:

gcc --version
gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.

Is there a possible solution?
Thanks!

Can't construct beacons without an interface block

Aprx tries to construct beacons with a src address of APRSIS if you have an APRSIS block, a beacon block, and no interface blocks.

The current workaround is to set the srccall parameter in the beacon block.

Try to connect modem makes segmentation fault

Hi folks,

I try to connect to my modem. Edited the config. After that all starts ending with

pi@db0sbn-aprs ~ $ sudo aprx
Speicherzugriffsfehler"

If I '#' the interface, aprx is running.

APRXxx tocall is parsed as APRSmax

First, thanks for all your hard work on APRX, it's awesome!

Now, the issue: apparently the old APRSmax used APRXxx for its tocall, and at least one system, the CWOP Weather Quality Reporter, reports my APRX station as running APRSmax (https://weather.gladstonefamily.net/site/AV633) as well as other stations with APRXxx tocalls. Is APRSmax likely still in use anywhere? Should I just send the CWOP folks an email letting them know what I'm running and suggesting they change their system? My cursory googling didn't find much on APRSmax, so I assume it's defunct, but if not, I'm afraid there may be a conflict.

73

-Rob, KG4WGN

heartbeat-timeout < 30 seconds should not be allowed, or a serious warning should be shown

Someone just configured heartbeat-timeout 10, and then asked me why aprsc is rejecting the aprx.

Turned out that aprx was disconnecting due to the timeout every 10 seconds, since APRS-IS servers just don't send a heartbeat that often. The description of the timeout in the example config is maybe a bit difficult to understand.

IMHO it'd be nice if aprx would not allow a heartbeat-timeout value of less than 25 seconds at all, except when disabling the timeout (which would not be a great idea either, a serious warning should be logged).

Beacon send by "exec" cmd doenst work after a while

I am using a script for beaconing:
beacon timeout 20 exec /home/pi/APRS/aprs_eddt.sh
After a certain amount of time (some days or more), the result of the script is no more recognized by APRX, the grabbed for the beacontext is empty. I have to restart the application and everything went well again.
The output of the bash script is proofed/working reliable.

now not defined in aprx-stat.c when ERLANGESTORAGE defined

note that 'now' is not declared:

ifdef ERLANGSTORAGE

void printtime(char *buf, int buflen)
{
struct tm *t = gmtime(&now.tv_sec);
// strftime(timebuf, 60, "%Y-%m-%d %H:%M:%S", t);
sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d",
t->tm_year+1900,t->tm_mon+1,t->tm_mday,
t->tm_hour,t->tm_min,t->tm_sec);
}

probably should add something like:
time_t now;
time ( &now );

Not sure if gmtime should be called with &now.tv_sec or with simply &now as an argument

Feature Request: Compressed position format support

Unless I am missing something it looks like aprx doesn't currently support compressed position in beacons. They can be achieved using the raw beacon feature but it would be nice if they were supported natively. Also having the ability for the digipeater to convert incoming packets to compressed format before digipeating would be nice.

aprx fails to try all addresses in a DNS round-robin reply

I'm guessing this bug was introduced in commit 0e5c89e.

I have a hostname with a couple of IPv4 addresses and an IPv6 address:
igates.aprs.fi has address 85.188.1.122
igates.aprs.fi has address 193.185.39.21
igates.aprs.fi has IPv6 address 2001:67c:15c:1::122

I'm running aprx on an RPi which does not have IPv6 available locally. 193.185.39.21 happens to be down right now, 85.188.1.122 would be up and serve customers just fine (I can telnet igates.aprs.fi 14501 from the RPi).

aprx (current git master commit 79201f8) fails to try all addresses in the round-robin. It seems to try 193.185.39.21, it fails (unfortunately does not log the IP address being attempted!). Then it tries the IPv6 one, which fails (no IPv6 available currently), and it does not try 85.188.122.

2015-08-02 11:21:20.299 CLOSE APRSIS igates.aprs.fi:14580 fail on connect
2015-08-02 11:21:20.300 FAIL - Connect to igates.aprs.fi:14580 failed: socket formation failed - errno=97 - Address family not supported by protocol
2015-08-02 11:21:20.300 CLOSE APRSIS igates.aprs.fi:14580 reconnect
2015-08-02 11:23:29.259 CLOSE APRSIS igates.aprs.fi:14580 fail on connect
2015-08-02 11:23:29.259 FAIL - Connect to igates.aprs.fi:14580 failed: socket formation failed - errno=97 - Address family not supported by protocol
2015-08-02 11:23:34.261 CLOSE APRSIS igates.aprs.fi:14580 reconnect
2015-08-02 11:25:41.739 CLOSE APRSIS igates.aprs.fi:14580 fail on connect
2015-08-02 11:25:41.739 FAIL - Connect to igates.aprs.fi:14580 failed: socket formation failed - errno=97 - Address family not supported by protocol
2015-08-02 11:25:46.745 CLOSE APRSIS igates.aprs.fi:14580 reconnect

potential bug: forgetting to check the return value of openssl API 'X509_STORE_CTX_get_current_cert'

According to the OpenSSL API document,

X509_STORE_CTX_get_current_cert() returns the certificate which caused the error or NULL if no certificate is relevant to the error.

X509_STORE_CTX_get_current_cert() was never NULL. Applications should check the return value before printing out any debugging information relating to the current certificate.

So it will be safer to check cert first before using it.

aprx/ssl.c

Lines 486 to 494 in 13c6e79

cert = X509_STORE_CTX_get_current_cert(x509_store);
err = X509_STORE_CTX_get_error(x509_store);
depth = X509_STORE_CTX_get_error_depth(x509_store);
sname = X509_get_subject_name(cert);
subject = sname ? X509_NAME_oneline(sname, NULL, 0) : "(none)";
iname = X509_get_issuer_name(cert);
issuer = iname ? X509_NAME_oneline(iname, NULL, 0) : "(none)";

aprx-stat is broken

Per John Bass:

I have found the issue, the problem is within the erlang.c file.
If seems there is a variable set on around line 282
erlang_data_is_nonshared = 1;
This stops the stats...!

Does not accept longer callsigns.

One of the recommendations here is that digipeaters should use location names for their callsigns (with their FCC issued callsigns in the comment).

When I do this with the callsign of PEPPRPIKE (which is valid), I get this:

parse_ax25addr('PEPPRPIKE') failed. [1]

Looking at ax25.c, it looks like it's hardcoded to expect a callsign of up to 6 characters, then a dash and SSID. So when it doesn't see the dash (or a * or null), it bombs and returns 1.

The request here is that it should properly support up to 9 characters without an SSID.

Missing version string in build system breaks APRS-IS login

APRS-IS login depends on there being two software ident tokens before any "filter ..." options. When APRX is built incorrectly with a "" version string, the APRS-IS server interprets "filter" as the version and can not correctly parse the login string.

Proposed solution is to somewhere between the build system and the APRS-IS login function substitute "" with "UNKNOWN"

Add a more user friendly way to set kiss parameters.

Now the only way to set parameters of a kiss modem is add something like the following to interface section:

initstring "\x00\xc0\x01\x20\xc0\xc0\x02\x80\xc0\xc0\x03\x0a\xc0\xc0\x04\x02\xc0\x00"

This is the HEX rapresentation of 4 kiss frames:

\xc0\x01\x20\xc0 -> TXDELAY 32
\xc0\x02\x80\xc0 -> P 128
\xc0\x03\x0a\xc0 -> SLOTTIME 10
\xc0\x04\x02\xc0 -> TXTAIL 2

It could be better to insert these parameters in configuration and let Aprx to build the frames.
Other nice feature could be auto self-adjust parameters (P and SLOTTIME) based on the channel traffic (Like agwpe).

possible buffer overflow?

While browsing through the code I found this line:

aprx/ax25.c

Line 149 in 13c6e79

if (framelen > sizeof(tnc2buf) - 80) {

sizeof of a pointer is taken, I think the intent was to check the size of the buffer itself, not the pointer to it.

Logs <0x0d> on the end of some digipeated packets

Many packets getting digipeated are logged with a carriage return at the end. Hopefully this isn't also getting appended to the transmitted packets.

2016-11-13 15:03:21.017 BALDI     R W7COA-9>TXQXPP,WIDE1-1,WIDE2-1:`2E!l!Aj/`"4l}_"
2016-11-13 15:03:21.018 VBALDI    T W7COA-9>TXQXPP,VBALDI*,WIDE2-1:`2E!l!Aj/`"4l}_"<0x0d>

Only one server is used

Only one server is used, the last one defined.

AIShcount is not incremented when processing the config.
The last lines in aprsis.c for aprsis_config is missing the ++ to increment the counter.

    AISh = realloc(AISh, sizeof(AISh[0]) * (AIShcount + 1));
    AISh[AIShcount++] = AIH;

Missing log entries for digipeated packets

It would appear that something causes Aprx to not log the transmission of some subset of packets it digipeats.

Expected log entries for a digipeated packet:

TIMESTAMP  MYCALL   R THEIRCALL>APRS,WIDE1-1:,packet
TIMESTAMP  MYCALL   T THEIRCALL>APRS,MYCALL*:,packet

What seems to happen (while the packet is actually still transmitted):

TIMESTAMP  MYCALL   R THEIRCALL>APRS,WIDE1-1:,packet

It would seem there is some code path in the digipeating logic which skips logging...

Aliases match anything starting with the alias

A digipeater configured with an alias such as NCA will match and respond to NCAFFF like it were a bare pre-n-N NCA. Presumably the only valid aliases to match on a definition would be:

  • ALIASn-N
  • ALIAS (Which is handled as if it were ALIAS1-1)

SSn-N not supported correctly.

I want my digipeater to support OH7-7. So I configured it as such:

 <source>
   source         $mycall
   viscous-delay 1
   <trace>
     maxreq      3
     maxdone     3
     keys        WIDE,TRACE
   </trace>
   <wide>
     maxreq        7
     maxdone       7
     keys          OH
   </wide>
</source>

Yet, when I send an OH7-7 packet:

2015-11-15 16:12:33.823 NEWBRY    R KD8TWG>APWW10,OH7-7:=/9PDM9sX`- sTTesting OH7-7.
2015-11-15 16:12:34.585 NEWBRY    T KD8TWG>APWW10,NEWBRY*,OH7-7*:=/9PDM9sX`- sTTesting OH7-7.
2015-11-15 16:12:34.588 NEWBRY    R KD8TWG>APWW10,KF8YK-2*,OH7-6:=/9PDM9sX`- sTTesting OH7-7.
2015-11-15 16:12:35.589 NEWBRY    R KD8TWG>APWW10,N8BHU-1*,OH7-6:=/9PDM9sX`- sTTesting OH7-7.
2015-11-15 16:12:37.888 NEWBRY    R KD8TWG>APWW10,K8UI-1*,OH7-5:=/9PDM9sX`- sTTesting OH7-7.

As you can see, my digipeater (NEWBRY) is not decrementing the path correctly.

ROADMAP file required for make-deb

make make-deb fails since I deleted the out of date ROADMAP file. I should write a new one.

dh_installdocs
cp: cannot stat 'ROADMAP': No such file or directory
dh_installdocs: cp --reflink=auto -a ROADMAP debian/aprx/usr/share/doc/aprx returned exit code 1
debian/rules:66: recipe for target 'binary-arch' failed
make[1]: *** [binary-arch] Error 2
make[1]: Leaving directory '/home/kenneth/src/aprx/aprx-2.9.0'
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
Makefile:198: recipe for target 'make-deb' failed
make: *** [make-deb] Error 2

Please update README to show this repo

I believe this is the actively maintained APRX repo. However, when I looked in the README, it references an apparently dead SVN repo. Please update the docs to make it clear that this is the place, if it in fact is. Thanks.

Doesn't beacon a BITS Telemetry Formatter

Aprx periodically beacons PARM, UNIT, and EQNS Telemetry Report Formatters such that traffic telemetry may be rendered correctly. The BITS formatter sets the "Project Name" for the telemetry, and should possibly be included in the beacon rotation.

Digipeated packet with empty path

@w8vfr reports Aprx digipeating a packet with an empty path:

2016-11-16 01:04:19.662 W8VFR-8 R W8VFR-3>APRX28:/010418h3938.06NI08421.26W#33KM digigate
2016-11-16 01:04:19.665 W8VFR-8 T W8VFR-3>APRX28:/010418h3938.06NI08421.26W#33KM digigate

Please add any insight as to the frequency of these errors, and attach your complete config file for Aprx.

Support for preamble and tx tail?

Is it possible to configure the KISS preamble and tx tail? The packets from my TNC are pretty short so I'm not getting decoded often. If I fire up Xastir and use the same TNC with a longer preamble and tail, I get decoded more reliably.

ax25_to_tnc() is a little confused about tnc2buf length

Lines 148-153 of ax25.c are:

if (framelen > sizeof(tnc2buf) - 80) {
	/* Too much ! Too much! */
	return 0;
}

where tnc2buf is a function parameter char *tnc2buf. sizeof() has 'unsigned int' type, in a 32-bit binary, sizeof(char *) is 4U so this test re-writes
as:
if (framelen > 4U - 80U) {

which simplifies to:
if (framelen > 4294967224) {

Which I'll say is too much! too much! but sadly has nothing to do with the size of the supplied tnc2buf. Perhaps this test yearns to be:

    if (framelen > tnc2buflen) {

Beacon without Specified Interface

When a section is defined without a specific interface, it appears to not correctly beacon on ALL interfaces per the APRX 2.08 manual, but only some single interface.

Aprx dumps packets with leading spaces in route

When other users enter paths like "WIDE1-1, WIDE2-1" with a space and their tracker doesn't properly tokenize the path, the resulting packet may appear to be invalid since the leading space in WIDE2-1 makes it seem like it's a zero length callsign.

Consider making ax25.c:ax25_to_tnc2_fmtaddress() more liberal with its parsing than the strict A-Z0-9, then only spaces, interpretation.

Error when setting TX-OK FALSE on interface with telemetry and digipeater sections defined

Hello everybody,

I'm running an APRX Igate in my community for a long time using an RPi. I love it! because it's really very stable and until now works flawlessly.

Today I'm was needed to avoid TX any packet and my first thougth was to edit my config and in my section edit the "tx-ok true" option to false..
Then I restarted the service, but the service don't started...

On the syslog these lines point to me the problem:

May 28 12:13:47 raspberrypi3 systemd[1]: Starting LSB: start and stop aprx...
May 28 12:13:47 raspberrypi3 aprx[10002]: /etc/aprx.conf:93 ERROR: This transmit interface has no TX-OK TRUE setting: 'CX8FS-2'
May 28 12:13:47 raspberrypi3 aprx[10002]: ERROR: Failures on defining block parameters
May 28 12:13:47 raspberrypi3 aprx[10002]: APRS RF-Telemetry will not be activated.
May 28 12:13:47 raspberrypi3 aprx[10002]: /etc/aprx.conf:99 ERROR: This transmit interface has no TX-OK TRUE setting: 'CX8FS-2'
May 28 12:13:47 raspberrypi3 aprx[10002]: ERROR: Config fault observed on definitions!
May 28 12:13:47 raspberrypi3 aprx[10002]: Seen configuration errors. Aborting!
May 28 12:13:48 raspberrypi3 systemd[1]: Started LSB: start and stop aprx.

The problem seems to be a conflict between the tx-ok=false and the sections on the config who expected a TX enabled and exited the execution with an error.
I think maybe it's a harsh behavior, because the parser only need to ignore these parts of the config who are useless for a RX-Only.

My actual interface and telemetry sections are this.

<interface>
serial-device /dev/ttyAMA0 19200 8n1 KISS
callsign $mycall
tx-ok true # transmitter enable defaults to false
#telem-to-is false # set to 'false' to disable
</interface>
......
<telemetry>
transmitter $mycall
via TRACE1-1
source $mycall
</telemetry>

Needless to say, the configuration is correct and the behavior of APRX when the transmission is enabled works without problems.

Thanks in advance..
Claudio CX8FS

D-PRS does not work

When running in D-PRS mode, the only messages loggeg in dprs.log are still aprs-messages, but in an unreadable format. Does D-PRS logging require a D-Star handset to be connected with a datacable, or is it just broken?

Can't kill in Foreground

When aprx is run with -d, it still daemonizes enough to ignore ^C from the controlling console. Aprx needs some way to be killed in the foreground.

Don't ship /debian with release tarballs

On request of irc.debian/#debian-hams/Colin, please exclude the /debian folder from shipping tarballs.

Rewrite documentation for building your own debs to handle upstream tarballs lacking the debian build target.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.