2 * Copyright (c) 1985, 1989, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * User FTP -- Command Tables.
40 char accounthelp
[] = "send account command to remote server";
41 char appendhelp
[] = "append to a file";
42 char asciihelp
[] = "set ascii transfer type";
43 char beephelp
[] = "beep when command completed";
44 char binaryhelp
[] = "set binary transfer type";
45 char casehelp
[] = "toggle mget upper/lower case id mapping";
46 char cdhelp
[] = "change remote working directory";
47 char cduphelp
[] = "change remote working directory to parent directory";
48 char chmodhelp
[] = "change file permissions of remote file";
49 char connecthelp
[] = "connect to remote tftp";
50 char crhelp
[] = "toggle carriage return stripping on ascii gets";
51 char deletehelp
[] = "delete remote file";
52 char debughelp
[] = "toggle/set debugging mode";
53 char dirhelp
[] = "list contents of remote directory";
54 char disconhelp
[] = "terminate ftp session";
55 char domachelp
[] = "execute macro";
56 char formhelp
[] = "set file transfer format";
57 char globhelp
[] = "toggle metacharacter expansion of local file names";
58 char hashhelp
[] = "toggle printing `#' for each buffer transferred";
59 char helphelp
[] = "print local help information";
60 char idlehelp
[] = "get (set) idle timer on remote side";
61 char lcdhelp
[] = "change local working directory";
62 char lshelp
[] = "list contents of remote directory";
63 char macdefhelp
[] = "define a macro";
64 char mdeletehelp
[] = "delete multiple files";
65 char mdirhelp
[] = "list contents of multiple remote directories";
66 char mgethelp
[] = "get multiple files";
67 char mkdirhelp
[] = "make directory on the remote machine";
68 char mlshelp
[] = "list contents of multiple remote directories";
69 char modtimehelp
[] = "show last modification time of remote file";
70 char modehelp
[] = "set file transfer mode";
71 char mputhelp
[] = "send multiple files";
72 char newerhelp
[] = "get file if remote file is newer than local file ";
73 char nlisthelp
[] = "nlist contents of remote directory";
74 char nmaphelp
[] = "set templates for default file name mapping";
75 char ntranshelp
[] = "set translation table for default file name mapping";
76 char porthelp
[] = "toggle use of PORT cmd for each data connection";
77 char prompthelp
[] = "force interactive prompting on multiple commands";
78 char proxyhelp
[] = "issue command on alternate connection";
79 char pwdhelp
[] = "print working directory on remote machine";
80 char quithelp
[] = "terminate ftp session and exit";
81 char quotehelp
[] = "send arbitrary ftp command";
82 char receivehelp
[] = "receive file";
83 char regethelp
[] = "get file restarting at end of local file";
84 char remotehelp
[] = "get help from remote server";
85 char renamehelp
[] = "rename file";
86 char restarthelp
[]= "restart file transfer at bytecount";
87 char rmdirhelp
[] = "remove directory on the remote machine";
88 char rmtstatushelp
[]="show status of remote machine";
89 char runiquehelp
[] = "toggle store unique for local files";
90 char resethelp
[] = "clear queued command replies";
91 char sendhelp
[] = "send one file";
92 char passivehelp
[] = "enter passive transfer mode";
93 char sitehelp
[] = "send site specific command to remote server\n\t\tTry \"rhelp site\" or \"site help\" for more information";
94 char shellhelp
[] = "escape to the shell";
95 char sizecmdhelp
[] = "show size of remote file";
96 char statushelp
[] = "show current status";
97 char structhelp
[] = "set file transfer structure";
98 char suniquehelp
[] = "toggle store unique on remote machine";
99 char systemhelp
[] = "show remote system type";
100 char tenexhelp
[] = "set tenex file transfer type";
101 char tracehelp
[] = "toggle packet tracing";
102 char typehelp
[] = "set file transfer type";
103 char umaskhelp
[] = "get (set) umask on remote side";
104 char userhelp
[] = "send new user information";
105 char verbosehelp
[] = "toggle verbose mode";
107 char prothelp
[] = "set protection level";
108 char kauthhelp
[] = "get remote tokens";
109 char klisthelp
[] = "show remote tickets";
110 char kdestroyhelp
[] = "destroy remote tickets";
111 char krbtkfilehelp
[] = "set filename of remote tickets";
112 char afsloghelp
[] = "obtain remote AFS tokens";
114 struct cmd cmdtab
[] = {
115 { "!", shellhelp
, 0, 0, 0, shell
},
116 { "$", domachelp
, 1, 0, 0, domacro
},
117 { "account", accounthelp
, 0, 1, 1, account
},
118 { "append", appendhelp
, 1, 1, 1, put
},
119 { "ascii", asciihelp
, 0, 1, 1, setascii
},
120 { "bell", beephelp
, 0, 0, 0, setbell
},
121 { "binary", binaryhelp
, 0, 1, 1, setbinary
},
122 { "bye", quithelp
, 0, 0, 0, quit
},
123 { "case", casehelp
, 0, 0, 1, setcase
},
124 { "cd", cdhelp
, 0, 1, 1, cd
},
125 { "cdup", cduphelp
, 0, 1, 1, cdup
},
126 { "chmod", chmodhelp
, 0, 1, 1, do_chmod
},
127 { "close", disconhelp
, 0, 1, 1, disconnect
},
128 { "cr", crhelp
, 0, 0, 0, setcr
},
129 { "delete", deletehelp
, 0, 1, 1, delete },
130 { "debug", debughelp
, 0, 0, 0, setdebug
},
131 { "dir", dirhelp
, 1, 1, 1, ls
},
132 { "disconnect", disconhelp
, 0, 1, 1, disconnect
},
133 { "form", formhelp
, 0, 1, 1, setform
},
134 { "get", receivehelp
, 1, 1, 1, get
},
135 { "glob", globhelp
, 0, 0, 0, setglob
},
136 { "hash", hashhelp
, 0, 0, 0, sethash
},
137 { "help", helphelp
, 0, 0, 1, help
},
138 { "idle", idlehelp
, 0, 1, 1, ftp_idle
},
139 { "image", binaryhelp
, 0, 1, 1, setbinary
},
140 { "lcd", lcdhelp
, 0, 0, 0, lcd
},
141 { "ls", lshelp
, 1, 1, 1, ls
},
142 { "macdef", macdefhelp
, 0, 0, 0, macdef
},
143 { "mdelete", mdeletehelp
, 1, 1, 1, mdelete
},
144 { "mdir", mdirhelp
, 1, 1, 1, mls
},
145 { "mget", mgethelp
, 1, 1, 1, mget
},
146 { "mkdir", mkdirhelp
, 0, 1, 1, makedir
},
147 { "mls", mlshelp
, 1, 1, 1, mls
},
148 { "mode", modehelp
, 0, 1, 1, setftmode
},
149 { "modtime", modtimehelp
, 0, 1, 1, modtime
},
150 { "mput", mputhelp
, 1, 1, 1, mput
},
151 { "newer", newerhelp
, 1, 1, 1, newer
},
152 { "nmap", nmaphelp
, 0, 0, 1, setnmap
},
153 { "nlist", nlisthelp
, 1, 1, 1, ls
},
154 { "ntrans", ntranshelp
, 0, 0, 1, setntrans
},
155 { "open", connecthelp
, 0, 0, 1, setpeer
},
156 { "passive", passivehelp
, 0, 0, 0, setpassive
},
157 { "prompt", prompthelp
, 0, 0, 0, setprompt
},
158 { "proxy", proxyhelp
, 0, 0, 1, doproxy
},
159 { "sendport", porthelp
, 0, 0, 0, setport
},
160 { "put", sendhelp
, 1, 1, 1, put
},
161 { "pwd", pwdhelp
, 0, 1, 1, pwd
},
162 { "quit", quithelp
, 0, 0, 0, quit
},
163 { "quote", quotehelp
, 1, 1, 1, quote
},
164 { "recv", receivehelp
, 1, 1, 1, get
},
165 { "reget", regethelp
, 1, 1, 1, reget
},
166 { "rstatus", rmtstatushelp
, 0, 1, 1, rmtstatus
},
167 { "rhelp", remotehelp
, 0, 1, 1, rmthelp
},
168 { "rename", renamehelp
, 0, 1, 1, renamefile
},
169 { "reset", resethelp
, 0, 1, 1, reset
},
170 { "restart", restarthelp
, 1, 1, 1, restart
},
171 { "rmdir", rmdirhelp
, 0, 1, 1, removedir
},
172 { "runique", runiquehelp
, 0, 0, 1, setrunique
},
173 { "send", sendhelp
, 1, 1, 1, put
},
174 { "site", sitehelp
, 0, 1, 1, site
},
175 { "size", sizecmdhelp
, 1, 1, 1, sizecmd
},
176 { "status", statushelp
, 0, 0, 1, status
},
177 { "struct", structhelp
, 0, 1, 1, setstruct
},
178 { "system", systemhelp
, 0, 1, 1, syst
},
179 { "sunique", suniquehelp
, 0, 0, 1, setsunique
},
180 { "tenex", tenexhelp
, 0, 1, 1, settenex
},
181 { "trace", tracehelp
, 0, 0, 0, settrace
},
182 { "type", typehelp
, 0, 1, 1, settype
},
183 { "user", userhelp
, 0, 1, 1, user
},
184 { "umask", umaskhelp
, 0, 1, 1, do_umask
},
185 { "verbose", verbosehelp
, 0, 0, 0, setverbose
},
186 { "?", helphelp
, 0, 0, 1, help
},
188 { "prot", prothelp
, 0, 1, 0, sec_prot
},
189 { "kauth", kauthhelp
, 0, 1, 0, kauth
},
190 { "klist", klisthelp
, 0, 1, 0, klist
},
191 { "kdestroy", kdestroyhelp
, 0, 1, 0, kdestroy
},
192 { "krbtkfile", krbtkfilehelp
, 0, 1, 0, krbtkfile
},
193 { "afslog", afsloghelp
, 0, 1, 0, afslog
},
198 int NCMDS
= (sizeof (cmdtab
) / sizeof (cmdtab
[0])) - 1;