diff options
-rw-r--r-- | src/libosmo-pfcp/pfcp_endpoint.c | 15 |
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; |