Loading...
Searching...
No Matches
Ftp.h
Go to the documentation of this file.
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#pragma once
26
28// Headers
31
33#include <CSFML/Network/Types.h>
34
35#include <stddef.h>
36
37
48
49
54typedef enum
55{
56 // 1xx: the requested action is being initiated,
57 // expect another reply before proceeding with a new command
62
63 // 2xx: the requested action has been successfully completed
64 sfFtpOk = 200,
79
80 // 3xx: the command has been accepted, but the requested action
81 // is dormant, pending receipt of further information
85
86 // 4xx: the command was not accepted and the requested action did not take place,
87 // but the error condition is temporary and the action may be requested again
94
95 // 5xx: the command was not accepted and
96 // the requested action did not take place
108
109 // 10xx: SFML custom codes
115
116
124
137
147
157
167
177CSFML_NETWORK_API const char* sfFtpListingResponse_getName(const sfFtpListingResponse* ftpListingResponse, size_t index);
178
186
199
209
219
232
233
246
247
255
268
278
288
296
304
325CSFML_NETWORK_API sfFtpResponse* sfFtp_connect(sfFtp* ftp, sfIpAddress server, unsigned short port, sfTime timeout);
326
339
353CSFML_NETWORK_API sfFtpResponse* sfFtp_login(sfFtp* ftp, const char* name, const char* password);
354
364
377
390
406
419
429
443
459
473CSFML_NETWORK_API sfFtpResponse* sfFtp_renameFile(sfFtp* ftp, const char* file, const char* newName);
474
490
507CSFML_NETWORK_API sfFtpResponse* sfFtp_download(sfFtp* ftp, const char* remoteFile, const char* localPath, sfFtpTransferMode mode);
508
527 sfFtp* ftp,
528 const char* localFile,
529 const char* remotePath,
531 bool append);
532
551CSFML_NETWORK_API sfFtpResponse* sfFtp_sendCommand(sfFtp* ftp, const char* command, const char* parameter);
uint32_t sfChar32
Define sfChar32.
Definition Config.h:161
sfFtpResponse * sfFtp_deleteFile(sfFtp *ftp, const char *name)
Remove an existing file.
const char * sfFtpDirectoryResponse_getMessage(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Get the full message contained in a FTP directory response.
void sfFtpResponse_destroy(const sfFtpResponse *ftpResponse)
Destroy a FTP response.
sfFtpResponse * sfFtp_deleteDirectory(sfFtp *ftp, const char *name)
Remove an existing directory.
bool sfFtpResponse_isOk(const sfFtpResponse *ftpResponse)
Check if a FTP response status code means a success.
void sfFtpDirectoryResponse_destroy(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Destroy a FTP directory response.
const char * sfFtpListingResponse_getMessage(const sfFtpListingResponse *ftpListingResponse)
Get the full message contained in a FTP listing response.
void sfFtp_destroy(const sfFtp *ftp)
Destroy a Ftp object.
sfFtpResponse * sfFtp_loginAnonymous(sfFtp *ftp)
Log in using an anonymous account.
sfFtpResponse * sfFtp_renameFile(sfFtp *ftp, const char *file, const char *newName)
Rename an existing file.
const char * sfFtpListingResponse_getName(const sfFtpListingResponse *ftpListingResponse, size_t index)
Return a directory/file name contained in a FTP listing response.
size_t sfFtpListingResponse_getCount(const sfFtpListingResponse *ftpListingResponse)
Return the number of directory/file names contained in a FTP listing response.
sfFtpResponse * sfFtp_createDirectory(sfFtp *ftp, const char *name)
Create a new directory.
sfFtpResponse * sfFtp_sendCommand(sfFtp *ftp, const char *command, const char *parameter)
Send a command to the FTP server.
sfFtpTransferMode
Enumeration of transfer modes.
Definition Ftp.h:43
@ sfFtpEbcdic
Text mode using EBCDIC encoding.
Definition Ftp.h:46
@ sfFtpBinary
Binary mode (file is transferred as a sequence of bytes)
Definition Ftp.h:44
@ sfFtpAscii
Text mode using ASCII encoding.
Definition Ftp.h:45
sfFtpResponse * sfFtp_connect(sfFtp *ftp, sfIpAddress server, unsigned short port, sfTime timeout)
Connect to the specified FTP server.
sfFtpStatus sfFtpListingResponse_getStatus(const sfFtpListingResponse *ftpListingResponse)
Get the status code of a FTP listing response.
sfFtpResponse * sfFtp_changeDirectory(sfFtp *ftp, const char *directory)
Change the current working directory.
sfFtpResponse * sfFtp_keepAlive(sfFtp *ftp)
Send a null command to keep the connection alive.
sfFtpStatus sfFtpResponse_getStatus(const sfFtpResponse *ftpResponse)
Get the status code of a FTP response.
sfFtpResponse * sfFtp_disconnect(sfFtp *ftp)
Close the connection with the server.
const char * sfFtpResponse_getMessage(const sfFtpResponse *ftpResponse)
Get the full message contained in a FTP response.
sfFtpResponse * sfFtp_upload(sfFtp *ftp, const char *localFile, const char *remotePath, sfFtpTransferMode mode, bool append)
Upload a file to a FTP server.
sfFtpStatus sfFtpDirectoryResponse_getStatus(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Get the status code of a FTP directory response.
sfFtpDirectoryResponse * sfFtp_getWorkingDirectory(sfFtp *ftp)
Get the current working directory.
void sfFtpListingResponse_destroy(const sfFtpListingResponse *ftpListingResponse)
Destroy a FTP listing response.
sfFtp * sfFtp_create(void)
Create a new Ftp object.
const sfChar32 * sfFtpDirectoryResponse_getDirectoryUnicode(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Get the directory returned in a FTP directory response.
bool sfFtpListingResponse_isOk(const sfFtpListingResponse *ftpListingResponse)
Check if a FTP listing response status code means a success.
sfFtpResponse * sfFtp_login(sfFtp *ftp, const char *name, const char *password)
Log in using a username and a password.
sfFtpResponse * sfFtp_download(sfFtp *ftp, const char *remoteFile, const char *localPath, sfFtpTransferMode mode)
Download a file from a FTP server.
sfFtpStatus
Status codes possibly returned by a FTP response.
Definition Ftp.h:55
@ sfFtpInvalidFile
Invalid file to upload / download.
Definition Ftp.h:113
@ sfFtpLocalError
Requested action aborted, local error in processing.
Definition Ftp.h:92
@ sfFtpEnteringPassiveMode
Entering passive mode.
Definition Ftp.h:75
@ sfFtpNeedAccountToLogIn
Need account for login.
Definition Ftp.h:83
@ sfFtpServiceReady
Service ready for new user.
Definition Ftp.h:71
@ sfFtpConnectionClosed
Connection with server closed.
Definition Ftp.h:112
@ sfFtpRestartMarkerReply
Restart marker reply.
Definition Ftp.h:58
@ sfFtpServiceUnavailable
Service not available, closing control connection.
Definition Ftp.h:88
@ sfFtpPageTypeUnknown
Requested action aborted, page type unknown.
Definition Ftp.h:105
@ sfFtpNeedInformation
Requested file action pending further information.
Definition Ftp.h:84
@ sfFtpTransferAborted
Connection closed, transfer aborted.
Definition Ftp.h:90
@ sfFtpClosingDataConnection
Closing data connection, requested file action successful.
Definition Ftp.h:74
@ sfFtpInsufficientStorageSpace
Requested action not taken; insufficient storage space in system, file unavailable.
Definition Ftp.h:93
@ sfFtpOk
Command ok.
Definition Ftp.h:64
@ sfFtpDataConnectionOpened
Data connection open, no transfer in progress.
Definition Ftp.h:73
@ sfFtpCommandNotImplemented
Command not implemented.
Definition Ftp.h:99
@ sfFtpFilenameNotAllowed
Requested action not taken, file name not allowed.
Definition Ftp.h:107
@ sfFtpFileUnavailable
Requested action not taken, file unavailable.
Definition Ftp.h:104
@ sfFtpInvalidResponse
Response is not a valid FTP one.
Definition Ftp.h:110
@ sfFtpDataConnectionUnavailable
Can't open data connection.
Definition Ftp.h:89
@ sfFtpPointlessCommand
Command not implemented.
Definition Ftp.h:65
@ sfFtpCommandUnknown
Syntax error, command unrecognized.
Definition Ftp.h:97
@ sfFtpNotEnoughMemory
Requested file action aborted, exceeded storage allocation.
Definition Ftp.h:106
@ sfFtpDirectoryOk
PATHNAME created.
Definition Ftp.h:78
@ sfFtpNeedAccountToStore
Need account for storing files.
Definition Ftp.h:103
@ sfFtpOpeningDataConnection
File status ok, about to open data connection.
Definition Ftp.h:61
@ sfFtpFileStatus
File status.
Definition Ftp.h:68
@ sfFtpFileActionAborted
Requested file action not taken.
Definition Ftp.h:91
@ sfFtpSystemType
NAME system type, where NAME is an official system name from the list in the Assigned Numbers documen...
Definition Ftp.h:70
@ sfFtpLoggedIn
User logged in, proceed. Logged out if appropriate.
Definition Ftp.h:76
@ sfFtpDirectoryStatus
Directory status.
Definition Ftp.h:67
@ sfFtpHelpMessage
Help message.
Definition Ftp.h:69
@ sfFtpSystemStatus
System status, or system help reply.
Definition Ftp.h:66
@ sfFtpParametersUnknown
Syntax error in parameters or arguments.
Definition Ftp.h:98
@ sfFtpDataConnectionAlreadyOpened
Data connection already opened, transfer starting.
Definition Ftp.h:60
@ sfFtpBadCommandSequence
Bad sequence of commands.
Definition Ftp.h:100
@ sfFtpClosingConnection
Service closing control connection.
Definition Ftp.h:72
@ sfFtpConnectionFailed
Connection with server failed.
Definition Ftp.h:111
@ sfFtpServiceReadySoon
Service ready in N minutes.
Definition Ftp.h:59
@ sfFtpFileActionOk
Requested file action ok.
Definition Ftp.h:77
@ sfFtpNotLoggedIn
Not logged in.
Definition Ftp.h:102
@ sfFtpNeedPassword
User name ok, need password.
Definition Ftp.h:82
@ sfFtpParameterNotImplemented
Command not implemented for that parameter.
Definition Ftp.h:101
sfFtpResponse * sfFtp_parentDirectory(sfFtp *ftp)
Go to the parent directory of the current one.
const char * sfFtpDirectoryResponse_getDirectory(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Get the directory returned in a FTP directory response.
bool sfFtpDirectoryResponse_isOk(const sfFtpDirectoryResponse *ftpDirectoryResponse)
Check if a FTP directory response status code means a success.
sfFtpListingResponse * sfFtp_getDirectoryListing(sfFtp *ftp, const char *directory)
Get the contents of the given directory.
#define CSFML_NETWORK_API
struct sfFtpResponse sfFtpResponse
struct sfFtpListingResponse sfFtpListingResponse
struct sfFtp sfFtp
struct sfFtpDirectoryResponse sfFtpDirectoryResponse
Encapsulate an IPv4 network address.
Definition IpAddress.h:40
Represents a time value.
Definition Time.h:38