summaryrefslogtreecommitdiff
path: root/os400/libxmlrpg/nanoftp.rpgle
diff options
context:
space:
mode:
Diffstat (limited to 'os400/libxmlrpg/nanoftp.rpgle')
-rw-r--r--os400/libxmlrpg/nanoftp.rpgle156
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__