original files of m241
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* HEADER FILE
|
||||
*
|
||||
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipftpc_api.h,v $ $Revision: 1.9.12.2 $
|
||||
* $Source: /home/interpeak/CVSRoot/ipappl/include/ipftpc_api.h,v $
|
||||
* $Author: hxu0 $ $Date: 2013-04-18 08:48:02 $
|
||||
* $State: Exp $ $Locker: $
|
||||
*
|
||||
* INTERPEAK_COPYRIGHT_STRING
|
||||
* Design and implementation by Ulf Olofsson <ulf@interpeak.se>
|
||||
******************************************************************************
|
||||
*/
|
||||
#ifndef IPFTPC_API_H
|
||||
#define IPFTPC_API_H
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 1 DESCRIPTION
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 2 CONFIGURATION
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 3 INCLUDE FILES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#include "ipcom.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 4 DEFINES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/* Select level of verbosity for syslog messages */
|
||||
#ifdef IPCOM_SYSLOG_PRIORITY
|
||||
#undef IPCOM_SYSLOG_PRIORITY
|
||||
#endif
|
||||
#if defined(_WRS_CONFIG_IPFTPC_SYSLOG_PRIORITY)
|
||||
#define IPCOM_SYSLOG_PRIORITY _WRS_CONFIG_IPFTPC_SYSLOG_PRIORITY
|
||||
#else
|
||||
#define IPCOM_SYSLOG_PRIORITY IPCOM_LOG_WARNING
|
||||
#endif
|
||||
|
||||
|
||||
/* Transport protocol for FTPC */
|
||||
#ifdef IPFTPC_USE_SCTP
|
||||
#define IPFTPC_PROTO IP_IPPROTO_SCTP
|
||||
#else
|
||||
#define IPFTPC_PROTO 0
|
||||
#endif
|
||||
|
||||
/* Error classes */
|
||||
#define IPFTPC_CFTPS 0 /* FTP server error (RFC 959) */
|
||||
#define IPFTPC_CFTPC 1000 /* FTP client error (IPFTPC_Exxx) */
|
||||
#define IPFTPC_CACCEPT 2000 /* Accept failed */
|
||||
#define IPFTPC_CBIND 3000 /* Bind failed */
|
||||
#define IPFTPC_CCONNECT 4000 /* Connect failed */
|
||||
#define IPFTPC_CLISTEN 5000 /* Listen failed */
|
||||
#define IPFTPC_COPEN 6000 /* Open failed */
|
||||
#define IPFTPC_CREAD 7000 /* Read failed */
|
||||
#define IPFTPC_CMUTEX 8000 /* Read failed */
|
||||
#define IPFTPC_CSCLOSE 9000 /* Socket close failed */
|
||||
#define IPFTPC_CSELECT 10000 /* Select failed */
|
||||
#define IPFTPC_CSOCKET 11000 /* Socket failed */
|
||||
#define IPFTPC_CWRITE 12000 /* Write failed */
|
||||
|
||||
#define IPFTPC_GET_C(x) ((x) - IPFTPC_GET_E(x))
|
||||
|
||||
/* Error codes */
|
||||
#define IPFTPC_ESUCCESS 299 /* Success (in the FTP server group
|
||||
so that x / 100 == 2) */
|
||||
#define IPFTPC_EBUSY 901 /* Session is busy */
|
||||
#define IPFTPC_ECONSOLE 902 /* Console write error */
|
||||
#define IPFTPC_EID 903 /* Invalid ID */
|
||||
#define IPFTPC_EINVHOST 904 /* Invalid host */
|
||||
#define IPFTPC_ENOMEM 905 /* Out of memory */
|
||||
#define IPFTPC_EPORT 906 /* Invalid port */
|
||||
#define IPFTPC_ESESSIONMAX 907 /* No more sessions allowed */
|
||||
#define IPFTPC_ETIMEOUT 908 /* Timeout */
|
||||
#ifdef IPFTP_TLS
|
||||
#define IPFTPC_ETLS 909
|
||||
#endif
|
||||
|
||||
#define IPFTPC_GET_E(x) ((x) % 1000)
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 5 TYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/* Session ID */
|
||||
typedef Ip_u16 Ipftpc_id;
|
||||
|
||||
/* Generic IP address */
|
||||
typedef union
|
||||
{
|
||||
struct Ip_sockaddr sa; /* Generic address */
|
||||
struct Ip_sockaddr_in sin; /* IPv4 address */
|
||||
#ifdef IPCOM_USE_INET6
|
||||
struct Ip_sockaddr_in6 sin6; /* IPv6 address */
|
||||
#endif
|
||||
}
|
||||
Ipftpc_addr;
|
||||
|
||||
/* Session attributes */
|
||||
typedef struct Ipftpc_attr
|
||||
{
|
||||
Ip_bool extended; /* Use extended addressing */
|
||||
Ip_bool passive; /* Passive mode */
|
||||
Ip_bool ipcheck; /* Disable proxy FTP */
|
||||
Ip_bool verbose; /* Enable verbose printouts */
|
||||
Ip_bool fb_extended; /* Allow fallback extended->normal */
|
||||
Ip_bool fb_passive; /* Allow fallback passive->active */
|
||||
Ip_u16 pportbase; /* Reject peer ports <= pportbase */
|
||||
Ip_u16 lportbase; /* Use local ports from lportbase+1 */
|
||||
void *data; /* User data */
|
||||
int (*conout)(struct Ipftpc_attr *attr, const char *buf, int len);
|
||||
/* Console input */
|
||||
void (*ctrlin)(struct Ipftpc_attr *attr, const char *buf, int len);
|
||||
/* Control input (if debug) */
|
||||
void (*ctrlout)(struct Ipftpc_attr *attr, const char *buf, int len);
|
||||
/* Control output (if debug) */
|
||||
#ifdef IPFTP_TLS
|
||||
Ip_bool tlsenble;
|
||||
char *certfile;
|
||||
char *keyfile;
|
||||
void *tls;
|
||||
Ip_bool ccc;
|
||||
char prot[4];
|
||||
#endif
|
||||
}
|
||||
Ipftpc_attr;
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 6 LOCAL FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 10 PUBLIC FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef IPFTPC_API_C
|
||||
#include "ipftpc_api_proto.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* END OF FILE
|
||||
****************************************************************************
|
||||
*/
|
||||
Reference in New Issue
Block a user