Bug 21917

Summary: non-autocompleted variables in interface's sysctl.conf don't work
Product: Sisyphus Reporter: Mike Lykov <combr>
Component: etcnetAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: ldv, rider, sem, shaba, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   

Description Mike Lykov 2009-10-12 15:25:34 MSD
подробности такие: захотел я вот устанавливать sysctl параметр accept_redirects в 0 на интерфейсах. этот параметр не обрабатывается вариантом autocompletion в скрипте (его там просто нет), поэтому при попытке написать 

send_redirects = 0
accept_redirects = 0

первый работает как autocompeltion, а второй вызывает такое:

ERROR: /etc/net/scripts/ifup-common: Can't autocomplete sysctl variable name 'ac
cept_redirects' in file '/etc/net/ifaces/ext1kraft/sysctl.conf'. Please fix

это логично. нет так нет, укажем полное имя параметра:

send_redirects = 0
net.ipv4.conf.ext1kraft.accept_redirects = 0

рассчитывая, что если его нет в autocompletion, то он просто возьмет и применится как есть.

ан нет:
        Starting ext1kraft: ..../proc/sys/net/ipv4/conf/ext1kraft/net.ipv4.conf.
ext1kraft.accept_redirects: No such file or directory
...OK

конечно, такого параметра нет в proc. 

выходит - ни так ни так не работает.

можно указать его полностью в /etc/net/sysctl.conf, но там :

 - приходится перечислять имена интерфейсов, которые могут быть потом переименованы
 - не работает с интерфейсами, которые не onboot, например если ppp поднимается позже - на него указание не действует.

почему бы просто не последовать логике

"если нет в autocompletion, то делаем на него sysctl -w <параметр>" ?

(и не пытаемся записывать значение напрямую в proc)
Comment 1 Denis Ovsienko 2009-10-12 17:34:39 MSD
Если записать строки наоборот, то работать будет?

net.ipv4.conf.ext1kraft.accept_redirects = 0
send_redirects = 0
Comment 2 Mike Lykov 2009-10-13 08:54:36 MSD
так работает.
Comment 3 Denis Ovsienko 2009-10-13 10:48:03 MSD
Значит, в цикле используется значение переменной, унаследованное от предыдущей итерации. Это и есть ошибка. После исправления вы увидите, что предлагаемая логика автодополнения работает.
Comment 4 Mike Lykov 2009-10-13 12:59:19 MSD
я не против любой логики, исправляющей поведение ;)
Comment 5 Sergey Bolshakov 2010-01-20 20:55:58 MSK
fixed in 0.9.10-alt2