В системе есть интерфейс vlan0029 и на нем три alias\'а :1 :2 :3. ifconfig -a ничего не выдает и висит в бесконечном цикле в районе nstrcmp.c:54-61. Функция nstrcmp вызывается с параметрами (a=0x805e6b0 \"vlan0029:1\", b=0x805e5c0 \"vlan0029:2\"). --- --- Зацикливание стабильно воспроизводится в том случае, если на один интерфейс повешено более одного алиаса.
Да, это касается всех интерфейсов, а не только 802.1q VLANs.
Патч для alt2, решающий описанную проблему (если я правильно понял логику nstrcmp.c). Да, наверное это feature-request, но имеет смысл сделать вывод имен интерфейсов полностью (IFNAMSIZ=16), а не ограничивать их 9 символами (см. lib/interface.c:673). Я со своими \'vlanXXXX:N\' получаю только \'vlanXXXX:\'. Один нюанс - возможно, что какой-либо скрипт в системе жестко (с точностью до кол-ва пробелов) завязан на формат вывода ifconfig (но скорее всего - врядли). -=-=-=-=-nctrcmp.c.patch-=-=-=-=- --- nstrcmp.c 2002-07-08 00:41:32 +1100 +++ nstrcmp.c.my 2002-07-08 00:38:03 +1100 @@ -57,8 +57,11 @@ if (*one == *two) { - if (!isalnum1) - continue; + if (!isalnum1) { + one++; + two++; + continue; + } } else { if (!(isalnum1 && isalnum2)) -=-=-=-=-nctrcmp.c.patch-=-=-=-=-
Thanks, applied in 1.60-alt3.