mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-20 08:31:47 +00:00
libnm-core, settings: move NMAgentManagerError to nm-errors
Move the definition of NMAgentManagerError to nm-errors, register it with D-Bus, and verify in the tests that it maps correctly.
This commit is contained in:
parent
d13bfe3cf8
commit
86331d9ef4
|
@ -26,6 +26,7 @@
|
|||
#include "nm-dbus-interface.h"
|
||||
#include "nm-core-internal.h"
|
||||
|
||||
G_DEFINE_QUARK (nm-agent-manager-error-quark, nm_agent_manager_error)
|
||||
G_DEFINE_QUARK (nm-connection-error-quark, nm_connection_error)
|
||||
G_DEFINE_QUARK (nm-crypto-error-quark, nm_crypto_error)
|
||||
G_DEFINE_QUARK (nm-device-error-quark, nm_device_error)
|
||||
|
@ -57,6 +58,9 @@ register_error_domain (GQuark domain,
|
|||
void
|
||||
_nm_dbus_errors_init (void)
|
||||
{
|
||||
register_error_domain (NM_AGENT_MANAGER_ERROR,
|
||||
NM_DBUS_INTERFACE_AGENT_MANAGER,
|
||||
NM_TYPE_AGENT_MANAGER_ERROR);
|
||||
register_error_domain (NM_CONNECTION_ERROR,
|
||||
NM_DBUS_INTERFACE_SETTINGS_CONNECTION,
|
||||
NM_TYPE_CONNECTION_ERROR);
|
||||
|
|
|
@ -20,6 +20,38 @@
|
|||
#ifndef __NM_ERRORS_H__
|
||||
#define __NM_ERRORS_H__
|
||||
|
||||
/**
|
||||
* NMAgentManagerError:
|
||||
* @NM_AGENT_MANAGER_ERROR_FAILED: unknown or unspecified error
|
||||
* @NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED: The caller does not have permission
|
||||
* to register a secret agent, or is trying to register the same secret agent
|
||||
* twice.
|
||||
* @NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER: The identifier is not a valid
|
||||
* secret agent identifier.
|
||||
* @NM_AGENT_MANAGER_ERROR_NOT_REGISTERED: The caller tried to unregister an agent
|
||||
* that was not registered.
|
||||
* @NM_AGENT_MANAGER_ERROR_NO_SECRETS: No secret agent returned secrets for this
|
||||
* request
|
||||
* @NM_AGENT_MANAGER_ERROR_USER_CANCELED: The user canceled the secrets request.
|
||||
*
|
||||
* Errors returned from the secret-agent manager.
|
||||
*
|
||||
* These errors may be returned from operations that could cause secrets to be
|
||||
* requested (such as nm_client_activate_connection()), and correspond to D-Bus
|
||||
* errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.
|
||||
*/
|
||||
typedef enum {
|
||||
NM_AGENT_MANAGER_ERROR_FAILED = 0, /*< nick=Failed >*/
|
||||
NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED, /*< nick=PermissionDenied >*/
|
||||
NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER, /*< nick=InvalidIdentifier >*/
|
||||
NM_AGENT_MANAGER_ERROR_NOT_REGISTERED, /*< nick=NotRegistered >*/
|
||||
NM_AGENT_MANAGER_ERROR_NO_SECRETS, /*< nick=NoSecrets >*/
|
||||
NM_AGENT_MANAGER_ERROR_USER_CANCELED, /*< nick=UserCanceled >*/
|
||||
} NMAgentManagerError;
|
||||
|
||||
GQuark nm_agent_manager_error_quark (void);
|
||||
#define NM_AGENT_MANAGER_ERROR (nm_agent_manager_error_quark ())
|
||||
|
||||
/**
|
||||
* NMConnectionError:
|
||||
* @NM_CONNECTION_ERROR_FAILED: unknown or unclassified error
|
||||
|
|
|
@ -32,6 +32,8 @@ global:
|
|||
nm_active_connection_get_uuid;
|
||||
nm_active_connection_get_vpn;
|
||||
nm_active_connection_state_get_type;
|
||||
nm_agent_manager_error_get_type;
|
||||
nm_agent_manager_error_quark;
|
||||
nm_bluetooth_capabilities_get_type;
|
||||
nm_client_activate_connection_async;
|
||||
nm_client_activate_connection_finish;
|
||||
|
|
|
@ -354,10 +354,7 @@ connection_activated_none_cb (GObject *c,
|
|||
GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
|
||||
g_assert (error != NULL);
|
||||
g_dbus_error_strip_remote_error (error);
|
||||
g_assert_cmpstr (error->message, ==, "No secret agent available");
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_NO_SECRETS);
|
||||
|
||||
g_main_loop_quit (sadata->loop);
|
||||
}
|
||||
|
@ -403,11 +400,7 @@ connection_activated_no_secrets_cb (GObject *c,
|
|||
GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
|
||||
g_assert (error != NULL);
|
||||
g_dbus_error_strip_remote_error (error);
|
||||
g_assert_cmpstr (error->message, ==, "No secrets provided");
|
||||
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_NO_SECRETS);
|
||||
g_main_loop_quit (sadata->loop);
|
||||
}
|
||||
|
||||
|
@ -442,11 +435,7 @@ connection_activated_cancel_cb (GObject *c,
|
|||
GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
|
||||
g_assert (error != NULL);
|
||||
g_dbus_error_strip_remote_error (error);
|
||||
g_assert_cmpstr (error->message, ==, "User canceled");
|
||||
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_USER_CANCELED);
|
||||
g_main_loop_quit (sadata->loop);
|
||||
}
|
||||
|
||||
|
|
|
@ -276,7 +276,7 @@ endif
|
|||
|
||||
|
||||
GLIB_GENERATED = nm-enum-types.h nm-enum-types.c
|
||||
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM
|
||||
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-types.h>\n'
|
||||
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
|
||||
nm_enum_types_sources = $(nm_sources)
|
||||
|
||||
|
|
|
@ -94,20 +94,6 @@ static void impl_agent_manager_unregister (NMAgentManager *self,
|
|||
|
||||
#include "nm-agent-manager-glue.h"
|
||||
|
||||
/********************************************************************/
|
||||
|
||||
#define NM_AGENT_MANAGER_ERROR (nm_agent_manager_error_quark ())
|
||||
|
||||
static GQuark
|
||||
nm_agent_manager_error_quark (void)
|
||||
{
|
||||
static GQuark ret = 0;
|
||||
|
||||
if (G_UNLIKELY (ret == 0))
|
||||
ret = g_quark_from_static_string ("nm-agent-manager-error");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
static gboolean
|
||||
|
@ -293,7 +279,7 @@ impl_agent_manager_register_with_capabilities (NMAgentManager *self,
|
|||
subject = nm_auth_subject_new_unix_process_from_context (context);
|
||||
if (!subject) {
|
||||
error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN,
|
||||
NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED,
|
||||
"Unable to determine request sender and UID.");
|
||||
goto done;
|
||||
}
|
||||
|
@ -305,7 +291,7 @@ impl_agent_manager_register_with_capabilities (NMAgentManager *self,
|
|||
NULL,
|
||||
&local)) {
|
||||
error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_SESSION_NOT_FOUND,
|
||||
NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED,
|
||||
local && local->message ? local->message : "Session not found");
|
||||
goto done;
|
||||
}
|
||||
|
@ -326,7 +312,7 @@ impl_agent_manager_register_with_capabilities (NMAgentManager *self,
|
|||
agent = nm_secret_agent_new (context, subject, identifier, capabilities);
|
||||
if (!agent) {
|
||||
error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_INTERNAL_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_FAILED,
|
||||
"Failed to initialize the agent");
|
||||
goto done;
|
||||
}
|
||||
|
@ -344,7 +330,7 @@ impl_agent_manager_register_with_capabilities (NMAgentManager *self,
|
|||
priv->chains = g_slist_append (priv->chains, chain);
|
||||
} else {
|
||||
error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN,
|
||||
NM_AGENT_MANAGER_ERROR_FAILED,
|
||||
"Unable to start agent authentication.");
|
||||
}
|
||||
|
||||
|
@ -378,7 +364,7 @@ impl_agent_manager_unregister (NMAgentManager *self,
|
|||
NULL,
|
||||
NULL)) {
|
||||
error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
|
||||
NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN,
|
||||
NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED,
|
||||
"Unable to determine request sender.");
|
||||
goto done;
|
||||
}
|
||||
|
|
|
@ -34,17 +34,6 @@
|
|||
#define NM_IS_AGENT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AGENT_MANAGER))
|
||||
#define NM_AGENT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManagerClass))
|
||||
|
||||
typedef enum {
|
||||
NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN = 0, /*< nick=SenderUnknown >*/
|
||||
NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED, /*< nick=PermissionDenied >*/
|
||||
NM_AGENT_MANAGER_ERROR_SESSION_NOT_FOUND, /*< nick=SessionNotFound >*/
|
||||
NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER, /*< nick=InvalidIdentifier >*/
|
||||
NM_AGENT_MANAGER_ERROR_NOT_REGISTERED, /*< nick=NotRegistered >*/
|
||||
NM_AGENT_MANAGER_ERROR_INTERNAL_ERROR, /*< nick=InternalError >*/
|
||||
NM_AGENT_MANAGER_ERROR_NO_SECRETS, /*< nick=NoSecrets >*/
|
||||
NM_AGENT_MANAGER_ERROR_USER_CANCELED /*< nick=UserCanceled >*/
|
||||
} NMAgentManagerError;
|
||||
|
||||
struct _NMAgentManager {
|
||||
GObject parent;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue