author | Tomas Klacko <tomas.klacko@oracle.com> |
Wed, 11 Mar 2015 03:50:20 -0700 | |
changeset 3932 | 1b7dd68f6aa9 |
parent 3891 | components/proftpd/patches/proftpd-slow_ls.patch@d2dffb0b5ea6 |
permissions | -rw-r--r-- |
3891
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
1 |
The fix was developed in-house and submitted upstream. The upstream bug |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
2 |
is: |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
3 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
4 |
http://bugs.proftpd.org/show_bug.cgi?id=4157 |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
5 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
6 |
diff --git a/modules/mod_core.c b/modules/mod_core.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
7 |
--- a/modules/mod_core.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
8 |
+++ b/modules/mod_core.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
9 |
@@ -40,6 +40,7 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
10 |
/* From src/main.c */ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
11 |
extern unsigned long max_connects; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
12 |
extern unsigned int max_connect_interval; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
13 |
+extern unsigned char tracing_enabled; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
14 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
15 |
/* From modules/mod_site.c */ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
16 |
extern modret_t *site_dispatch(cmd_rec*); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
17 |
@@ -1381,6 +1382,8 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
18 |
int per_session = FALSE; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
19 |
unsigned int idx = 1; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
20 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
21 |
+ tracing_enabled = TRUE; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
22 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
23 |
if (cmd->argc-1 < 1) |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
24 |
CONF_ERROR(cmd, "wrong number of parameters"); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
25 |
CHECK_CONF(cmd, CONF_ROOT); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
26 |
diff --git a/modules/mod_ls.c b/modules/mod_ls.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
27 |
--- a/modules/mod_ls.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
28 |
+++ b/modules/mod_ls.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
29 |
@@ -307,10 +307,12 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
30 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
31 |
static int sendline(int flags, char *fmt, ...) { |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
32 |
va_list msg; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
33 |
- char buf[PR_TUNABLE_BUFFER_SIZE+1] = {'\0'}; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
34 |
+ char buf[PR_TUNABLE_BUFFER_SIZE+1]; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
35 |
int res = 0; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
36 |
size_t buflen, listbuflen; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
37 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
38 |
+ (void) memset(buf, '\0', sizeof(buf)); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
39 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
40 |
if (listbuf == NULL) { |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
41 |
listbufsz = pr_config_get_server_xfer_bufsz(PR_NETIO_IO_WR); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
42 |
listbuf = listbuf_ptr = pcalloc(session.pool, listbufsz); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
43 |
diff --git a/src/fsio.c b/src/fsio.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
44 |
--- a/src/fsio.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
45 |
+++ b/src/fsio.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
46 |
@@ -556,10 +556,12 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
47 |
static int cache_stat(pr_fs_t *fs, const char *path, struct stat *sbuf, |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
48 |
unsigned int op) { |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
49 |
int res = -1; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
50 |
- char pathbuf[PR_TUNABLE_PATH_MAX + 1] = {'\0'}; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
51 |
+ char pathbuf[PR_TUNABLE_PATH_MAX + 1]; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
52 |
int (*mystat)(pr_fs_t *, const char *, struct stat *) = NULL; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
53 |
size_t pathlen; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
54 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
55 |
+ (void) memset(pathbuf, '\0', sizeof(pathbuf)); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
56 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
57 |
/* Sanity checks */ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
58 |
if (fs == NULL) { |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
59 |
errno = EINVAL; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
60 |
@@ -641,8 +643,8 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
61 |
* during the hit. |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
62 |
*/ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
63 |
static pr_fs_t *lookup_dir_fs(const char *path, int op) { |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
64 |
- char buf[PR_TUNABLE_PATH_MAX + 1] = {'\0'}; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
65 |
- char tmp_path[PR_TUNABLE_PATH_MAX + 1] = {'\0'}; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
66 |
+ char buf[PR_TUNABLE_PATH_MAX + 1]; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
67 |
+ char tmp_path[PR_TUNABLE_PATH_MAX + 1]; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
68 |
pr_fs_t *fs = NULL; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
69 |
int exact = FALSE; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
70 |
size_t tmp_pathlen = 0; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
71 |
@@ -651,6 +653,9 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
72 |
pr_fs_match_t *fsm = NULL; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
73 |
#endif /* PR_FS_MATCH */ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
74 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
75 |
+ (void) memset(buf, '\0', sizeof(buf)); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
76 |
+ (void) memset(tmp_path, '\0', sizeof(tmp_path)); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
77 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
78 |
sstrncpy(buf, path, sizeof(buf)); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
79 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
80 |
/* Check if the given path is an absolute path. Since there may be |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
81 |
diff --git a/src/trace.c b/src/trace.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
82 |
--- a/src/trace.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
83 |
+++ b/src/trace.c |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
84 |
@@ -32,6 +32,8 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
85 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
86 |
#ifdef PR_USE_TRACE |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
87 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
88 |
+unsigned char tracing_enabled = FALSE; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
89 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
90 |
static int trace_logfd = -1; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
91 |
static unsigned long trace_opts = PR_TRACE_OPT_DEFAULT; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
92 |
static pool *trace_pool = NULL; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
93 |
@@ -473,6 +475,10 @@ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
94 |
int res; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
95 |
va_list msg; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
96 |
|
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
97 |
+ /* Optimization: do not run tracing code unless explicitly enabled. */ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
98 |
+ if (tracing_enabled == FALSE) |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
99 |
+ return 0; |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
100 |
+ |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
101 |
va_start(msg, fmt); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
102 |
res = pr_trace_vmsg(channel, level, fmt, msg); |
d2dffb0b5ea6
19693019 proftpd LIST/NLST could take much more time than in.ftpd.
Ben Chang <Benjamin.Chang@Oracle.COM>
parents:
diff
changeset
|
103 |
va_end(msg); |