116420Sjkh#ifndef _FTP_H_INCLUDE 216420Sjkh#define _FTP_H_INCLUDE 316420Sjkh 416420Sjkh#include <sys/types.h> 525487Sjkh#include <sys/cdefs.h> 618394Speter#include <stdio.h> 716420Sjkh#include <time.h> 816420Sjkh 916420Sjkh/* 1016420Sjkh * ---------------------------------------------------------------------------- 1116420Sjkh * "THE BEER-WARE LICENSE" (Revision 42): 1293149Sphk * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you 1316420Sjkh * can do whatever you want with this stuff. If we meet some day, and you think 1416420Sjkh * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp 1516420Sjkh * ---------------------------------------------------------------------------- 1616420Sjkh * 1716420Sjkh * Major Changelog: 1816420Sjkh * 1916420Sjkh * Jordan K. Hubbard 2016420Sjkh * 17 Jan 1996 2116420Sjkh * 2216420Sjkh * Turned inside out. Now returns xfers as new file ids, not as a special 2316420Sjkh * `state' of FTP_t 2416420Sjkh * 2550476Speter * $FreeBSD$ 2616420Sjkh */ 2716420Sjkh 2816420Sjkh/* Internal housekeeping data structure for FTP sessions */ 2916420Sjkhtypedef struct { 3019728Sache enum { init, isopen, quit } con_state; 3116420Sjkh int fd_ctrl; 3216420Sjkh int addrtype; 3316420Sjkh char *host; 3416420Sjkh char *file; 3531892Sjb int error; 3616599Sjkh int is_binary; 3716599Sjkh int is_passive; 3816955Sjkh int is_verbose; 3916420Sjkh} *FTP_t; 4016420Sjkh 4117732Sjkh/* Structure we use to match FTP error codes with readable strings */ 4217732Sjkhstruct ftperr { 4317732Sjkh const int num; 4417732Sjkh const char *string; 4517732Sjkh}; 4625487Sjkh 4725487Sjkh__BEGIN_DECLS 4817732Sjkhextern struct ftperr ftpErrList[]; 4917732Sjkhextern int const ftpErrListLength; 5017732Sjkh 5116420Sjkh/* Exported routines - deal only with FILE* type */ 5219731Sacheextern FILE *ftpLogin(char *host, char *user, char *passwd, int port, int verbose, int *retcode); 5316420Sjkhextern int ftpChdir(FILE *fp, char *dir); 5416420Sjkhextern int ftpErrno(FILE *fp); 5518394Speterextern off_t ftpGetSize(FILE *fp, char *file); 5618394Speterextern FILE *ftpGet(FILE *fp, char *file, off_t *seekto); 5716420Sjkhextern FILE *ftpPut(FILE *fp, char *file); 5816599Sjkhextern int ftpAscii(FILE *fp); 5916599Sjkhextern int ftpBinary(FILE *fp); 6016420Sjkhextern int ftpPassive(FILE *fp, int status); 6116955Sjkhextern void ftpVerbose(FILE *fp, int status); 6219731Sacheextern FILE *ftpGetURL(char *url, char *user, char *passwd, int *retcode); 6319731Sacheextern FILE *ftpPutURL(char *url, char *user, char *passwd, int *retcode); 6416781Sgpalmerextern time_t ftpGetModtime(FILE *fp, char *s); 6531892Sjbextern const char *ftpErrString(int error); 6662649Sumeextern FILE *ftpLoginAf(char *host, int af, char *user, char *passwd, int port, int verbose, int *retcode); 6762649Sumeextern FILE *ftpGetURLAf(char *url, int af, char *user, char *passwd, int *retcode); 6862649Sumeextern FILE *ftpPutURLAf(char *url, int af, char *user, char *passwd, int *retcode); 6925487Sjkh__END_DECLS 7016420Sjkh 7116420Sjkh#endif /* _FTP_H_INCLUDE */ 72