mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-23 06:02:37 +01:00
dbus: Add dbus_error_from_errno
This commit is contained in:
parent
7f844a2520
commit
31081f98e7
35
src/dbus.c
35
src/dbus.c
@ -26,6 +26,7 @@
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <ell/ell.h>
|
||||
#include <ell/dbus-private.h>
|
||||
@ -192,6 +193,40 @@ struct l_dbus_message *dbus_error_not_hidden(struct l_dbus_message *msg)
|
||||
"Not hidden");
|
||||
}
|
||||
|
||||
struct l_dbus_message *dbus_error_from_errno(int err,
|
||||
struct l_dbus_message *msg)
|
||||
{
|
||||
switch (err) {
|
||||
case -EBUSY:
|
||||
return dbus_error_busy(msg);
|
||||
case -ECANCELED:
|
||||
return dbus_error_aborted(msg);
|
||||
case -ERFKILL:
|
||||
return dbus_error_not_available(msg);
|
||||
case -EINVAL:
|
||||
return dbus_error_invalid_args(msg);
|
||||
case -EBADMSG:
|
||||
return dbus_error_invalid_format(msg);
|
||||
case -EEXIST:
|
||||
return dbus_error_already_exists(msg);
|
||||
case -ENOENT:
|
||||
return dbus_error_not_found(msg);
|
||||
case -ENOTSUP:
|
||||
return dbus_error_not_supported(msg);
|
||||
/* TODO: no_agent */
|
||||
case -ENOKEY:
|
||||
return dbus_error_not_configured(msg);
|
||||
case -ENOTCONN:
|
||||
return dbus_error_not_connected(msg);
|
||||
case -ENOSYS:
|
||||
return dbus_error_not_implemented(msg);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return dbus_error_failed(msg);
|
||||
}
|
||||
|
||||
void dbus_pending_reply(struct l_dbus_message **msg,
|
||||
struct l_dbus_message *reply)
|
||||
{
|
||||
|
@ -74,6 +74,9 @@ struct l_dbus_message *dbus_error_already_provisioned(
|
||||
struct l_dbus_message *msg);
|
||||
struct l_dbus_message *dbus_error_not_hidden(struct l_dbus_message *msg);
|
||||
|
||||
struct l_dbus_message *dbus_error_from_errno(int err,
|
||||
struct l_dbus_message *msg);
|
||||
|
||||
bool dbus_init(bool enable_debug);
|
||||
bool dbus_exit(void);
|
||||
void dbus_shutdown(void);
|
||||
|
Loading…
Reference in New Issue
Block a user