11ae349f5Scvs2svn /* 21ae349f5Scvs2svn * Written by Toshiharu OHNO (tony-o@iij.ad.jp) 31ae349f5Scvs2svn * 41ae349f5Scvs2svn * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. 51ae349f5Scvs2svn * 61ae349f5Scvs2svn * Redistribution and use in source and binary forms are permitted 71ae349f5Scvs2svn * provided that the above copyright notice and this paragraph are 81ae349f5Scvs2svn * duplicated in all such forms and that any documentation, 91ae349f5Scvs2svn * advertising materials, and other materials related to such 101ae349f5Scvs2svn * distribution and use acknowledge that the software was developed 111ae349f5Scvs2svn * by the Internet Initiative Japan. The name of the 121ae349f5Scvs2svn * IIJ may not be used to endorse or promote products derived 131ae349f5Scvs2svn * from this software without specific prior written permission. 141ae349f5Scvs2svn * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 151ae349f5Scvs2svn * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 161ae349f5Scvs2svn * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 171ae349f5Scvs2svn * 1825092092SBrian Somers * $Id: command.h,v 1.12.2.9 1998/04/07 00:53:34 brian Exp $ 191ae349f5Scvs2svn * 201ae349f5Scvs2svn * TODO: 211ae349f5Scvs2svn */ 221ae349f5Scvs2svn 231ae349f5Scvs2svn struct cmdtab; 242764b86aSBrian Somers struct bundle; 252764b86aSBrian Somers struct datalink; 262764b86aSBrian Somers struct prompt; 271ae349f5Scvs2svn 281ae349f5Scvs2svn struct cmdargs { 29aef795ccSBrian Somers struct cmdtab const *cmdtab; /* The entire command table */ 30aef795ccSBrian Somers struct cmdtab const *cmd; /* This command entry */ 31b6217683SBrian Somers int argc; /* Number of arguments (excluding cmd */ 3225092092SBrian Somers int argn; /* Argument to start processing from */ 33b6217683SBrian Somers char const *const *argv; /* Arguments */ 34b6217683SBrian Somers struct bundle *bundle; /* Our bundle */ 35b6217683SBrian Somers struct datalink *cx; /* Our context */ 36b6217683SBrian Somers struct prompt *prompt; /* Who executed us */ 371ae349f5Scvs2svn }; 381ae349f5Scvs2svn 391ae349f5Scvs2svn struct cmdtab { 401ae349f5Scvs2svn const char *name; 411ae349f5Scvs2svn const char *alias; 421ae349f5Scvs2svn int (*func) (struct cmdargs const *); 431ae349f5Scvs2svn u_char lauth; 441ae349f5Scvs2svn const char *helpmes; 451ae349f5Scvs2svn const char *syntax; 461ae349f5Scvs2svn const void *args; 471ae349f5Scvs2svn }; 481ae349f5Scvs2svn 491ae349f5Scvs2svn #define VAR_AUTHKEY 0 501ae349f5Scvs2svn #define VAR_DIAL 1 511ae349f5Scvs2svn #define VAR_LOGIN 2 521ae349f5Scvs2svn #define VAR_AUTHNAME 3 5303036ec7SBrian Somers #define VAR_WINSIZE 4 5403036ec7SBrian Somers #define VAR_DEVICE 5 5503036ec7SBrian Somers #define VAR_ACCMAP 6 56cd9647a1SBrian Somers #define VAR_MRU 7 57cd9647a1SBrian Somers #define VAR_MTU 8 58cd9647a1SBrian Somers #define VAR_OPENMODE 9 59cd9647a1SBrian Somers #define VAR_PHONE 10 60cd9647a1SBrian Somers #define VAR_HANGUP 11 61cd9647a1SBrian Somers #define VAR_ENC 12 62cd9647a1SBrian Somers #define VAR_IDLETIMEOUT 13 63cd9647a1SBrian Somers #define VAR_LQRPERIOD 14 64cd9647a1SBrian Somers #define VAR_LCPRETRY 15 65cd9647a1SBrian Somers #define VAR_CHAPRETRY 16 66cd9647a1SBrian Somers #define VAR_PAPRETRY 17 67cd9647a1SBrian Somers #define VAR_CCPRETRY 18 68cd9647a1SBrian Somers #define VAR_IPCPRETRY 19 691ae349f5Scvs2svn 70b6217683SBrian Somers extern int IsInteractive(struct prompt *); 711ae349f5Scvs2svn extern void InterpretCommand(char *, int, int *, char ***); 72b6217683SBrian Somers extern void RunCommand(struct bundle *, int, char const *const *, 73b6217683SBrian Somers struct prompt *, const char *); 74b6217683SBrian Somers extern void DecodeCommand(struct bundle *, char *, int, struct prompt *, 75b6217683SBrian Somers const char *); 763b0f8d2eSBrian Somers extern struct link *ChooseLink(struct cmdargs const *); 77