Max Dmitrichenko wrote:
В сообщении от 22 Июнь 2007 11:31 Ed написал(a):
Max Dmitrichenko wrote:
если при поднятом ppp-соединении модем ложит cd, то pppd это игнорирует.
как же так? ;)
Есть мнение, что при этом должен закрыться дескриптор того tty-устройства,
через которое работает pppd.
не закрывается. в какую сторону копать?
В сторону ядра. Файл ppp_async.c - для PPP, файл serial_core.c и 8250.c для
того, чтобы смотреть, как влияет состояние линий.
спасибо за подсказку.
с первого взгляда причина нашлась.
в serial_core.h есть:
static inline void
uart_handle_dcd_change(struct uart_port *port, unsigned int status)
{
struct uart_info *info = port->info;
port->icount.dcd++;
#ifdef CONFIG_HARD_PPS
if ((port->flags & UPF_HARDPPS_CD) && status)
hardpps();
#endif
if (info->flags & UIF_CHECK_CD) {
if (status)
wake_up_interruptible(&info->open_wait);
else if (info->tty)
tty_hangup(info->tty);
}
}
8250.c дергает эту функцию.
у меня же используется ftdi_sio, там ничего похожего нет.
на http://ftdi-usb-sio.sourceforge.net/ в todo висит:
Implement hangup (requires a check of the status bytes to see if CD is
dropped and if the line is currently not in CLOCAL send a hangup)
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]