Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
die_coolen_jungs
our_own_cloud_project
Commits
3159af19
Commit
3159af19
authored
Mar 13, 2015
by
Robin Appelman
Browse files
Wait with getting the timezone from the smb server until we need it
parent
c546f0bf
Changes
8
Hide whitespace changes
Inline
Side-by-side
apps/files_external/3rdparty/composer.lock
View file @
3159af19
...
...
@@ -12,12 +12,12 @@
"source": {
"type": "git",
"url": "https://github.com/icewind1991/SMB.git",
"reference": "e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d"
"reference": "e
f4b128143b7272e97665b84862d77faabf7d3
6d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d",
"reference": "e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d",
"url": "https://api.github.com/repos/icewind1991/SMB/zipball/e
f4b128143b7272e97665b84862d77faabf7d3
6d",
"reference": "e
f4b128143b7272e97665b84862d77faabf7d3
6d",
"shasum": ""
},
"require": {
...
...
@@ -45,7 +45,7 @@
}
],
"description": "php wrapper for smbclient and libsmbclient-php",
"time": "2015-0
2
-1
0
1
6:37:37
"
"time": "2015-0
3
-1
3
1
2:17:14
"
},
{
"name": "icewind/streams",
...
...
apps/files_external/3rdparty/composer/installed.json
View file @
3159af19
...
...
@@ -48,12 +48,12 @@
"source"
:
{
"type"
:
"git"
,
"url"
:
"https://github.com/icewind1991/SMB.git"
,
"reference"
:
"e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d"
"reference"
:
"e
f4b128143b7272e97665b84862d77faabf7d3
6d"
},
"dist"
:
{
"type"
:
"zip"
,
"url"
:
"https://api.github.com/repos/icewind1991/SMB/zipball/e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d"
,
"reference"
:
"e
dedbfbaa3d7124ce8d4b6c119cd225fa34291
6d"
,
"url"
:
"https://api.github.com/repos/icewind1991/SMB/zipball/e
f4b128143b7272e97665b84862d77faabf7d3
6d"
,
"reference"
:
"e
f4b128143b7272e97665b84862d77faabf7d3
6d"
,
"shasum"
:
""
},
"require"
:
{
...
...
@@ -63,7 +63,7 @@
"require-dev"
:
{
"satooshi/php-coveralls"
:
"dev-master"
},
"time"
:
"2015-0
2
-1
0
1
6:37:37
"
,
"time"
:
"2015-0
3
-1
3
1
2:17:14
"
,
"type"
:
"library"
,
"installation-source"
:
"source"
,
"autoload"
:
{
...
...
apps/files_external/3rdparty/icewind/smb/.gitignore
View file @
3159af19
.idea
vendor
composer.lock
apps/files_external/3rdparty/icewind/smb/src/Parser.php
View file @
3159af19
...
...
@@ -17,15 +17,15 @@ use Icewind\SMB\Exception\NotFoundException;
class
Parser
{
/**
* @var
string
* @var
\Icewind\SMB\TimeZoneProvider
*/
protected
$timeZone
;
protected
$timeZone
Provider
;
/**
* @param
string
$timeZone
* @param
\Icewind\SMB\TimeZoneProvider
$timeZone
Provider
*/
public
function
__construct
(
$timeZone
)
{
$this
->
timeZone
=
$timeZone
;
public
function
__construct
(
TimeZoneProvider
$timeZone
Provider
)
{
$this
->
timeZone
Provider
=
$timeZone
Provider
;
}
public
function
checkForError
(
$output
,
$path
)
{
...
...
@@ -120,7 +120,7 @@ class Parser {
list
(,
$name
,
$mode
,
$size
,
$time
)
=
$matches
;
if
(
$name
!==
'.'
and
$name
!==
'..'
)
{
$mode
=
$this
->
parseMode
(
$mode
);
$time
=
strtotime
(
$time
.
' '
.
$this
->
timeZone
);
$time
=
strtotime
(
$time
.
' '
.
$this
->
timeZone
Provider
->
get
()
);
$content
[]
=
new
FileInfo
(
$basePath
.
'/'
.
$name
,
$name
,
$size
,
$time
,
$mode
);
}
}
...
...
apps/files_external/3rdparty/icewind/smb/src/Share.php
View file @
3159af19
...
...
@@ -38,8 +38,6 @@ class Share implements IShare {
*/
protected
$parser
;
private
$serverTimezone
;
/**
* @param Server $server
* @param string $name
...
...
@@ -47,7 +45,7 @@ class Share implements IShare {
public
function
__construct
(
$server
,
$name
)
{
$this
->
server
=
$server
;
$this
->
name
=
$name
;
$this
->
parser
=
new
Parser
(
$this
->
server
->
get
TimeZone
(
));
$this
->
parser
=
new
Parser
(
new
TimeZoneProvider
(
$this
->
server
->
get
Host
()
));
}
/**
...
...
@@ -374,6 +372,9 @@ class Share implements IShare {
* @return string
*/
protected
function
escapePath
(
$path
)
{
if
(
$path
===
'/'
)
{
$path
=
''
;
}
$path
=
str_replace
(
'/'
,
'\\'
,
$path
);
$path
=
str_replace
(
'"'
,
'^"'
,
$path
);
return
'"'
.
$path
.
'"'
;
...
...
apps/files_external/3rdparty/icewind/smb/src/TimeZoneProvider.php
0 → 100644
View file @
3159af19
<?php
/**
* Copyright (c) 2015 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Licensed under the MIT license:
* http://opensource.org/licenses/MIT
*/
namespace
Icewind\SMB
;
class
TimeZoneProvider
{
/**
* @var string
*/
private
$host
;
/**
* @var string
*/
private
$timeZone
;
/**
* @param string $host
*/
function
__construct
(
$host
)
{
$this
->
host
=
$host
;
}
public
function
get
()
{
if
(
!
$this
->
timeZone
)
{
$command
=
'net time zone -S '
.
escapeshellarg
(
$this
->
host
);
$this
->
timeZone
=
exec
(
$command
);
}
return
$this
->
timeZone
;
}
}
apps/files_external/3rdparty/icewind/smb/tests/AbstractShare.php
View file @
3159af19
...
...
@@ -331,7 +331,7 @@ abstract class AbstractShare extends \PHPUnit_Framework_TestCase {
$this
->
share
->
put
(
$this
->
getTextFile
(),
$this
->
root
.
'/foo.txt'
);
$dir
=
$this
->
share
->
dir
(
$this
->
root
);
$mtime
=
$dir
[
0
]
->
getMTime
();
$this
->
assertTrue
(
abs
(
$now
-
$mtime
)
<=
1
,
'Modified time differs by '
.
abs
(
$now
-
$mtime
)
.
' seconds'
);
$this
->
assertTrue
(
abs
(
$now
-
$mtime
)
<=
2
,
'Modified time differs by '
.
abs
(
$now
-
$mtime
)
.
' seconds'
);
$this
->
share
->
del
(
$this
->
root
.
'/foo.txt'
);
}
...
...
@@ -531,4 +531,9 @@ abstract class AbstractShare extends \PHPUnit_Framework_TestCase {
$this
->
assertCount
(
1
,
$content
);
$this
->
assertEquals
(
$name
,
$content
[
0
]
->
getName
());
}
public
function
testStatRoot
()
{
$info
=
$this
->
share
->
stat
(
'/'
);
$this
->
assertInstanceOf
(
'\Icewind\SMB\IFileInfo'
,
$info
);
}
}
apps/files_external/3rdparty/icewind/smb/tests/Parser.php
View file @
3159af19
...
...
@@ -24,11 +24,25 @@ class Parser extends \PHPUnit_Framework_TestCase {
);
}
/**
* @param string $timeZone
* @return \Icewind\SMB\TimeZoneProvider
*/
private
function
getTimeZoneProvider
(
$timeZone
)
{
$mock
=
$this
->
getMockBuilder
(
'\Icewind\SMB\TimeZoneProvider'
)
->
disableOriginalConstructor
()
->
getMock
();
$mock
->
expects
(
$this
->
any
())
->
method
(
'get'
)
->
will
(
$this
->
returnValue
(
$timeZone
));
return
$mock
;
}
/**
* @dataProvider modeProvider
*/
public
function
testParseMode
(
$string
,
$mode
)
{
$parser
=
new
\
Icewind\SMB\Parser
(
'UTC'
);
$parser
=
new
\
Icewind\SMB\Parser
(
$this
->
getTimeZoneProvider
(
'UTC'
)
)
;
$this
->
assertEquals
(
$mode
,
$parser
->
parseMode
(
$string
),
'Failed parsing '
.
$string
);
}
...
...
@@ -48,7 +62,8 @@ class Parser extends \PHPUnit_Framework_TestCase {
'mtime'
=>
strtotime
(
'12 Oct 2013 19:05:58 CEST'
),
'mode'
=>
FileInfo
::
MODE_NORMAL
,
'size'
=>
29634
))
)
)
);
}
...
...
@@ -56,7 +71,7 @@ class Parser extends \PHPUnit_Framework_TestCase {
* @dataProvider statProvider
*/
public
function
testStat
(
$output
,
$stat
)
{
$parser
=
new
\
Icewind\SMB\Parser
(
'UTC'
);
$parser
=
new
\
Icewind\SMB\Parser
(
$this
->
getTimeZoneProvider
(
'UTC'
)
)
;
$this
->
assertEquals
(
$stat
,
$parser
->
parseStat
(
$output
));
}
...
...
@@ -71,7 +86,8 @@ class Parser extends \PHPUnit_Framework_TestCase {
' 62536 blocks of size 8388608. 57113 blocks available'
),
array
(
new
FileInfo
(
'/c.pdf'
,
'c.pdf'
,
29634
,
strtotime
(
'12 Oct 2013 19:05:58 CEST'
),
FileInfo
::
MODE_NORMAL
)
new
FileInfo
(
'/c.pdf'
,
'c.pdf'
,
29634
,
strtotime
(
'12 Oct 2013 19:05:58 CEST'
),
FileInfo
::
MODE_NORMAL
)
)
)
);
...
...
@@ -81,7 +97,7 @@ class Parser extends \PHPUnit_Framework_TestCase {
* @dataProvider dirProvider
*/
public
function
testDir
(
$output
,
$dir
)
{
$parser
=
new
\
Icewind\SMB\Parser
(
'CEST'
);
$parser
=
new
\
Icewind\SMB\Parser
(
$this
->
getTimeZoneProvider
(
'CEST'
)
)
;
$this
->
assertEquals
(
$dir
,
$parser
->
parseDir
(
$output
,
''
));
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment