Commit Graph

357 Commits

Author SHA1 Message Date
Julien Laffaye
9c3c2fd740
Add CodeQL and golangci-lint badges 2022-09-07 18:02:26 -04:00
Julien Laffaye
be12fe0263
Create codeql-analysis.yml 2022-09-07 17:48:18 -04:00
Øyvind Heddeland Instefjord
99be0634ab
Add forceListHidden dial option to force the use of 'LIST -a' command (#271)
This is useful for servers that do not offer up
hidden folders/files by default when using LIST/MLSD
commands.
Setting forceListHidden to true will force the use of
the 'LIST -a' command even when MLST support has
been detected.
2022-09-04 14:43:06 -04:00
Julien Laffaye
b85cf1edcc
Add default timeout to instantiate connection 2022-08-28 21:58:25 -04:00
Thomas Hallgren
0aeb8660a7
Add MLST command in the form of a Get method (#269)
* Add MLST command in the form of a Get method

The `LIST` and `MLSD` commands are inefficient when the objective
is to retrieve one single `Entry` for a known path, because the only way
to get such an entry is to list the parent directory using a data
connection. The `MLST` fixes this by allowing one single `Entry` to be
returned using the control connection.

The name `Get` was chosen because it is often used in conjunction with
`List` as a mean to get one single entry.

Signed-off-by: Thomas Hallgren <thomas@datawire.io>

* Changes in response to code review:

- Rename `Get` to `GetEntry` (because it returns an `*Entry`)
- Add test-case for multiline response on the control connection
- Fix issues with parsing the multiline response.

Signed-off-by: Thomas Hallgren <thomas@datawire.io>

* Add sample output from MLST to GetEntry comment.

Signed-off-by: Thomas Hallgren <thomas@datawire.io>

* Changes in response to code review:

- Remove unused `time.Time` argument
- Add struct labels to make `govet` happy

Signed-off-by: Thomas Hallgren <thomas@datawire.io>

* Remove time arg when calling parseNextRFC3659ListLine

Signed-off-by: Thomas Hallgren <thomas@datawire.io>

Signed-off-by: Thomas Hallgren <thomas@datawire.io>
2022-08-21 17:25:29 -04:00
Julien Laffaye
4d1d644cf1
Mark Connect() and DialWithTimeout() as deprecated 2022-08-18 12:44:22 -04:00
Julien Laffaye
5a2fd50da8
ioutil is deprecated, use io package instead 2022-08-18 11:18:54 -04:00
Julien Laffaye
9cda78131d
Fix transferring spelling. 2022-08-18 10:17:32 -04:00
Julien Laffaye
39592b91e4
Assign type to TransferType constants 2022-08-17 19:43:45 -04:00
Julien Laffaye
fa83b53d0e
Use tls.Dialer to be able to use DialContext 2022-08-17 19:35:55 -04:00
Julien Laffaye
45482d097e
Use assert package to simplify tests 2022-08-17 19:24:40 -04:00
Julien Laffaye
560423fa8a
DialWithNetConn is a special case of DialWithDialFunc 2022-08-17 18:41:24 -04:00
Julien Laffaye
11536801d1
Merge pull request #264 from jlaffaye/dependabot/go_modules/github.com/stretchr/testify-1.8.0
Bump github.com/stretchr/testify from 1.7.2 to 1.8.0
2022-06-30 12:50:35 -04:00
dependabot[bot]
6c74f63d3c
Bump github.com/stretchr/testify from 1.7.2 to 1.8.0
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.2...v1.8.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-29 15:39:38 +00:00
Julien Laffaye
60a941566c
Merge pull request #259 from jlaffaye/dependabot/go_modules/github.com/stretchr/testify-1.7.2
Bump github.com/stretchr/testify from 1.6.1 to 1.7.2
2022-06-12 11:18:34 -04:00
dependabot[bot]
712e6cb8bc
Bump github.com/stretchr/testify from 1.6.1 to 1.7.2
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.1 to 1.7.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 16:37:09 +00:00
Julien Laffaye
6696131620
Create dependabot.yml 2022-06-10 12:36:43 -04:00
Julien Laffaye
dfa1e758f3
Merge pull request #257 from tauu/cmd-type
support for the TYPE command
2022-05-23 20:19:17 -04:00
Georg Wechslberger
b29e1f6c62 refactor: rename TransferTypeImage to TransferTypeBinary 2022-05-23 17:21:05 +02:00
Georg Wechslberger
190f39e8b2 feat: support TYPE command 2022-05-23 12:36:17 +02:00
Julien Laffaye
d2c44e311e Restore previous behavior for List
Fixes #251
2022-03-10 15:20:11 -05:00
Julien Laffaye
813c8a8384 Add test for DialWithDialer 2022-03-08 20:25:35 -05:00
Julien Laffaye
a8377c07ac Add test for DialWithDialFunc 2022-03-08 19:06:48 -05:00
Julien Laffaye
48e53fcac1 Add tests for EntryType 2022-03-08 18:57:09 -05:00
Julien Laffaye
30e028f001 Check errors in tests/mocks 2022-03-08 18:35:30 -05:00
Julien Laffaye
a81b090061 Use multierror in more places
While I'm here, do not allocate multierror.Error, multierror.Append will
do it when needed.
2022-03-01 13:14:25 -05:00
Julien Laffaye
212daf295f Use tls.DialWithDialer which does the handshake
tls.DialWithDialer also better handle special error cases
2022-02-28 20:43:42 -05:00
Julien Laffaye
fed5bc26b7 Return all errors from Stor functions
To not hide some errors
2022-02-28 20:13:24 -05:00
Julien Laffaye
02685330ee
Merge pull request #246 from morrowc/master
Documentation update.
2022-02-01 17:25:55 -05:00
Chris Morrow
ee119b0742
Keep the comment markers consistent. 2022-01-10 02:14:34 +00:00
Chris Morrow
f82be3d90b
Documentation update.
I believe you say: "Step" but mean "Next" since there is no Step()
function.
2022-01-10 01:57:22 +00:00
Julien Laffaye
1182040339
Merge pull request #233 from rclone/pr-modtime
Add SetTime command, related options and state getters
2021-11-17 16:36:18 -05:00
Julien Laffaye
0112733660
Merge pull request #237 from rclone/pr-timeout
Nudge control connection deadline before reading the data closing status (Try 2)
2021-11-17 16:32:13 -05:00
Ivan Andreev
90b220bedb Add time commands, related options, state getters and unit tests 2021-10-30 00:10:15 +03:00
Julien Laffaye
b1140299f4 Add cache to unit tests workflow 2021-10-28 23:27:51 -04:00
Julien Laffaye
88af36c520 Switch to golangci-lint, its faster 2021-10-28 23:16:01 -04:00
Julien Laffaye
7a2bce30c7 Use github actions instead of travis-ci 2021-10-28 22:39:57 -04:00
Julien Laffaye
6a13e1e753
Merge pull request #234 from rclone/pr-debuglist
Debug directory listings
2021-10-28 20:31:32 -04:00
Ivan Andreev
ae8a71d543 Debug directory listings 2021-10-03 18:40:19 +03:00
Ivan Andreev
53b6bfa4cd Nudge control connection deadline before reading the data closing status 2021-09-11 16:36:35 +03:00
Julien Laffaye
5d41901190 Fix issues reported by goimports 2021-03-06 19:44:19 -05:00
Julien Laffaye
64cacdb711 Fix issues reported by shadow 2021-03-06 19:43:28 -05:00
Julien Laffaye
05cd33e2ad Fix issues reported by errcheck 2021-03-06 19:36:26 -05:00
Julien Laffaye
52feea7744 Fix spelling error reported by goreportcard.com 2021-03-05 10:58:28 -05:00
Julien Laffaye
23a84a6d0e Replace godoc badge with pkg.go.dev 2021-03-05 10:52:22 -05:00
Julien Laffaye
c3c8c7ac65
Merge pull request #219 from ivandeex/master
trim trailing whitespace from the list commands
2021-03-02 14:57:56 -05:00
Julien Laffaye
cc3a8b417c
Merge pull request #221 from ncw/fix-tls-zero-length
Fix STOR of zero length files to ProFTPd with TLS
2021-03-02 14:53:12 -05:00
Nick Craig-Wood
a4e9650823 Fix STOR of zero length files to ProFTPd with TLS
Before this change, uploading a zero length file via TLS meant that
the tls.Handshake function was never called.

ProFTPd quite properly refuses to accept an empty TCP connection with
no TLS handshake as a zero length upload and gives the error

    425 Unable to build data connection: Operation not

See: https://forum.rclone.org/t/rclone-ftps-explicit-rclone-touch-empty-files-proftpd-unable-to-build-data-connection-operation-not-permitted/22522
2021-03-01 16:01:20 +00:00
Ivan Andreev
24897db640 Trim trailing whitespace from list commands
Listing a current directory (when the path argument is empty)
would send the command "LIST " with trailing whitespace to FTP
resulting in 500 errors with Solaris FTP server.
This patch fixes that.
2021-02-14 19:48:19 +03:00
Julien Laffaye
9aae4d1511
Merge pull request #196 from ncw/fix-disable-mlsd
Add a DialWithDisabledMLSD option to ignore MLSD if advertised
2020-11-12 14:50:30 -05:00