X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fchap.c;h=3d7a660618af65dbf1ce71b6f896992a29ffce85;hp=27a60f21d058f76b5695d2e61f468737668ff4c5;hb=37a8acc7ee2527693d0c8ba82b2eaea249abde34;hpb=7a4dc0ff500aaa176a41965d8d4ad15a97a70904 diff --git a/pppd/chap.c b/pppd/chap.c index 27a60f2..3d7a660 100644 --- a/pppd/chap.c +++ b/pppd/chap.c @@ -33,9 +33,7 @@ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#ifndef lint -static char rcsid[] = "$Id: chap.c,v 1.19 1999/03/16 03:15:13 paulus Exp $"; -#endif +#define RCSID "$Id: chap.c,v 1.25 2001/03/08 05:11:11 paulus Exp $" /* * TODO: @@ -53,16 +51,18 @@ static char rcsid[] = "$Id: chap.c,v 1.19 1999/03/16 03:15:13 paulus Exp $"; #include "chap_ms.h" #endif +static const char rcsid[] = RCSID; + /* * Command-line options. */ static option_t chap_option_list[] = { { "chap-restart", o_int, &chap[0].timeouttime, - "Set timeout for CHAP" }, + "Set timeout for CHAP", OPT_PRIO }, { "chap-max-challenge", o_int, &chap[0].max_transmits, - "Set max #xmits for challenge" }, + "Set max #xmits for challenge", OPT_PRIO }, { "chap-interval", o_int, &chap[0].chal_interval, - "Set interval for rechallenge" }, + "Set interval for rechallenge", OPT_PRIO }, #ifdef MSLANMAN { "ms-lanman", o_bool, &ms_lanman, "Use LanMan passwd when using MS-CHAP", 1 }, @@ -94,6 +94,7 @@ struct protent chap_protent = { NULL, 1, "CHAP", + NULL, chap_option_list, NULL, NULL, @@ -435,8 +436,8 @@ ChapReceiveChallenge(cstate, inp, id, len) rhostname[len] = '\000'; /* Microsoft doesn't send their name back in the PPP packet */ - if (remote_name[0] != 0 && (explicit_remote || rhostname[0] == 0)) { - strlcpy(rhostname, sizeof(rhostname), remote_name); + if (explicit_remote || (remote_name[0] != 0 && rhostname[0] == 0)) { + strlcpy(rhostname, remote_name, sizeof(rhostname)); CHAPDEBUG(("ChapReceiveChallenge: using '%q' as remote name", rhostname)); } @@ -551,8 +552,8 @@ ChapReceiveResponse(cstate, inp, id, len) * do the hash ourselves, and compare the result. */ code = CHAP_FAILURE; - if (!get_secret(cstate->unit, rhostname, cstate->chal_name, - secret, &secret_len, 1)) { + if (!get_secret(cstate->unit, (explicit_remote? remote_name: rhostname), + cstate->chal_name, secret, &secret_len, 1)) { warn("No CHAP secret found for authenticating %q", rhostname); } else { @@ -740,7 +741,7 @@ ChapGenChallenge(cstate) { int chal_len; u_char *ptr = cstate->challenge; - unsigned int i; + int i; /* pick a random challenge length between MIN_CHALLENGE_LENGTH and MAX_CHALLENGE_LENGTH */ @@ -752,7 +753,7 @@ ChapGenChallenge(cstate) cstate->chal_transmits = 0; /* generate a random string */ - for (i = 0; i < chal_len; i++ ) + for (i = 0; i < chal_len; i++) *ptr++ = (char) (drand48() * 0xff); }