diff options
Diffstat (limited to 'os400/libxmlrpg/nanoftp.rpgle')
-rw-r--r-- | os400/libxmlrpg/nanoftp.rpgle | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/os400/libxmlrpg/nanoftp.rpgle b/os400/libxmlrpg/nanoftp.rpgle new file mode 100644 index 0000000..0637562 --- /dev/null +++ b/os400/libxmlrpg/nanoftp.rpgle @@ -0,0 +1,156 @@ + * Summary: minimal FTP implementation + * Description: minimal FTP implementation allowing to fetch resources + * like external subset. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(NANO_FTP_H__) + /define NANO_FTP_H__ + + /include /libxmlrpg/xmlversion" + + /if defined(LIBXML_FTP_ENABLED) + + d INVALID_SOCKET c -1 + + * ftpListCallback: + * @userData: user provided data for the callback + * @filename: the file name (including "->" when links are shown) + * @attrib: the attribute string + * @owner: the owner string + * @group: the group string + * @size: the file size + * @links: the link count + * @year: the year + * @month: the month + * @day: the day + * @hour: the hour + * @minute: the minute + * + * A callback for the xmlNanoFTPList command. + * Note that only one of year and day:minute are specified. + + d ftpListCallback... + d s * based(######typedef######) + d procptr + + * ftpDataCallback: + * @userData: the user provided context + * @data: the data received + * @len: its size in bytes + * + * A callback for the xmlNanoFTPGet command. + + d ftpDataCallback... + d s * based(######typedef######) + d procptr + + * Init + + d xmlNanoFTPInit pr extproc('xmlNanoFTPInit') + + d xmlNanoFTPCleanup... + d pr extproc('xmlNanoFTPCleanup') + + * Creating/freeing contexts. + + d xmlNanoFTPNewCtxt... + d pr * extproc('xmlNanoFTPNewCtxt') void * + d URL * value options(*string) const char * + + d xmlNanoFTPFreeCtxt... + d pr extproc('xmlNanoFTPFreeCtxt') + d ctx * value void * + + d xmlNanoFTPConnectTo... + d pr * extproc('xmlNanoFTPConnectTo') void * + d server * value options(*string) const char * + d port 10i 0 value + + * Opening/closing session connections. + + d xmlNanoFTPOpen pr * extproc('xmlNanoFTPOpen') void * + d URL * value options(*string) const char * + + d xmlNanoFTPConnect... + d pr 10i 0 extproc('xmlNanoFTPConnect') + d ctx * value void * + + d xmlNanoFTPClose... + d pr 10i 0 extproc('xmlNanoFTPClose') + d ctx * value void * + + d xmlNanoFTPQuit pr 10i 0 extproc('xmlNanoFTPQuit') + d ctx * value void * + + d xmlNanoFTPScanProxy... + d pr extproc('xmlNanoFTPScanProxy') + d URL * value options(*string) const char * + + d xmlNanoFTPProxy... + d pr extproc('xmlNanoFTPProxy') + d host * value options(*string) const char * + d port 10i 0 value + d user * value options(*string) const char * + d passwd * value options(*string) const char * + d type 10i 0 value + + d xmlNanoFTPUpdateURL... + d pr 10i 0 extproc('xmlNanoFTPUpdateURL') + d ctx * value void * + d URL * value options(*string) const char * + + * Rather internal commands. + + d xmlNanoFTPGetResponse... + d pr 10i 0 extproc('xmlNanoFTPGetResponse') + d ctx * value void * + + d xmlNanoFTPCheckResponse... + d pr 10i 0 extproc('xmlNanoFTPCheckResponse') + d ctx * value void * + + * CD/DIR/GET handlers. + + d xmlNanoFTPCwd pr 10i 0 extproc('xmlNanoFTPCwd') + d ctx * value void * + d directory * value options(*string) const char * + + d xmlNanoFTPDele pr 10i 0 extproc('xmlNanoFTPDele') + d ctx * value void * + d file * value options(*string) const char * + + d xmlNanoFTPGetConnection... + d pr 10i 0 extproc('xmlNanoFTPGetConnection') Socket descriptor + d ctx * value void * + + d xmlNanoFTPCloseConnection... + d pr 10i 0 extproc('xmlNanoFTPCloseConnection') + d ctx * value void * + + d xmlNanoFTPList pr 10i 0 extproc('xmlNanoFTPList') + d ctx * value void * + d callback value like(ftpListCallback) + d userData * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPGetSocket... + d pr 10i 0 extproc('xmlNanoFTPGetSocket') Socket descriptor + d ctx * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPGet pr 10i 0 extproc('xmlNanoFTPGet') + d ctx * value void * + d callback value like(ftpDataCallback) + d userData * value void * + d filename * value options(*string) const char * + + d xmlNanoFTPRead pr 10i 0 extproc('xmlNanoFTPRead') + d ctx * value void * + d dest * value void * + d len 10i 0 value + + /endif LIBXML_FTP_ENABLED + /endif NANO_FTP_H__ |