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 * 18b6217683SBrian Somers * $Id: command.h,v 1.12.2.7 1998/04/03 19:23:55 brian Exp $ 191ae349f5Scvs2svn * 201ae349f5Scvs2svn * TODO: 211ae349f5Scvs2svn */ 221ae349f5Scvs2svn 231ae349f5Scvs2svn struct cmdtab; 241ae349f5Scvs2svn 251ae349f5Scvs2svn struct cmdargs { 26aef795ccSBrian Somers struct cmdtab const *cmdtab; /* The entire command table */ 27aef795ccSBrian Somers struct cmdtab const *cmd; /* This command entry */ 28b6217683SBrian Somers int argc; /* Number of arguments (excluding cmd */ 29b6217683SBrian Somers char const *const *argv; /* Arguments */ 30b6217683SBrian Somers struct bundle *bundle; /* Our bundle */ 31b6217683SBrian Somers struct datalink *cx; /* Our context */ 32b6217683SBrian Somers struct prompt *prompt; /* Who executed us */ 331ae349f5Scvs2svn }; 341ae349f5Scvs2svn 351ae349f5Scvs2svn struct cmdtab { 361ae349f5Scvs2svn const char *name; 371ae349f5Scvs2svn const char *alias; 381ae349f5Scvs2svn int (*func) (struct cmdargs const *); 391ae349f5Scvs2svn u_char lauth; 401ae349f5Scvs2svn const char *helpmes; 411ae349f5Scvs2svn const char *syntax; 421ae349f5Scvs2svn const void *args; 431ae349f5Scvs2svn }; 441ae349f5Scvs2svn 451ae349f5Scvs2svn #define VAR_AUTHKEY 0 461ae349f5Scvs2svn #define VAR_DIAL 1 471ae349f5Scvs2svn #define VAR_LOGIN 2 481ae349f5Scvs2svn #define VAR_AUTHNAME 3 4903036ec7SBrian Somers #define VAR_WINSIZE 4 5003036ec7SBrian Somers #define VAR_DEVICE 5 5103036ec7SBrian Somers #define VAR_ACCMAP 6 52cd9647a1SBrian Somers #define VAR_MRU 7 53cd9647a1SBrian Somers #define VAR_MTU 8 54cd9647a1SBrian Somers #define VAR_OPENMODE 9 55cd9647a1SBrian Somers #define VAR_PHONE 10 56cd9647a1SBrian Somers #define VAR_HANGUP 11 57cd9647a1SBrian Somers #define VAR_ENC 12 58cd9647a1SBrian Somers #define VAR_IDLETIMEOUT 13 59cd9647a1SBrian Somers #define VAR_LQRPERIOD 14 60cd9647a1SBrian Somers #define VAR_LCPRETRY 15 61cd9647a1SBrian Somers #define VAR_CHAPRETRY 16 62cd9647a1SBrian Somers #define VAR_PAPRETRY 17 63cd9647a1SBrian Somers #define VAR_CCPRETRY 18 64cd9647a1SBrian Somers #define VAR_IPCPRETRY 19 651ae349f5Scvs2svn 661ae349f5Scvs2svn extern struct in_addr ifnetmask; 671ae349f5Scvs2svn extern int aft_cmd; 681ae349f5Scvs2svn 69b6217683SBrian Somers extern int IsInteractive(struct prompt *); 701ae349f5Scvs2svn extern void InterpretCommand(char *, int, int *, char ***); 71b6217683SBrian Somers extern void RunCommand(struct bundle *, int, char const *const *, 72b6217683SBrian Somers struct prompt *, const char *); 73b6217683SBrian Somers extern void DecodeCommand(struct bundle *, char *, int, struct prompt *, 74b6217683SBrian Somers const char *); 753b0f8d2eSBrian Somers extern struct link *ChooseLink(struct cmdargs const *); 76