Mercurial > paster
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 |