Summary: | Смешанные BOOTPROTO не работают. | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Roman Savochenko <rom_as> |
Component: | etcnet | Assignee: | Mikhail Efremov <sem> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | ender, imz, ldv, rider, sem, shaba, vseleznv |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Roman Savochenko
2009-09-28 15:55:19 MSD
В версии 0.9.10 эта ошибка исправлялась. У вас какая версия? [user@plc-182207 ~]$ rpm -qa | grep etcnet etcnet-defaults-desktop-0.9.10-alt1 etcnet-0.9.10-alt1 Тогда мне нужен точный способ воспроизвести это. Какой такой точный способ? Всё стандартно. Имеем eth0/options: TYPE=eth BOOTPROTO=dhcp-static И eth0/ipv4address: 192.168.1.1/24 Перезапускаю сеть и получаю: unknown BOOTPROTO 'dhcp-static' Воспроизводится. Починить могу, а объяснить --- нет. В блоке case есть следующий вариант с pathname expansion: dhcp[\ -,]static) На первый взгляд диапазон состоит из всех символов от пробела до запятой. На практике же до некоторых пор диапазон включал только пробел, минус и запятую. Так вот у меня (Sisyphus, bash-3.2.48-alt3) из командной строки на значении "dhcp-static" он срабатывает, а из файла /etc/net/scripts/config-ipv4 --- не срабатывает. Списать несрабатывание на то, что по неведомым причинам минус между пробелом и запятой раскрылся в символы от пробела до запятой, нельзя. На значении "dhcp%static" имеющееся выражение тоже не реагирует, если оно используется в config-ipv4. Если исправить на следующий вариант, то он работает и из командной строки, и из файла config-ipv4: dhcp[-,\ ]static) (В ответ на комментарий №5)
> Воспроизводится. Починить могу, а объяснить --- нет.
Влияет локаль, но каков именно принцип, я не знаю:
[imz@etik ~]$ bash -c 'case dhcp-static in dhcp[\ -,]static) echo Matched; ;; esac; locale'
Matched
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
[imz@etik ~]$ LC_ALL=C bash -c 'case dhcp-static in dhcp[\ -,]static) echo Matched; ;; esac; locale'
LANG=ru_RU.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
[imz@etik ~]$ rpm -q bash
bash-3.1.17-alt3
[imz@etik ~]$
(В ответ на комментарий №5)
> срабатывает. Списать несрабатывание на то, что по неведомым причинам минус
> между пробелом и запятой раскрылся в символы от пробела до запятой, нельзя. На
> значении "dhcp%static" имеющееся выражение тоже не реагирует, если оно
> используется в config-ipv4.
Хм, в моём тесте реагирует:
[imz@etik ~]$ bash -c 'case dhcp%static in dhcp[\ -,]static) echo Matched; ;; esac; locale'
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
[imz@etik ~]$ LC_ALL=C bash -c 'case dhcp%static in dhcp[\ -,]static) echo Matched; ;; esac; locale'
Matched
LANG=ru_RU.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
[imz@etik ~]$
рабочий пример: # cat /etc/net/ifaces/ktl0/ipv4route default via 192.168.131.1 table ktl realm ktl 192.168.120.2 via 192.168.131.1 realm ktl 95.128.136.130 via 192.168.131.1 realm ktl 62.182.30.146 via 192.168.131.1 realm ktl add throw 10.0.0.0/8 table ktl add throw 192.168.0.0/16 table ktl add throw 172.16.0.0/13 table ktl как я помню, в докунметации отмечено, что если есть желание добавить маршрут as-is, то надо добавлять add. рекомендую закрыть как WORKSFORME. ой!!! виноват, это рядом должно было быть :) fixed in 0.9.10-alt2 |