ppp/ppp-2.4.3-demand-fix.diff

20 lines
448 B
Diff

--- pppd/auth.c
+++ pppd/auth.c
@@ -546,6 +546,8 @@
int unit;
{
char *msg;
+ if (phase == PHASE_DISCONNECT) /* we are called via link_terminated, must be ignored */
+ return;
new_phase(PHASE_SERIALCONN);
@@ -658,6 +660,7 @@
the_channel->disconnect();
devfd = -1;
}
+ /* not only disconnect, cleanup should also be called to close the devices */
if (the_channel->cleanup)
(*the_channel->cleanup)();