Bug 1056

Summary: ifconfig from alt2 can\'t diaplay vlan aliases.
Product: Sisyphus Reporter: Dmitry Lebkov <dlebkov>
Component: net-toolsAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P4 CC: glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
0001056-net-tools-1.60-beautify.patch.gz none

Description Dmitry Lebkov 2002-07-07 15:46:07 MSD
В системе есть интерфейс vlan0029 и на нем три alias\'а :1 :2 :3.
ifconfig -a ничего не выдает и висит в бесконечном цикле в районе
nstrcmp.c:54-61. Функция nstrcmp вызывается с параметрами
(a=0x805e6b0 \&quot;vlan0029:1\&quot;, b=0x805e5c0 \&quot;vlan0029:2\&quot;).

---

---
Зацикливание стабильно воспроизводится в том случае, если на один
интерфейс повешено более одного алиаса.
Comment 1 Dmitry Lebkov 2002-07-07 15:48:49 MSD
Да, это касается всех интерфейсов, а не только 802.1q VLANs.
Comment 2 Dmitry Lebkov 2002-07-07 15:48:49 MSD
Да, это касается всех интерфейсов, а не только 802.1q VLANs.
Comment 3 Dmitry Lebkov 2002-07-07 17:54:45 MSD
Патч для 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 &amp;&amp; isalnum2))
-=-=-=-=-nctrcmp.c.patch-=-=-=-=-
Comment 4 Dmitry Lebkov 2002-07-07 17:54:45 MSD
Патч для 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 &amp;&amp; isalnum2))
-=-=-=-=-nctrcmp.c.patch-=-=-=-=-
Comment 5 Dmitry V. Levin 2002-07-15 17:50:22 MSD
Thanks, applied in 1.60-alt3.
Comment 6 Dmitry V. Levin 2002-07-15 17:50:22 MSD
Thanks, applied in 1.60-alt3.