File tree Expand file tree Collapse file tree 5 files changed +34
-10
lines changed
pftpd-pojo-lib/src/main/java/org/primftpd/pojo
primitiveFTPd/src/org/primftpd/filesystem Expand file tree Collapse file tree 5 files changed +34
-10
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,8 @@ public class LsOutputBean {
33
33
private final String name ;
34
34
private final String linkTarget ;
35
35
36
+ private final String originalLine ;
37
+
36
38
public LsOutputBean (String name ) {
37
39
this .exists = false ;
38
40
this .name = name ;
@@ -56,6 +58,7 @@ public LsOutputBean(String name) {
56
58
this .user = null ;
57
59
this .group = null ;
58
60
this .linkTarget = null ;
61
+ this .originalLine = null ;
59
62
}
60
63
61
64
public LsOutputBean (
@@ -78,7 +81,8 @@ public LsOutputBean(
78
81
String user ,
79
82
String group ,
80
83
String name ,
81
- String linkTarget ) {
84
+ String linkTarget ,
85
+ String originalLine ) {
82
86
this .exists = true ;
83
87
this .isFile = isFile ;
84
88
this .isDir = isDir ;
@@ -100,6 +104,7 @@ public LsOutputBean(
100
104
this .group = group ;
101
105
this .name = name ;
102
106
this .linkTarget = linkTarget ;
107
+ this .originalLine = originalLine ;
103
108
}
104
109
105
110
public boolean isExists () {
@@ -185,4 +190,8 @@ public String getName() {
185
190
public String getLinkTarget () {
186
191
return linkTarget ;
187
192
}
193
+
194
+ public String getOriginalLine () {
195
+ return originalLine ;
196
+ }
188
197
}
Original file line number Diff line number Diff line change @@ -32,6 +32,8 @@ class LsOutputBuilder {
32
32
private String name ;
33
33
private String linkTarget ;
34
34
35
+ private String originalLine ;
36
+
35
37
public boolean isFile () {
36
38
return isFile ;
37
39
}
@@ -192,6 +194,14 @@ public void setLinkTarget(String linkTarget) {
192
194
this .linkTarget = linkTarget ;
193
195
}
194
196
197
+ public String getOriginalLine () {
198
+ return originalLine ;
199
+ }
200
+
201
+ public void setOriginalLine (String originalLine ) {
202
+ this .originalLine = originalLine ;
203
+ }
204
+
195
205
LsOutputBean build () {
196
206
return new LsOutputBean (
197
207
isFile ,
@@ -213,7 +223,8 @@ LsOutputBean build() {
213
223
user ,
214
224
group ,
215
225
name ,
216
- linkTarget
226
+ linkTarget ,
227
+ originalLine
217
228
);
218
229
}
219
230
}
Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ public LsOutputBean parseLine(String line) {
56
56
}
57
57
58
58
LsOutputBuilder builder = new LsOutputBuilder ();
59
+ builder .setOriginalLine (line );
59
60
60
61
// type
61
62
if (firstPart .charAt (0 ) == '-' ) {
Original file line number Diff line number Diff line change @@ -76,7 +76,14 @@ public boolean setLastModified(long time) {
76
76
logger .trace ("[{}] setLastModified({})" , name , time );
77
77
78
78
String dateStr = Utils .touchDate (time );
79
- return runCommand ("touch -t " + dateStr + " " + escapePath (absPath ));
79
+ return runCommand ("touch -m -t " + dateStr + " " + escapePath (absPath ));
80
+ }
81
+
82
+ @ Override
83
+ public long getLastModified () {
84
+ logger .trace ("[{}] getLastModified()" , name );
85
+ logger .trace (" original ls-output line: {}" , bean .getOriginalLine ());
86
+ return super .getLastModified ();
80
87
}
81
88
82
89
public boolean mkdir () {
Original file line number Diff line number Diff line change 4
4
import java .text .SimpleDateFormat ;
5
5
import java .util .ArrayList ;
6
6
import java .util .List ;
7
- import java .util .TimeZone ;
7
+ import java .util .SimpleTimeZone ;
8
8
9
9
class Utils {
10
10
@@ -68,13 +68,9 @@ static String parent(String path) {
68
68
69
69
private static final DateFormat TOUCH_DATE_FORMAT = new SimpleDateFormat ("yyMMddHHmm.ss" );
70
70
static {
71
- TOUCH_DATE_FORMAT .setTimeZone (TimeZone . getTimeZone ( "UTC " ));
71
+ TOUCH_DATE_FORMAT .setTimeZone (new SimpleTimeZone ( 0 , "No-TZ " ));
72
72
}
73
73
static String touchDate (long time ) {
74
- return TOUCH_DATE_FORMAT .format (sshTimeToFileTime (time ));
75
- }
76
-
77
- static long sshTimeToFileTime (long time ) {
78
- return time * 1000 ;
74
+ return TOUCH_DATE_FORMAT .format (time );
79
75
}
80
76
}
You can’t perform that action at this time.
0 commit comments