database: generate GError when database is disabled
This commit is contained in:
parent
412cf974a4
commit
b4430839a3
|
@ -395,6 +395,12 @@ print_error(struct client *client, GError *error)
|
||||||
return print_playlist_result(client, result);
|
return print_playlist_result(client, result);
|
||||||
} else if (error->domain == db_quark()) {
|
} else if (error->domain == db_quark()) {
|
||||||
switch ((enum db_error)error->code) {
|
switch ((enum db_error)error->code) {
|
||||||
|
case DB_DISABLED:
|
||||||
|
command_error(client, ACK_ERROR_NO_EXIST, "%s",
|
||||||
|
error->message);
|
||||||
|
g_error_free(error);
|
||||||
|
return COMMAND_RETURN_ERROR;
|
||||||
|
|
||||||
case DB_NOT_FOUND:
|
case DB_NOT_FOUND:
|
||||||
g_error_free(error);
|
g_error_free(error);
|
||||||
command_error(client, ACK_ERROR_NO_EXIST, "Not found");
|
command_error(client, ACK_ERROR_NO_EXIST, "Not found");
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "directory.h"
|
#include "directory.h"
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
#include "glib_compat.h"
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
|
@ -112,12 +113,14 @@ db_walk(const char *uri,
|
||||||
const struct db_visitor *visitor, void *ctx,
|
const struct db_visitor *visitor, void *ctx,
|
||||||
GError **error_r)
|
GError **error_r)
|
||||||
{
|
{
|
||||||
struct directory *directory;
|
if (db == NULL) {
|
||||||
|
g_set_error_literal(error_r, db_quark(), DB_DISABLED,
|
||||||
|
"No database");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (db == NULL)
|
struct directory *directory = db_get_directory(uri);
|
||||||
return -1;
|
if (directory == NULL) {
|
||||||
|
|
||||||
if ((directory = db_get_directory(uri)) == NULL) {
|
|
||||||
struct song *song;
|
struct song *song;
|
||||||
if (visitor->song != NULL &&
|
if (visitor->song != NULL &&
|
||||||
(song = db_get_song(uri)) != NULL)
|
(song = db_get_song(uri)) != NULL)
|
||||||
|
|
|
@ -23,6 +23,12 @@
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
enum db_error {
|
enum db_error {
|
||||||
|
/**
|
||||||
|
* The database is disabled, i.e. none is configured in this
|
||||||
|
* MPD instance.
|
||||||
|
*/
|
||||||
|
DB_DISABLED,
|
||||||
|
|
||||||
DB_NOT_FOUND,
|
DB_NOT_FOUND,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue