зачем нужен этот код и почему он реализован именно так? 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
собственно говоря, даже если действительно /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
http://bugs.marples.name/show_bug.cgi?id=86
2 gns: не знаешь, ещё актуально? 2 sem: глянешь?
Судя по http://marples.name/projects/dhcpcd/ticket/86 для dhcpcd 4 это вообще не актуально. Бегло просмотрев dhcpcd.c я подобного кода действительно не вижу. Но лучше бы проверить, конечно...
Не проверил, но веря апстриму и посмотрев код закрываю.
И то спасибо.