Repository navigation
Refusals carry a reason code.
- A refusal now says why in a form a program can act on:
pdn_aprs_encodedgainsint refusalat the end (apdn_aprs_refusalcode, zero for none and for every error that is notPDN_APRS_ERR_REFUSED), andpdn_aprs_refusal_name()gives the vectors' kebab-case id. The 26 codes are the refusal ids of the shared vectors; new ones may be appended in a later 1.x release, so keep a default case. Build calls fill it inresulttoo. The message text is unchanged and still not stable API. - Fixed: a header address the encoder cannot write (
pdn_aprs_encode_tnc2andpdn_aprs_encode_ax25) returnedPDN_APRS_ERR_ARGUMENT, though the header documentsPDN_APRS_ERR_REFUSED. It is nowPDN_APRS_ERR_REFUSEDwithPDN_APRS_REFUSAL_INVALID_ADDRESS(TNC2) orPDN_APRS_REFUSAL_AX25_CANNOT_CARRY(AX.25) and a reason. NULL pointers stayPDN_APRS_ERR_ARGUMENT. - An altitude given to
pdn_aprs_build_mic_ein feet and in metres is nowPDN_APRS_ERR_REFUSEDwithPDN_APRS_REFUSAL_VALUE_GIVEN_TWICE, where it wasPDN_APRS_ERR_ARGUMENT. - When data breaks several rules the refusal names the first by the shared order of the vectors' DESIGN.md (a fault in a field on its own before one about how fields relate; the header before the data).
- An address written with SSID
-0(N0ZO-0) is now refused bypdn_aprs_encode_ax25()andpdn_aprs_write_ax25()withPDN_APRS_REFUSAL_AX25_CANNOT_CARRY, likeWB4APR-00, since a frame gives it back asN0ZO. This holds for a third-party inner header too. It was written with no SSID. - The dump tool writes
refusal(encode and build),reencode_refusal(decode) andax25_refusal(the API view) in its records.