mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-11 05:17:37 +03:00
106 lines
2.5 KiB
C
106 lines
2.5 KiB
C
/*
|
|
* nanohttp.c: minimalist FTP implementation to fetch external subsets.
|
|
*
|
|
* See Copyright for the status of this software.
|
|
*
|
|
* Daniel.Veillard@w3.org
|
|
*/
|
|
|
|
#ifndef __NANO_FTP_H__
|
|
#define __NANO_FTP_H__
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* ftpListCallback:
|
|
* @userData: user provided data for the callback
|
|
* @filename: the file name (including "->" when links are shown)
|
|
* @attrib: the attribute string
|
|
* @owner: the owner string
|
|
* @group: the group string
|
|
* @size: the file size
|
|
* @links: the link count
|
|
* @year: the year
|
|
* @month: the month
|
|
* @day: the day
|
|
* @hour: the hour
|
|
* @minute: the minute
|
|
*
|
|
* A callback for the xmlNanoFTPList command
|
|
* Note that only one of year and day:minute are specified
|
|
*/
|
|
typedef 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);
|
|
/**
|
|
* ftpDataCallback:
|
|
* A callback for the xmlNanoFTPGet command
|
|
*/
|
|
typedef void (*ftpDataCallback) (void *userData, const char *data, int len);
|
|
|
|
/*
|
|
* Init
|
|
*/
|
|
void xmlNanoFTPInit (void);
|
|
void xmlNanoFTPCleanup (void);
|
|
|
|
/*
|
|
* Creating/freeing contexts
|
|
*/
|
|
void * xmlNanoFTPNewCtxt (const char *URL);
|
|
void xmlNanoFTPFreeCtxt (void * ctx);
|
|
void * xmlNanoFTPConnectTo (const char *server,
|
|
int port);
|
|
/*
|
|
* Opening/closing session connections
|
|
*/
|
|
void * xmlNanoFTPOpen (const char *URL);
|
|
int xmlNanoFTPConnect (void *ctx);
|
|
int xmlNanoFTPClose (void *ctx);
|
|
int xmlNanoFTPQuit (void *ctx);
|
|
void xmlNanoFTPScanProxy (const char *URL);
|
|
void xmlNanoFTPProxy (const char *host,
|
|
int port,
|
|
const char *user,
|
|
const char *passwd,
|
|
int type);
|
|
int xmlNanoFTPUpdateURL (void *ctx,
|
|
const char *URL);
|
|
|
|
/*
|
|
* Rathern internal commands
|
|
*/
|
|
int xmlNanoFTPGetResponse (void *ctx);
|
|
int xmlNanoFTPCheckResponse (void *ctx);
|
|
|
|
/*
|
|
* CD/DIR/GET handlers
|
|
*/
|
|
int xmlNanoFTPCwd (void *ctx,
|
|
char *directory);
|
|
|
|
int xmlNanoFTPGetConnection (void *ctx);
|
|
int xmlNanoFTPCloseConnection(void *ctx);
|
|
int xmlNanoFTPList (void *ctx,
|
|
ftpListCallback callback,
|
|
void *userData,
|
|
char *filename);
|
|
int xmlNanoFTPGetSocket (void *ctx,
|
|
const char *filename);
|
|
int xmlNanoFTPGet (void *ctx,
|
|
ftpDataCallback callback,
|
|
void *userData,
|
|
const char *filename);
|
|
int xmlNanoFTPRead (void *ctx,
|
|
void *dest,
|
|
int len);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __NANO_FTP_H__ */
|