<HTML ><HEAD ><TITLE >nanoftp</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.64 "><LINK REL="HOME" TITLE="Gnome XML Library Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Libxml Library Reference" HREF="libxml-lib.html"><LINK REL="PREVIOUS" TITLE="nanohttp" HREF="libxml-nanohttp.html"><LINK REL="NEXT" TITLE="xmlIO" HREF="libxml-xmlio.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="5" >Gnome XML Library Reference Manual</FONT ></TH ></TR ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="libxml-nanohttp.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="libxml-lib.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="libxml-xmlio.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ></TABLE ></DIV ><H1 ><A NAME="LIBXML-NANOFTP" >nanoftp</A ></H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN17538" ></A ><H2 >Name</H2 >nanoftp -- </DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN17541" ></A ><H2 >Synopsis</H2 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="SYNOPSIS" > void (<A HREF="libxml-nanoftp.html#FTPLISTCALLBACK" >*ftpListCallback</A >) (void *userData, const char *filename, const char *attrib, const char *owner, const char *group, unsigned <GTKDOCLINK HREF="LONG" >long</GTKDOCLINK > size, int links, int year, const char *month, int day, int hour, int minute); void (<A HREF="libxml-nanoftp.html#FTPDATACALLBACK" >*ftpDataCallback</A >) (void *userData, const char *data, int len); void <A HREF="libxml-nanoftp.html#XMLNANOFTPINIT" >xmlNanoFTPInit</A > (void); void <A HREF="libxml-nanoftp.html#XMLNANOFTPCLEANUP" >xmlNanoFTPCleanup</A > (void); void* <A HREF="libxml-nanoftp.html#XMLNANOFTPNEWCTXT" >xmlNanoFTPNewCtxt</A > (const char *URL); void <A HREF="libxml-nanoftp.html#XMLNANOFTPFREECTXT" >xmlNanoFTPFreeCtxt</A > (void *ctx); void* <A HREF="libxml-nanoftp.html#XMLNANOFTPCONNECTTO" >xmlNanoFTPConnectTo</A > (const char *server, int port); void* <A HREF="libxml-nanoftp.html#XMLNANOFTPOPEN" >xmlNanoFTPOpen</A > (const char *URL); int <A HREF="libxml-nanoftp.html#XMLNANOFTPCONNECT" >xmlNanoFTPConnect</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPCLOSE" >xmlNanoFTPClose</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPQUIT" >xmlNanoFTPQuit</A > (void *ctx); void <A HREF="libxml-nanoftp.html#XMLNANOFTPSCANPROXY" >xmlNanoFTPScanProxy</A > (const char *URL); void <A HREF="libxml-nanoftp.html#XMLNANOFTPPROXY" >xmlNanoFTPProxy</A > (const char *host, int port, const char *user, const char *passwd, int type); int <A HREF="libxml-nanoftp.html#XMLNANOFTPUPDATEURL" >xmlNanoFTPUpdateURL</A > (void *ctx, const char *URL); int <A HREF="libxml-nanoftp.html#XMLNANOFTPGETRESPONSE" >xmlNanoFTPGetResponse</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPCHECKRESPONSE" >xmlNanoFTPCheckResponse</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPCWD" >xmlNanoFTPCwd</A > (void *ctx, char *directory); int <A HREF="libxml-nanoftp.html#XMLNANOFTPGETCONNECTION" >xmlNanoFTPGetConnection</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPCLOSECONNECTION" >xmlNanoFTPCloseConnection</A > (void *ctx); int <A HREF="libxml-nanoftp.html#XMLNANOFTPLIST" >xmlNanoFTPList</A > (void *ctx, <A HREF="libxml-nanoftp.html#FTPLISTCALLBACK" >ftpListCallback</A > callback, void *userData, char *filename); int <A HREF="libxml-nanoftp.html#XMLNANOFTPGETSOCKET" >xmlNanoFTPGetSocket</A > (void *ctx, const char *filename); int <A HREF="libxml-nanoftp.html#XMLNANOFTPGET" >xmlNanoFTPGet</A > (void *ctx, <A HREF="libxml-nanoftp.html#FTPDATACALLBACK" >ftpDataCallback</A > callback, void *userData, const char *filename); int <A HREF="libxml-nanoftp.html#XMLNANOFTPREAD" >xmlNanoFTPRead</A > (void *ctx, void *dest, int len);</PRE ></TD ></TR ></TABLE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN17570" ></A ><H2 >Description</H2 ><P ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN17573" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN17575" ></A ><H3 ><A NAME="FTPLISTCALLBACK" ></A >ftpListCallback ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void (*ftpListCallback) (void *userData, const char *filename, const char *attrib, const char *owner, const char *group, unsigned <GTKDOCLINK HREF="LONG" >long</GTKDOCLINK > size, int links, int year, const char *month, int day, int hour, int minute);</PRE ></TD ></TR ></TABLE ><P >A callback for the xmlNanoFTPList command Note that only one of year and day:minute are specified</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17582" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >userData</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > user provided data for the callback</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >filename</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the file name (including "->" when links are shown)</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >attrib</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the attribute string</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >owner</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the owner string</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >group</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the group string</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >size</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the file size</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >links</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the link count</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >year</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the year</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >month</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the month</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >day</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the day</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >hour</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the hour</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >minute</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the minute</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17635" ></A ><H3 ><A NAME="FTPDATACALLBACK" ></A >ftpDataCallback ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void (*ftpDataCallback) (void *userData, const char *data, int len);</PRE ></TD ></TR ></TABLE ><P >A callback for the xmlNanoFTPGet command</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17641" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >userData</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the user provided context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >data</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the data received</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >len</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > its size in bytes</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17658" ></A ><H3 ><A NAME="XMLNANOFTPINIT" ></A >xmlNanoFTPInit ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void xmlNanoFTPInit (void);</PRE ></TD ></TR ></TABLE ><P >Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</P ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17664" ></A ><H3 ><A NAME="XMLNANOFTPCLEANUP" ></A >xmlNanoFTPCleanup ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void xmlNanoFTPCleanup (void);</PRE ></TD ></TR ></TABLE ><P >Cleanup the FTP protocol layer. This cleanup proxy informations.</P ><P ></P ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17670" ></A ><H3 ><A NAME="XMLNANOFTPNEWCTXT" ></A >xmlNanoFTPNewCtxt ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void* xmlNanoFTPNewCtxt (const char *URL);</PRE ></TD ></TR ></TABLE ><P >Allocate and initialize a new FTP context.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17676" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >URL</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > The URL used to initialize the context</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17685" ></A ><H3 ><A NAME="XMLNANOFTPFREECTXT" ></A >xmlNanoFTPFreeCtxt ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void xmlNanoFTPFreeCtxt (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Frees the context after closing the connection.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17691" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17700" ></A ><H3 ><A NAME="XMLNANOFTPCONNECTTO" ></A >xmlNanoFTPConnectTo ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void* xmlNanoFTPConnectTo (const char *server, int port);</PRE ></TD ></TR ></TABLE ><P >Tries to open a control connection to the given server/port</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17706" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >server</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP server name</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >port</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the port (use 21 if 0)</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17719" ></A ><H3 ><A NAME="XMLNANOFTPOPEN" ></A >xmlNanoFTPOpen ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void* xmlNanoFTPOpen (const char *URL);</PRE ></TD ></TR ></TABLE ><P >Start to fetch the given ftp:// resource</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17725" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >URL</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the URL to the resource</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17734" ></A ><H3 ><A NAME="XMLNANOFTPCONNECT" ></A >xmlNanoFTPConnect ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPConnect (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Tries to open a control connection</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17740" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 in case of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17753" ></A ><H3 ><A NAME="XMLNANOFTPCLOSE" ></A >xmlNanoFTPClose ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPClose (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Close the connection and both control and transport</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17759" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17772" ></A ><H3 ><A NAME="XMLNANOFTPQUIT" ></A >xmlNanoFTPQuit ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPQuit (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Send a QUIT command to the server</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17778" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 in case of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17791" ></A ><H3 ><A NAME="XMLNANOFTPSCANPROXY" ></A >xmlNanoFTPScanProxy ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void xmlNanoFTPScanProxy (const char *URL);</PRE ></TD ></TR ></TABLE ><P >(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17797" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >URL</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > The proxy URL used to initialize the proxy context</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17806" ></A ><H3 ><A NAME="XMLNANOFTPPROXY" ></A >xmlNanoFTPProxy ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void xmlNanoFTPProxy (const char *host, int port, const char *user, const char *passwd, int type);</PRE ></TD ></TR ></TABLE ><P >Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17812" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >host</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the proxy host name</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >port</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the proxy port</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >user</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the proxy user name</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >passwd</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the proxy password</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >type</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the type of proxy 1 for using SITE, 2 for USER a<TT CLASS="PARAMETER" ><I >b</I ></TT ></TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17838" ></A ><H3 ><A NAME="XMLNANOFTPUPDATEURL" ></A >xmlNanoFTPUpdateURL ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPUpdateURL (void *ctx, const char *URL);</PRE ></TD ></TR ></TABLE ><P >Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17844" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >URL</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > The URL used to update the context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >0 if Ok, -1 in case of error (other host).</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17861" ></A ><H3 ><A NAME="XMLNANOFTPGETRESPONSE" ></A >xmlNanoFTPGetResponse ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPGetResponse (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Get the response from the FTP server after a command.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17867" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >the code number</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17880" ></A ><H3 ><A NAME="XMLNANOFTPCHECKRESPONSE" ></A >xmlNanoFTPCheckResponse ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPCheckResponse (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Check if there is a response from the FTP server after a command.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17886" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >the code number, or 0</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17899" ></A ><H3 ><A NAME="XMLNANOFTPCWD" ></A >xmlNanoFTPCwd ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPCwd (void *ctx, char *directory);</PRE ></TD ></TR ></TABLE ><P >Tries to change the remote directory</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17905" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >directory</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > a directory on the server</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 1 if CWD worked, 0 if it failed</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17922" ></A ><H3 ><A NAME="XMLNANOFTPGETCONNECTION" ></A >xmlNanoFTPGetConnection ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPGetConnection (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Try to open a data connection to the server. Currently only passive mode is supported.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17928" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17941" ></A ><H3 ><A NAME="XMLNANOFTPCLOSECONNECTION" ></A >xmlNanoFTPCloseConnection ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPCloseConnection (void *ctx);</PRE ></TD ></TR ></TABLE ><P >Close the data connection from the server</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17947" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17960" ></A ><H3 ><A NAME="XMLNANOFTPLIST" ></A >xmlNanoFTPList ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPList (void *ctx, <A HREF="libxml-nanoftp.html#FTPLISTCALLBACK" >ftpListCallback</A > callback, void *userData, char *filename);</PRE ></TD ></TR ></TABLE ><P >Do a listing on the server. All files info are passed back in the callbacks.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17967" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >callback</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the user callback</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >userData</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the user callback data</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >filename</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > optional files to list</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17992" ></A ><H3 ><A NAME="XMLNANOFTPGETSOCKET" ></A >xmlNanoFTPGetSocket ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPGetSocket (void *ctx, const char *filename);</PRE ></TD ></TR ></TABLE ><P >Initiate fetch of the given file from the server.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN17998" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >filename</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the file to retrieve (or NULL if path is in context).</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >the socket for the data connection, or <0 in case of error</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN18015" ></A ><H3 ><A NAME="XMLNANOFTPGET" ></A >xmlNanoFTPGet ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPGet (void *ctx, <A HREF="libxml-nanoftp.html#FTPDATACALLBACK" >ftpDataCallback</A > callback, void *userData, const char *filename);</PRE ></TD ></TR ></TABLE ><P >Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN18022" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > an FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >callback</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the user callback</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >userData</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the user callback data</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >filename</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the file to retrieve</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >-1 incase of error, 0 otherwise</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN18047" ></A ><H3 ><A NAME="XMLNANOFTPREAD" ></A >xmlNanoFTPRead ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >int xmlNanoFTPRead (void *ctx, void *dest, int len);</PRE ></TD ></TR ></TABLE ><P >This function tries to read <TT CLASS="PARAMETER" ><I >len</I ></TT > bytes from the existing FTP connection and saves them in <TT CLASS="PARAMETER" ><I >dest</I ></TT >. This is a blocking call.</P ><P ></P ><DIV CLASS="INFORMALTABLE" ><A NAME="AEN18055" ></A ><P ></P ><TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFD0D0" CELLSPACING="0" CELLPADDING="4" CLASS="CALSTABLE" ><TBODY ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >ctx</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the FTP context</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >dest</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > a buffer</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><TT CLASS="PARAMETER" ><I >len</I ></TT > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" > the buffer length</TD ></TR ><TR ><TD WIDTH="20%" ALIGN="RIGHT" VALIGN="TOP" ><I CLASS="EMPHASIS" >Returns</I > :</TD ><TD WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" >the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><BR CLEAR="all"><BR><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="libxml-nanohttp.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="libxml-lib.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="libxml-xmlio.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ><TR ><TD COLSPAN="2" ALIGN="left" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >nanohttp</B ></FONT ></TD ><TD COLSPAN="2" ALIGN="right" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >xmlIO</B ></FONT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >