1 /***************************************************************************/ 2 /* This code is part of WWW grabber called pavuk */ 3 /* Copyright (c) 1997 - 2001 Stefan Ondrejicka */ 4 /* Distributed under GPL 2 or later */ 5 /***************************************************************************/ 6 7 #ifndef __ftp_h__ 8 #define __ftp_h__ 9 10 #include <time.h> 11 #include "doc.h" 12 #include "myssl.h" 13 #include "bufio.h" 14 #include "dllist.h" 15 16 #define DEFAULT_FTP_PORT 21 17 #define DEFAULT_FTP_PROXY_PORT 22 18 19 #define FTP_TYPE_F 0 20 #define FTP_TYPE_D 1 21 #define FTP_TYPE_L 2 22 23 typedef struct 24 { 25 protocol proto; 26 char *user; 27 char *passwd; 28 char *host; 29 unsigned short port; 30 bufio *control; 31 } ftp_connection; 32 33 typedef struct _ftp_url_extension 34 { 35 char type; /*** type of file ***/ 36 short int perm; /*** permisions ***/ 37 ssize_t size; /*** size of file ***/ 38 char *slink; /*** where point symlink ***/ 39 time_t time; /*** last modification time ***/ 40 } ftp_url_extension; 41 42 typedef struct _ftp_handshake_info_data 43 { 44 char *cmd; 45 int response; 46 } ftp_handshake_info_data; 47 48 typedef struct _ftp_handshake_info 49 { 50 char *host; 51 unsigned short port; 52 dllist *infos; 53 } ftp_handshake_info; 54 55 extern bufio *ftp_get_data_socket(doc *); 56 extern void ftp_dir_to_html(doc *); 57 extern void ftp_dir_list_to_html(doc *); 58 extern int ftp_get_response(doc *, char **, int); 59 extern int ftp_make_symlink(url *); 60 extern int ftp_remove(doc *); 61 62 extern ftp_url_extension *ftp_parse_ftpinf_ext(char *); 63 extern ftp_url_extension *ftp_url_ext_new(int, int, ssize_t, char *, time_t); 64 extern ftp_url_extension *ftp_url_ext_dup(ftp_url_extension *); 65 extern void ftp_url_ext_free(ftp_url_extension *); 66 67 extern void ftp_handshake_info_free(ftp_handshake_info *); 68 extern ftp_handshake_info *ftp_handshake_info_parse(char *, char *); 69 extern char *ftp_handshake_info_data_dump(ftp_handshake_info *); 70 extern ftp_handshake_info *ftp_handshake_info_dup(ftp_handshake_info *); 71 72 73 #endif 74