From 7188a5f194b9c8501658129461e45e6f9b4dcea8 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Sat, 30 May 2020 23:54:11 -0400 Subject: [PATCH] Rename things more in line with official AX.25 spec --- include/patty/ax25/frame.h | 16 ++++++++-------- src/decode.c | 8 ++++---- src/frame.c | 35 +++++++++++++++++------------------ 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/include/patty/ax25/frame.h b/include/patty/ax25/frame.h index 139b9db..2b9a517 100644 --- a/include/patty/ax25/frame.h +++ b/include/patty/ax25/frame.h @@ -24,8 +24,7 @@ typedef struct _patty_ax25_frame { patty_ax25_address src; patty_ax25_address repeaters[7]; - int hops, - repeated; + uint8_t hops; enum patty_ax25_version version; enum patty_ax25_frame_type type; @@ -34,14 +33,15 @@ typedef struct _patty_ax25_frame { uint16_t control; uint8_t proto; - void * payload; - size_t payloadsz; - - size_t size; + void *info; + size_t len; } patty_ax25_frame; -int patty_ax25_frame_decode(patty_ax25_frame *frame, void *data, size_t len); +ssize_t patty_ax25_frame_decode(patty_ax25_frame *frame, + void *data, + size_t len); -int patty_ax25_frame_payload(patty_ax25_frame *frame, void **data, size_t *len); +ssize_t patty_ax25_frame_info(patty_ax25_frame *frame, + void **info); #endif /* _PATTY_AX25_FRAME_H */ diff --git a/src/decode.c b/src/decode.c index b429467..a3bd123 100644 --- a/src/decode.c +++ b/src/decode.c @@ -112,16 +112,16 @@ static int frame_fprint(FILE *stream, } if (frame->type == PATTY_AX25_FRAME_INFO) { - if (fprintf(stream, " type I poll %d ns %d nr %d payload %zu", + if (fprintf(stream, " type I poll %d ns %d nr %d info %zu", PATTY_AX25_CONTROL_POLL(frame->control), PATTY_AX25_CONTROL_SEQ_SEND(frame->control), PATTY_AX25_CONTROL_SEQ_RECV(frame->control), - frame->payloadsz) < 0) { + frame->len) < 0) { goto error_io; } } else if (frame->type == PATTY_AX25_FRAME_UNNUMBERED) { - if (fprintf(stream, " type U payload %zu", - frame->payloadsz) < 0) { + if (fprintf(stream, " type U info %zu", + frame->len) < 0) { goto error_io; } } diff --git a/src/frame.c b/src/frame.c index fdd9ffb..64e6998 100644 --- a/src/frame.c +++ b/src/frame.c @@ -81,8 +81,6 @@ static ssize_t decode_hops(patty_ax25_frame *frame, frame->hops++; if (frame->repeaters[i].last) { - frame->repeated = frame->repeaters[i].repeated; - break; } } @@ -153,9 +151,10 @@ error: return -1; } -static ssize_t decode_payload(patty_ax25_frame *frame, +static ssize_t decode_info(patty_ax25_frame *frame, void *data, - off_t offset) { + off_t offset, + size_t size) { uint8_t control = ((uint8_t *)data + offset)[0]; size_t decoded = 0; @@ -193,11 +192,11 @@ static ssize_t decode_payload(patty_ax25_frame *frame, if (info) { decoded++; - frame->proto = ((uint8_t *)data + offset)[1]; - frame->payload = (void *)((uint8_t *)data + offset + decoded); - frame->payloadsz = frame->size - offset - decoded; + frame->proto = ((uint8_t *)data + offset)[1]; + frame->info = (void *)((uint8_t *)data + offset + decoded); + frame->len = size - offset - decoded; - decoded += frame->payloadsz; + decoded += frame->len; } return decoded; @@ -206,14 +205,14 @@ error: return -1; } -int patty_ax25_frame_decode(patty_ax25_frame *frame, void *data, size_t size) { +ssize_t patty_ax25_frame_decode(patty_ax25_frame *frame, + void *data, + size_t size) { ssize_t decoded; off_t offset = 0; memset(frame, '\0', sizeof(*frame)); - frame->size = size; - /* * First, decode the variable-length Address field. */ @@ -227,9 +226,9 @@ int patty_ax25_frame_decode(patty_ax25_frame *frame, void *data, size_t size) { /* * Next, decode the remaining Control Field, optional Protocol Identifier - * field, and payload that may follow. + * field, and Info payload that may follow. */ - if ((decoded = decode_payload(frame, data, offset)) < 0) { + if ((decoded = decode_info(frame, data, offset, size)) < 0) { errno = EIO; goto error_decode; @@ -243,17 +242,17 @@ error_decode: return -1; } -int patty_ax25_frame_payload(patty_ax25_frame *frame, void **data, size_t *len) { - if (frame == NULL || frame->payload == NULL || data == NULL || len == NULL) { +ssize_t patty_ax25_frame_info(patty_ax25_frame *frame, + void **info) { + if (frame == NULL || frame->info == NULL || info == NULL) { errno = EINVAL; goto error_invalid_args; } - *data = frame->payload; - *len = frame->payloadsz; + *info = frame->info; - return 0; + return frame->len; error_invalid_args: return -1;