components/proftpd/patches/012.20553228-dtrace-provider.patch
author Tomas Klacko <tomas.klacko@oracle.com>
Mon, 18 May 2015 01:59:30 -0700
branchs11-update
changeset 4303 fe962209b82f
permissions -rw-r--r--
20553228 add proftpd dtrace provider from AK to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4303
fe962209b82f 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
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     2
fe962209b82f 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
fe962209b82f 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
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     5
@@ -31,6 +31,9 @@
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     6
 
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     7
 #include "conf.h"
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     8
 #include "privs.h"
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     9
+#ifdef _SOLARIS_DTRACE
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    10
+#include "ftp_provider_impl.h"
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    11
+#endif
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    12
 
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    13
 #ifdef HAVE_SYS_SENDFILE_H
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    14
 # include <sys/sendfile.h>
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    15
@@ -1784,7 +1787,24 @@
fe962209b82f 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
fe962209b82f 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.
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    18
      */
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    19
+#ifdef _SOLARIS_DTRACE
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    20
+    if (ftp_transfer_start_enabled()) {
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    21
+      ftpproto_t proto;
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    23
+      ftp_transfer_start(&proto);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    24
+    }
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    25
+#endif
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    26
+
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    28
+
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    29
+#ifdef _SOLARIS_DTRACE
fe962209b82f 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) {
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    31
+      ftpproto_t proto;
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    33
+      ftp_transfer_done(&proto);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    34
+    }
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    35
+#endif
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    36
+
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    37
     if (res != len) {
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    38
       int xerrno = EIO;
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    39
       cmd->error_code = errno;
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    40
@@ -2203,7 +2223,24 @@
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    41
     if (XFER_ABORTED)
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    42
       break;
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    43
 
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    44
+#ifdef _SOLARIS_DTRACE
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    45
+    if (ftp_transfer_start_enabled()) {
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    46
+      ftpproto_t proto;
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    48
+      ftp_transfer_start(&proto);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    49
+    }
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    50
+#endif
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    51
+
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    53
+
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    54
+#ifdef _SOLARIS_DTRACE
fe962209b82f 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) {
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    56
+      ftpproto_t proto;
fe962209b82f 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);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    58
+      ftp_transfer_done(&proto);
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    59
+    }
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    60
+#endif
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    61
+
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    62
     if (len == 0)
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    63
       break;
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    64
 
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    65
 
fe962209b82f 20553228 add proftpd dtrace provider from AK to Userland
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    66