summaryrefslogtreecommitdiff
path: root/netconf/SqliteNetworkConfigMaster.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-03-17 14:54:13 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-03-17 14:54:13 -0700
commit49a2450e76488780987fbd247d2f3984899957b0 (patch)
tree9baa3637bddfe9488b80c48149711fec646f53d7 /netconf/SqliteNetworkConfigMaster.cpp
parent278c8fd9f1a36bc7b81cbfd50b93626d5341b8de (diff)
downloadinfinitytier-49a2450e76488780987fbd247d2f3984899957b0.tar.gz
infinitytier-49a2450e76488780987fbd247d2f3984899957b0.zip
Include the Sqlite schema to auto-init the database.
Diffstat (limited to 'netconf/SqliteNetworkConfigMaster.cpp')
-rw-r--r--netconf/SqliteNetworkConfigMaster.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/netconf/SqliteNetworkConfigMaster.cpp b/netconf/SqliteNetworkConfigMaster.cpp
index 8361a276..1dfb1a44 100644
--- a/netconf/SqliteNetworkConfigMaster.cpp
+++ b/netconf/SqliteNetworkConfigMaster.cpp
@@ -42,6 +42,9 @@
#include "../node/CertificateOfMembership.hpp"
#include "../node/NetworkConfig.hpp"
+// Include ZT_NETCONF_SCHEMA_SQL constant to init database
+#include "netconf-schema.sql.c"
+
// Stored in database as schemaVersion key in Config.
// If not present, database is assumed to be empty and at the current schema version
// and this key/value is added automatically.
@@ -52,13 +55,13 @@ namespace ZeroTier {
SqliteNetworkConfigMaster::SqliteNetworkConfigMaster(const Identity &signingId,const char *dbPath) :
_signingId(signingId),
_dbPath(dbPath),
- _db((sqlite3 *)0)
+ _db((sqlite3 *)0),
_lock()
{
if (!_signingId.hasPrivate())
throw std::runtime_error("SqliteNetworkConfigMaster signing identity must have a private key");
- if (sqlite3_open_v2(dbPath,&_db,SQLITE_OPEN_READWRITE,(const char *)0) != SQLITE_OK)
+ if (sqlite3_open_v2(dbPath,&_db,SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE,(const char *)0) != SQLITE_OK)
throw std::runtime_error("SqliteNetworkConfigMaster cannot open database file");
sqlite3_busy_timeout(_db,10000);
}