comparison database.c @ 42:62361336c415

pasterd: return false when we don't find a paste
author David Demelier <markand@malikania.fr>
date Fri, 14 Feb 2020 14:16:31 +0100
parents 48834441dc86
children a2789cb8ebe6
comparison
equal deleted inserted replaced
41:c3b127966241 42:62361336c415
242 database_get(struct paste *paste, const char *uuid) 242 database_get(struct paste *paste, const char *uuid)
243 { 243 {
244 assert(paste); 244 assert(paste);
245 assert(uuid); 245 assert(uuid);
246 246
247 sqlite3_stmt* stmt = NULL;
248 bool found = false;
249
247 memset(paste, 0, sizeof (struct paste)); 250 memset(paste, 0, sizeof (struct paste));
248 log_debug("database: accessing paste with uuid: %s", uuid); 251 log_debug("database: accessing paste with uuid: %s", uuid);
249
250 sqlite3_stmt* stmt = NULL;
251 252
252 if (sqlite3_prepare(db, sql_get, -1, &stmt, NULL) != SQLITE_OK || 253 if (sqlite3_prepare(db, sql_get, -1, &stmt, NULL) != SQLITE_OK ||
253 sqlite3_bind_text(stmt, 1, uuid, -1, NULL) != SQLITE_OK) 254 sqlite3_bind_text(stmt, 1, uuid, -1, NULL) != SQLITE_OK)
254 goto sqlite_err; 255 goto sqlite_err;
255 256
256 switch (sqlite3_step(stmt)) { 257 switch (sqlite3_step(stmt)) {
257 case SQLITE_ROW: 258 case SQLITE_ROW:
258 convert(stmt, paste); 259 convert(stmt, paste);
260 found = true;
259 break; 261 break;
260 case SQLITE_MISUSE: 262 case SQLITE_MISUSE:
261 case SQLITE_ERROR: 263 case SQLITE_ERROR:
262 goto sqlite_err; 264 goto sqlite_err;
263 default: 265 default:
264 break; 266 break;
265 } 267 }
266 268
267 sqlite3_finalize(stmt); 269 sqlite3_finalize(stmt);
268 270
269 return true; 271 return found;
270 272
271 sqlite_err: 273 sqlite_err:
272 if (stmt) 274 if (stmt)
273 sqlite3_finalize(stmt); 275 sqlite3_finalize(stmt);
274 276