aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2014-01-07 15:55:28 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2014-01-07 15:55:28 +0000
commitf4c6b450aa848628fb07d0a9ede9465a81090691 (patch)
tree1cacfc4dcd1524d8272487729e781a67bce03951
parent4f88ee6a348efb0dc2c51f488838689cf33bbdef (diff)
downloadgnunet-f4c6b450aa848628fb07d0a9ede9465a81090691.tar.gz
gnunet-f4c6b450aa848628fb07d0a9ede9465a81090691.zip
- unique constraint
-rw-r--r--src/testbed/generate-underlay-topology.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/testbed/generate-underlay-topology.c b/src/testbed/generate-underlay-topology.c
index 985c8e32e..33c52ae35 100644
--- a/src/testbed/generate-underlay-topology.c
+++ b/src/testbed/generate-underlay-topology.c
@@ -135,7 +135,12 @@ setup_db (const char *dbfile)
135 "oid INTEGER," 135 "oid INTEGER,"
136 "bandwidth INTEGER DEFAULT NULL," 136 "bandwidth INTEGER DEFAULT NULL,"
137 "latency INTEGER DEFAULT NULL," 137 "latency INTEGER DEFAULT NULL,"
138 "loss INTEGER DEFAULT NULL);"; 138 "loss INTEGER DEFAULT NULL,"
139 " UNIQUE ("
140 " id,"
141 " oid"
142 " ) ON CONFLICT IGNORE"
143 ");";
139 const char *query_insert = 144 const char *query_insert =
140 "INSERT INTO whitelist(" 145 "INSERT INTO whitelist("
141 " id," 146 " id,"
@@ -151,7 +156,8 @@ setup_db (const char *dbfile)
151 " ?5);"; 156 " ?5);";
152 int ret; 157 int ret;
153 158
154 if (SQLITE_OK != (ret = sqlite3_open (dbfile, &db))) 159 ret = GNUNET_SYSERR;
160 if (SQLITE_OK != sqlite3_open (dbfile, &db))
155 { 161 {
156 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_open"); 162 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_open");
157 goto err_ret; 163 goto err_ret;
@@ -159,22 +165,20 @@ setup_db (const char *dbfile)
159 if (0 != sqlite3_exec (db, query_create, NULL, NULL, NULL)) 165 if (0 != sqlite3_exec (db, query_create, NULL, NULL, NULL))
160 { 166 {
161 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_exec"); 167 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_exec");
168 FPRINTF (stderr, "Perhaps the database `%s' already exits.\n", dbfile);
162 goto err_ret; 169 goto err_ret;
163 } 170 }
164 if (0 != sqlite3_exec (db, "PRAGMA synchronous = 0;", NULL, NULL, NULL)) 171 GNUNET_break (0 == sqlite3_exec (db, "PRAGMA synchronous = 0;", NULL, NULL, NULL));
165 { 172 if (SQLITE_OK != sqlite3_prepare_v2 (db, query_insert, -1,
166 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_exec"); 173 &stmt_insert, NULL))
167 goto err_ret;
168 }
169 if (SQLITE_OK != (ret = sqlite3_prepare_v2 (db, query_insert, -1,
170 &stmt_insert, NULL)))
171 { 174 {
172 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_prepare_v2"); 175 LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite3_prepare_v2");
173 goto err_ret; 176 goto err_ret;
174 } 177 }
175 178 ret = GNUNET_OK;
179
176 err_ret: 180 err_ret:
177 return (SQLITE_OK != ret) ? GNUNET_SYSERR : GNUNET_OK; 181 return ret;
178} 182}
179 183
180 184