<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Aleksander,<div class=""><br class=""></div><div class="">Great to hear your input on the issue, thank you!</div><div class=""><br class=""></div><div class="">I have some preliminary positive results with the connection status check disabled. I would like to understand the consequences of this change though. Are there scenarios where pppd wouldn’t detect the disconnection? In other words: Why does MM need to poll the connectivity anyways?</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" class="">1. After the modem hangs up, the TTY is in a state where ioctls to the TTY return I/O errors. How is pppd supposed restore the termios settings when it’s hung up?<br class=""></blockquote><br class="">This is the CLOCAL set/unset that I referred to in the previous email.<br class=""></div></div></blockquote><div><br class=""></div>Yes, I understand. What I don’t understand is how this can ever work when the TTY is hungup. Any ioctl will always return -EIO when the TTY is hungup: <a href="https://github.com/torvalds/linux/blob/master/drivers/tty/tty_io.c#L452" class="">https://github.com/torvalds/linux/blob/master/drivers/tty/tty_io.c#L452</a></div><div>So how can we ever restore the CLOCAL when the modem has hung up?<br class=""><br class=""><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" class="">2. NetworkManager doesn’t wait to signal pppd with SIGTERM until pppd is in PHASE_DEAD, even though this should be happening. Ref <a href="https://github.com/paulusmack/ppp/issues/6#issuecomment-51176255" class="">https://github.com/paulusmack/ppp/issues/6#issuecomment-51176255</a><br class=""></blockquote><br class="">I believe I fixed that in NM a while back.<br class=""></div></div></blockquote><div><br class=""></div><div>Yes, I saw your commits and they should be part of my NetworkManager version (1.12.2). Perhaps there is a regression. Or I concluded something wrong. Not sure, but from my traces it looks like pppd gets SIGTERM before PHASE_DEAD is reached.</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" class="">3. The termios flags present when pppd starts up differ for the debug/non-debug cases: c_iflags=0x5 vs 0x4 and c_lflags=0 vs 0x8a21. Why would that be the case? Doesn’t ModemManager set this up deterministically? Does it matter?<br class=""></blockquote><br class="">You mean with MM in debug mode or not in debug mode? That's surprising.<br class=""></div></div></blockquote><div><br class=""></div></div>I just checked the ModemManager sources and confirmed that MM doesn’t touch the bits that differed (IGNBRK for c_iflags and IEXTEN, ECHOKE, ECHOCTL, ECHOK, ISIG for c_lflags) so this is actually expected.</div><div class=""><br class=""></div><div class="">Sven</div></body></html>