components/proftpd/patches/012.20553228-dtrace-provider.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Fri, 13 May 2016 17:33:30 -0700
changeset 5983 f10ab5ae99d7
parent 3932 1b7dd68f6aa9
permissions -rw-r--r--
Close of build 99.3.
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
http://bugs.proftpd.org/show_bug.cgi?id=4162
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     2
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     3
--- a/modules/mod_xfer.c	2015-02-03 20:54:22.857151750 -0800
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     4
+++ b/modules/mod_xfer.c	2015-02-03 21:10:36.020000070 -0800
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     5
@@ -31,6 +31,9 @@
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     6
 
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     7
 #include "conf.h"
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     8
 #include "privs.h"
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     9
+#ifdef _SOLARIS_DTRACE
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    10
+#include "ftp_provider_impl.h"
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    11
+#endif
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    12
 
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    13
 #ifdef HAVE_SYS_SENDFILE_H
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    14
 # include <sys/sendfile.h>
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    15
@@ -1784,7 +1787,24 @@
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    16
      * be doing short writes, and we ideally should be more resilient/graceful
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    17
      * in the face of such things.
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    18
      */
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    19
+#ifdef _SOLARIS_DTRACE
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    20
+    if (ftp_transfer_start_enabled()) {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    21
+      ftpproto_t proto;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    22
+      FTP_TRANSFER_PROTO(&proto, stor_fh, 0);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    23
+      ftp_transfer_start(&proto);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    24
+    }
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    25
+#endif
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    26
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    27
     res = pr_fsio_write(stor_fh, lbuf, len);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    28
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    29
+#ifdef _SOLARIS_DTRACE
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    30
+    if (ftp_transfer_done_enabled() && res == len) {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    31
+      ftpproto_t proto;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    32
+      FTP_TRANSFER_PROTO(&proto, stor_fh, res);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    33
+      ftp_transfer_done(&proto);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    34
+    }
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    35
+#endif
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    36
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    37
     if (res != len) {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    38
       int xerrno = EIO;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    39
       cmd->error_code = errno;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    40
@@ -2203,7 +2223,24 @@
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    41
     if (XFER_ABORTED)
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    42
       break;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    43
 
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    44
+#ifdef _SOLARIS_DTRACE
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    45
+    if (ftp_transfer_start_enabled()) {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    46
+      ftpproto_t proto;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    47
+      FTP_TRANSFER_PROTO(&proto, retr_fh, 0);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    48
+      ftp_transfer_start(&proto);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    49
+    }
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    50
+#endif
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    51
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    52
     len = transmit_data(nbytes_sent, &curr_pos, lbuf, bufsz);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    53
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    54
+#ifdef _SOLARIS_DTRACE
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    55
+    if (ftp_transfer_done_enabled() && len > 0) {
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    56
+      ftpproto_t proto;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    57
+      FTP_TRANSFER_PROTO(&proto, retr_fh, len);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    58
+      ftp_transfer_done(&proto);
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    59
+    }
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    60
+#endif
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    61
+
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    62
     if (len == 0)
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    63
       break;
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    64
 
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    65
 
1b7dd68f6aa9 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    66