[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: pppd и cd



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)



Reply to: