Bug 15807
| Summary: | fails with readonly / fs | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Nick S. Grechukh <gns> |
| Component: | dhcpcd | Assignee: | Mikhail Efremov <sem> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P2 | CC: | mike, sem |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
собственно говоря, даже если действительно /etc недоступна для записи, это не повод умирать. Могут ведь выдать только ip && default gateway. я предлагаю делать так:
stat("/etc");
если (not exist) then mkdir("/etc") else touch("/etc/resolv.conf") ;
если errno = EROFS -> выставить флаг RO и не пытаться писать полученную
конфигурацию. это уже не обязательно, вопрос ro /etc у нас пока не стоит :)
Апстрим уведоми pls, он переехал/ожил. http://roy.marples.name/dhcpcd 2 gns: не знаешь, ещё актуально? 2 sem: глянешь? Судя по http://marples.name/projects/dhcpcd/ticket/86 для dhcpcd 4 это вообще не актуально. Бегло просмотрев dhcpcd.c я подобного кода действительно не вижу. Но лучше бы проверить, конечно... Не проверил, но веря апстриму и посмотрев код закрываю. И то спасибо. |

Description
Nick S. Grechukh 2008-05-27 20:09:53 MSDзачем нужен этот код и почему он реализован именно так? dhcpcd.c:367: if (mkdir (ETCDIR, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) && errno != EEXIST ) { logger (LOG_ERR, "mkdir(\"%s\",0): %s\n", ETCDIR, strerror (errno)); exit (EXIT_FAILURE); } в моем случае он получает EROFS (Read-only file system) и благополучно сдыхает, при том что сама /etc на запись доступна. Steps to Reproduce: http://lists.altlinux.org/pipermail/sisyphus/2008-May/214990.html