m2mb API docs  37.00.004.1
m2mb API sets documentation
m2mb_ftpc.h
Go to the documentation of this file.
1 /* $version: 372135 */
2 /*===============================================================================================*/
3 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
22 #ifndef M2MB_FTPC_H
23 #define M2MB_FTPC_H
24 
25 /* Global declarations ==========================================================================*/
26 
27 #define MIN_FTPTO 10000
28 #define MAX_FTPTO 500000
29 #define DEFAULT_FTPTO MIN_FTPTO
31 #define M2MB_FTPC_PATH_MAX_LEN 1000 /* file or folder path maximum length */
32 
33 /* Global enums ==============================================================================*/
34 
35 typedef enum
36 {
37  M2MB_FTPC_MODE_PASSIVE = 1, /* passive mode */
38  M2MB_FTPC_MODE_ACTIVE = 2, /* active mode */
39  M2MB_FTPC_MODE_EX_PASV = 5, /* extended passive mode */
40  M2MB_FTPC_MODE_EX_ACTIVE = 6, /* extended active mode */
41  ENUM_TO_INT( M2MB_FTPC_MODE_E )
42 } M2MB_FTPC_MODE_E;
43 
44 typedef enum
45 {
46  M2MB_FTPC_SET_CID,
47  M2MB_FTPC_GET_CID,
48  M2MB_FTPC_SECURE_OPT,
49  M2MB_FTPC_SET_MODE,
50  M2MB_FTPC_SET_TO,
51  M2MB_FTPC_PRIVATE_IP_IGN,
52  M2MB_FTPC_SET_FTP_SRV_PORT,
53  M2MB_FTPC_SET_PDP_TYPE,
54  M2MB_FTPC_SET_PDP_HANDLE,
55  M2MB_FTPC_SET_TCP_WINDOW,
56  ENUM_TO_INT( M2MB_FTPC_ACTION_E )
57 } M2MB_FTPC_ACTION_E;
58 
59 typedef enum
60 {
61  M2MB_FTPC_TRANSFER_ASCII = 'A',
62  M2MB_FTPC_TRANSFER_BINARY = 'I',
63  ENUM_TO_INT( M2MB_FTPC_TRANSFER_MODE_E )
64 } M2MB_FTPC_TRANSFER_MODE_E;
65 
66 typedef enum {
67  M2MB_FTPC_QUIT_SEND,
68  M2MB_FTPC_QUIT_SKIP,
69  ENUM_TO_INT( M2MB_FTPC_QUIT_CMD_E )
70 } M2MB_FTPC_QUIT_CMD_E;
71 
72 typedef enum
73 {
74  M2MB_FTPC_XFER_FILE,
75  M2MB_FTPC_XFER_BUFF,
76  ENUM_TO_INT( M2MB_FTPC_XFER_E )
77 } M2MB_FTPC_XFER_E;
78 
79 typedef enum
80 {
81  M2MB_FTPC_DUMMY_EVT,
82  M2MB_FTPC_RX_START_EVT,
83  M2MB_FTPC_RX_EVT,
84  M2MB_FTPC_RX_END_EVT,
85  M2MB_FTPC_TX_START_EVT,
86  M2MB_FTPC_TX_EVT,
87  M2MB_FTPC_TX_END_EVT,
88  ENUM_TO_INT( M2MB_FTPC_EVT_E )
89 } M2MB_FTPC_EVT_E;
90 
91 
92 /* Global typedefs ==============================================================================*/
93 typedef HANDLE M2MB_FTPC_HANDLE;
94 
95 typedef struct M2MB_FTPC_FILE_TAG
96 {
97  CHAR *path;
98  UINT32 fileSize;
100 
101 typedef struct M2MB_FTPC_BUFFER_TAG
102 {
103  CHAR *buffer;
104  UINT32 bufferSize;
105  UINT32 fileSize;
107 
108 typedef struct M2MB_FTPC_XFER_TAG
109 {
110  M2MB_FTPC_XFER_E type;
111  union
112  {
113  M2MB_FTPC_FILE_T fileInfo;
114  M2MB_FTPC_BUFFER_T buffInfo;
115  } payload;
117 
118 typedef void ( *m2mb_ftpc_ind_callback )( M2MB_FTPC_HANDLE h, M2MB_FTPC_EVT_E ftpc_event,
119  UINT16 resp_size, void *resp_struct, void *userdata );
120 
121 /* Global functions =============================================================================*/
122 
123 /*-----------------------------------------------------------------------------------------------*/
163 /*-----------------------------------------------------------------------------------------------*/
164 M2MB_RESULT_E m2mb_ftpc_init( M2MB_FTPC_HANDLE *pHandle, m2mb_ftpc_ind_callback callback,
165  void *userdata );
166 
167 /*-----------------------------------------------------------------------------------------------*/
197 /*-----------------------------------------------------------------------------------------------*/
198 M2MB_RESULT_E m2mb_ftpc_deinit( M2MB_FTPC_HANDLE handle );
199 
200 /*-----------------------------------------------------------------------------------------------*/
242 /*-----------------------------------------------------------------------------------------------*/
243 M2MB_RESULT_E m2mb_ftpc_conf( M2MB_FTPC_HANDLE handle, UINT8 argc, ... );
244 
245 /*-----------------------------------------------------------------------------------------------*/
274 /*-----------------------------------------------------------------------------------------------*/
275 M2MB_RESULT_E m2mb_ftpc_connect( M2MB_FTPC_HANDLE handle, const CHAR *host );
276 
277 /*-----------------------------------------------------------------------------------------------*/
310 /*-----------------------------------------------------------------------------------------------*/
311 M2MB_RESULT_E m2mb_ftpc_auth_tls( M2MB_FTPC_HANDLE handle );
312 
313 /*-----------------------------------------------------------------------------------------------*/
354 /*-----------------------------------------------------------------------------------------------*/
355 M2MB_RESULT_E m2mb_ftpc_send_pbsz_prot_pair( M2MB_FTPC_HANDLE handle );
356 
357 /*-----------------------------------------------------------------------------------------------*/
390 /*-----------------------------------------------------------------------------------------------*/
391 M2MB_RESULT_E m2mb_ftpc_login( M2MB_FTPC_HANDLE handle, const CHAR *user, const CHAR *pass );
392 
393 /*-----------------------------------------------------------------------------------------------*/
422 /*-----------------------------------------------------------------------------------------------*/
423 M2MB_RESULT_E m2mb_ftpc_abort( M2MB_FTPC_HANDLE handle );
424 
425 /*-----------------------------------------------------------------------------------------------*/
457 /*-----------------------------------------------------------------------------------------------*/
458 M2MB_RESULT_E m2mb_ftpc_quit( M2MB_FTPC_HANDLE handle, M2MB_FTPC_QUIT_CMD_E send_quit );
459 
460 /*-----------------------------------------------------------------------------------------------*/
498 /*-----------------------------------------------------------------------------------------------*/
499 M2MB_RESULT_E m2mb_ftpc_size( M2MB_FTPC_HANDLE handle, const CHAR *path, UINT32 *size,
500  M2MB_FTPC_TRANSFER_MODE_E mode );
501 
502 /*-----------------------------------------------------------------------------------------------*/
540 /*-----------------------------------------------------------------------------------------------*/
541 M2MB_RESULT_E m2mb_ftpc_mod_date( M2MB_FTPC_HANDLE handle, const CHAR *path, CHAR *dt, INT32 max );
542 
543 /*-----------------------------------------------------------------------------------------------*/
580 /*-----------------------------------------------------------------------------------------------*/
581 M2MB_RESULT_E m2mb_ftpc_get( M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path,
582  M2MB_FTPC_TRANSFER_MODE_E mode );
583 
584 /*-----------------------------------------------------------------------------------------------*/
622 /*-----------------------------------------------------------------------------------------------*/
623 M2MB_RESULT_E m2mb_ftpc_put( M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *input, const CHAR *path,
624  M2MB_FTPC_TRANSFER_MODE_E mode );
625 
626 
627 /*-----------------------------------------------------------------------------------------------*/
665 /*-----------------------------------------------------------------------------------------------*/
666 M2MB_RESULT_E m2mb_ftpc_append( M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *input, const CHAR *path,
667  M2MB_FTPC_TRANSFER_MODE_E mode );
668 
669 
670 /*-----------------------------------------------------------------------------------------------*/
706 /*-----------------------------------------------------------------------------------------------*/
707 M2MB_RESULT_E m2mb_ftpc_cdup( M2MB_FTPC_HANDLE handle );
708 
709 /*-----------------------------------------------------------------------------------------------*/
744 /*-----------------------------------------------------------------------------------------------*/
745 M2MB_RESULT_E m2mb_ftpc_chdir( M2MB_FTPC_HANDLE handle, const CHAR *path );
746 
747 /*-----------------------------------------------------------------------------------------------*/
777 /*-----------------------------------------------------------------------------------------------*/
778 CHAR *m2mb_ftpc_last_response( M2MB_FTPC_HANDLE handle );
779 
780 /*-----------------------------------------------------------------------------------------------*/
815 /*-----------------------------------------------------------------------------------------------*/
816 M2MB_RESULT_E m2mb_ftpc_mkdir( M2MB_FTPC_HANDLE handle, const CHAR *path );
817 
818 /*-----------------------------------------------------------------------------------------------*/
856 /*-----------------------------------------------------------------------------------------------*/
857 M2MB_RESULT_E m2mb_ftpc_nlst( M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path );
858 
859 
860 /*-----------------------------------------------------------------------------------------------*/
900 /*-----------------------------------------------------------------------------------------------*/
901 M2MB_RESULT_E m2mb_ftpc_list( M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path,
902  M2MB_FTPC_TRANSFER_MODE_E mode );
903 
904 /*-----------------------------------------------------------------------------------------------*/
942 /*-----------------------------------------------------------------------------------------------*/
943 M2MB_RESULT_E m2mb_ftpc_pwd( M2MB_FTPC_HANDLE handle, CHAR *path, INT32 max );
944 
945 /*-----------------------------------------------------------------------------------------------*/
983 /*-----------------------------------------------------------------------------------------------*/
984 M2MB_RESULT_E m2mb_ftpc_pwd_verbose( M2MB_FTPC_HANDLE handle, CHAR *path, INT32 max );
985 
986 /*-----------------------------------------------------------------------------------------------*/
1023 /*-----------------------------------------------------------------------------------------------*/
1024 M2MB_RESULT_E m2mb_ftpc_rename( M2MB_FTPC_HANDLE handle, const CHAR *src, const CHAR *dst );
1025 
1026 /*-----------------------------------------------------------------------------------------------*/
1061 /*-----------------------------------------------------------------------------------------------*/
1062 M2MB_RESULT_E m2mb_ftpc_rmdir( M2MB_FTPC_HANDLE handle, const CHAR *path );
1063 
1064 /*-----------------------------------------------------------------------------------------------*/
1099 /*-----------------------------------------------------------------------------------------------*/
1100 M2MB_RESULT_E m2mb_ftpc_dele( M2MB_FTPC_HANDLE handle, const CHAR *path );
1101 
1102 
1103 #endif /*M2MB_FTPC_H*/
1104 
1105 
M2MB_FTPC_XFER_TAG
Definition: m2mb_ftpc.h:108
m2mb_ftpc_put
M2MB_RESULT_E m2mb_ftpc_put(M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *input, const CHAR *path, M2MB_FTPC_TRANSFER_MODE_E mode)
m2mb_ftpc_put - uploads local data to remote server (file is overwritten if it already exists).
m2mb_ftpc_cdup
M2MB_RESULT_E m2mb_ftpc_cdup(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_cdup moves to parent directory
m2mb_ftpc_mkdir
M2MB_RESULT_E m2mb_ftpc_mkdir(M2MB_FTPC_HANDLE handle, const CHAR *path)
m2mb_ftpc_mkdir creates a new directory
m2mb_ftpc_size
M2MB_RESULT_E m2mb_ftpc_size(M2MB_FTPC_HANDLE handle, const CHAR *path, UINT32 *size, M2MB_FTPC_TRANSFER_MODE_E mode)
m2mb_ftpc_size retrieves the size of a specific file
m2mb_ftpc_login
M2MB_RESULT_E m2mb_ftpc_login(M2MB_FTPC_HANDLE handle, const CHAR *user, const CHAR *pass)
m2mb_ftpc_login log in to remote server
m2mb_ftpc_nlst
M2MB_RESULT_E m2mb_ftpc_nlst(M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path)
m2mb_ftpc_nlst asks the file list
m2mb_ftpc_last_response
CHAR * m2mb_ftpc_last_response(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_last_response returns a pointer to the last response received
m2mb_ftpc_conf
M2MB_RESULT_E m2mb_ftpc_conf(M2MB_FTPC_HANDLE handle, UINT8 argc,...)
m2mb_ftpc_conf sets/gets some FTP parameters.
m2mb_ftpc_connect
M2MB_RESULT_E m2mb_ftpc_connect(M2MB_FTPC_HANDLE handle, const CHAR *host)
m2mb_ftpc_connect sets a connection to a specific FTP server
m2mb_ftpc_quit
M2MB_RESULT_E m2mb_ftpc_quit(M2MB_FTPC_HANDLE handle, M2MB_FTPC_QUIT_CMD_E send_quit)
m2mb_ftpc_quit disconnects from remote
m2mb_ftpc_rename
M2MB_RESULT_E m2mb_ftpc_rename(M2MB_FTPC_HANDLE handle, const CHAR *src, const CHAR *dst)
m2mb_ftpc_rename renames a file at remote
m2mb_ftpc_abort
M2MB_RESULT_E m2mb_ftpc_abort(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_abort disconnects from remote
m2mb_ftpc_chdir
M2MB_RESULT_E m2mb_ftpc_chdir(M2MB_FTPC_HANDLE handle, const CHAR *path)
m2mb_ftpc_chdir changes path
m2mb_ftpc_send_pbsz_prot_pair
M2MB_RESULT_E m2mb_ftpc_send_pbsz_prot_pair(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_send_pbsz_prot_pair - establishes FTP-S connection.
m2mb_ftpc_auth_tls
M2MB_RESULT_E m2mb_ftpc_auth_tls(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_auth_tls - establishes FTP-S connection.
m2mb_ftpc_get
M2MB_RESULT_E m2mb_ftpc_get(M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path, M2MB_FTPC_TRANSFER_MODE_E mode)
m2mb_ftpc_get retreives a file from remote server.
m2mb_ftpc_dele
M2MB_RESULT_E m2mb_ftpc_dele(M2MB_FTPC_HANDLE handle, const CHAR *path)
m2mb_ftpc_dele removes a file
m2mb_ftpc_rmdir
M2MB_RESULT_E m2mb_ftpc_rmdir(M2MB_FTPC_HANDLE handle, const CHAR *path)
m2mb_ftpc_rmdir removes a directory
m2mb_ftpc_init
M2MB_RESULT_E m2mb_ftpc_init(M2MB_FTPC_HANDLE *pHandle, m2mb_ftpc_ind_callback callback, void *userdata)
m2mb_ftpc_init initializes FTP service for current client.
m2mb_ftpc_pwd_verbose
M2MB_RESULT_E m2mb_ftpc_pwd_verbose(M2MB_FTPC_HANDLE handle, CHAR *path, INT32 max)
m2mb_ftpc_pwd_verbose gets the response from "PWD" command
m2mb_ftpc_list
M2MB_RESULT_E m2mb_ftpc_list(M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *output, const CHAR *path, M2MB_FTPC_TRANSFER_MODE_E mode)
m2mb_ftpc_list - downloads a list of file from a given path
m2mb_ftpc_mod_date
M2MB_RESULT_E m2mb_ftpc_mod_date(M2MB_FTPC_HANDLE handle, const CHAR *path, CHAR *dt, INT32 max)
m2mb_ftpc_mod_date provides information about last file modification
M2MB_FTPC_BUFFER_TAG
Definition: m2mb_ftpc.h:101
m2mb_ftpc_deinit
M2MB_RESULT_E m2mb_ftpc_deinit(M2MB_FTPC_HANDLE handle)
m2mb_ftpc_deinit deinitializes FTP service for current client.
m2mb_ftpc_pwd
M2MB_RESULT_E m2mb_ftpc_pwd(M2MB_FTPC_HANDLE handle, CHAR *path, INT32 max)
m2mb_ftpc_pwd gets working directory
m2mb_ftpc_append
M2MB_RESULT_E m2mb_ftpc_append(M2MB_FTPC_HANDLE handle, M2MB_FTPC_XFER_T *input, const CHAR *path, M2MB_FTPC_TRANSFER_MODE_E mode)
m2mb_ftpc_append uploads local data to remote server (data is append, if file exists).
M2MB_FTPC_FILE_TAG
Definition: m2mb_ftpc.h:95