diff --git a/src/etcp_api.c b/src/etcp_api.c index 405ace8..9833232 100644 --- a/src/etcp_api.c +++ b/src/etcp_api.c @@ -101,40 +101,31 @@ int etcp_unbind(struct UTUN_INSTANCE* inst, uint8_t id) { } int etcp_send(struct ETCP_CONN* conn, struct ll_entry* entry) { + DEBUG_TRACE(DEBUG_CATEGORY_ETCP_API, "etcp_send enter conn=%p entry=%p", conn, entry); if (!conn) { DEBUG_ERROR(DEBUG_CATEGORY_ETCP_API, "etcp_send: NULL connection"); return -1; } - if (!entry) { DEBUG_ERROR(DEBUG_CATEGORY_ETCP_API, "etcp_send: NULL entry"); return -1; } - if (!conn->normalizer) { DEBUG_ERROR(DEBUG_CATEGORY_ETCP_API, "etcp_send: Connection has no normalizer"); return -1; } - struct PKTNORM* pn = conn->normalizer; - - if (!pn->input) { - DEBUG_ERROR(DEBUG_CATEGORY_ETCP_API, "etcp_send: Normalizer has no input queue"); + if (!pn || !pn->input) { + DEBUG_ERROR(DEBUG_CATEGORY_ETCP_API, "etcp_send: pn=%p or input null", pn); return -1; } - - // Помещаем entry в очередь input normalizer - // queue_data_put забирает ownership entry -// DEBUG_TRACE(DEBUG_CATEGORY_NORMALIZER, "Before put to input"); int result = queue_data_put(pn->input, entry); - DEBUG_TRACE(DEBUG_CATEGORY_NORMALIZER, "After put to input"); - + DEBUG_TRACE(DEBUG_CATEGORY_NORMALIZER, "etcp_send after put result=%d", result); if (result != 0) { - DEBUG_WARN(DEBUG_CATEGORY_ETCP_API, "etcp_send: queue_data_put failed (queue full?)"); + DEBUG_WARN(DEBUG_CATEGORY_ETCP_API, "etcp_send: queue_data_put failed"); return -1; } - - DEBUG_DEBUG(DEBUG_CATEGORY_ETCP_API, "etcp_send: Packet queued for sending to [%s]", conn->log_name); + DEBUG_DEBUG(DEBUG_CATEGORY_ETCP_API, "etcp_send: queued to [%s]", conn->log_name); return 0; }