| 7310 | } |
| 7311 | |
| 7312 | const char *cbm_config_get(cbm_config_t *cfg, const char *key, const char *default_val) { |
| 7313 | static CBM_TLS char result_buf[CLI_BUF_4K]; |
| 7314 | if (!cfg || !key) { |
| 7315 | return default_val; |
| 7316 | } |
| 7317 | |
| 7318 | sqlite3_stmt *stmt = NULL; |
| 7319 | if (sqlite3_prepare_v2(cfg->db, "SELECT value FROM config WHERE key = ?", SQL_NUL_TERM, &stmt, |
| 7320 | NULL) != SQLITE_OK) { |
| 7321 | return default_val; |
| 7322 | } |
| 7323 | sqlite3_bind_text(stmt, SQL_PARAM_1, key, SQL_NUL_TERM, cbm_sqlite_transient); |
| 7324 | |
| 7325 | const char *result = default_val; |
| 7326 | if (sqlite3_step(stmt) == SQLITE_ROW) { |
| 7327 | const char *val = (const char *)sqlite3_column_text(stmt, 0); |
| 7328 | if (val) { |
| 7329 | snprintf(result_buf, sizeof(result_buf), "%s", val); |
| 7330 | result = result_buf; |
| 7331 | } |
| 7332 | } |
| 7333 | sqlite3_finalize(stmt); |
| 7334 | return result; |
| 7335 | } |
| 7336 | |
| 7337 | bool cbm_config_get_bool(cbm_config_t *cfg, const char *key, bool default_val) { |
| 7338 | const char *val = cbm_config_get(cfg, key, NULL); |
no outgoing calls