From c719ba7bf34a0d30a32a7cf7f57c8c4174621ae9 Mon Sep 17 00:00:00 2001 From: Sylvain Rochet Date: Sun, 9 Dec 2012 21:22:19 +0100 Subject: [PATCH] PPP, moved PAP configuration to ppp_settings struct --- src/include/netif/ppp/ppp.h | 8 ++++++++ src/include/netif/ppp/upap.h | 5 ----- src/netif/ppp/ppp.c | 7 +++++++ src/netif/ppp/upap.c | 21 ++++++++------------- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/include/netif/ppp/ppp.h b/src/include/netif/ppp/ppp.h index f589cd18..598be16e 100644 --- a/src/include/netif/ppp/ppp.h +++ b/src/include/netif/ppp/ppp.h @@ -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 */ diff --git a/src/include/netif/ppp/upap.h b/src/include/netif/ppp/upap.h index 940f01d0..edd3bf45 100644 --- a/src/include/netif/ppp/upap.h +++ b/src/include/netif/ppp/upap.h @@ -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 */ diff --git a/src/netif/ppp/ppp.c b/src/netif/ppp/ppp.c index a63779e7..09d138b7 100644 --- a/src/netif/ppp/ppp.c +++ b/src/netif/ppp/ppp.c @@ -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; diff --git a/src/netif/ppp/upap.c b/src/netif/ppp/upap.c index 5c8b53c2..9cf0e432 100644 --- a/src/netif/ppp/upap.c +++ b/src/netif/ppp/upap.c @@ -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; }