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 *	@(#)ftp.h	8.1 (Berkeley) 6/2/93
32 */
33
34#ifndef _ARPA_FTP_H_
35#define	_ARPA_FTP_H_
36
37
38#include <features.h>
39
40
41#ifdef _DEFAULT_SOURCE
42
43
44/* Definitions for FTP; see RFC-765. */
45
46/*
47 * Reply codes.
48 */
49#define PRELIM		1	/* positive preliminary */
50#define COMPLETE	2	/* positive completion */
51#define CONTINUE	3	/* positive intermediate */
52#define TRANSIENT	4	/* transient negative completion */
53#define ERROR		5	/* permanent negative completion */
54
55/*
56 * Type codes
57 */
58#define	TYPE_A		1	/* ASCII */
59#define	TYPE_E		2	/* EBCDIC */
60#define	TYPE_I		3	/* image */
61#define	TYPE_L		4	/* local byte size */
62
63#ifdef FTP_NAMES
64char *typenames[] =  {"0", "ASCII", "EBCDIC", "Image", "Local" };
65#endif
66
67/*
68 * Form codes
69 */
70#define	FORM_N		1	/* non-print */
71#define	FORM_T		2	/* telnet format effectors */
72#define	FORM_C		3	/* carriage control (ASA) */
73#ifdef FTP_NAMES
74char *formnames[] =  {"0", "Nonprint", "Telnet", "Carriage-control" };
75#endif
76
77/*
78 * Structure codes
79 */
80#define	STRU_F		1	/* file (no record structure) */
81#define	STRU_R		2	/* record structure */
82#define	STRU_P		3	/* page structure */
83#ifdef FTP_NAMES
84char *strunames[] =  {"0", "File", "Record", "Page" };
85#endif
86
87/*
88 * Mode types
89 */
90#define	MODE_S		1	/* stream */
91#define	MODE_B		2	/* block */
92#define	MODE_C		3	/* compressed */
93#ifdef FTP_NAMES
94char *modenames[] =  {"0", "Stream", "Block", "Compressed" };
95#endif
96
97/*
98 * Record Tokens
99 */
100#define	REC_ESC		'\377'	/* Record-mode Escape */
101#define	REC_EOR		'\001'	/* Record-mode End-of-Record */
102#define REC_EOF		'\002'	/* Record-mode End-of-File */
103
104/*
105 * Block Header
106 */
107#define	BLK_EOR		0x80	/* Block is End-of-Record */
108#define	BLK_EOF		0x40	/* Block is End-of-File */
109#define BLK_ERRORS	0x20	/* Block is suspected of containing errors */
110#define	BLK_RESTART	0x10	/* Block is Restart Marker */
111
112#define	BLK_BYTECOUNT	2	/* Bytes in this block */
113
114
115#endif
116
117
118#endif /* !_FTP_H_ */
119