added Info.plist
[TestXSLT.git] / libxml2 / doc / html / libxml-nanoftp.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>nanoftp</title><meta name="generator" content="DocBook XSL Stylesheets V1.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
2         .synopsis, .classsynopsis {
3             background: #eeeeee;
4             border: solid 1px #aaaaaa;
5             padding: 0.5em;
6         }
7         .programlisting {
8             background: #eeeeff;
9             border: solid 1px #aaaaff;
10             padding: 0.5em;
11         }
12         .variablelist {
13             padding: 4px;
14             margin-left: 3em;
15         }
16         .navigation {
17             background: #ffeeee;
18             border: solid 1px #ffaaaa;
19             margin-top: 0.5em;
20             margin-bottom: 0.5em;
21         }
22         .navigation a {
23             color: #770000;
24         }
25         .navigation a:visited {
26             color: #550000;
27         }
28         .navigation .title {
29             font-size: 200%;
30         }
31       </style><link rel="home" href="index.html" title="Gnome XML Library Reference Manual"><link rel="up" href="libxml-lib.html" title="Libxml Library Reference"><link rel="previous" href="libxml-nanohttp.html" title="nanohttp"><link rel="next" href="libxml-xmlIO.html" title="xmlIO"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-nanohttp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="libxml-lib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td><th width="100%" align="center">Gnome XML Library Reference Manual</th><td><a accesskey="n" href="libxml-xmlIO.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td></tr></table><div class="refentry" lang="en"><a name="libxml-nanoftp"></a><div class="titlepage"></div><div class="refnamediv"><h2>nanoftp</h2><p>nanoftp &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
32
33
34
35 void        (<a href="libxml-nanoftp.html#ftpListCallback">*ftpListCallback</a>)              (void *userData,
36                                              const char *filename,
37                                              const char *attrib,
38                                              const char *owner,
39                                              const char *group,
40                                              unsigned <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="long-size">long size</GTKDOCLINK>,
41                                              int links,
42                                              int year,
43                                              const char *month,
44                                              int day,
45                                              int hour,
46                                              int minute);
47 void        (<a href="libxml-nanoftp.html#ftpDataCallback">*ftpDataCallback</a>)              (void *userData,
48                                              const char *data,
49                                              int len);
50 void        <a href="libxml-nanoftp.html#xmlNanoFTPInit">xmlNanoFTPInit</a>                  (void);
51 void        <a href="libxml-nanoftp.html#xmlNanoFTPCleanup">xmlNanoFTPCleanup</a>               (void);
52 void*       <a href="libxml-nanoftp.html#xmlNanoFTPNewCtxt">xmlNanoFTPNewCtxt</a>               (const char *URL);
53 void        <a href="libxml-nanoftp.html#xmlNanoFTPFreeCtxt">xmlNanoFTPFreeCtxt</a>              (void *ctx);
54 void*       <a href="libxml-nanoftp.html#xmlNanoFTPConnectTo">xmlNanoFTPConnectTo</a>             (const char *server,
55                                              int port);
56 void*       <a href="libxml-nanoftp.html#xmlNanoFTPOpen">xmlNanoFTPOpen</a>                  (const char *URL);
57 int         <a href="libxml-nanoftp.html#xmlNanoFTPConnect">xmlNanoFTPConnect</a>               (void *ctx);
58 int         <a href="libxml-nanoftp.html#xmlNanoFTPClose">xmlNanoFTPClose</a>                 (void *ctx);
59 int         <a href="libxml-nanoftp.html#xmlNanoFTPQuit">xmlNanoFTPQuit</a>                  (void *ctx);
60 void        <a href="libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a>             (const char *URL);
61 void        <a href="libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a>                 (const char *host,
62                                              int port,
63                                              const char *user,
64                                              const char *passwd,
65                                              int type);
66 int         <a href="libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a>             (void *ctx,
67                                              const char *URL);
68 int         <a href="libxml-nanoftp.html#xmlNanoFTPGetResponse">xmlNanoFTPGetResponse</a>           (void *ctx);
69 int         <a href="libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a>         (void *ctx);
70 int         <a href="libxml-nanoftp.html#xmlNanoFTPCwd">xmlNanoFTPCwd</a>                   (void *ctx,
71                                              char *directory);
72 int         <a href="libxml-nanoftp.html#xmlNanoFTPDele">xmlNanoFTPDele</a>                  (void *ctx,
73                                              char *file);
74 int         <a href="libxml-nanoftp.html#xmlNanoFTPGetConnection">xmlNanoFTPGetConnection</a>         (void *ctx);
75 int         <a href="libxml-nanoftp.html#xmlNanoFTPCloseConnection">xmlNanoFTPCloseConnection</a>       (void *ctx);
76 int         <a href="libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a>                  (void *ctx,
77                                              <a href="libxml-nanoftp.html#ftpListCallback">ftpListCallback</a> callback,
78                                              void *userData,
79                                              char *filename);
80 int         <a href="libxml-nanoftp.html#xmlNanoFTPGetSocket">xmlNanoFTPGetSocket</a>             (void *ctx,
81                                              const char *filename);
82 int         <a href="libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a>                   (void *ctx,
83                                              <a href="libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback,
84                                              void *userData,
85                                              const char *filename);
86 int         <a href="libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a>                  (void *ctx,
87                                              void *dest,
88                                              int len);
89 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
90
91 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="ftpListCallback"></a>ftpListCallback ()</h3><pre class="programlisting">void        (*ftpListCallback)              (void *userData,
92                                              const char *filename,
93                                              const char *attrib,
94                                              const char *owner,
95                                              const char *group,
96                                              unsigned <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="long-size">long size</GTKDOCLINK>,
97                                              int links,
98                                              int year,
99                                              const char *month,
100                                              int day,
101                                              int hour,
102                                              int minute);</pre><p>
103 A callback for the xmlNanoFTPList command.
104 Note that only one of year and day:minute are specified.</p><p>
105
106 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>userData</tt></i> :</span></td><td>  user provided data for the callback
107 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td>  the file name (including "-&gt;" when links are shown)
108 </td></tr><tr><td><span class="term"><i><tt>attrib</tt></i> :</span></td><td>  the attribute string
109 </td></tr><tr><td><span class="term"><i><tt>owner</tt></i> :</span></td><td>  the owner string
110 </td></tr><tr><td><span class="term"><i><tt>group</tt></i> :</span></td><td>  the group string
111 </td></tr><tr><td><span class="term"><i><tt>Param6</tt></i> :</span></td><td>
112 </td></tr><tr><td><span class="term"><i><tt>links</tt></i> :</span></td><td>  the link count
113 </td></tr><tr><td><span class="term"><i><tt>year</tt></i> :</span></td><td>  the year
114 </td></tr><tr><td><span class="term"><i><tt>month</tt></i> :</span></td><td>  the month
115 </td></tr><tr><td><span class="term"><i><tt>day</tt></i> :</span></td><td>  the day
116 </td></tr><tr><td><span class="term"><i><tt>hour</tt></i> :</span></td><td>  the hour
117 </td></tr><tr><td><span class="term"><i><tt>minute</tt></i> :</span></td><td>  the minute
118 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="ftpDataCallback"></a>ftpDataCallback ()</h3><pre class="programlisting">void        (*ftpDataCallback)              (void *userData,
119                                              const char *data,
120                                              int len);</pre><p>
121 A callback for the xmlNanoFTPGet command.</p><p>
122
123 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>userData</tt></i> :</span></td><td> the user provided context
124 </td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the data received
125 </td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> its size in bytes
126 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPInit"></a>xmlNanoFTPInit ()</h3><pre class="programlisting">void        xmlNanoFTPInit                  (void);</pre><p>
127 Initialize the FTP protocol layer.
128 Currently it just checks for proxy informations,
129 and get the hostname</p><p>
130
131 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCleanup"></a>xmlNanoFTPCleanup ()</h3><pre class="programlisting">void        xmlNanoFTPCleanup               (void);</pre><p>
132 Cleanup the FTP protocol layer. This cleanup proxy informations.</p><p>
133
134 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPNewCtxt"></a>xmlNanoFTPNewCtxt ()</h3><pre class="programlisting">void*       xmlNanoFTPNewCtxt               (const char *URL);</pre><p>
135 Allocate and initialize a new FTP context.</p><p>
136
137 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td>  The URL used to initialize the context
138 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPFreeCtxt"></a>xmlNanoFTPFreeCtxt ()</h3><pre class="programlisting">void        xmlNanoFTPFreeCtxt              (void *ctx);</pre><p>
139 Frees the context after closing the connection.</p><p>
140
141 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
142 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPConnectTo"></a>xmlNanoFTPConnectTo ()</h3><pre class="programlisting">void*       xmlNanoFTPConnectTo             (const char *server,
143                                              int port);</pre><p>
144 Tries to open a control connection to the given server/port</p><p>
145
146 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>server</tt></i> :</span></td><td>  an FTP server name
147 </td></tr><tr><td><span class="term"><i><tt>port</tt></i> :</span></td><td>  the port (use 21 if 0)
148 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPOpen"></a>xmlNanoFTPOpen ()</h3><pre class="programlisting">void*       xmlNanoFTPOpen                  (const char *URL);</pre><p>
149 Start to fetch the given ftp:// resource</p><p>
150
151 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL to the resource
152 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPConnect"></a>xmlNanoFTPConnect ()</h3><pre class="programlisting">int         xmlNanoFTPConnect               (void *ctx);</pre><p>
153 Tries to open a control connection</p><p>
154
155 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
156 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case of error, 0 otherwise
157 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPClose"></a>xmlNanoFTPClose ()</h3><pre class="programlisting">int         xmlNanoFTPClose                 (void *ctx);</pre><p>
158 Close the connection and both control and transport</p><p>
159
160 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an FTP context
161 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 0 otherwise
162 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPQuit"></a>xmlNanoFTPQuit ()</h3><pre class="programlisting">int         xmlNanoFTPQuit                  (void *ctx);</pre><p>
163 Send a QUIT command to the server</p><p>
164
165 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
166 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case of error, 0 otherwise
167 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPScanProxy"></a>xmlNanoFTPScanProxy ()</h3><pre class="programlisting">void        xmlNanoFTPScanProxy             (const char *URL);</pre><p>
168 (Re)Initialize the FTP Proxy context by parsing the URL and finding
169 the protocol host port it indicates.
170 Should be like ftp://myproxy/ or ftp://myproxy:3128/
171 A NULL URL cleans up proxy informations.</p><p>
172
173 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td>  The proxy URL used to initialize the proxy context
174 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPProxy"></a>xmlNanoFTPProxy ()</h3><pre class="programlisting">void        xmlNanoFTPProxy                 (const char *host,
175                                              int port,
176                                              const char *user,
177                                              const char *passwd,
178                                              int type);</pre><p>
179 Setup the FTP proxy informations.
180 This can also be done by using ftp_proxy ftp_proxy_user and
181 ftp_proxy_password environment variables.</p><p>
182
183 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>host</tt></i> :</span></td><td>  the proxy host name
184 </td></tr><tr><td><span class="term"><i><tt>port</tt></i> :</span></td><td>  the proxy port
185 </td></tr><tr><td><span class="term"><i><tt>user</tt></i> :</span></td><td>  the proxy user name
186 </td></tr><tr><td><span class="term"><i><tt>passwd</tt></i> :</span></td><td>  the proxy password
187 </td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td>  the type of proxy 1 for using SITE, 2 for USER a<i><tt>b</tt></i>
188 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPUpdateURL"></a>xmlNanoFTPUpdateURL ()</h3><pre class="programlisting">int         xmlNanoFTPUpdateURL             (void *ctx,
189                                              const char *URL);</pre><p>
190 Update an FTP context by parsing the URL and finding
191 new path it indicates. If there is an error in the 
192 protocol, hostname, port or other information, the
193 error is raised. It indicates a new connection has to
194 be established.</p><p>
195
196 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
197 </td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td>  The URL used to update the context
198 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if Ok, -1 in case of error (other host).
199 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetResponse"></a>xmlNanoFTPGetResponse ()</h3><pre class="programlisting">int         xmlNanoFTPGetResponse           (void *ctx);</pre><p>
200 Get the response from the FTP server after a command.</p><p>
201
202 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
203 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the code number
204 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCheckResponse"></a>xmlNanoFTPCheckResponse ()</h3><pre class="programlisting">int         xmlNanoFTPCheckResponse         (void *ctx);</pre><p>
205 Check if there is a response from the FTP server after a command.</p><p>
206
207 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
208 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the code number, or 0
209 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCwd"></a>xmlNanoFTPCwd ()</h3><pre class="programlisting">int         xmlNanoFTPCwd                   (void *ctx,
210                                              char *directory);</pre><p>
211 Tries to change the remote directory</p><p>
212
213 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
214 </td></tr><tr><td><span class="term"><i><tt>directory</tt></i> :</span></td><td>  a directory on the server
215 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 1 if CWD worked, 0 if it failed
216 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPDele"></a>xmlNanoFTPDele ()</h3><pre class="programlisting">int         xmlNanoFTPDele                  (void *ctx,
217                                              char *file);</pre><p>
218 Tries to delete an item (file or directory) from server</p><p>
219
220 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
221 </td></tr><tr><td><span class="term"><i><tt>file</tt></i> :</span></td><td>  a file or directory on the server
222 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 1 if DELE worked, 0 if it failed
223 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetConnection"></a>xmlNanoFTPGetConnection ()</h3><pre class="programlisting">int         xmlNanoFTPGetConnection         (void *ctx);</pre><p>
224 Try to open a data connection to the server. Currently only
225 passive mode is supported.</p><p>
226
227 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
228 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 0 otherwise
229 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPCloseConnection"></a>xmlNanoFTPCloseConnection ()</h3><pre class="programlisting">int         xmlNanoFTPCloseConnection       (void *ctx);</pre><p>
230 Close the data connection from the server</p><p>
231
232 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
233 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 0 otherwise
234 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPList"></a>xmlNanoFTPList ()</h3><pre class="programlisting">int         xmlNanoFTPList                  (void *ctx,
235                                              <a href="libxml-nanoftp.html#ftpListCallback">ftpListCallback</a> callback,
236                                              void *userData,
237                                              char *filename);</pre><p>
238 Do a listing on the server. All files info are passed back
239 in the callbacks.</p><p>
240
241 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
242 </td></tr><tr><td><span class="term"><i><tt>callback</tt></i> :</span></td><td>  the user callback
243 </td></tr><tr><td><span class="term"><i><tt>userData</tt></i> :</span></td><td>  the user callback data
244 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td>  optional files to list
245 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 0 otherwise
246 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGetSocket"></a>xmlNanoFTPGetSocket ()</h3><pre class="programlisting">int         xmlNanoFTPGetSocket             (void *ctx,
247                                              const char *filename);</pre><p>
248 Initiate fetch of the given file from the server.</p><p>
249
250 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
251 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td>  the file to retrieve (or NULL if path is in context).
252 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the socket for the data connection, or &lt;0 in case of error
253 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPGet"></a>xmlNanoFTPGet ()</h3><pre class="programlisting">int         xmlNanoFTPGet                   (void *ctx,
254                                              <a href="libxml-nanoftp.html#ftpDataCallback">ftpDataCallback</a> callback,
255                                              void *userData,
256                                              const char *filename);</pre><p>
257 Fetch the given file from the server. All data are passed back
258 in the callbacks. The last callback has a size of 0 block.</p><p>
259
260 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an FTP context
261 </td></tr><tr><td><span class="term"><i><tt>callback</tt></i> :</span></td><td>  the user callback
262 </td></tr><tr><td><span class="term"><i><tt>userData</tt></i> :</span></td><td>  the user callback data
263 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td>  the file to retrieve
264 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 incase of error, 0 otherwise
265 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoFTPRead"></a>xmlNanoFTPRead ()</h3><pre class="programlisting">int         xmlNanoFTPRead                  (void *ctx,
266                                              void *dest,
267                                              int len);</pre><p>
268 This function tries to read <i><tt>len</tt></i> bytes from the existing FTP connection
269 and saves them in <i><tt>dest</tt></i>. This is a blocking call.</p><p>
270
271 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  the FTP context
272 </td></tr><tr><td><span class="term"><i><tt>dest</tt></i> :</span></td><td>  a buffer
273 </td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td>  the buffer length
274 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of byte read. 0 is an indication of an end of connection.
275         -1 indicates a parameter error.
276 </td></tr></tbody></table></div></div></div></div><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxml-nanohttp.html"><b>&lt;&lt; nanohttp</b></a></td><td align="right"><a accesskey="n" href="libxml-xmlIO.html"><b>xmlIO &gt;&gt;</b></a></td></tr></table></body></html>