pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup
Cameron Hutchison noticed that if pppd gets asked to terminate the
link in the period between when lcp_lowerup() is called and when
fsm_lowerup() is called from lcp_delayed_up() (i.e. when listen_time
is non-zero), pppd never exits.
The reason is that lcp_close() doesn't handle the delayed-up case
properly. Since the FSM is still in STOPPED state, we don't call
lcp_finished() and therefore never exit the main event loop.
This fixes it by handling the delayed-up case in lcp_close() as if
we had done the lowerup but the OPT_SILENT bit was set. We use the
silent case because we don't want to actually send a configure-request
at this point.
Signed-off-by: Paul Mackerras <paulus@samba.org>