aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ppp/datalink.c
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>1999-04-06 14:48:10 +0000
committerBrian Somers <brian@FreeBSD.org>1999-04-06 14:48:10 +0000
commit0ca6f91b847ff8373ea39887c609acdd7b7b1d9a (patch)
tree02958fe6b3a08627db5add4fad1b768ee5fcf4a9 /usr.sbin/ppp/datalink.c
parent589228bd6a0f6b1c2a52cfd8f5f4aef98c9a2a17 (diff)
downloadsrc-0ca6f91b847ff8373ea39887c609acdd7b7b1d9a.tar.gz
src-0ca6f91b847ff8373ea39887c609acdd7b7b1d9a.zip
When going from DATALINK_HANGUP directly to
DATALINK_OPENING, don't forget to change phase to ESTABLISH if we're currently TERMINATE'ing. Helped locate by: Chuck Robey <chuckr@mat.net>
Notes
Notes: svn path=/head/; revision=45385
Diffstat (limited to 'usr.sbin/ppp/datalink.c')
-rw-r--r--usr.sbin/ppp/datalink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/ppp/datalink.c b/usr.sbin/ppp/datalink.c
index 11f3b3b2caeb..ea1a3d8ae67b 100644
--- a/usr.sbin/ppp/datalink.c
+++ b/usr.sbin/ppp/datalink.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: datalink.c,v 1.35 1999/03/04 17:42:15 brian Exp $
+ * $Id: datalink.c,v 1.36 1999/04/05 21:52:10 brian Exp $
*/
#include <sys/param.h>
@@ -144,6 +144,8 @@ datalink_HangupDone(struct datalink *dl)
datalink_StartDialTimer(dl, dl->cbcp.fsm.delay);
cbcp_Down(&dl->cbcp);
datalink_NewState(dl, DATALINK_OPENING);
+ if (bundle_Phase(dl->bundle) != PHASE_TERMINATE)
+ bundle_NewPhase(dl->bundle, PHASE_ESTABLISH);
} else if (dl->bundle->CleaningUp ||
(dl->physical->type == PHYS_DIRECT) ||
((!dl->dial.tries || (dl->dial.tries < 0 && !dl->reconnect_tries)) &&
@@ -157,6 +159,8 @@ datalink_HangupDone(struct datalink *dl)
datalink_StartDialTimer(dl, datalink_GetDialTimeout(dl));
} else {
datalink_NewState(dl, DATALINK_OPENING);
+ if (bundle_Phase(dl->bundle) != PHASE_TERMINATE)
+ bundle_NewPhase(dl->bundle, PHASE_ESTABLISH);
if (dl->dial.tries < 0) {
datalink_StartDialTimer(dl, dl->cfg.reconnect.timeout);
dl->dial.tries = dl->cfg.dial.max;