tcpaccept/tcpconnect: use PID not TID
diff --git a/tools/tcpconnect.py b/tools/tcpconnect.py
index e230f65..e31ff77 100755
--- a/tools/tcpconnect.py
+++ b/tools/tcpconnect.py
@@ -89,14 +89,16 @@
int trace_connect_entry(struct pt_regs *ctx, struct sock *sk)
{
- u32 pid = bpf_get_current_pid_tgid();
+ u64 pid_tgid = bpf_get_current_pid_tgid();
+ u32 pid = pid_tgid >> 32;
+ u32 tid = pid_tgid;
FILTER_PID
u32 uid = bpf_get_current_uid_gid();
FILTER_UID
// stash the sock ptr for lookup on return
- currsock.update(&pid, &sk);
+ currsock.update(&tid, &sk);
return 0;
};
@@ -104,10 +106,12 @@
static int trace_connect_return(struct pt_regs *ctx, short ipver)
{
int ret = PT_REGS_RC(ctx);
- u32 pid = bpf_get_current_pid_tgid();
+ u64 pid_tgid = bpf_get_current_pid_tgid();
+ u32 pid = pid_tgid >> 32;
+ u32 tid = pid_tgid;
struct sock **skpp;
- skpp = currsock.lookup(&pid);
+ skpp = currsock.lookup(&tid);
if (skpp == 0) {
return 0; // missed entry
}
@@ -115,7 +119,7 @@
if (ret != 0) {
// failed to send SYNC packet, may not have populated
// socket __sk_common.{skc_rcv_saddr, ...}
- currsock.delete(&pid);
+ currsock.delete(&tid);
return 0;
}
@@ -148,7 +152,7 @@
ipv6_events.perf_submit(ctx, &data6, sizeof(data6));
}
- currsock.delete(&pid);
+ currsock.delete(&tid);
return 0;
}