romkaromka писал(а): ↑21.11.2009 01:51
озарило меня сегодня алгоритмом и в итоге получилось:
- верная индикация без задержек - мышку навели - всегда выдаст информацию немедленно,
- при первом запуске ponoff немедленно происходит соединение настолько быстро насколько позволяет провайдер, никаких задержек более нет, а если не произошло, то по таймеру через 5 сек. будет вторая попытка, потом еще через 5 сек. - третья и т.д. Если ppp0 установлено, то таймер работает каждую 1 сек, контролируя соединение более действенно, а если ppp0 пропало или отсутствует, то этот интервал автоматически увеличивается до 5 сек. и позволяет поднять ppp0 вновь и вновь. В итоге автоконнект происходит мгновенно. Введение переменной этого интервала позволило решить целый ряд проблем.
-значек в трее теперь меняется в зависимости от состояния соединения.
- запуск 2-х ponoff убивает vpn, но при выходе из любого их них - vpn вновь восстанавливается, что логично. потом вообще отключу двойной запуск.
значки трея положить в /opt/vpnpptp, патчи туда же.
http://narod.ru/disk/15246562000/ponoff.html
http://narod.ru/disk/15246568000/off.ico.html
http://narod.ru/disk/15246576000/on.ico.html
исходники:
http://narod.ru/disk/15246616000/vpnpptp-s...1-7.tar.gz.html
сделайте, плиз, кто-нибудь нормальные иконки для трея для его 2-х теперь состояний.
В новой версии появилась одна
неприятная особенность 
:
при отстыковке сетевого кабеля система
никак не реагирует на изменение состояния: ни NetApplet, ни ponoff, но Интернет, естественно, пропадает!
Исходное состояние маршрутов сети (ponoff не запущен, eth0 поднят):
Код: Выделить всё
172.17.1.2 dev eth0 scope link src 172.17.50.18
169.254.0.0/16 dev eth0 scope link metric 10
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.50.18 metric 10
default via 172.17.1.2 dev eth0
Исходное (при поднятом eth0 и ppp0) рабочее состояние маршрутов:
Код: Выделить всё
172.17.1.2 dev eth0 scope link src 172.17.50.18
172.17.1.2 dev ppp0 proto kernel scope link src 172.16.50.18
169.254.0.0/16 dev eth0 scope link metric 10
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.50.18 metric 10
default dev ppp0 scope link
А теперь состояние маршрутов при разрыве кабелем eth0:
Код: Выделить всё
172.17.1.2 dev ppp0 proto kernel scope link src 172.16.50.18
default dev ppp0 scope link
При этом состояние ifconfig не изменяется:
Код: Выделить всё
eth0 Link encap:Ethernet HWaddr 00:23:54:CC:8A:6E
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:962082 errors:0 dropped:0 overruns:0 frame:0
TX packets:67865 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:118858927 (113.3 MiB) TX bytes:8559747 (8.1 MiB)
Interrupt:27 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18751 errors:0 dropped:0 overruns:0 frame:0
TX packets:18751 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1593114 (1.5 MiB) TX bytes:1593114 (1.5 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:172.16.50.18 P-t-P:172.17.1.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:64 (64.0 b) TX bytes:82 (82.0 b)
NetApplet продолжает сообщать о наличии ppp0 (тут он формально прав, в интерфейсах он значится), ponoff также говорит о наличии соединения
После подстыковки сетевого кабеля алгоритм начинает отрабатываться и NetApplet-ом и ponoff-ом, через 15-20 сек после подстыковки кабеля
ponoff показывает разрыв соединения, затем тут же его восстанавливает с правильным отображением состояния.
Во время восстановления ppp0 до рабочего состояния существенно возрастает загрузка процессора до (60-70)%
В общем плане необходимо конечно же:
1. исключить возможность повторных запусков (иногда в этом случае у меня появлялся ppp1 при отключении 3-го запущенного ponoff),
2. уменьшить размера скомпилированного кода
Насчет иконок: можно оставить даже эти иконки, только уменьшить размер красного креста на величину (30-40)%,
а то он слишком громоздко смотрится и сделать красный цвет более мягким,
либо заменить в исходной иконке базовый зеленый цвет на, допустим, оранжевый (мягкий)
(кстати, иконка NetApplet тоже не фонтан!, малоинформативна если не знать что это, не отображает ясно свою суть),
но небольшой крестик мне кажется лучше, может быть даже не по центру, а по аналогии с NetApplet - в правом нижнем углу.