void (*ftpListCallback) (void *userData,
const char *filename,
const char *attrib,
const char *owner,
const char *group,
unsigned long size,
int links,
int year,
const char *month,
int day,
int hour,
int minute);
userData :
filename :
attrib :
owner :
group :
size :
links :
year :
month :
day :
hour :
minute :
ftpDataCallback ()
void (*ftpDataCallback) (void *userData,
const char *data,
int len);
userData :
data :
len :
xmlNanoFTPInit ()
void xmlNanoFTPInit (void);
Initialize the FTP protocol layer.
Currently it just checks for proxy informations,
and get the hostname
xmlNanoFTPCleanup ()
void xmlNanoFTPCleanup (void);
xmlNanoFTPNewCtxt ()
void* xmlNanoFTPNewCtxt (const char *URL);
Allocate and initialize a new FTP context.
URL :
The URL used to initialize the context
xmlNanoFTPFreeCtxt ()
void xmlNanoFTPFreeCtxt (void *ctx);
Frees the context after closing the connection.
ctx :
an FTP context
xmlNanoFTPConnectTo ()
void* xmlNanoFTPConnectTo (const char *server,
int port);
Tries to open a control connection to the given server/port
server :
an FTP server name
port :
the port (use 21 if 0)
xmlNanoFTPOpen ()
void* xmlNanoFTPOpen (const char *URL);
Start to fetch the given ftp:// resource
URL :
the URL to the resource
xmlNanoFTPConnect ()
int xmlNanoFTPConnect (void *ctx);
Tries to open a control connection
ctx :
an FTP context
Returns :
-1 in case of error, 0 otherwise
xmlNanoFTPClose ()
int xmlNanoFTPClose (void *ctx);
Close the connection and both control and transport
ctx :
an FTP context
Returns :
-1 incase of error, 0 otherwise
xmlNanoFTPQuit ()
int xmlNanoFTPQuit (void *ctx);
Send a QUIT command to the server
ctx :
an FTP context
Returns :
-1 in case of error, 0 otherwise
xmlNanoFTPScanProxy ()
void xmlNanoFTPScanProxy (const char *URL);
(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.
URL :
The proxy URL used to initialize the proxy context
xmlNanoFTPProxy ()
void xmlNanoFTPProxy (const char *host,
int port,
const char *user,
const char *passwd,
int type);
Setup the FTP proxy informations.
This can also be done by using ftp_proxy ftp_proxy_user and
ftp_proxy_password environment variables.
host :
the proxy host name
port :
the proxy port
user :
the proxy user name
passwd :
the proxy password
type :
the type of proxy 1 for using SITE, 2 for USER ab
xmlNanoFTPUpdateURL ()
int xmlNanoFTPUpdateURL (void *ctx,
const char *URL);
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.
ctx :
an FTP context
URL :
The URL used to update the context
Returns :
0 if Ok, -1 in case of error (other host).
xmlNanoFTPGetResponse ()
int xmlNanoFTPGetResponse (void *ctx);
Get the response from the FTP server after a command.
ctx :
an FTP context
Returns :
the code number
xmlNanoFTPCheckResponse ()
int xmlNanoFTPCheckResponse (void *ctx);
Check if there is a response from the FTP server after a command.
ctx :
an FTP context
Returns :
the code number, or 0
xmlNanoFTPCwd ()
int xmlNanoFTPCwd (void *ctx,
char *directory);
Tries to change the remote directory
ctx :
an FTP context
directory :
a directory on the server
Returns :
-1 incase of error, 1 if CWD worked, 0 if it failed
xmlNanoFTPGetConnection ()
int xmlNanoFTPGetConnection (void *ctx);
Try to open a data connection to the server. Currently only
passive mode is supported.
ctx :
an FTP context
Returns :
-1 incase of error, 0 otherwise
xmlNanoFTPCloseConnection ()
int xmlNanoFTPCloseConnection (void *ctx);
Close the data connection from the server
ctx :
an FTP context
Returns :
-1 incase of error, 0 otherwise
xmlNanoFTPList ()
int xmlNanoFTPList (void *ctx,
ftpListCallback callback,
void *userData,
char *filename);
Do a listing on the server. All files info are passed back
in the callbacks.
ctx :
an FTP context
callback :
the user callback
userData :
the user callback data
filename :
optional files to list
Returns :
-1 incase of error, 0 otherwise
xmlNanoFTPGetSocket ()
int xmlNanoFTPGetSocket (void *ctx,
const char *filename);
Initiate fetch of the given file from the server.
ctx :
an FTP context
filename :
the file to retrieve (or NULL if path is in context).
Returns :
the socket for the data connection, or <0 in case of error