File: ftp.h

package info (click to toggle)
freefilesync 13.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,044 kB
  • sloc: cpp: 66,712; ansic: 447; makefile: 216
file content (41 lines) | stat: -rw-r--r-- 1,476 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// *****************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under    *
// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0          *
// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
// *****************************************************************************

#ifndef FTP_H_745895742383425326568678
#define FTP_H_745895742383425326568678

#include "abstract.h"


namespace fff
{
bool  acceptsItemPathPhraseFtp(const Zstring& itemPathPhrase); //noexcept
AbstractPath createItemPathFtp(const Zstring& itemPathPhrase); //noexcept

void ftpInit();
void ftpTeardown();

//-------------------------------------------------------

const int DEFAULT_PORT_FTP = 21; //TLS enabled? => same for explicit FTP, but *implicit* FTP uses port 990

struct FtpLogin
{
    Zstring server;
    int portCfg = 0; //use if > 0, DEFAULT_PORT_FTP otherwise
    Zstring username;
    std::optional<Zstring> password = Zstr(""); //none given => prompt during AFS::authenticateAccess()
    bool useTls = false;
    //other settings not specific to FTP session:
    int timeoutSec = 10;
};
AfsDevice condenseToFtpDevice(const FtpLogin& login); //noexcept; potentially messy user input
FtpLogin extractFtpLogin(const AfsDevice& afsDevice); //noexcept

AfsPath getFtpHomePath(const FtpLogin& login); //throw FileError
}

#endif //FTP_H_745895742383425326568678