Brian Foshee
025459f901
Make ServerConn safe for concurrent use
...
ServerConn's textproto.Conn is safe for concurrent access. This adds
calls to StartResponse() and EndResponse() to put that to use wherever
Cmd() is called.
https://golang.org/pkg/net/textproto/#Conn.Cmd
Additionally, this adds a sync.Mutex on ServerConn to provide
concurrency protection for data commands such as STOR and RETR that need
to run through synchronous steps.
2016-03-03 14:30:28 -05:00
Julien Laffaye
0e072be722
Merge pull request #43 from HnH/master
...
ServerConn::openDataConn() recursively tries to use EPSV and PASV.
2016-02-27 11:10:24 +01:00
Ludovic Fauvet
b8e5af955b
Fix a crash with pasv invalid responses
2016-02-08 10:32:55 +01:00
Julian Kornberger
1fc6b70adc
Another fix for the line parser
2015-12-28 12:17:09 +01:00
Julian Kornberger
107079411b
Do not crash on invalid lines
2015-12-28 00:12:10 +01:00
Сергей Трейнис
e252713eb1
ServerConn::openDataConn() recursively tries to use EPSV and PASV.
2015-12-02 15:06:05 +02:00
Julien Laffaye
ff69fe44f1
Make gofmt and golint happy.
2015-11-30 12:22:16 +01:00
Julian Kornberger
b9430bdb4a
Avoid strings.Split
...
This results in less function calls.
2015-08-29 13:20:47 +02:00
Andy Balholm
95346071de
Add support for directory listings in MS-DOS DIR format.
2015-08-24 16:03:52 -07:00
Julien Laffaye
c741076986
Merge pull request #35 from digineo/code_optimizations
...
Some code optimizations
2015-08-18 23:43:34 +02:00
Julien Laffaye
b33f6e0005
Fix EPSV for domains with multiple A entries.
...
We can not use the DNS name to open the data connection, as we might get
another IP than the current host from the DNS resolution.
2015-08-18 23:38:53 +02:00
Julian Kornberger
3a78f26034
Some code optimizations
2015-08-18 23:34:52 +02:00
Julian Kornberger
72db6844f1
Improve line parsing
2015-08-18 22:33:04 +02:00
Julien Laffaye
e6587b1638
Merge pull request #31 from digineo/listings
...
Add support for more listing formats
2015-08-18 19:17:10 +02:00
Julien Laffaye
e987451f99
SplitHostPort before connecting to the remote.
...
This, way, we dont have to cleanup the tcp connection if SplitHostPort fails.
2015-08-18 19:00:56 +02:00
Julian Kornberger
d827b56882
Unexport SetTime and SetSize
2015-08-18 18:54:40 +02:00
Julian Kornberger
4c910c8b22
Add support for a third listing format
2015-08-18 18:54:40 +02:00
Julian Kornberger
94120171fb
Add support for another listing format
2015-08-18 18:54:40 +02:00
Julien Laffaye
a6e47bb27d
Merge branch 'ipv6' of https://github.com/stacktic/ftp into stacktic-ipv6
...
Conflicts:
ftp.go
2015-08-18 18:52:29 +02:00
Julien Laffaye
a5b2614a99
Merge pull request #8 from dsluis/master
...
Changing expected status response for Logout call
2015-08-18 18:13:03 +02:00
Julien Laffaye
061d4ea288
Merge pull request #13 from stacktic/rest
...
Add support for the REST command
2015-08-18 18:05:20 +02:00
Dan Goldsmith
9a62d18b47
Copy Paste Error / Typo
...
Error Created in pasv() states EPSV rather than PASV
2015-04-23 14:02:53 +01:00
Julien Laffaye
a9410e3e51
Implements timeouts.
...
Added DialTimeout and Dial functions.
Fixes issue #27 .
2015-03-16 23:45:56 +01:00
Julien Laffaye
5807e676a3
Add comments to make golint happy.
2015-03-05 11:57:38 +01:00
Julien Laffaye
816e28448f
Specify the fields to make govet happy.
2015-03-05 11:49:26 +01:00
Peter Nguyen
a595f7d8e4
Changed to using ReadResponse instead of ReadCodeLine for cmdDataConn
2014-10-30 11:55:46 +01:00
jfbus
d54ea712cb
Allow multi-line 226 responses to STOR commands - fixes #17
2014-03-25 09:35:34 +01:00
Ludovic Fauvet
fb61796944
Handle multi-line 226 status code
2014-02-18 17:01:20 +01:00
Ludovic Fauvet
7a3697af8c
PASS command may be optional if the server answers 230 after issuing USER
2014-02-18 13:19:43 +01:00
Arnaud Ysmal
6bad3e176c
Try EPSV when PASV fails
2013-12-05 19:29:22 +01:00
Arnaud Ysmal
8d3a48a8c7
The REST command must precede RETR/STOR
2013-12-05 00:09:55 +01:00
Arnaud Ysmal
a3bb5b8714
Use net.JoinHostPort and net.SplitHostPort
2013-12-04 23:58:02 +01:00
Arnaud Ysmal
691fac98af
Force EPSV for IPv6 hosts and fix split of IPv6:port
2013-12-04 23:57:46 +01:00
Bob Uhl
a40f117d27
Added NLST-equivalent command
2013-12-03 17:09:55 -07:00
Daniel Sluis
169efda0b5
Changing expected status response for Logout call
2013-10-18 09:30:28 -07:00
Julien Laffaye
962edd16c2
Remove obsolete comment.
2013-09-07 18:49:50 +02:00
Julien Laffaye
1b161dcaad
gofmt ftp.go
2013-09-07 18:48:40 +02:00
Gerben Castel
9fdb4d975a
PASV support
2013-09-04 14:54:57 +02:00
SunRunAway
65a25a2848
do ReadCodeLine in Close() @ ReadCloser
2013-07-10 18:18:32 +08:00
SunRunAway
60f85a4eb0
Merge branch 'feature/connect'
2013-07-08 13:59:53 +08:00
SunRunAway
66a09f43d5
use ReadResponse @Connect
2013-07-08 13:48:11 +08:00
SunRunAway
6416febc89
add Time for Entry
2013-07-08 13:21:43 +08:00
Julien Laffaye
732309446f
Use strings.TrimSpace() instead of strings.Trim().
2013-05-20 01:30:03 +02:00
Julien Laffaye
b82b87bce2
Fix spelling.
2013-05-20 01:20:29 +02:00
Julien Laffaye
f23c3ddfab
Added feature discovery as per RFC 2389.
2013-05-19 21:54:57 +02:00
Julien Laffaye
2257d14f75
Use ReadResponse instead of ReadCodeLine.
...
ReadResponse deals with multi-lines reponse, ReadCodeLine does not.
While I'm here, use the cmd() helper in epsv() method.
2013-05-19 21:23:29 +02:00
Julien Laffaye
91fc6ada34
Added Logout() method.
2013-05-19 21:15:23 +02:00
Julien Laffaye
e00e1f11a0
Revise godoc comments.
2013-05-19 19:54:14 +02:00
Julien Laffaye
ebf946ada5
Switch to binary mode once logged-in.
...
Data transfer in binary mode works for both ASCII and binary (such as JPEG
images) files. Therefore it should be the default.
Fixes #3
2013-05-08 17:46:48 +02:00
Julien Laffaye
d69e9326f4
Set the size of the entry in List()
2013-02-17 10:03:46 +01:00