Nicola Murino
4f6bb00996
web: display version string
2019-10-19 07:52:58 +02:00
Nicola Murino
25f97bbe62
set version to 0.9.3
2019-10-18 11:28:20 +02:00
Nicola Murino
44d403cf9c
sftpd_test: use path.Join for SFTP/SCP path
...
filepath.Join could use an OS dependent separator
2019-10-16 12:57:06 +02:00
Nicola Murino
8682ae4a54
sftpd: make file/dir removal and creation more standard
...
- remove a non empty directory. Before: the directory contents were
removed recursively. Now: removing a non empty directory fails.
- make a directory in a non existent path: Before: any necessary parents
were created. Now: it fails.
- remove a file. Before: files, directories and symlinks were removed.
Now: only files and symlink are removed, removing a directory using "Remove"
instead of "Rmdir" fails.
Upload a file in a non existent directory. Before: any necessary parents
were created. Now: it fails.
Now SFTPGo behaves as OpenSSH.
2019-10-16 07:48:22 +02:00
Nicola Murino
f98a29a1e0
sftpd: port to non deprecated pkg/sftp error types
...
see https://github.com/pkg/sftp/pull/304
2019-10-14 22:44:57 +02:00
Nicola Murino
2932dba5cc
update modules deps
2019-10-14 08:36:39 +02:00
Nicola Murino
24914e90d1
web: fix quota scan error message
2019-10-13 13:08:19 +02:00
Nicola Murino
587c8a0347
web: add quota scan support
2019-10-13 12:07:22 +02:00
Nicola Murino
62224debd2
simplify closing a connection
...
get the connection from the map instead of cycling all the open connections
2019-10-12 15:12:43 +02:00
Nicola Murino
871e2ccbbf
sftpd: refactor connection closing
...
we have not known bugs with the previous implementation anyway this one
is cleaner: the underlying network connection is directly related with
SFTP/SCP connections.
This should better protect us against buggy clients and edge cases
2019-10-10 09:04:17 +02:00
Nicola Murino
4b5ce3913e
ssh handshake: add a deadline for handshake to complete
...
we use a 2 minutes timeout as OpenSSH
2019-10-09 19:07:35 +02:00
Nicola Murino
1d917561fe
sftpd: add support for upload resume
...
we support resume only if the client sets the correct offset while resuming
the upload.
Based on the specs the offset is optional for resume, but all the tested
clients sets a right offset.
If an invalid offset is given we interrupt the transfer with the error
"Invalid write offset ..."
See https://github.com/pkg/sftp/issues/295
This commit add a new upload mode: "atomic with resume support", this acts
as atomic but if there is an upload error the temporary file is renamed
to the requested path and not deleted, this way a client can reconnect
and resume the upload
2019-10-09 17:33:30 +02:00
Nicola Murino
4f36c1de06
web: use html/template
...
so output is safe against code injection
2019-10-09 11:48:54 +02:00
Nicola Murino
5ffa34dacb
improve godoc
2019-10-08 10:29:16 +02:00
Nicola Murino
60d4a3e1b5
improve docs
2019-10-08 08:20:26 +02:00
Nicola Murino
3e0558c0e9
add web interface support to windows setup ...
...
... and other small improvements
2019-10-07 22:37:28 +02:00
Nicola Murino
c74d90407b
launchd service: add env vars for html templates and static files
2019-10-07 19:40:17 +02:00
Nicola Murino
557831fa0d
Dockerfiles: add support for web interface
2019-10-07 19:16:52 +02:00
Nicola Murino
afd312f26a
add a basic web interface
...
The builtin web interface allows to manage users and connections
2019-10-07 18:19:01 +02:00
Nicola Murino
bb0338870a
unhide public keys
...
hiding public keys give no security improvement
2019-10-03 15:29:54 +02:00
Nicola Murino
fb8ccfe824
improve doc for dataprovider Close method
...
the method is used in test cases, it assumes that the dataprovider
is initialized and it is not safe Initialize/Close from different
goroutines
2019-09-29 08:38:09 +02:00
Nicola Murino
0b4ff97a1a
dataprovider: simplifly validateUser
2019-09-28 23:44:36 +02:00
Nicola Murino
00dd5db226
add support for users' default base dir
2019-09-28 22:48:52 +02:00
Jo Vandeginste
71093bbe1b
Log to journald
...
By default on systems with systemd, send logs to stdout and thus to journald.
2019-09-20 12:38:31 +02:00
Nicola Murino
088e187e6a
add Inno Setup script used to generate the Windows setup
...
So we can receive pull requests to improve it :)
2019-09-19 08:19:25 +02:00
Nicola Murino
0d8506c93d
set version to 0.9.2
2019-09-18 22:19:34 +02:00
Nicola Murino
df96ea7e9f
add a new permission for overwriting existing files
...
The upload permission is required to allow file overwrite
2019-09-17 08:53:45 +02:00
Nicola Murino
580fae7a8f
minor improvements
2019-09-16 18:11:35 +02:00
Nicola Murino
4a1baaee69
windows service: improve doc
2019-09-16 09:22:27 +02:00
Nicola Murino
f3f38f5f09
add Windows Service support
2019-09-16 08:52:58 +02:00
Nicola Murino
bba78763e1
add a test case and document sha512crypt passwords support
2019-09-15 12:23:27 +02:00
Seunghoon Yeon
b5211fd31b
Added sha512crypt support
2019-09-15 12:08:28 +02:00
Nicola Murino
360f32a91b
fixed some typos
2019-09-14 17:06:21 +02:00
Nicola Murino
018b10808d
improve SQL provider availability check adding a timeout
2019-09-14 16:18:31 +02:00
Jo Vandeginste
29aadbf3e3
log redacted passwords
...
Closes #48
2019-09-13 21:57:52 +02:00
Nicola Murino
7eb5b01169
add Prometheus support
...
some basic counters and gauges are now exposed
2019-09-13 18:45:36 +02:00
Nicola Murino
fd59f35108
update pkg/sftp to the latest master
...
Our pull request to handle transfer errors is now merged, so updating
pkg/sftp should fix #36
2019-09-13 08:30:22 +02:00
Nicola Murino
e7eb3476b7
dataprovider: remove transaction for quota update
...
The update is atomic so no transaction is needed.
Addionally a transaction will ask for a new connection to the pool
and this can deadlock if the pool has a max connection limit too low.
Also make configurable the pool size instead of hard code to the cpu number.
Fixes #47
2019-09-13 08:14:07 +02:00
Nicola Murino
bf00ca334d
mysql data provider: add read and write timeout
...
This should hopefully fix #47
2019-09-12 16:26:47 +02:00
Nicola Murino
6b33d3d9f1
add version to the default server banner
2019-09-12 09:21:58 +02:00
Nicola Murino
3d13fe15c3
connections: close the ssh channel before the network connection
...
This way if pkg/sftp is stuck in Serve() method should be unlocked.
2019-09-11 16:29:56 +02:00
Nicola Murino
9794ca7ee0
connection: add a close method
...
and use it instead of netConn directly
2019-09-11 12:46:21 +02:00
Nicola Murino
784f75f45b
use net.Conn instead of ssh.Conn to close connections
2019-09-11 09:41:46 +02:00
Nicola Murino
c1effdf701
atomic upload mode: remove temporary file on error
...
If a transfer error is detected, then the partial temporary file will
be removed and not renamed to requested path
2019-09-10 18:47:21 +02:00
Nicola Murino
7010f513e3
macOS: add launchd sample plist
2019-09-10 08:03:53 +02:00
Nicola Murino
e2e122169d
docker alpine: improve README
...
The volume configuration is not required anymore, we have
a default config in /etc/sftpgo and the volume config is
mounted on /srv/sftpgo/config so we always have a default
config in /etc/sftpgo/sftpgo.json.
Anyway to persist server's keys after an image rebuild a
configuration volume is highly recommended
2019-09-09 13:24:48 +02:00
Nicola Murino
e79f7010b4
docker alpine: use the latest stable docker tag for both run and build env
...
so we don't need to update our Dockerfile each time a new alpine or golang
version is released
2019-09-09 12:58:07 +02:00
Nicola Murino
f4507aeec2
improve transfer error log and TestSCPErrors
2019-09-09 08:57:11 +02:00
Nicola Murino
bd0eb2f0a8
docker alpine README: fix project name
2019-09-07 23:34:59 +02:00
Nicola Murino
e09ea00d8b
improve transfer error log
2019-09-07 23:27:37 +02:00