diff options
| author | 2023-02-07 09:25:01 +0100 | |
|---|---|---|
| committer | 2023-02-07 09:25:01 +0100 | |
| commit | 67f2d4318d76b305ab98a48ff48b47e2e87126c2 (patch) | |
| tree | e8c72fcf2aaf9ff0f8ec59dd07894736d0ab01ac /utils.c | |
| parent | Ensure the setgid bit is set in the base directory. (diff) | |
| download | snac2-67f2d4318d76b305ab98a48ff48b47e2e87126c2.tar.gz snac2-67f2d4318d76b305ab98a48ff48b47e2e87126c2.tar.xz snac2-67f2d4318d76b305ab98a48ff48b47e2e87126c2.zip | |
New utility function mkdirx().
Diffstat (limited to 'utils.c')
| -rw-r--r-- | utils.c | 15 |
1 files changed, 6 insertions, 9 deletions
| @@ -143,22 +143,19 @@ int snac_init(const char *basedir) | |||
| 143 | } | 143 | } |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | if (mkdir(srv_basedir, DIR_PERM) == -1) { | 146 | if (mkdirx(srv_basedir) == -1) { |
| 147 | printf("ERROR: cannot create directory '%s'\n", srv_basedir); | 147 | printf("ERROR: cannot create directory '%s'\n", srv_basedir); |
| 148 | return 1; | 148 | return 1; |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | /* force permissions (mkdir also uses 777) */ | ||
| 152 | chmod(srv_basedir, DIR_PERM); | ||
| 153 | |||
| 154 | xs *udir = xs_fmt("%s/user", srv_basedir); | 151 | xs *udir = xs_fmt("%s/user", srv_basedir); |
| 155 | mkdir(udir, DIR_PERM); | 152 | mkdirx(udir); |
| 156 | 153 | ||
| 157 | xs *odir = xs_fmt("%s/object", srv_basedir); | 154 | xs *odir = xs_fmt("%s/object", srv_basedir); |
| 158 | mkdir(odir, DIR_PERM); | 155 | mkdirx(odir); |
| 159 | 156 | ||
| 160 | xs *qdir = xs_fmt("%s/queue", srv_basedir); | 157 | xs *qdir = xs_fmt("%s/queue", srv_basedir); |
| 161 | mkdir(qdir, DIR_PERM); | 158 | mkdirx(qdir); |
| 162 | 159 | ||
| 163 | xs *gfn = xs_fmt("%s/greeting.html", srv_basedir); | 160 | xs *gfn = xs_fmt("%s/greeting.html", srv_basedir); |
| 164 | if ((f = fopen(gfn, "w")) == NULL) { | 161 | if ((f = fopen(gfn, "w")) == NULL) { |
| @@ -246,7 +243,7 @@ int adduser(const char *uid) | |||
| 246 | 243 | ||
| 247 | xs *basedir = xs_fmt("%s/user/%s", srv_basedir, uid); | 244 | xs *basedir = xs_fmt("%s/user/%s", srv_basedir, uid); |
| 248 | 245 | ||
| 249 | if (mkdir(basedir, DIR_PERM) == -1) { | 246 | if (mkdirx(basedir) == -1) { |
| 250 | printf("ERROR: cannot create directory '%s'\n", basedir); | 247 | printf("ERROR: cannot create directory '%s'\n", basedir); |
| 251 | return 0; | 248 | return 0; |
| 252 | } | 249 | } |
| @@ -259,7 +256,7 @@ int adduser(const char *uid) | |||
| 259 | 256 | ||
| 260 | for (n = 0; dirs[n]; n++) { | 257 | for (n = 0; dirs[n]; n++) { |
| 261 | xs *d = xs_fmt("%s/%s", basedir, dirs[n]); | 258 | xs *d = xs_fmt("%s/%s", basedir, dirs[n]); |
| 262 | mkdir(d, DIR_PERM); | 259 | mkdirx(d); |
| 263 | } | 260 | } |
| 264 | 261 | ||
| 265 | xs *scssfn = xs_fmt("%s/style.css", srv_basedir); | 262 | xs *scssfn = xs_fmt("%s/style.css", srv_basedir); |