From 1f65c3745c1c593a596ada0f98977e3860677056 Mon Sep 17 00:00:00 2001 From: Richard Cochran Date: Sat, 17 Mar 2018 21:31:17 -0700 Subject: [PATCH] msg: Refactor the finding of the TLV suffix on receive. Now that we have a helper routine to find the suffix, use that instead of open coding the same logic. This simplifies the code and consolidates the definition of which message types are allowed to carry TLVs. Signed-off-by: Richard Cochran --- msg.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/msg.c b/msg.c index c004568..1d08981 100644 --- a/msg.c +++ b/msg.c @@ -184,8 +184,9 @@ static void port_id_pre_send(struct PortIdentity *pid) pid->portNumber = htons(pid->portNumber); } -static int suffix_post_recv(struct ptp_message *msg, uint8_t *ptr, int len) +static int suffix_post_recv(struct ptp_message *msg, int len) { + uint8_t *ptr = msg_suffix(msg); struct tlv_extra *extra; int err; @@ -302,7 +303,6 @@ void msg_get(struct ptp_message *m) int msg_post_recv(struct ptp_message *m, int cnt) { int pdulen, type, err; - uint8_t *suffix = NULL; if (cnt < sizeof(struct ptp_header)) return -EBADMSG; @@ -356,7 +356,6 @@ int msg_post_recv(struct ptp_message *m, int cnt) timestamp_post_recv(m, &m->sync.originTimestamp); break; case DELAY_REQ: - suffix = m->delay_req.suffix; break; case PDELAY_REQ: break; @@ -366,34 +365,28 @@ int msg_post_recv(struct ptp_message *m, int cnt) break; case FOLLOW_UP: timestamp_post_recv(m, &m->follow_up.preciseOriginTimestamp); - suffix = m->follow_up.suffix; break; case DELAY_RESP: timestamp_post_recv(m, &m->delay_resp.receiveTimestamp); port_id_post_recv(&m->delay_resp.requestingPortIdentity); - suffix = m->delay_resp.suffix; break; case PDELAY_RESP_FOLLOW_UP: timestamp_post_recv(m, &m->pdelay_resp_fup.responseOriginTimestamp); port_id_post_recv(&m->pdelay_resp_fup.requestingPortIdentity); - suffix = m->pdelay_resp_fup.suffix; break; case ANNOUNCE: clock_gettime(CLOCK_MONOTONIC, &m->ts.host); timestamp_post_recv(m, &m->announce.originTimestamp); announce_post_recv(&m->announce); - suffix = m->announce.suffix; break; case SIGNALING: - suffix = m->signaling.suffix; break; case MANAGEMENT: port_id_post_recv(&m->management.targetPortIdentity); - suffix = m->management.suffix; break; } - err = suffix_post_recv(m, suffix, cnt - pdulen); + err = suffix_post_recv(m, cnt - pdulen); if (err) return err;