aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libosmo-pfcp/pfcp_endpoint.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/libosmo-pfcp/pfcp_endpoint.c b/src/libosmo-pfcp/pfcp_endpoint.c
index 0ee3a9a..68d0a21 100644
--- a/src/libosmo-pfcp/pfcp_endpoint.c
+++ b/src/libosmo-pfcp/pfcp_endpoint.c
@@ -181,18 +181,19 @@ static bool pfcp_queue_retrans(struct osmo_pfcp_queue_entry *qe)
struct osmo_pfcp_msg *m = qe->m;
int rc;
+ /* if no more attempts remaining, drop from queue */
+ if (!qe->n1_remaining)
+ return false;
+
/* re-transmit */
- if (qe->n1_remaining)
- qe->n1_remaining--;
- OSMO_LOG_PFCP_MSG(m, LOGL_INFO, "re-sending (%u attempts remaining)\n", qe->n1_remaining);
+ qe->n1_remaining--;
+ OSMO_LOG_PFCP_MSG(m, LOGL_INFO, "re-sending (%u attempts remaining after this)\n", qe->n1_remaining);
rc = osmo_pfcp_endpoint_tx_data_no_logging(endpoint, m);
- /* If encoding failed, it cannot ever succeed. Drop the queue entry. */
+ /* If encoding failed, it cannot ever succeed. Drop the queue entry. (Error logging already taken care of in
+ * osmo_pfcp_endpoint_tx_data_no_logging().) */
if (rc)
return false;
- /* if no more attempts remaining, drop from queue */
- if (!qe->n1_remaining)
- return false;
/* re-schedule timer, keep in queue */
osmo_timer_schedule(&qe->t1, t1_ms/1000, (t1_ms % 1000) * 1000);
return true;