components/proftpd/dtrace/ftp_provider_impl.h
author Vladimir Marek <Vladimir.Marek@oracle.com>
Thu, 26 Jan 2017 10:53:54 +0100
changeset 7612 b9fb75ff5a92
parent 3932 1b7dd68f6aa9
permissions -rw-r--r--
25454944 problem in UTILITY/BASH
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3932
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     1
/*
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     2
 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     3
 */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     4
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     5
#ifndef _FTP_PROVIDER_IMPL_H
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     6
#define	_FTP_PROVIDER_IMPL_H
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     7
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     8
/*
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     9
 * This structure must match the definition of same in ftp.d.
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    10
 */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    11
typedef struct ftpproto {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    12
	uint32_t ftp_user;	/* user name */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    13
	uint32_t ftp_cmd;	/* FTP command */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    14
	uint32_t ftp_pathname;  /* path of file being operated upon */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    15
	uint32_t ftp_raddr;	/* remote address, as IPv6 address */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    16
	uint32_t ftp_fd;	/* fd for transfer, if any */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    17
	uint32_t ftp_pad;	/* padding for copyin() */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    18
	uint64_t ftp_nbytes;	/* bytes transferred, if any */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    19
} ftpproto_t;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    20
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    21
#define	FTP_TRANSFER_PROTO(proto, fh, len) \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    22
do { \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    23
	bzero((proto), sizeof (struct ftpproto)); \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    24
	(proto)->ftp_user = (uint32_t)session.user; \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    25
	(proto)->ftp_cmd = (uint32_t)session.curr_cmd; \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    26
	(proto)->ftp_pathname = (uint32_t)((fh)->fh_path); \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    27
	(proto)->ftp_raddr = \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    28
	    (int32_t)pr_netaddr_get_ipstr(session.c->remote_addr); \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    29
	(proto)->ftp_fd = (uint32_t)((fh)->fh_fd); \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    30
	(proto)->ftp_nbytes = (len); \
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    31
} while (0)
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    32
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    33
extern int ftp_transfer_start_enabled(void);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    34
extern int ftp_transfer_done_enabled(void);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    35
extern void ftp_transfer_start(struct ftpproto *);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    36
extern void ftp_transfer_done(struct ftpproto *);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    37
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    38
#endif /* _FTP_PROVIDER_IMPL_H */