PPP, moved PAP configuration to ppp_settings struct

This commit is contained in:
Sylvain Rochet 2012-12-09 21:22:19 +01:00
parent 31d7293b17
commit c719ba7bf3
4 changed files with 23 additions and 18 deletions

View File

@ -224,6 +224,14 @@ typedef struct ppp_settings_s {
char remote_name[MAXNAMELEN + 1]; /* Peer's name for authentication */
#endif /* PPP_REMOTENAME */
#if PAP_SUPPORT
u8_t pap_timeout_time; /* Timeout (seconds) for auth-req retrans. */
u8_t pap_max_transmits; /* Number of auth-reqs sent */
#if PPP_SERVER
u8_t pap_req_timeout; /* Time to wait for auth-req from peer */
#endif /* PPP_SERVER */
#endif /* PAP_SUPPPORT */
#if CHAP_SUPPORT
u8_t chap_timeout_time; /* Timeout (seconds) for retransmitting req */
u8_t chap_max_transmits; /* max # times to send challenge */

View File

@ -107,12 +107,7 @@ typedef struct upap_state {
u8_t us_serverstate; /* Server state */
#endif /* PPP_SERVER */
u8_t us_id; /* Current id */
u8_t us_timeouttime; /* Timeout (seconds) for auth-req retrans. */
u8_t us_transmits; /* Number of auth-reqs sent */
u8_t us_maxtransmits; /* Maximum number of auth-reqs to send */
#if PPP_SERVER
u8_t us_reqtimeout; /* Time to wait for auth-req from peer */
#endif /* PPP_SERVER */
} upap_state;
#endif /* PAP_SUPPORT */

View File

@ -257,6 +257,13 @@ ppp_pcb *ppp_new(void) {
/* default configuration */
pcb->settings.usepeerdns = 1;
#if PAP_SUPPORT
pcb->settings.pap_timeout_time = UPAP_DEFTIMEOUT;
pcb->settings.pap_max_transmits = UPAP_DEFTRANSMITS;
#if PPP_SERVER
pcb->settings.pap_req_timeout = UPAP_DEFREQTIME;
#endif /* PPP_SERVER */
#endif /* PAP_SUPPORT */
#if CHAP_SUPPORT
pcb->settings.chap_timeout_time = CHAP_DEFTIMEOUT;
pcb->settings.chap_max_transmits = CHAP_DEFTRANSMITS;

View File

@ -143,11 +143,6 @@ static void upap_init(ppp_pcb *pcb) {
pcb->upap.us_serverstate = UPAPSS_INITIAL;
#endif /* PPP_SERVER */
pcb->upap.us_id = 0;
pcb->upap.us_timeouttime = UPAP_DEFTIMEOUT;
pcb->upap.us_maxtransmits = UPAP_DEFTRANSMITS;
#if PPP_SERVER
pcb->upap.us_reqtimeout = UPAP_DEFREQTIME;
#endif /* PPP_SERVER */
}
@ -194,8 +189,8 @@ void upap_authpeer(ppp_pcb *pcb) {
}
pcb->upap.us_serverstate = UPAPSS_LISTEN;
if (pcb->upap.us_reqtimeout > 0)
TIMEOUT(upap_reqtimeout, pcb, pcb->upap.us_reqtimeout);
if (pcb->settings.pap_req_timeout > 0)
TIMEOUT(upap_reqtimeout, pcb, pcb->settings.pap_req_timeout);
}
#endif /* PPP_SERVER */
@ -208,7 +203,7 @@ static void upap_timeout(void *arg) {
if (pcb->upap.us_clientstate != UPAPCS_AUTHREQ)
return;
if (pcb->upap.us_transmits >= pcb->upap.us_maxtransmits) {
if (pcb->upap.us_transmits >= pcb->settings.pap_max_transmits) {
/* give up in disgust */
ppp_error("No response to PAP authenticate-requests");
pcb->upap.us_clientstate = UPAPCS_BADAUTH;
@ -254,8 +249,8 @@ static void upap_lowerup(ppp_pcb *pcb) {
pcb->upap.us_serverstate = UPAPSS_CLOSED;
else if (pcb->upap.us_serverstate == UPAPSS_PENDING) {
pcb->upap.us_serverstate = UPAPSS_LISTEN;
if (pcb->upap.us_reqtimeout > 0)
TIMEOUT(upap_reqtimeout, pcb, pcb->upap.us_reqtimeout);
if (pcb->settings.pap_req_timeout > 0)
TIMEOUT(upap_reqtimeout, pcb, pcb->settings.pap_req_timeout);
}
#endif /* PPP_SERVER */
}
@ -271,7 +266,7 @@ static void upap_lowerdown(ppp_pcb *pcb) {
if (pcb->upap.us_clientstate == UPAPCS_AUTHREQ) /* Timeout pending? */
UNTIMEOUT(upap_timeout, pcb); /* Cancel timeout */
#if PPP_SERVER
if (pcb->upap.us_serverstate == UPAPSS_LISTEN && pcb->upap.us_reqtimeout > 0)
if (pcb->upap.us_serverstate == UPAPSS_LISTEN && pcb->settings.pap_req_timeout > 0)
UNTIMEOUT(upap_reqtimeout, pcb);
#endif /* PPP_SERVER */
@ -448,7 +443,7 @@ static void upap_rauthreq(ppp_pcb *pcb, u_char *inp, int id, int len) {
auth_peer_fail(pcb, PPP_PAP);
}
if (pcb->upap.us_reqtimeout > 0)
if (pcb->settings.pap_req_timeout > 0)
UNTIMEOUT(upap_reqtimeout, pcb);
}
#endif /* PPP_SERVER */
@ -554,7 +549,7 @@ static void upap_sauthreq(ppp_pcb *pcb) {
ppp_write(pcb, p);
TIMEOUT(upap_timeout, pcb, pcb->upap.us_timeouttime);
TIMEOUT(upap_timeout, pcb, pcb->settings.pap_timeout_time);
++pcb->upap.us_transmits;
pcb->upap.us_clientstate = UPAPCS_AUTHREQ;
}