В Thu, 16 Jun 2011 19:33:02 +0400 Yuri Kozlov <yu...@komyakino.ru> пишет:
> В Thu, 16 Jun 2011 09:39:09 +0400 > Sergey Alyoshin <alyoshi...@gmail.com> пишет: > > > On Wed, Jun 15, 2011 at 9:29 PM, Yuri Kozlov <yu...@komyakino.ru> > > wrote: > > > Проверка подключения кабеля в ${interface} ? > > > > В "detecting link" нет "кабеля", и если это WiFi? > > > > Может "проверка сигнала ${interface}"? > > А это появляется при проверке wifi? > Мне казалось, что detecting link подразумевает наличие провода (т.е. > наличие напряжения на контактах). Надо код глянуть. Вот код. /* Attempt to find out whether we've got link on an interface. Don't try to * bring the interface up or down, we leave that to the caller. Use a * progress bar so the user knows what's going on. Return true if we got * link, and false otherwise. */ int netcfg_detect_link(struct debconfclient *client, const char *if_name) { char arping[256]; char s_gateway[INET_ADDRSTRLEN]; int count, rv = 0; int link_waits = NETCFG_LINK_WAIT_TIME * 4; int gw_tries = NETCFG_GATEWAY_REACHABILITY_TRIES; if (gateway.s_addr) { inet_ntop(AF_INET, &gateway, s_gateway, sizeof(s_gateway)); sprintf(arping, "arping -c 1 -w 1 -f -I %s %s", if_name, s_gateway); } debconf_capb(client, "progresscancel"); debconf_subst(client, "netcfg/link_detect_progress", "interface", if_name); debconf_progress_start(client, 0, 100, "netcfg/link_detect_progress"); for (count = 0; count < link_waits; count++) { usleep(250000); if (debconf_progress_set(client, 50 * count / link_waits) == 30) { /* User cancelled on us... bugger */ rv = 0; break; } if (ethtool_lite(if_name) == 1) /* ethtool-lite's CONNECTED */ { if (gateway.s_addr && !is_wireless_iface(if_name)) { for (count = 0; count < gw_tries; count++) { if (di_exec_shell_log(arping) == 0) break; if (debconf_progress_set(client, 50 + 50 * count / gw_tries) == 30) break; } } rv = 1; break; } debconf_progress_set(client, 100); } debconf_progress_stop(client); debconf_capb(client, ""); return rv; } Судя по if (gateway.s_addr && !is_wireless_iface(if_name)) { показ сообщения актуален только для проводного интерфейса. Для wifi эта строчка быстро уберётся. Но проверяется не только наличие физического линка на порту, но и доступность MAC-адреса шлюза. То есть больше чем проверка физики. Я за предложение Максима "Проверка наличия подключения через ${interface}" -- Best Regards, Yuri Kozlov -- To UNSUBSCRIBE, email to debian-l10n-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20110616211835.37460...@keeper.home.local