blob: 53465280d21f9fe631c73bbd4a8abcde8ff19a18 [file] [log] [blame]
* nanohttp.c: minimalist FTP implementation to fetch external subsets.
* See Copyright for the status of this software.
#ifndef __NANO_FTP_H__
#define __NANO_FTP_H__
#include <libxml/xmlversion.h>
#ifdef __cplusplus
extern "C" {
* 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 /* __NANO_FTP_H__ */