mc/vfs/ftpfs.h

105 lines
2.6 KiB
C

/* ftpfs.h */
/* $Id$ */
#if !defined(__FTPFS_H)
#define __FTPFS_H
#include "xdirentry.h"
struct direntry
{
char *name;
int count;
char *linkname;
char *local_filename, *remote_filename;
int local_is_temp:1;
int freshly_created:1;
struct stat local_stat;
struct stat s;
struct stat *l_stat;
struct connection *bucket;
int data_sock; /* For linear_ operations */
int linear_state;
#define LS_NONLIN 0 /* Not using linear access at all */
#define LS_LINEAR_CLOSED 1 /* Using linear access, but not open, yet */
#define LS_LINEAR_OPEN 2 /* Using linear access, open */
};
struct dir
{
int count;
struct timeval timestamp;
char *remote_path;
struct linklist *file_list;
int symlink_status;
};
/* valid values for dir->symlink_status */
#define FTPFS_NO_SYMLINKS 0
#define FTPFS_UNRESOLVED_SYMLINKS 1
#define FTPFS_RESOLVED_SYMLINKS 2
#define FTPFS_RESOLVING_SYMLINKS 3
struct connection {
char *host;
char *user;
char *current_directory;
char *home;
char *updir;
char *password;
int port;
int sock;
struct linklist *dcache;
ino_t __inode_counter;
int lock;
int failed_on_login; /* used to pass the failure reason to upper levels */
int use_proxy; /* use a proxy server */
int use_source_route;
int use_passive_connection;
int remote_is_amiga; /* No leading slash allowed for AmiTCP (Amiga) */
int isbinary;
int cwd_defered; /* current_directory was changed but CWD command hasn't
been sent yet */
int strict_rfc959_list_cmd; /* ftp server doesn't understand
"LIST -la <path>"; use "CWD <path>"/
"LIST" instead */
};
#define qhost(b) (b)->host
#define quser(b) (b)->user
#define qcdir(b) (b)->current_directory
#define qport(b) (b)->port
#define qsock(b) (b)->sock
#define qlock(b) (b)->lock
#define qdcache(b) (b)->dcache
#define qhome(b) (b)->home
#define qupdir(b) (b)->updir
#define qproxy(b) (b)->use_proxy
/* Increased since now we may use C-r to reread the contents */
#define FTPFS_DIRECTORY_TIMEOUT 30 * 60
#define DO_RESOLVE_SYMLINK 1
#define DO_OPEN 2
#define DO_FREE_RESOURCE 4
extern char *ftpfs_anonymous_passwd;
extern char *ftpfs_proxy_host;
extern int ftpfs_directory_timeout;
extern int ftpfs_always_use_proxy;
extern int use_netrc;
extern int ftpfs_retry_seconds;
extern int ftpfs_use_passive_connections;
extern int ftpfs_use_unix_list_options;
extern int ftpfs_first_cd_then_ls;
void ftpfs_init_passwd (void);
#define OPT_FLUSH 1
#define OPT_IGNORE_ERROR 2
#endif