1 * Summary: minimal FTP implementation 2 * Description: minimal FTP implementation allowing to fetch resources 3 * like external subset. 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. 8 9 /if not defined(NANO_FTP_H__) 10 /define NANO_FTP_H__ 11 12 /include "libxmlrpg/xmlversion" 13 14 /if defined(LIBXML_FTP_ENABLED) 15 16 /include "libxmlrpg/xmlTypesC" 17 18 d INVALID_SOCKET c -1 19 20 * ftpListCallback: 21 * @userData: user provided data for the callback 22 * @filename: the file name (including "->" when links are shown) 23 * @attrib: the attribute string 24 * @owner: the owner string 25 * @group: the group string 26 * @size: the file size 27 * @links: the link count 28 * @year: the year 29 * @month: the month 30 * @day: the day 31 * @hour: the hour 32 * @minute: the minute 33 * 34 * A callback for the xmlNanoFTPList command. 35 * Note that only one of year and day:minute are specified. 36 37 d ftpListCallback... 38 d s * based(######typedef######) 39 d procptr 40 41 * ftpDataCallback: 42 * @userData: the user provided context 43 * @data: the data received 44 * @len: its size in bytes 45 * 46 * A callback for the xmlNanoFTPGet command. 47 48 d ftpDataCallback... 49 d s * based(######typedef######) 50 d procptr 51 52 * Init 53 54 d xmlNanoFTPInit pr extproc('xmlNanoFTPInit') 55 56 d xmlNanoFTPCleanup... 57 d pr extproc('xmlNanoFTPCleanup') 58 59 * Creating/freeing contexts. 60 61 d xmlNanoFTPNewCtxt... 62 d pr * extproc('xmlNanoFTPNewCtxt') void * 63 d URL * value options(*string) const char * 64 65 d xmlNanoFTPFreeCtxt... 66 d pr extproc('xmlNanoFTPFreeCtxt') 67 d ctx * value void * 68 69 d xmlNanoFTPConnectTo... 70 d pr * extproc('xmlNanoFTPConnectTo') void * 71 d server * value options(*string) const char * 72 d port value like(xmlCint) 73 74 * Opening/closing session connections. 75 76 d xmlNanoFTPOpen pr * extproc('xmlNanoFTPOpen') void * 77 d URL * value options(*string) const char * 78 79 d xmlNanoFTPConnect... 80 d pr extproc('xmlNanoFTPConnect') 81 d like(xmlCint) 82 d ctx * value void * 83 84 d xmlNanoFTPClose... 85 d pr extproc('xmlNanoFTPClose') 86 d like(xmlCint) 87 d ctx * value void * 88 89 d xmlNanoFTPQuit pr extproc('xmlNanoFTPQuit') 90 d like(xmlCint) 91 d ctx * value void * 92 93 d xmlNanoFTPScanProxy... 94 d pr extproc('xmlNanoFTPScanProxy') 95 d URL * value options(*string) const char * 96 97 d xmlNanoFTPProxy... 98 d pr extproc('xmlNanoFTPProxy') 99 d host * value options(*string) const char * 100 d port value like(xmlCint) 101 d user * value options(*string) const char * 102 d passwd * value options(*string) const char * 103 d type value like(xmlCint) 104 105 d xmlNanoFTPUpdateURL... 106 d pr extproc('xmlNanoFTPUpdateURL') 107 d like(xmlCint) 108 d ctx * value void * 109 d URL * value options(*string) const char * 110 111 * Rather internal commands. 112 113 d xmlNanoFTPGetResponse... 114 d pr extproc('xmlNanoFTPGetResponse') 115 d like(xmlCint) 116 d ctx * value void * 117 118 d xmlNanoFTPCheckResponse... 119 d pr extproc('xmlNanoFTPCheckResponse') 120 d like(xmlCint) 121 d ctx * value void * 122 123 * CD/DIR/GET handlers. 124 125 d xmlNanoFTPCwd pr extproc('xmlNanoFTPCwd') 126 d like(xmlCint) 127 d ctx * value void * 128 d directory * value options(*string) const char * 129 130 d xmlNanoFTPDele pr extproc('xmlNanoFTPDele') 131 d like(xmlCint) 132 d ctx * value void * 133 d file * value options(*string) const char * 134 135 d xmlNanoFTPGetConnection... 136 d pr extproc('xmlNanoFTPGetConnection') Socket descriptor 137 d like(xmlCint) 138 d ctx * value void * 139 140 d xmlNanoFTPCloseConnection... 141 d pr extproc('xmlNanoFTPCloseConnection') 142 d like(xmlCint) 143 d ctx * value void * 144 145 d xmlNanoFTPList pr extproc('xmlNanoFTPList') 146 d like(xmlCint) 147 d ctx * value void * 148 d callback value like(ftpListCallback) 149 d userData * value void * 150 d filename * value options(*string) const char * 151 152 d xmlNanoFTPGetSocket... 153 d pr extproc('xmlNanoFTPGetSocket') Socket descriptor 154 d like(xmlCint) 155 d ctx * value void * 156 d filename * value options(*string) const char * 157 158 d xmlNanoFTPGet pr extproc('xmlNanoFTPGet') 159 d like(xmlCint) 160 d ctx * value void * 161 d callback value like(ftpDataCallback) 162 d userData * value void * 163 d filename * value options(*string) const char * 164 165 d xmlNanoFTPRead pr extproc('xmlNanoFTPRead') 166 d like(xmlCint) 167 d ctx * value void * 168 d dest * value void * 169 d len value like(xmlCint) 170 171 /endif LIBXML_FTP_ENABLED 172 /endif NANO_FTP_H__ 173