-static struct cmd {
- char *cmd_name;
- int num_args;
- int (*cmd_func) __P((char **));
-} cmds[] = {
- {"-all", 0, noopt}, /* Don't request/allow any options (useless) */
- {"noaccomp", 0, noaccomp}, /* Disable Address/Control compression */
- {"-ac", 0, noaccomp}, /* Disable Address/Control compress */
- {"default-asyncmap", 0, noasyncmap}, /* Disable asyncmap negoatiation */
- {"-am", 0, noasyncmap}, /* Disable asyncmap negotiation */
- {"-as", 1, setasyncmap}, /* set the desired async map */
- {"-d", 0, setdebug}, /* Increase debugging level */
- {"nodetach", 0, setnodetach}, /* Don't detach from controlling tty */
- {"-detach", 0, setnodetach}, /* don't fork */
- {"updetach", 0, setupdetach}, /* Detach once an NP has come up */
- {"noip", 0, noip}, /* Disable IP and IPCP */
- {"-ip", 0, noip}, /* Disable IP and IPCP */
- {"nomagic", 0, nomagicnumber}, /* Disable magic number negotiation */
- {"-mn", 0, nomagicnumber}, /* Disable magic number negotiation */
- {"default-mru", 0, nomru}, /* Disable MRU negotiation */
- {"-mru", 0, nomru}, /* Disable mru negotiation */
- {"-p", 0, setpassive}, /* Set passive mode */
- {"nopcomp", 0, nopcomp}, /* Disable protocol field compression */
- {"-pc", 0, nopcomp}, /* Disable protocol field compress */
-#if OLD_OPTIONS
- {"+ua", 1, setupapfile}, /* Get PAP user and password from file */
-#endif
- {"require-pap", 0, reqpap}, /* Require PAP authentication from peer */
- {"+pap", 0, reqpap}, /* Require PAP auth from peer */
- {"refuse-pap", 0, nopap}, /* Don't agree to auth to peer with PAP */
- {"-pap", 0, nopap}, /* Don't allow UPAP authentication with peer */
- {"require-chap", 0, reqchap}, /* Require CHAP authentication from peer */
- {"+chap", 0, reqchap}, /* Require CHAP authentication from peer */
- {"refuse-chap", 0, nochap}, /* Don't agree to auth to peer with CHAP */
- {"-chap", 0, nochap}, /* Don't allow CHAP authentication with peer */
- {"novj", 0, setnovj}, /* Disable VJ compression */
- {"-vj", 0, setnovj}, /* disable VJ compression */
- {"novjccomp", 0, setnovjccomp}, /* disable VJ connection-ID compression */
- {"-vjccomp", 0, setnovjccomp}, /* disable VJ connection-ID compression */
- {"vj-max-slots", 1, setvjslots}, /* Set maximum VJ header slots */
- {"asyncmap", 1, setasyncmap}, /* set the desired async map */
- {"escape", 1, setescape}, /* set chars to escape on transmission */
- {"connect", 1, setconnector}, /* A program to set up a connection */
- {"disconnect", 1, setdisconnector}, /* program to disconnect serial dev. */
- {"welcome", 1, setwelcomer},/* Script to welcome client */
- {"maxconnect", 1, setmaxconnect}, /* specify a maximum connect time */
- {"crtscts", 0, setcrtscts}, /* set h/w flow control */
- {"nocrtscts", 0, setnocrtscts}, /* clear h/w flow control */
- {"-crtscts", 0, setnocrtscts}, /* clear h/w flow control */
- {"cdtrcts", 0, setcdtrcts}, /* set alternate h/w flow control */
- {"nocdtrcts", 0, setnocrtscts}, /* clear h/w flow control */
- {"-cdtrcts", 0, setnocrtscts}, /* clear h/w flow control */
- {"xonxoff", 0, setxonxoff}, /* set s/w flow control */
- {"debug", 0, setdebug}, /* Increase debugging level */
- {"kdebug", 1, setkdebug}, /* Enable kernel-level debugging */
- {"domain", 1, setdomain}, /* Add given domain name to hostname*/
- {"mru", 1, setmru}, /* Set MRU value for negotiation */
- {"mtu", 1, setmtu}, /* Set our MTU */
-#ifdef CBCP_SUPPORT
- {"callback", 1, setcbcp}, /* Ask for callback */
-#endif
- {"netmask", 1, setnetmask}, /* set netmask */
- {"passive", 0, setpassive}, /* Set passive mode */
- {"silent", 0, setsilent}, /* Set silent mode */
- {"modem", 0, setmodem}, /* Use modem control lines */
- {"local", 0, setlocal}, /* Don't use modem control lines */
- {"lock", 0, setlock}, /* Lock serial device (with lock file) */
- {"name", 1, setname}, /* Set local name for authentication */
- {"user", 1, setuser}, /* Set name for auth with peer */
- {"usehostname", 0, setusehostname}, /* Must use hostname for auth. */
- {"remotename", 1, setremote}, /* Set remote name for authentication */
- {"auth", 0, setauth}, /* Require authentication from peer */
- {"noauth", 0, setnoauth}, /* Don't require peer to authenticate */
- {"file", 1, readfile}, /* Take options from a file */
- {"call", 1, callfile}, /* Take options from a privileged file */
- {"defaultroute", 0, setdefaultroute}, /* Add default route */
- {"nodefaultroute", 0, setnodefaultroute}, /* disable defaultroute option */
- {"-defaultroute", 0, setnodefaultroute}, /* disable defaultroute option */
- {"proxyarp", 0, setproxyarp}, /* Add proxy ARP entry */
- {"noproxyarp", 0, setnoproxyarp}, /* disable proxyarp option */
- {"-proxyarp", 0, setnoproxyarp}, /* disable proxyarp option */
- {"persist", 0, setpersist}, /* Keep on reopening connection after close */
- {"nopersist", 0, setnopersist}, /* Turn off persist option */
- {"demand", 0, setdemand}, /* Dial on demand */
- {"login", 0, setdologin}, /* Use system password database for UPAP */
- {"noipdefault", 0, setnoipdflt}, /* Don't use name for default IP adrs */
- {"lcp-echo-failure", 1, setlcpechofails}, /* consecutive echo failures */
- {"lcp-echo-interval", 1, setlcpechointv}, /* time for lcp echo events */
- {"lcp-restart", 1, setlcptimeout}, /* Set timeout for LCP */
- {"lcp-max-terminate", 1, setlcpterm}, /* Set max #xmits for term-reqs */
- {"lcp-max-configure", 1, setlcpconf}, /* Set max #xmits for conf-reqs */
- {"lcp-max-failure", 1, setlcpfails}, /* Set max #conf-naks for LCP */
- {"ipcp-restart", 1, setipcptimeout}, /* Set timeout for IPCP */
- {"ipcp-max-terminate", 1, setipcpterm}, /* Set max #xmits for term-reqs */
- {"ipcp-max-configure", 1, setipcpconf}, /* Set max #xmits for conf-reqs */
- {"ipcp-max-failure", 1, setipcpfails}, /* Set max #conf-naks for IPCP */
- {"pap-restart", 1, setpaptimeout}, /* Set retransmit timeout for PAP */
- {"pap-max-authreq", 1, setpapreqs}, /* Set max #xmits for auth-reqs */
- {"pap-timeout", 1, setpapreqtime}, /* Set time limit for peer PAP auth. */
- {"chap-restart", 1, setchaptimeout}, /* Set timeout for CHAP */
- {"chap-max-challenge", 1, setchapchal}, /* Set max #xmits for challenge */
- {"chap-interval", 1, setchapintv}, /* Set interval for rechallenge */
- {"ipcp-accept-local", 0, setipcpaccl}, /* Accept peer's address for us */
- {"ipcp-accept-remote", 0, setipcpaccr}, /* Accept peer's address for it */
- {"noccp", 0, noccp}, /* Disable CCP negotiation */
- {"-ccp", 0, noccp}, /* Disable CCP negotiation */
- {"bsdcomp", 1, setbsdcomp}, /* request BSD-Compress */
- {"nobsdcomp", 0, setnobsdcomp}, /* don't allow BSD-Compress */
- {"-bsdcomp", 0, setnobsdcomp}, /* don't allow BSD-Compress */
- {"deflate", 1, setdeflate}, /* request Deflate compression */
- {"nodeflate", 0, setnodeflate}, /* don't allow Deflate compression */
- {"-deflate", 0, setnodeflate}, /* don't allow Deflate compression */
- {"nodeflatedraft", 0, setnodeflatedraft}, /* don't use draft deflate # */
- {"predictor1", 0, setpred1comp}, /* request Predictor-1 */
- {"nopredictor1", 0, setnopred1comp},/* don't allow Predictor-1 */
- {"-predictor1", 0, setnopred1comp}, /* don't allow Predictor-1 */
- {"ipparam", 1, setipparam}, /* set ip script parameter */
- {"papcrypt", 0, setpapcrypt}, /* PAP passwords encrypted */
- {"idle", 1, setidle}, /* idle time limit (seconds) */
- {"holdoff", 1, setholdoff}, /* set holdoff time (seconds) */
- {"ms-dns", 1, setdnsaddr}, /* DNS address for the peer's use */
- {"ms-wins", 1, setwinsaddr}, /* Nameserver for SMB over TCP/IP for peer */
- {"noipx", 0, resetipxproto}, /* Disable IPXCP (and IPX) */
- {"-ipx", 0, resetipxproto}, /* Disable IPXCP (and IPX) */
- {"--version", 0, showversion}, /* Show version number */
- {"--help", 0, showhelp}, /* Show brief listing of options */
- {"-h", 0, showhelp}, /* ditto */
+option_t general_options[] = {
+ { "debug", o_int, &debug,
+ "Increase debugging level", OPT_INC|OPT_NOARG|1 },
+ { "-d", o_int, &debug,
+ "Increase debugging level", OPT_INC|OPT_NOARG|1 },
+ { "kdebug", o_int, &kdebugflag,
+ "Set kernel driver debug level" },
+ { "nodetach", o_bool, &nodetach,
+ "Don't detach from controlling tty", 1 },
+ { "-detach", o_bool, &nodetach,
+ "Don't detach from controlling tty", 1 },
+ { "updetach", o_bool, &updetach,
+ "Detach from controlling tty once link is up", 1 },
+ { "holdoff", o_int, &holdoff,
+ "Set time in seconds before retrying connection" },
+ { "idle", o_int, &idle_time_limit,
+ "Set time in seconds before disconnecting idle link" },
+ { "lock", o_bool, &lockflag,
+ "Lock serial device with UUCP-style lock file", 1 },
+ { "-all", o_special_noarg, noopt,
+ "Don't request/allow any LCP or IPCP options (useless)" },
+ { "connect", o_string, &connector,
+ "A program to set up a connection", OPT_A2INFO, &connector_info },
+ { "disconnect", o_string, &disconnector,
+ "Program to disconnect serial device", OPT_A2INFO, &disconnector_info },
+ { "welcome", o_string, &welcomer,
+ "Script to welcome client", OPT_A2INFO, &welcomer_info },
+ { "maxconnect", o_int, &maxconnect,
+ "Set connection time limit", OPT_LLIMIT|OPT_NOINCR|OPT_ZEROINF },
+ { "crtscts", o_int, &crtscts,
+ "Set hardware (RTS/CTS) flow control", OPT_NOARG|OPT_VAL(1) },
+ { "nocrtscts", o_int, &crtscts,
+ "Disable hardware flow control", OPT_NOARG|OPT_VAL(-1) },
+ { "-crtscts", o_int, &crtscts,
+ "Disable hardware flow control", OPT_NOARG|OPT_VAL(-1) },
+ { "cdtrcts", o_int, &crtscts,
+ "Set alternate hardware (DTR/CTS) flow control", OPT_NOARG|OPT_VAL(2) },
+ { "nocdtrcts", o_int, &crtscts,
+ "Disable hardware flow control", OPT_NOARG|OPT_VAL(-1) },
+ { "xonxoff", o_special_noarg, setxonxoff,
+ "Set software (XON/XOFF) flow control" },
+ { "domain", o_special, setdomain,
+ "Add given domain name to hostname" },
+ { "mtu", o_int, &lcp_allowoptions[0].mru,
+ "Set our MTU", OPT_LIMITS, NULL, MAXMRU, MINMRU },
+ { "netmask", o_special, setnetmask,
+ "set netmask" },
+ { "modem", o_bool, &modem,
+ "Use modem control lines", 1 },
+ { "local", o_bool, &modem,
+ "Don't use modem control lines" },
+ { "file", o_special, readfile,
+ "Take options from a file" },
+ { "call", o_special, callfile,
+ "Take options from a privileged file" },
+ { "persist", o_bool, &persist,
+ "Keep on reopening connection after close", 1 },
+ { "nopersist", o_bool, &persist,
+ "Turn off persist option" },
+ { "demand", o_bool, &demand,
+ "Dial on demand", 1, &persist },
+ { "--version", o_special_noarg, showversion,
+ "Show version number" },
+ { "--help", o_special_noarg, showhelp,
+ "Show brief listing of options" },
+ { "-h", o_special_noarg, showhelp,
+ "Show brief listing of options" },