-
Notifications
You must be signed in to change notification settings - Fork 1
/
ftpConnection.hpp
70 lines (59 loc) · 1.99 KB
/
ftpConnection.hpp
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef __FTPCONNECTION_H
#define __FTPCONNECTION_H
// Set buffer sizes to 1KiB for commands and 64KiB for data
// Command buffer should selldom (never?) exceed 512B but I prefer a little headroom.
// Data buffer is bigger in order for disk writes to be quicker - writing bigger
// chunks is usually preferable for a myriad of reasons.
#define FTP_CMD_BUFFER_SIZE (1024)
#define FTP_DATA_BUFFER_SIZE (64 * 1024)
#include <string>
#include "ftpServer.hpp"
class FtpServer;
class ftpConnection {
int _fd;
int dataFd;
std::string pwd;
bool logged_in;
char* buf;
char mode;
std::string rnfr;
FtpServer* server;
void sendStdString(std::string const& s, int flags);
void sendStdString(int fd, std::string const& s, int flags);
// void handleCommand();
void sendFolderContents(int fd, std::string& path);
bool sendFile(std::string const& fileName);
bool recvFile(std::string const& fileName);
std::string unixToDosPath(std::string const& path);
// void cmdAbor();
void cmdCwd(std::string const& arg);
void cmdCdup();
void cmdDele(std::string const& arg);
void cmdList(std::string const& arg);
// void cmdMdtm(std::string const& arg);
void cmdMkd(std::string const& arg);
void cmdNlst(std::string const& arg);
void cmdPass(std::string const& arg);
// void cmdPasv(std::string const& arg);
void cmdPort(std::string const& arg);
void cmdEprt(std::string const& arg);
void cmdPwd();
// void cmdQuit();
void cmdRetr(std::string const& arg);
void cmdRmd(std::string const& arg);
void cmdRnfr(std::string const& arg);
void cmdRnto(std::string const& arg);
// void cmdSite(std::string const& arg);
// void cmdSize(std::string const& arg);
void cmdStor(std::string const& arg);
void cmdSyst();
void cmdType(std::string const& arg);
void cmdUser(std::string const& arg);
void cmdExecute(std::string const& path);
void cmdUnimplemented(std::string const& arg);
public:
ftpConnection(int fd, FtpServer* s);
~ftpConnection();
bool update();
};
#endif