ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] продолжение истории с slmodem и kppp
@ 2005-09-18 22:18 Artem
  2005-09-20 21:09 ` Artem
  0 siblings, 1 reply; 26+ messages in thread
From: Artem @ 2005-09-18 22:18 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Доброго времени суток.
Напомню, что проблема состояла в том, что по нажатии кнопки disconnect в 
kppp,
демон pppd умирал, но kppp не вешал трубку.
После сегодняшних упражнений выяснил, что ,при дисконнекте, чтобы 
повесить трубку модема,
необходимо сделать что-то вроде
echo "ATH" > /dev/ttySLM0
Одна из грабель по этому поводу (обнаруженная позднее). В дефолтных 
настройках kppp
строка hangup выглядит так: "+++ATH". Но slmodem такую строку не 
принимает (проверял вручную
из терминала kppp). Slmodem после +++ выдает OK, после чего можно делать 
ATH. Но если же сделать
+++ATH - то никакой ответной реакции не будет. Ковыряние в исходниках 
показало, что HANGUP в kppp
выполняется в 2 приема - сначала выполняется строка escape "+++" -  
затем, когда модем оказывается в
командном режиме - выполняется непосредственно "ATH". Подозреваю, что 
"+++ATH" в качестве hangup -
не совсем корректная вещь? Данная строка дефолтная и содержится в 
pppdata.cpp, линия 759

 const QString PPPData::modemHangupStr() 
{                                                      
  return readConfig(cmodemgroup, HANGUPSTR_KEY, 
"+++ATH");                                     
}

Просьба community проверить подобное поведение на своих slmodem.

Основная же проблема решается 2-мя способами, но какой из них правильнее 
- я не знаю, поэтому спрашиваю совета.
1. Добавление
  if(Modem::modem->opentty())
    Modem::modem->hangup() ;
в метод
void KPPPWidget::delayedDisconnect() {
  // this is where the actual disconnection takes place
(файл kpppwidget.cpp)
2. Добавление
  if(Modem::modem->opentty())
    Modem::modem->hangup() ;
в обработчик сигнала
 void KPPPWidget::sigPPPDDied() {
  kdDebug(5002) << "Received a SIGUSR1" << endl;
(тот же файл)

Вот собственно - и вопрос: в каком случае более правильное исправление? 
В обработчике нажатия клавиши disconnect ? Или в обработчике сигнала, 
уведомляющего о том, что pppd - "сдох" (посылается сигнал SIGUSR1). ?
Насколько я понимаю - SIGUSR1 посылает "рутовая" часть kppp - 
пользовательской ? В debug log при этом след. сообщения:
It was pppd that died
pppd exited with return value 16
Sending 28779 a SIGUSR1
<skip>
kppp: Received a SIGUSR1


P.S. kdenetwork-kppp-3.4.1-alt1

С уважением. Артем.


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2005-11-11 15:04 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-18 22:18 [sisyphus] продолжение истории с slmodem и kppp Artem
2005-09-20 21:09 ` Artem
2005-09-21 10:01   ` [sisyphus] " Sergey V Turchin
2005-09-21 11:45     ` Artem
2005-09-21 14:01       ` [sisyphus] " Sergey V Turchin
2005-09-21 17:47         ` Artem
2005-09-24 21:06           ` Igor Zubkov
2005-09-25  9:46             ` Artem
2005-09-26 11:43               ` [sisyphus] " Michael Shigorin
2005-09-26 14:49                 ` Artem
2005-09-29  1:46                   ` Arioch
2005-09-29  2:34                     ` Andrey Rahmatullin
2005-09-29  2:38                       ` Arioch
2005-09-29  2:59                         ` Andrey Rahmatullin
2005-09-29  3:09                           ` Arioch
2005-09-29 15:20                             ` Andrey Rahmatullin
2005-09-29 17:57                               ` Arioch
2005-09-30  4:57                                 ` Artem
2005-11-06 21:25                   ` Artem
2005-11-06 22:37                     ` Artem
2005-11-07  9:44                       ` Michael Shigorin
2005-11-10  8:50                       ` Yuriy Kashirin
2005-11-10 16:47                         ` Artem
2005-11-11  7:49                         ` Yuriy Kashirin
2005-11-11 15:04                           ` [sisyphus] Re: продолжение истории с slmodem Х kppp Artem
2005-11-07  9:43                     ` [sisyphus] Re: продолжение истории с slmodem и kppp Michael Shigorin

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git