1 /*
2 * Summary: minimal FTP implementation
3 * Description: minimal FTP implementation allowing to fetch resources
4 * like external subset. This module is DEPRECATED, do not
5 * use any of its functions.
6 *
7 * Copy: See Copyright for the status of this software.
8 *
9 * Author: Daniel Veillard
10 */
11
12 #ifndef __NANO_FTP_H__
13 #define __NANO_FTP_H__
14
15 #include <libxml/xmlversion.h>
16
17 #if defined(LIBXML_FTP_ENABLED)
18
19 /* Needed for portability to Windows 64 bits */
20 #if defined(_WIN32)
21 #include <winsock2.h>
22 #else
23 /**
24 * SOCKET:
25 *
26 * macro used to provide portability of code to windows sockets
27 */
28 #define SOCKET int
29 /**
30 * INVALID_SOCKET:
31 *
32 * macro used to provide portability of code to windows sockets
33 * the value to be used when the socket is not valid
34 */
35 #undef INVALID_SOCKET
36 #define INVALID_SOCKET (-1)
37 #endif
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 /**
44 * ftpListCallback:
45 * @userData: user provided data for the callback
46 * @filename: the file name (including "->" when links are shown)
47 * @attrib: the attribute string
48 * @owner: the owner string
49 * @group: the group string
50 * @size: the file size
51 * @links: the link count
52 * @year: the year
53 * @month: the month
54 * @day: the day
55 * @hour: the hour
56 * @minute: the minute
57 *
58 * A callback for the xmlNanoFTPList command.
59 * Note that only one of year and day:minute are specified.
60 */
61 typedef void (*ftpListCallback) (void *userData,
62 const char *filename, const char *attrib,
63 const char *owner, const char *group,
64 unsigned long size, int links, int year,
65 const char *month, int day, int hour,
66 int minute);
67 /**
68 * ftpDataCallback:
69 * @userData: the user provided context
70 * @data: the data received
71 * @len: its size in bytes
72 *
73 * A callback for the xmlNanoFTPGet command.
74 */
75 typedef void (*ftpDataCallback) (void *userData,
76 const char *data,
77 int len);
78
79 /*
80 * Init
81 */
82 XML_DEPRECATED
83 XMLPUBFUN void
84 xmlNanoFTPInit (void);
85 XML_DEPRECATED
86 XMLPUBFUN void
87 xmlNanoFTPCleanup (void);
88
89 /*
90 * Creating/freeing contexts.
91 */
92 XML_DEPRECATED
93 XMLPUBFUN void *
94 xmlNanoFTPNewCtxt (const char *URL);
95 XML_DEPRECATED
96 XMLPUBFUN void
97 xmlNanoFTPFreeCtxt (void * ctx);
98 XML_DEPRECATED
99 XMLPUBFUN void *
100 xmlNanoFTPConnectTo (const char *server,
101 int port);
102 /*
103 * Opening/closing session connections.
104 */
105 XML_DEPRECATED
106 XMLPUBFUN void *
107 xmlNanoFTPOpen (const char *URL);
108 XML_DEPRECATED
109 XMLPUBFUN int
110 xmlNanoFTPConnect (void *ctx);
111 XML_DEPRECATED
112 XMLPUBFUN int
113 xmlNanoFTPClose (void *ctx);
114 XML_DEPRECATED
115 XMLPUBFUN int
116 xmlNanoFTPQuit (void *ctx);
117 XML_DEPRECATED
118 XMLPUBFUN void
119 xmlNanoFTPScanProxy (const char *URL);
120 XML_DEPRECATED
121 XMLPUBFUN void
122 xmlNanoFTPProxy (const char *host,
123 int port,
124 const char *user,
125 const char *passwd,
126 int type);
127 XML_DEPRECATED
128 XMLPUBFUN int
129 xmlNanoFTPUpdateURL (void *ctx,
130 const char *URL);
131
132 /*
133 * Rather internal commands.
134 */
135 XML_DEPRECATED
136 XMLPUBFUN int
137 xmlNanoFTPGetResponse (void *ctx);
138 XML_DEPRECATED
139 XMLPUBFUN int
140 xmlNanoFTPCheckResponse (void *ctx);
141
142 /*
143 * CD/DIR/GET handlers.
144 */
145 XML_DEPRECATED
146 XMLPUBFUN int
147 xmlNanoFTPCwd (void *ctx,
148 const char *directory);
149 XML_DEPRECATED
150 XMLPUBFUN int
151 xmlNanoFTPDele (void *ctx,
152 const char *file);
153
154 XML_DEPRECATED
155 XMLPUBFUN SOCKET
156 xmlNanoFTPGetConnection (void *ctx);
157 XML_DEPRECATED
158 XMLPUBFUN int
159 xmlNanoFTPCloseConnection(void *ctx);
160 XML_DEPRECATED
161 XMLPUBFUN int
162 xmlNanoFTPList (void *ctx,
163 ftpListCallback callback,
164 void *userData,
165 const char *filename);
166 XML_DEPRECATED
167 XMLPUBFUN SOCKET
168 xmlNanoFTPGetSocket (void *ctx,
169 const char *filename);
170 XML_DEPRECATED
171 XMLPUBFUN int
172 xmlNanoFTPGet (void *ctx,
173 ftpDataCallback callback,
174 void *userData,
175 const char *filename);
176 XML_DEPRECATED
177 XMLPUBFUN int
178 xmlNanoFTPRead (void *ctx,
179 void *dest,
180 int len);
181
182 #ifdef __cplusplus
183 }
184 #endif
185 #endif /* defined(LIBXML_FTP_ENABLED) || defined(LIBXML_LEGACY_ENABLED) */
186 #endif /* __NANO_FTP_H__ */