pppd: Do not clobber exit codes on hangup When a modem hangup occurs, pppd unconditionally sets the exit status code to EXIT_HANGUP. This patch only sets EXIT_HANGUP if the exit status code is not already set to an error value. The motiviation of this patch is to allow applications which remote control pppd to react properly on errors, e.g. only redial (relaunch pppd) if there was a hangup, but not if the CHAP authentication failed. Signed-off-by: Jo-Philipp Wich --- a/pppd/main.c +++ b/pppd/main.c @@ -1152,7 +1152,8 @@ get_input(void) } notice("Modem hangup"); hungup = 1; - code = EXIT_HANGUP; + if (code == EXIT_OK) + code = EXIT_HANGUP; lcp_lowerdown(0); /* serial link is no longer available */ link_terminated(0); return;