From a5d8b95d8b4b11b29144b7160259e5fe34f02b8b Mon Sep 17 00:00:00 2001 From: Benjamin Kilimnik Date: Tue, 23 Jan 2024 23:08:50 +0000 Subject: [PATCH] update condition to infer connection info to find local_addr if accept/connect not traced Signed-off-by: Benjamin Kilimnik --- .../source_connectors/socket_tracer/conn_tracker.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/stirling/source_connectors/socket_tracer/conn_tracker.cc b/src/stirling/source_connectors/socket_tracer/conn_tracker.cc index 2abdf4ec840..f763c47d8b5 100644 --- a/src/stirling/source_connectors/socket_tracer/conn_tracker.cc +++ b/src/stirling/source_connectors/socket_tracer/conn_tracker.cc @@ -795,9 +795,11 @@ void ConnTracker::IterationPreTick( return; } - // If remote_addr is missing, it means the connect/accept was not traced. - // Attempt to infer the connection information, to populate remote_addr. - if (open_info_.remote_addr.family == SockAddrFamily::kUnspecified && socket_info_mgr != nullptr) { + // If remote_addr or local_addr is missing, it means the connect/accept was not traced. + // Attempt to infer the connection information, to populate remote_addr and local_addr. + if ((open_info_.remote_addr.family == SockAddrFamily::kUnspecified || + open_info_.local_addr.family == SockAddrFamily::kUnspecified) && + socket_info_mgr != nullptr) { InferConnInfo(proc_parser, socket_info_mgr); // TODO(oazizi): If connection resolves to SockAddr type "Other",