first commit
This commit is contained in:
64
lib/ioLibrary_Driver/FTPServer/README.md
Executable file
64
lib/ioLibrary_Driver/FTPServer/README.md
Executable file
@@ -0,0 +1,64 @@
|
||||
# FTP Server
|
||||
|
||||
## init wizchip
|
||||
### variable and function
|
||||
|
||||
uint8_t gFTPBUF[_MAX_SS];
|
||||
uint8_t wiznet_memsize[2][8] = {{8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8}};
|
||||
#define ETH_MAX_BUF_SIZE 2048
|
||||
uint8_t ethBuf0[ETH_MAX_BUF_SIZE];
|
||||
wiz_NetInfo gWIZNETINFO = {
|
||||
.mac = {0x00, 0x08, 0xdc, 0x11, 0x22, 0x33},
|
||||
.ip = {192, 168, 15, 111},
|
||||
.sn = {255, 255, 255, 0},
|
||||
.gw = {192, 168, 15, 1},
|
||||
.dns = {8, 8, 8, 8},
|
||||
.dhcp = NETINFO_STATIC
|
||||
|
||||
|
||||
|
||||
### run init funciton in main funcion
|
||||
|
||||
Reset_WIZCHIP();
|
||||
reg_wizchip_bus_cbfunc(Chip_read, Chip_write);
|
||||
reg_wizchip_cs_cbfunc(ChipCsEnable, ChipCsDisable);
|
||||
|
||||
if (ctlwizchip(CW_INIT_WIZCHIP, (void*)wiznet_memsize) == -1)
|
||||
{
|
||||
printf("WIZchip memory initialization failed\r\n");
|
||||
}
|
||||
|
||||
ctlnetwork(CN_SET_NETINFO, (void *)&gWIZNETINFO);
|
||||
print_network_information();
|
||||
|
||||
|
||||
## Run function
|
||||
|
||||
if((ret = ftpd_run(gFTPBUF)) < 0)
|
||||
{
|
||||
porintf(" FTP server Error %d \r\n", ret);
|
||||
}
|
||||
|
||||
## FTP ID & PASSWORD
|
||||
|
||||
### USED ID
|
||||
#### ID Enable in ftpd_init function
|
||||
|
||||
ftp.ID_Enable = STATUS_USED;
|
||||
|
||||
#### ID Setting
|
||||
|
||||
#define ftp_ID "wiznet"
|
||||
|
||||
### USED PASSWORD
|
||||
#### PW Enable in ftpd_init function
|
||||
|
||||
ftp.PW_Enable = STATUS_USED;
|
||||
|
||||
#### PW Setting
|
||||
|
||||
#define ftp_PW "wiznet54321"
|
||||
|
||||
### Connedtion remain count
|
||||
|
||||
#define remain_time 400000
|
||||
1233
lib/ioLibrary_Driver/FTPServer/ftpd.c
Normal file
1233
lib/ioLibrary_Driver/FTPServer/ftpd.c
Normal file
File diff suppressed because it is too large
Load Diff
167
lib/ioLibrary_Driver/FTPServer/ftpd.h
Normal file
167
lib/ioLibrary_Driver/FTPServer/ftpd.h
Normal file
@@ -0,0 +1,167 @@
|
||||
#ifndef _FTPD_H_
|
||||
#define _FTPD_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Wiznet.
|
||||
* (c) Copyright 2002, Wiznet.
|
||||
*
|
||||
* Filename : ftpd.h
|
||||
* Version : 1.0
|
||||
* Programmer(s) :
|
||||
* Created : 2003/01/28
|
||||
* Description : Header file of FTP daemon. (AVR-GCC Compiler)
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
//#define F_FILESYSTEM // If your target support a file system, you have to activate this feature and implement.
|
||||
|
||||
#if defined(F_FILESYSTEM)
|
||||
#include "ff.h"
|
||||
#endif
|
||||
|
||||
#define F_APP_FTP
|
||||
#define _FTP_DEBUG_
|
||||
|
||||
|
||||
#define LINELEN 100
|
||||
//#define DATA_BUF_SIZE 100
|
||||
#if !defined(F_FILESYSTEM)
|
||||
#define _MAX_SS 512
|
||||
#endif
|
||||
|
||||
#define CTRL_SOCK 2
|
||||
#define DATA_SOCK 3
|
||||
#define CTRL_SOCK1 4
|
||||
|
||||
|
||||
#define IPPORT_FTPD 20 /* FTP Data port */
|
||||
#define IPPORT_FTP 21 /* FTP Control port */
|
||||
|
||||
#define HOSTNAME "iinChip"
|
||||
#define VERSION "1.0"
|
||||
|
||||
#define FILENAME "a.txt"
|
||||
|
||||
/* FTP commands */
|
||||
enum ftp_cmd {
|
||||
USER_CMD,
|
||||
ACCT_CMD,
|
||||
PASS_CMD,
|
||||
TYPE_CMD,
|
||||
LIST_CMD,
|
||||
CWD_CMD,
|
||||
DELE_CMD,
|
||||
NAME_CMD,
|
||||
QUIT_CMD,
|
||||
RETR_CMD,
|
||||
STOR_CMD,
|
||||
PORT_CMD,
|
||||
NLST_CMD,
|
||||
PWD_CMD,
|
||||
XPWD_CMD,
|
||||
MKD_CMD,
|
||||
XMKD_CMD,
|
||||
XRMD_CMD,
|
||||
RMD_CMD,
|
||||
STRU_CMD,
|
||||
MODE_CMD,
|
||||
SYST_CMD,
|
||||
XMD5_CMD,
|
||||
XCWD_CMD,
|
||||
FEAT_CMD,
|
||||
PASV_CMD,
|
||||
SIZE_CMD,
|
||||
MLSD_CMD,
|
||||
APPE_CMD,
|
||||
NO_CMD,
|
||||
};
|
||||
|
||||
enum ftp_type {
|
||||
ASCII_TYPE,
|
||||
IMAGE_TYPE,
|
||||
LOGICAL_TYPE
|
||||
};
|
||||
|
||||
enum ftp_state {
|
||||
FTPS_NOT_LOGIN,
|
||||
FTPS_LOGIN
|
||||
};
|
||||
|
||||
enum datasock_state{
|
||||
DATASOCK_IDLE,
|
||||
DATASOCK_READY,
|
||||
DATASOCK_START
|
||||
};
|
||||
|
||||
enum datasock_mode{
|
||||
PASSIVE_MODE,
|
||||
ACTIVE_MODE
|
||||
};
|
||||
|
||||
enum ftp_use_status{
|
||||
STATUS_USED,
|
||||
STATUS_NOT_USED
|
||||
};
|
||||
|
||||
struct ftpd {
|
||||
uint8_t control; /* Control stream */
|
||||
uint8_t data; /* Data stream */
|
||||
|
||||
enum ftp_type type; /* Transfer type */
|
||||
enum ftp_state state;
|
||||
|
||||
enum ftp_cmd current_cmd;
|
||||
|
||||
enum datasock_state dsock_state;
|
||||
enum datasock_mode dsock_mode;
|
||||
|
||||
enum ftp_use_status ID_Enable;
|
||||
enum ftp_use_status PW_Enable;
|
||||
|
||||
char username[LINELEN]; /* Arg to USER command */
|
||||
char userpassword[LINELEN];
|
||||
char workingdir[LINELEN];
|
||||
char filename[LINELEN];
|
||||
|
||||
#if defined(F_FILESYSTEM)
|
||||
FIL fil; // FatFs File objects
|
||||
FRESULT fr; // FatFs function common result code
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
#ifndef un_I2cval
|
||||
typedef union _un_l2cval {
|
||||
uint32_t lVal;
|
||||
uint8_t cVal[4];
|
||||
}un_l2cval;
|
||||
#endif
|
||||
|
||||
void ftpd_init(uint8_t * src_ip);
|
||||
uint8_t ftpd_run(uint8_t * dbuf);
|
||||
char proc_ftpd(uint8_t sn, char * buf);
|
||||
|
||||
char ftplogin(uint8_t sn,char * pass);
|
||||
|
||||
int pport(char * arg);
|
||||
|
||||
int sendit(char * command);
|
||||
int recvit(char * command);
|
||||
|
||||
long sendfile(uint8_t s, char * command);
|
||||
long recvfile(uint8_t s);
|
||||
|
||||
#if defined(F_FILESYSTEM)
|
||||
void print_filedsc(FIL *fil);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // _FTPD_H_
|
||||
74
lib/ioLibrary_Driver/FTPServer/stdio_private.h
Normal file
74
lib/ioLibrary_Driver/FTPServer/stdio_private.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/* Copyright (c) 2002, Joerg Wunsch
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of the copyright holders nor the names of
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: stdio_private.h,v 1.6 2003/01/07 22:17:24 joerg_wunsch Exp $ */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
struct __file {
|
||||
char *buf; /* buffer pointer */
|
||||
unsigned char unget; /* ungetc() buffer */
|
||||
uint8_t flags; /* flags, see below */
|
||||
#define __SRD 0x0001 /* OK to read */
|
||||
#define __SWR 0x0002 /* OK to write */
|
||||
#define __SSTR 0x0004 /* this is an sprintf/snprintf string */
|
||||
#define __SPGM 0x0008 /* fmt string is in progmem */
|
||||
#define __SERR 0x0010 /* found error */
|
||||
#define __SEOF 0x0020 /* found EOF */
|
||||
#define __SUNGET 0x040 /* ungetc() happened */
|
||||
#if 0
|
||||
/* possible future extensions, will require uint16_t flags */
|
||||
#define __SRW 0x0080 /* open for reading & writing */
|
||||
#define __SLBF 0x0100 /* line buffered */
|
||||
#define __SNBF 0x0200 /* unbuffered */
|
||||
#define __SMBF 0x0400 /* buf is from malloc */
|
||||
#endif
|
||||
int size; /* size of buffer */
|
||||
int len; /* characters read or written so far */
|
||||
int (*put)(char); /* function to write one char to device */
|
||||
int (*get)(void); /* function to read one char from device */
|
||||
};
|
||||
|
||||
/* values for PRINTF_LEVEL */
|
||||
#define PRINTF_MIN 1
|
||||
#define PRINTF_STD 2
|
||||
#define PRINTF_FLT 3
|
||||
|
||||
/* values for SCANF_LEVEL */
|
||||
#define SCANF_MIN 1
|
||||
#define SCANF_STD 2
|
||||
#define SCANF_FLT 3
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user