summaryrefslogtreecommitdiff
path: root/daemon/gvfsbackendftp.h
Commit message (Collapse)AuthorAgeFilesLines
* ftp: Add implicit TLS modeMantas Mikulėnas2018-07-301-1/+7
| | | | | | | | | | | | | | Although specs discourage it, ftps:// is generally accepted to mean "implicit" TLS on a separate port (in the same style as HTTPS); some servers still use this method and it's regaining popularity within IANA. gvfs couldn't connect to such servers, as it only implemented "explicit" TLS (STARTTLS) mode. This patch implements "implicit" TLS mode and adds the 'ftpis' URI scheme for it. https://gitlab.gnome.org/GNOME/gvfs/issues/4
* ftp: Implement TLS supportRoss Lagerwall2015-04-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement TLS support (aka explicit ftps). This is done by using a different URL scheme, ftps, so that it is only used if explicitly specified. Although the protocol allows transparently upgrading a normal connection to a secure one, there are several problems with this. FEAT is needed to determine support for it but some servers do not allow this before login. Some servers are configured to allow AUTH TLS but have firewalls that block data connections because they can't inspect the traffic. Servers may disallow TLS on the data connection, making it unclear to the user how secure the connection is. Finally, there may be verification errors which need to be presented to the user, and these are unexpected because they did not choose to use ftps. Making secure ftp opt-in as a separate URL scheme side-steps most of these issues as well as ensuring there are no regressions for normal ftp. When using ftps, we assume that the server implements AUTH TLS so the connection is secured before login. It is also assumed that TLS for data connections is allowed, so both control and data connection are secure before any information is transferred. Verification errors are presented during mounting. If the identity changes on subsequent reconnections, the connection is aborted. While presenting verification errors to the user in this way is perhaps not the best way of handling security, it is fairly standard. The implementation has been successfully tested on vsftpd, ProFTPD, Pure-FTPd, IIS, and FileZilla Server. Based on a patch by Benjamin Otte. https://bugzilla.gnome.org/show_bug.cgi?id=526582
* Update the Address of the FSFFelix Möller2012-07-301-2/+2
| | | | | | | | | | | | | | | Updating the address of the FSF. This has been done by: while read file; do sed -i 's:59 Temple Place:51 Franklin Street:' $file sed -i 's:Suite 330:Fifth Floor:' $file sed -i 's:02111-1307:02110-1301:' $file done https://bugzilla.gnome.org/show_bug.cgi?id=656598 Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
* Adapt to glib mutex API changesTomas Bzatek2011-10-251-2/+2
| | | | A continuation to https://bugzilla.gnome.org/show_bug.cgi?id=661148
* ftp: Parse SITE HELP output to detect chmod supportBenjamin Otte2011-01-231-1/+3
| | | | | | | Support for it will come in later patches. The patch also detects chgrp support, but we're not intending to use it yet.
* ftp: Detect TLS and SSL supportBenjamin Otte2010-12-081-1/+3
|
* [FTP] remove EPSV as default featureBenjamin Otte2009-06-171-1/+1
| | | | | now that we try EPSV anyway, we can omit assuming it exists and try PASV first.
* [FTP] use the EPRT feature response for EPRT support, not EPSVBenjamin Otte2009-06-171-0/+1
|
* [FTP] rework data connection codeBenjamin Otte2009-06-121-7/+10
| | | | | | | | | | | | | | The new code doesn't rely on funny workaround flags anymore and also doesn't set workaround flags unconditionally after any failure. It now works like this: 1) if a default method exists, try the default method. 2) if the default method failed, try all methods in order until one succeeds. 3) if any method succeeded, make it the new default method. This way, we take the proper method by default, and have a proper fallback mechanism for flaky connections/servers that sometimes fail to connect properly. Also, it's much easier to add new methods (like active FTP) later.
* [FTP] indentation fixesBenjamin Otte2009-06-121-5/+5
|
* [FTP] almost implement pull vfuncBenjamin Otte2009-06-111-9/+9
| | | | Progress updates are not sent yet.
* [FTP] keep list of busy connectionsBenjamin Otte2009-06-111-0/+1
| | | | | | | | | | | | | A busy connection is a connection that is currently used as a handle for a file transfer (upload or download). If all connections are busy, we can just return EBUSY instead of waiting for 30 seconds for a connection to become available. This is mostly useful for performance when there is a maximum of 1 connection to the server and this connection is busy transferring a file. Even gio functions like g_file_copy() sometimes do additional operations while transferring files. (It does a query_info for the progress callback.)
* [FTP] whitespace changesBenjamin Otte2009-06-111-12/+12
| | | | | - replace tabs with 8 spaces - remove spaces at end of line
* [FTP] rework cache handlingBenjamin Otte2009-06-111-7/+6
| | | | | | The cache handling has been split into a separate file and structure now. While the API still isn't perfect, it's much clearer than before. It's also faster when looking up lots of symlinks.
* [FTP] introduce GVfsFtpTaskBenjamin Otte2009-06-111-0/+70
| | | | | | | | | | | | | split out the old FtpConnection struct into a separate GVfsFtpTask structure that acts as a one-stop solution to vfuncs. It keeps track of all important structures: - the backend - the current job - the potential connection to the server - the error state during the lifetime of a backend vfunc and supplies convenience functions to ease implementing these vfuncs. The API of gvfsftptask.h is documented.
* drop my current FTP code and continue development in here. Should makeBenjamin Otte2008-02-281-2/+2
| | | | | | | | | | | | | | 2008-02-28 Benjamin Otte <otte@gnome.org> * daemon/Makefile.am: * daemon/gvfsbackendftp.c: * daemon/gvfsbackendftp.h: drop my current FTP code and continue development in here. Should make testing easier for adventurous people. svn path=/trunk/; revision=1414
* Add copyright information to source files.Christian Kellner2007-11-011-0/+22
| | | | | | | | | | | | 2007-11-01 Christian Kellner <gicmo@gnome.org> * client/*.[ch]: * common/*.[ch]: * daemon/*.[ch]: * test/*.[ch]: Add copyright information to source files. svn path=/trunk/; revision=1007
* Add skeleton for FTP backend.Alexander Larsson2007-09-131-0/+28
Original git commit by Hans Petter Jansson <hpj@cl.no> at 1183988607 +0200 svn path=/trunk/; revision=683