#include "sandbox.h"
#include "pidfile.h"
#include "console.h"
+#include "fs.h"
#ifndef MSG_NOSIGNAL
#define MSG_NOSIGNAL 0
}
while(!(newline = memchr(buffer, '\n', blen))) {
+ if(!wait_socket_recv(fd)) {
+ return false;
+ }
+
ssize_t nrecv = recv(fd, buffer + blen, sizeof(buffer) - blen, 0);
if(nrecv == -1 && sockerrno == EINTR) {
return 0;
}
-static bool makedir(const char *path, mode_t mode) {
- if(mkdir(path, mode) && errno != EEXIST) {
- fprintf(stderr, "Could not create directory %s: %s\n", path, strerror(errno));
- return false;
- }
-
- return true;
-}
-
-bool makedirs(tincd_dir_t dirs) {
- if(dirs & DIR_CONFBASE && !makedir(confbase, 0777)) {
- return false;
- }
-
- if(dirs & DIR_CONFDIR && !confbase_given && !makedir(confdir, 0755)) {
- return false;
- }
-
- if(dirs & DIR_HOSTS && !makedir(hosts_dir, 0777)) {
- return false;
- }
-
- char path[PATH_MAX];
-
- if(dirs & DIR_INVITATIONS) {
- snprintf(path, sizeof(path), "%s" SLASH "invitations", confbase);
-
- if(!makedir(path, 0700)) {
- return false;
- }
- }
-
- if(dirs & DIR_CACHE) {
- snprintf(path, sizeof(path), "%s" SLASH "%s", confbase, "cache");
-
- if(!makedir(path, 0755)) {
- return false;
- }
- }
-
- return true;
-}
-
static int cmd_init(int argc, char *argv[]) {
if(!access(tinc_conf, F_OK)) {
fprintf(stderr, "Configuration file %s already exists!\n", tinc_conf);