#include "socket-util.h"
#include "transaction.h"
#include "util.h"
-#include "vlog.h"
-
-VLOG_DEFINE_THIS_MODULE(ovsdb_log);
enum ovsdb_log_mode {
OVSDB_LOG_READ,
} else if (open_mode == OVSDB_LOG_READ_WRITE) {
flags = O_RDWR;
} else if (open_mode == OVSDB_LOG_CREATE) {
+#ifndef _WIN32
if (stat(name, &s) == -1 && errno == ENOENT
&& lstat(name, &s) == 0 && S_ISLNK(s.st_mode)) {
/* 'name' is a dangling symlink. We want to create the file that
} else {
flags = O_RDWR | O_CREAT | O_EXCL;
}
+#else
+ flags = O_RDWR | O_CREAT | O_EXCL;
+#endif
} else {
- NOT_REACHED();
+ OVS_NOT_REACHED();
}
+#ifdef _WIN32
+ flags = flags | O_BINARY;
+#endif
fd = open(name, flags, 0666);
if (fd < 0) {
const char *op = open_mode == OVSDB_LOG_CREATE ? "create" : "open";
- error = ovsdb_io_error(errno, "%s: %s failed", op, name);
+ error = ovsdb_io_error(errno, "%s: %s failed", name, op);
goto error_unlock;
}
return true;
}
-struct ovsdb_log_read_cbdata {
- char input[4096];
- struct ovsdb_log *file;
- int error;
- unsigned long length;
-};
-
static struct ovsdb_error *
parse_body(struct ovsdb_log *file, off_t offset, unsigned long int length,
uint8_t sha1[SHA1_DIGEST_SIZE], struct json **jsonp)
/* Compose header. */
sha1_bytes(json_string, length, sha1);
- snprintf(header, sizeof header, "%s%zu "SHA1_FMT"\n",
+ snprintf(header, sizeof header, "%s%"PRIuSIZE" "SHA1_FMT"\n",
magic, length, SHA1_ARGS(sha1));
/* Write. */