📄 ftp.h
字号:
/* File: ftpproxy/ftp.h Copyright (C) 1999 Wolfgang Zekoll <wzk@quietsche-entchen.de> Copyright (C) 2000, 2003 Andreas Schoenberg <asg@ftpproxy.org> This software is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#ifndef _FTP_INCLUDED#define _FTP_INCLUDEDextern char *version;extern char *program;extern char progname[80];extern int debug;extern int extralog;extern int bindport;extern int daemonmode;extern int acceptloop(int sock);#define FTPMAXBSIZE 4096typedef struct _config { char configfile[200]; int standalone; int timeout; int selectserver; int allow_anyremote; char server[200]; char *serverlist; char acp[200]; char ccp[200]; char ctp[200]; char varname[80]; int allow_blanks; int allow_passwdblanks; int use_last_at; int monitor; int bsize; char xferlog[200]; int numeric_only; char sourceip[200]; unsigned int dataport; } config_t;#define DIR_MAXDEPTH 15#define CCP_OK 0#define CCP_ERROR 1#define PORT_LISTEN 1#define PORT_CONNECTED 2#define PORT_CLOSED 3#define MODE_PORT 1#define MODE_PASSIVE 2#define OP_GET 1#define OP_PUT 2#define TYPE_ASC 1 /* Transfer modes for xferlog */#define TYPE_BIN 2typedef struct _port { char ipnum[80]; unsigned int port; } port_t;typedef struct _dtc { int state; /* LISTEN, CONNECTED, CLOSED */ int seen150; int isock; int osock; int operation; /* GET oder PUT */ int active; int other; int mode; /* PORT oder PASV */ port_t server; port_t outside; port_t inside; port_t client; int type; /* Transfer type for xferlog */ unsigned long started; /* Timestamp for xferlog */ char command[20]; /* Fuer syslog Meldungen */ char filename[200]; unsigned long bytes; } dtc_t;typedef struct _bio { int here, len; char buffer[512]; } bio_t;typedef struct _ftp { config_t *config; char interface[80]; unsigned int port; char client[200]; char client_ip[80]; char username[200]; char password[200]; struct { char username[80]; char password[80]; } local; struct { char name[80]; unsigned int port; char ipnum[80]; } server; struct { int server; /* Kontrollverbindung zum Server */ int cfd; /* Datenverbindung zum Client */ int sfd; /* Datenverbindung zum Server */ fd_set fdset; int max; } fd; dtc_t ch; char cwd[200]; char home[200]; char filepath[200]; bio_t cbuf, sbuf; char session[80]; int ccpcoll; FILE *xlfp; char logusername[100]; int commands; unsigned long datain, dataout; } ftp_t;extern int readconfig(config_t *config, char *filename, char *section);extern int printconfig(config_t *config);extern int proxy_request(config_t *config);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -