21
21
#include "../process/process.h"
22
22
#include "../common/connection.h"
23
23
24
- struct trace_point_enter_connect {
25
- __u64 pad_0 ;
26
- int __syscall_nr ;
27
- __u32 pad_1 ;
28
- int fd ;
29
- struct sockaddr * uservaddr ;
30
- };
31
- struct trace_point_exit_connect {
32
- __u64 pad_0 ;
33
- __u32 __syscall_nr ;
34
- __u32 pad_1 ;
35
- __u64 ret ;
36
- };
37
-
38
- struct trace_point_enter_accept {
39
- __u64 pad_0 ;
40
- int __syscall_nr ;
41
- __u32 pad_1 ;
42
- int fd ;
43
- struct sockaddr * upeer_sockaddr ;
44
- };
45
- struct trace_point_exit_accept {
46
- __u64 pad_0 ;
47
- __u32 __syscall_nr ;
48
- __u32 pad_1 ;
49
- long ret ;
50
- };
51
-
52
24
static __inline void process_connect (void * ctx , __u64 id , struct connect_args_t * connect_args , long ret ) {
53
25
bool success = true;
54
26
if (ret < 0 && ret != - EINPROGRESS ) {
@@ -71,22 +43,22 @@ static __inline void process_accept(void *ctx, __u64 id, struct accept_args_t *a
71
43
}
72
44
73
45
SEC ("tracepoint/syscalls/sys_enter_connect" )
74
- int tracepoint_enter_connect (struct trace_point_enter_connect * ctx ) {
46
+ int tracepoint_enter_connect (struct syscall_trace_enter * ctx ) {
75
47
uint64_t id = bpf_get_current_pid_tgid ();
76
48
if (tgid_should_trace (id >> 32 ) == false) {
77
49
return 0 ;
78
50
}
79
51
80
52
struct connect_args_t connect_args = {};
81
- connect_args .fd = ctx -> fd ;
82
- connect_args .addr = ctx -> uservaddr ;
53
+ connect_args .fd = ( __u32 ) ctx -> args [ 0 ] ;
54
+ connect_args .addr = ( struct sockaddr * ) ctx -> args [ 1 ] ;
83
55
connect_args .start_nacs = bpf_ktime_get_ns ();
84
56
bpf_map_update_elem (& conecting_args , & id , & connect_args , 0 );
85
57
return 0 ;
86
58
}
87
59
88
60
SEC ("tracepoint/syscalls/sys_exit_connect" )
89
- int tracepoint_exit_connect (struct trace_point_exit_connect * ctx ) {
61
+ int tracepoint_exit_connect (struct syscall_trace_exit * ctx ) {
90
62
__u64 id = bpf_get_current_pid_tgid ();
91
63
struct connect_args_t * connect_args ;
92
64
@@ -110,21 +82,21 @@ int tcp_connect(struct pt_regs *ctx) {
110
82
}
111
83
112
84
SEC ("tracepoint/syscalls/sys_enter_accept" )
113
- int tracepoint_enter_accept (struct trace_point_enter_accept * ctx ) {
85
+ int tracepoint_enter_accept (struct syscall_trace_enter * ctx ) {
114
86
uint64_t id = bpf_get_current_pid_tgid ();
115
87
if (tgid_should_trace (id >> 32 ) == false) {
116
88
return 0 ;
117
89
}
118
90
119
91
struct accept_args_t accept_args = {};
120
- accept_args .addr = ctx -> upeer_sockaddr ;
92
+ accept_args .addr = ( struct sockaddr * ) ctx -> args [ 1 ] ;
121
93
accept_args .start_nacs = bpf_ktime_get_ns ();
122
94
bpf_map_update_elem (& accepting_args , & id , & accept_args , 0 );
123
95
return 0 ;
124
96
}
125
97
126
98
SEC ("tracepoint/syscalls/sys_exit_accept" )
127
- int tracepoint_exit_accept (struct trace_point_exit_accept * ctx ) {
99
+ int tracepoint_exit_accept (struct syscall_trace_exit * ctx ) {
128
100
__u64 id = bpf_get_current_pid_tgid ();
129
101
struct accept_args_t * accept_args = bpf_map_lookup_elem (& accepting_args , & id );
130
102
if (accept_args ) {
0 commit comments