]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Ensure that DBDIR and RUNDIR exist if defined as /var/db/dhcpcd and/or /var/run/dhcpcd.
authorRoy Marples <roy@marples.name>
Wed, 8 Jul 2009 19:22:31 +0000 (19:22 +0000)
committerRoy Marples <roy@marples.name>
Wed, 8 Jul 2009 19:22:31 +0000 (19:22 +0000)
dhcpcd.c

index 18031d5d2b9482e7d4296d3878c67baf39f530f3..a08bd2d79172e88b06e6a44631bc894ac7abcbb3 100644 (file)
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -1677,6 +1677,16 @@ main(int argc, char **argv)
                        exit(EXIT_FAILURE);
                }
 
+               /* Ensure we have the needed directories */
+               if (mkdir(RUNDIR, 0755) == -1 && errno != EEXIST) {
+                       syslog(LOG_ERR, "mkdir `%s': %m", RUNDIR);
+                       exit(EXIT_FAILURE);
+               }
+               if (mkdir(DBDIR, 0755) == -1 && errno != EEXIST) {
+                       syslog(LOG_ERR, "mkdir `%s': %m", DBDIR);
+                       exit(EXIT_FAILURE);
+               }
+
                pidfd = open(pidfile, O_WRONLY | O_CREAT | O_NONBLOCK, 0664);
                if (pidfd == -1) {
                        syslog(LOG_ERR, "open `%s': %m", pidfile);