Home | History | Annotate | Download | only in libxmlrpg
      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 (a] 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      d INVALID_SOCKET  c                   -1
     17 
     18       * ftpListCallback:
     19       * @userData:  user provided data for the callback
     20       * @filename:  the file name (including "->" when links are shown)
     21       * @attrib:  the attribute string
     22       * @owner:  the owner string
     23       * @group:  the group string
     24       * @size:  the file size
     25       * @links:  the link count
     26       * @year:  the year
     27       * @month:  the month
     28       * @day:  the day
     29       * @hour:  the hour
     30       * @minute:  the minute
     31       *
     32       * A callback for the xmlNanoFTPList command.
     33       * Note that only one of year and day:minute are specified.
     34 
     35      d ftpListCallback...
     36      d                 s               *   based(######typedef######)
     37      d                                     procptr
     38 
     39       * ftpDataCallback:
     40       * @userData: the user provided context
     41       * @data: the data received
     42       * @len: its size in bytes
     43       *
     44       * A callback for the xmlNanoFTPGet command.
     45 
     46      d ftpDataCallback...
     47      d                 s               *   based(######typedef######)
     48      d                                     procptr
     49 
     50       * Init
     51 
     52      d xmlNanoFTPInit  pr                  extproc('xmlNanoFTPInit')
     53 
     54      d xmlNanoFTPCleanup...
     55      d                 pr                  extproc('xmlNanoFTPCleanup')
     56 
     57       * Creating/freeing contexts.
     58 
     59      d xmlNanoFTPNewCtxt...
     60      d                 pr              *   extproc('xmlNanoFTPNewCtxt')         void *
     61      d  URL                            *   value options(*string)               const char *
     62 
     63      d xmlNanoFTPFreeCtxt...
     64      d                 pr                  extproc('xmlNanoFTPFreeCtxt')
     65      d  ctx                            *   value                                void *
     66 
     67      d xmlNanoFTPConnectTo...
     68      d                 pr              *   extproc('xmlNanoFTPConnectTo')       void *
     69      d  server                         *   value options(*string)               const char *
     70      d  port                         10i 0 value
     71 
     72       * Opening/closing session connections.
     73 
     74      d xmlNanoFTPOpen  pr              *   extproc('xmlNanoFTPOpen')            void *
     75      d  URL                            *   value options(*string)               const char *
     76 
     77      d xmlNanoFTPConnect...
     78      d                 pr            10i 0 extproc('xmlNanoFTPConnect')
     79      d  ctx                            *   value                                void *
     80 
     81      d xmlNanoFTPClose...
     82      d                 pr            10i 0 extproc('xmlNanoFTPClose')
     83      d  ctx                            *   value                                void *
     84 
     85      d xmlNanoFTPQuit  pr            10i 0 extproc('xmlNanoFTPQuit')
     86      d  ctx                            *   value                                void *
     87 
     88      d xmlNanoFTPScanProxy...
     89      d                 pr                  extproc('xmlNanoFTPScanProxy')
     90      d  URL                            *   value options(*string)               const char *
     91 
     92      d xmlNanoFTPProxy...
     93      d                 pr                  extproc('xmlNanoFTPProxy')
     94      d  host                           *   value options(*string)               const char *
     95      d  port                         10i 0 value
     96      d  user                           *   value options(*string)               const char *
     97      d  passwd                         *   value options(*string)               const char *
     98      d  type                         10i 0 value
     99 
    100      d xmlNanoFTPUpdateURL...
    101      d                 pr            10i 0 extproc('xmlNanoFTPUpdateURL')
    102      d  ctx                            *   value                                void *
    103      d  URL                            *   value options(*string)               const char *
    104 
    105       * Rather internal commands.
    106 
    107      d xmlNanoFTPGetResponse...
    108      d                 pr            10i 0 extproc('xmlNanoFTPGetResponse')
    109      d  ctx                            *   value                                void *
    110 
    111      d xmlNanoFTPCheckResponse...
    112      d                 pr            10i 0 extproc('xmlNanoFTPCheckResponse')
    113      d  ctx                            *   value                                void *
    114 
    115       * CD/DIR/GET handlers.
    116 
    117      d xmlNanoFTPCwd   pr            10i 0 extproc('xmlNanoFTPCwd')
    118      d  ctx                            *   value                                void *
    119      d  directory                      *   value options(*string)               const char *
    120 
    121      d xmlNanoFTPDele  pr            10i 0 extproc('xmlNanoFTPDele')
    122      d  ctx                            *   value                                void *
    123      d  file                           *   value options(*string)               const char *
    124 
    125      d xmlNanoFTPGetConnection...
    126      d                 pr            10i 0 extproc('xmlNanoFTPGetConnection')   Socket descriptor
    127      d  ctx                            *   value                                void *
    128 
    129      d xmlNanoFTPCloseConnection...
    130      d                 pr            10i 0 extproc('xmlNanoFTPCloseConnection')
    131      d  ctx                            *   value                                void *
    132 
    133      d xmlNanoFTPList  pr            10i 0 extproc('xmlNanoFTPList')
    134      d  ctx                            *   value                                void *
    135      d  callback                           value like(ftpListCallback)
    136      d  userData                       *   value                                void *
    137      d  filename                       *   value options(*string)               const char *
    138 
    139      d xmlNanoFTPGetSocket...
    140      d                 pr            10i 0 extproc('xmlNanoFTPGetSocket')       Socket descriptor
    141      d  ctx                            *   value                                void *
    142      d  filename                       *   value options(*string)               const char *
    143 
    144      d xmlNanoFTPGet   pr            10i 0 extproc('xmlNanoFTPGet')
    145      d  ctx                            *   value                                void *
    146      d  callback                           value like(ftpDataCallback)
    147      d  userData                       *   value                                void *
    148      d  filename                       *   value options(*string)               const char *
    149 
    150      d xmlNanoFTPRead  pr            10i 0 extproc('xmlNanoFTPRead')
    151      d  ctx                            *   value                                void *
    152      d  dest                           *   value                                void *
    153      d  len                          10i 0 value
    154 
    155       /endif                                                                    LIBXML_FTP_ENABLED
    156       /endif                                                                    NANO_FTP_H__
    157