author | Tomas Kuthan <tomas.kuthan@oracle.com> |
Wed, 15 Jun 2016 02:07:50 -0700 | |
changeset 6189 | a95f9f39fc53 |
parent 3820 | 1063fcafa7a5 |
permissions | -rw-r--r-- |
3820
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
1 |
/* |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
3 |
*/ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
4 |
|
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
5 |
#pragma D depends_on library net.d |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
6 |
#pragma D depends_on library io.d |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
7 |
#pragma D depends_on module lofs |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
8 |
|
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
9 |
typedef struct sftpinfo { |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
10 |
string sfi_user; /* user name */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
11 |
string sfi_operation; /* SFTP Operation */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
12 |
ssize_t sfi_nbytes; /* bytes transferred, if any */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
13 |
string sfi_pathname; /* pathname of transfer */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
14 |
string sfi_fsresource; /* Dataset(ZFS) or resource name */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
15 |
} sftpinfo_t; |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
16 |
|
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
17 |
/* |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
18 |
* This structure must match the definition of same in sftp_provider_impl.h. |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
19 |
*/ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
20 |
typedef struct sftpproto { |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
21 |
int64_t sftp_nbytes; /* bytes written or read */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
22 |
uint64_t sftp_user; /* user name */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
23 |
uint64_t sftp_operation; /* SFTP operation */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
24 |
uint64_t sftp_raddr; /* remote address */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
25 |
uint64_t sftp_pathname; /* path with file name */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
26 |
int32_t sftp_fd; /* fd for transfer, if any */ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
27 |
} sftpproto_t; |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
28 |
|
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
29 |
#pragma D binding "1.6.1" translator |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
30 |
translator conninfo_t <sftpproto_t *s> { |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
31 |
ci_protocol = "tcp"; |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
32 |
ci_remote = copyinstr((uintptr_t) |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
33 |
*(uint64_t *)copyin((uintptr_t)&s->sftp_raddr, sizeof (uint64_t))); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
34 |
ci_local = "<unknown>"; |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
35 |
}; |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
36 |
|
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
37 |
#pragma D binding "1.6.1" translator |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
38 |
translator sftpinfo_t <sftpproto_t *s> { |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
39 |
sfi_user = copyinstr((uintptr_t) |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
40 |
*(uint64_t *)copyin((uintptr_t)&s->sftp_user, sizeof (uint64_t))); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
41 |
sfi_operation = copyinstr((uintptr_t) |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
42 |
*(uint64_t *)copyin((uintptr_t)&s->sftp_operation, |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
43 |
sizeof (uint64_t))); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
44 |
sfi_nbytes = |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
45 |
*(uint64_t *)copyin((uintptr_t)&s->sftp_nbytes, sizeof (uint64_t)); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
46 |
sfi_fsresource = stringof(fds[*(int32_t *)copyin((uintptr_t)&s->sftp_fd, |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
47 |
sizeof (int32_t))].fi_fs) == "lofs" ? stringof(((struct loinfo *) |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
48 |
curthread->t_procp->p_user.u_finfo.fi_list[*(int32_t *)copyin( |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
49 |
(uintptr_t)&s->sftp_fd, sizeof (int32_t))].uf_file->f_vnode-> |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
50 |
v_vfsp->vfs_data)->li_realvfs->vfs_resource->rs_string) : |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
51 |
stringof(curthread->t_procp->p_user.u_finfo.fi_list[ |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
52 |
*(int32_t *)copyin((uintptr_t)&s->sftp_fd, sizeof (int32_t))]. |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
53 |
uf_file->f_vnode->v_vfsp->vfs_resource->rs_string); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
54 |
sfi_pathname = copyinstr((uintptr_t)*(uint64_t *)copyin( |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
55 |
(uintptr_t)&s->sftp_pathname, sizeof (uint64_t))); |
1063fcafa7a5
20397201 /usr/lib/dtrace/sftp.d should be a mediated link in OPENSSH and link to sftp64.d
kavya.racharla@oracle.com <kavya.racharla@oracle.com>
parents:
diff
changeset
|
56 |
}; |