isdn4k-utils/eurofile/src/eft/include/eft.h

116 lines
4.2 KiB
C

/* $Id$ */
/*
* Interface for accessing eurofile service primitives.
* Eurofile for Linux is implemented as a library. Programmers
* are encouraged to use that library for writing more user friendldy
* Eurofile client and server front ends.
*/
struct eft;
extern int eft_connect (struct eft *, unsigned char *);
extern int eft_disconnect (struct eft *);
#ifdef FD_SET
struct timeval;
extern int eft_select( struct eft *, int, fd_set *,
fd_set *, fd_set *, struct timeval *);
#endif
extern struct eft * eft_make_instance();
extern int eft_attach_socket(struct eft *, int);
extern int eft_get_socket(struct eft *);
extern int eft_is_up(struct eft *);
extern int eft_load_fd(struct eft *, int, unsigned char *, int);
extern int eft_load(struct eft *, unsigned char *, unsigned char *);
extern int eft_dir_fd (struct eft *, int, unsigned char *, int );
extern int eft_xdir_txt (struct eft *, unsigned char * );
extern int eft_cd (struct eft *, unsigned char *);
extern int eft_getcwd (struct eft *, unsigned char *);
extern int eft_mkdir (struct eft *, unsigned char *);
extern int eft_list_fd(struct eft *, int, int);
extern int eft_slist_fd(struct eft *, int, int);
extern int eft_save_fd(struct eft *, unsigned char *, int, int);
extern int eft_save(struct eft *, unsigned char *, unsigned char *);
extern int eft_delete (struct eft *, unsigned char *);
extern int eft_rename(struct eft *, unsigned char *, unsigned char *);
extern void eft_prompt(char *);
extern char * eft_re_descr(int);
#define EFT_RE_ID_REJECTED 0x21
#define EFT_RE_DISK_FULL 0x22
#define EFT_RE_FILE_ACCESS_IMPOSSIBLE 0x23
#define EFT_RE_RESERVED 0x24
#define EFT_RE_USER_INTERRUPT 0x25
#define EFT_RE_USER_ABORT 0x26
#define EFT_RE_NO_EXTENDED_FMT 0x27
#define EFT_RE_NO_LOG_ACCESS 0x28
#define EFT_RE_CMPR_FMT_NOT_SUPPORTED 0x29
#define EFT_RE_WRONG_FCS 0x2a
#define EFT_RE_CMPR_CODING_ERROR 0x2b
#define EFT_MAX_FSTORE_LEN 221
#define EFT_MAX_FS_REF_LEN 32
#define EFT_MAX_FS_LEVELS 16
extern int eft_server_mainloop(struct eft*);
extern int eft_accept_user(struct eft*);
extern int eft_release(struct eft*);
extern int eft_msg(struct eft *, unsigned char *);
extern struct tdu_user * eft_get_user(struct eft *);
extern int eft_remote_has_navigation(struct eft *);
extern void eft_set_home(struct eft * eft);
/* extern void eft_set_case_fix(struct eft *, int);
extern int eft_need_case_fix(struct eft *);*/
extern void eft_fix_cases(unsigned char *);
/* extern void eft_set_slash_fix(struct eft *, int);
extern int eft_need_slash_fix(struct eft *); */
struct sockaddr_x25;
struct x25_route_struct;
extern int eft_get_x25route(struct sockaddr_x25 *, struct x25_route_struct *, char *isdn_no);
extern int eft_release_route(struct x25_route_struct *);
extern int eft_signal_release_route();
extern int eft_wait_release_route();
extern void eft_dl_disconnect(unsigned char *);
extern int eft_release_device(unsigned char *);
extern long eft_get_flags(struct eft *);
extern void eft_set_flags(struct eft *, long);
extern void eft_set_xferlog(struct eft *, int);
extern int eft_printable_called_addr(struct eft *, unsigned char *);
extern int eft_printable_assoc_udata(struct eft *, unsigned char *);
extern void eft_set_auth(struct eft *,
int (*check_user)(struct eft *, char *,char *,char *),
int (*setup_user)(struct eft *),
int (*cleanup_user)(struct eft *)
);
extern int eft_set_address(struct eft *, char * address);
#define EFT_FLAG_ANONYMOUS (1 << 0)
#define EFT_FLAG_GUEST (1 << 1)
#define EFT_FLAG_DOS_TN (1 << 2) /* apply DOS transfer names contraints */
#define EFT_FLAG_CASEFIX_TN (1 << 3) /* case insensitive transfer names */
#define EFT_FLAG_CASEFIX_FS (1 << 4) /* case insensitive fstore names */
#define EFT_FLAG_SLASHFIX (1 << 5) /* fix clients replacing '\' by '/' */
#define EFT_FLAG_DETERM_TN (1 << 6) /* generate tr names deterministically*/
#define EFT_FLAG_STRICT_TREE (1 << 7) /* don't allow directories aliases */
extern const char * eft_flat_dir_name;
extern char * eft_get_device(char * dev, int len, int sock_fd);
extern char * eft_map_to_user;
extern const char * eft_str_reason(int);
extern const char * eft_str_other_reason(int);
/* FIXME: where can we obtain the system limit for this */
#define EFT_DEV_NAME_LEN 15