*/
#ifndef lint
-static char rcsid[] = "$Id: options.c,v 1.20 1995/06/12 11:22:51 paulus Exp $";
+static char rcsid[] = "$Id: options.c,v 1.23 1995/07/04 12:33:01 paulus Exp $";
#endif
#include <stdio.h>
static int setipcpfails __P((char **));
static int setpaptimeout __P((char **));
static int setpapreqs __P((char **));
+static int setpapreqtime __P((char **));
static int setchaptimeout __P((char **));
static int setchapchal __P((char **));
static int setchapintv __P((char **));
static int setipparam __P((char **));
static int setpapcrypt __P((void));
-static int number_option __P((char *, long *, int));
+static int number_option __P((char *, u_int32_t *, int));
static int readable __P((int fd));
void usage();
{"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 timeout for UPAP */
+ {"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 */
/*
* Read a word from a file.
- * Words are delimited by white-space or by quotes (", or ').
+ * Words are delimited by white-space or by quotes (" or ').
* Quotes, white-space and \ may be escaped with \.
* \<newline> is ignored.
*/
}
/*
- * number_option - parse a numeric parameter for an option
+ * number_option - parse an unsigned numeric parameter for an option.
*/
static int
number_option(str, valp, base)
char *str;
- long *valp;
+ u_int32_t *valp;
int base;
{
char *ptr;
- *valp = strtol(str, &ptr, base);
+ *valp = strtoul(str, &ptr, base);
if (ptr == str) {
fprintf(stderr, "%s: invalid number: %s\n", progname, str);
return 0;
char *str;
int *valp;
{
- long v;
+ u_int32_t v;
if (!number_option(str, &v, 0))
return 0;
setmru(argv)
char **argv;
{
- long mru;
+ u_int32_t mru;
if (!number_option(*argv, &mru, 0))
return 0;
setmtu(argv)
char **argv;
{
- long mtu;
+ u_int32_t mtu;
if (!number_option(*argv, &mtu, 0))
return 0;
setdomain(argv)
char **argv;
{
- strncat(hostname, *argv, MAXNAMELEN - strlen(hostname));
+ gethostname(hostname, MAXNAMELEN);
+ if (**argv != 0) {
+ if (**argv != '.')
+ strncat(hostname, ".", MAXNAMELEN - strlen(hostname));
+ strncat(hostname, *argv, MAXNAMELEN - strlen(hostname));
+ }
hostname[MAXNAMELEN-1] = 0;
return (1);
}
setasyncmap(argv)
char **argv;
{
- long asyncmap;
+ u_int32_t asyncmap;
if (!number_option(*argv, &asyncmap, 16))
return 0;
return int_option(*argv, &upap[0].us_timeouttime);
}
+static int
+setpapreqtime(argv)
+ char **argv;
+{
+ return int_option(*argv, &upap[0].us_reqtimeout);
+}
+
static int
setpapreqs(argv)
char **argv;