1/*-
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright (c) 1983, 1989, 1993
5 *	The Regents of the University of California.  All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of the University nor the names of its contributors
16 *    may be used to endorse or promote products derived from this software
17 *    without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
31
32#ifndef _ARPA_FTP_H_
33#define	_ARPA_FTP_H_
34
35/* Definitions for FTP; see RFC-765. */
36
37/*
38 * Reply codes.
39 */
40#define PRELIM		1	/* positive preliminary */
41#define COMPLETE	2	/* positive completion */
42#define CONTINUE	3	/* positive intermediate */
43#define TRANSIENT	4	/* transient negative completion */
44#define ERROR		5	/* permanent negative completion */
45
46/*
47 * Type codes
48 */
49#define	TYPE_A		1	/* ASCII */
50#define	TYPE_E		2	/* EBCDIC */
51#define	TYPE_I		3	/* image */
52#define	TYPE_L		4	/* local byte size */
53
54#ifdef FTP_NAMES
55char *typenames[] =  {"0", "ASCII", "EBCDIC", "Image", "Local" };
56#endif
57
58/*
59 * Form codes
60 */
61#define	FORM_N		1	/* non-print */
62#define	FORM_T		2	/* telnet format effectors */
63#define	FORM_C		3	/* carriage control (ASA) */
64#ifdef FTP_NAMES
65char *formnames[] =  {"0", "Nonprint", "Telnet", "Carriage-control" };
66#endif
67
68/*
69 * Structure codes
70 */
71#define	STRU_F		1	/* file (no record structure) */
72#define	STRU_R		2	/* record structure */
73#define	STRU_P		3	/* page structure */
74#ifdef FTP_NAMES
75char *strunames[] =  {"0", "File", "Record", "Page" };
76#endif
77
78/*
79 * Mode types
80 */
81#define	MODE_S		1	/* stream */
82#define	MODE_B		2	/* block */
83#define	MODE_C		3	/* compressed */
84#ifdef FTP_NAMES
85char *modenames[] =  {"0", "Stream", "Block", "Compressed" };
86#endif
87
88/*
89 * Record Tokens
90 */
91#define	REC_ESC		'\377'	/* Record-mode Escape */
92#define	REC_EOR		'\001'	/* Record-mode End-of-Record */
93#define REC_EOF		'\002'	/* Record-mode End-of-File */
94
95/*
96 * Block Header
97 */
98#define	BLK_EOR		0x80	/* Block is End-of-Record */
99#define	BLK_EOF		0x40	/* Block is End-of-File */
100#define BLK_ERRORS	0x20	/* Block is suspected of containing errors */
101#define	BLK_RESTART	0x10	/* Block is Restart Marker */
102
103#define	BLK_BYTECOUNT	2	/* Bytes in this block */
104
105#endif /* !_FTP_H_ */
106