diff options
| author | Michael Biebl <biebl@debian.org> | 2020-04-11 21:28:04 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-04-11 21:28:04 +0200 |
| commit | 1e5977b62f896e844b548c3007ace9e1dfa7f9ed (patch) | |
| tree | 7a7416ed410e72b6200f3d860fd315ec11cc106b /src/supplicant/nm-supplicant-interface.h | |
| parent | b012fa6e1d808e0736c009799c62d835cbfcc1dd (diff) | |
New upstream version 1.23.90 upstream/1.23.90
Diffstat (limited to 'src/supplicant/nm-supplicant-interface.h')
| -rw-r--r-- | src/supplicant/nm-supplicant-interface.h | 156 |
1 files changed, 63 insertions, 93 deletions
diff --git a/src/supplicant/nm-supplicant-interface.h b/src/supplicant/nm-supplicant-interface.h index 3580f754..eb414f26 100644 --- a/src/supplicant/nm-supplicant-interface.h +++ b/src/supplicant/nm-supplicant-interface.h @@ -9,15 +9,17 @@ #include "nm-supplicant-types.h" +#include "c-list/src/c-list.h" + /* * Supplicant interface states * A mix of wpa_supplicant interface states and internal states. */ typedef enum { - NM_SUPPLICANT_INTERFACE_STATE_INVALID = -1, - NM_SUPPLICANT_INTERFACE_STATE_INIT = 0, - NM_SUPPLICANT_INTERFACE_STATE_STARTING, - NM_SUPPLICANT_INTERFACE_STATE_READY, + NM_SUPPLICANT_INTERFACE_STATE_INVALID = 0, + + NM_SUPPLICANT_INTERFACE_STATE_STARTING = 1, + NM_SUPPLICANT_INTERFACE_STATE_DISABLED, NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED, NM_SUPPLICANT_INTERFACE_STATE_INACTIVE, @@ -28,9 +30,24 @@ typedef enum { NM_SUPPLICANT_INTERFACE_STATE_4WAY_HANDSHAKE, NM_SUPPLICANT_INTERFACE_STATE_GROUP_HANDSHAKE, NM_SUPPLICANT_INTERFACE_STATE_COMPLETED, + NM_SUPPLICANT_INTERFACE_STATE_DOWN, } NMSupplicantInterfaceState; +static inline gboolean +nm_supplicant_interface_state_is_operational (NMSupplicantInterfaceState state) +{ + return state > NM_SUPPLICANT_INTERFACE_STATE_STARTING + && state < NM_SUPPLICANT_INTERFACE_STATE_DOWN; +} + +static inline gboolean +nm_supplicant_interface_state_is_associated (NMSupplicantInterfaceState state) +{ + return state >= NM_SUPPLICANT_INTERFACE_STATE_AUTHENTICATING + && state <= NM_SUPPLICANT_INTERFACE_STATE_COMPLETED; +} + typedef enum { NM_SUPPLICANT_AUTH_STATE_UNKNOWN, NM_SUPPLICANT_AUTH_STATE_STARTED, @@ -46,60 +63,48 @@ typedef enum { #define NM_IS_SUPPLICANT_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SUPPLICANT_INTERFACE)) #define NM_SUPPLICANT_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT_INTERFACE, NMSupplicantInterfaceClass)) -/* Properties */ -#define NM_SUPPLICANT_INTERFACE_IFACE "iface" -#define NM_SUPPLICANT_INTERFACE_OBJECT_PATH "object-path" -#define NM_SUPPLICANT_INTERFACE_SCANNING "scanning" -#define NM_SUPPLICANT_INTERFACE_CURRENT_BSS "current-bss" -#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_JOINED "p2p-group-joined" -#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_PATH "p2p-group-path" -#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_OWNER "p2p-group-owner" -#define NM_SUPPLICANT_INTERFACE_DRIVER "driver" -#define NM_SUPPLICANT_INTERFACE_P2P_AVAILABLE "p2p-available" -#define NM_SUPPLICANT_INTERFACE_FAST_SUPPORT "fast-support" -#define NM_SUPPLICANT_INTERFACE_AP_SUPPORT "ap-support" -#define NM_SUPPLICANT_INTERFACE_PMF_SUPPORT "pmf-support" -#define NM_SUPPLICANT_INTERFACE_FILS_SUPPORT "fils-support" -#define NM_SUPPLICANT_INTERFACE_P2P_SUPPORT "p2p-support" -#define NM_SUPPLICANT_INTERFACE_MESH_SUPPORT "mesh-support" -#define NM_SUPPLICANT_INTERFACE_WFD_SUPPORT "wfd-support" -#define NM_SUPPLICANT_INTERFACE_FT_SUPPORT "ft-support" -#define NM_SUPPLICANT_INTERFACE_SHA384_SUPPORT "sha384-support" -#define NM_SUPPLICANT_INTERFACE_AUTH_STATE "auth-state" - -/* Signals */ -#define NM_SUPPLICANT_INTERFACE_STATE "state" -#define NM_SUPPLICANT_INTERFACE_REMOVED "removed" -#define NM_SUPPLICANT_INTERFACE_BSS_UPDATED "bss-updated" -#define NM_SUPPLICANT_INTERFACE_BSS_REMOVED "bss-removed" -#define NM_SUPPLICANT_INTERFACE_PEER_UPDATED "peer-updated" -#define NM_SUPPLICANT_INTERFACE_PEER_REMOVED "peer-removed" -#define NM_SUPPLICANT_INTERFACE_SCAN_DONE "scan-done" -#define NM_SUPPLICANT_INTERFACE_CREDENTIALS_REQUEST "credentials-request" -#define NM_SUPPLICANT_INTERFACE_WPS_CREDENTIALS "wps-credentials" +#define NM_SUPPLICANT_INTERFACE_SUPPLICANT_MANAGER "supplicant-manager" +#define NM_SUPPLICANT_INTERFACE_DBUS_OBJECT_PATH "dbus-object-path" +#define NM_SUPPLICANT_INTERFACE_IFINDEX "ifindex" +#define NM_SUPPLICANT_INTERFACE_SCANNING "scanning" +#define NM_SUPPLICANT_INTERFACE_CURRENT_BSS "current-bss" +#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_JOINED "p2p-group-joined" +#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_PATH "p2p-group-path" +#define NM_SUPPLICANT_INTERFACE_P2P_GROUP_OWNER "p2p-group-owner" +#define NM_SUPPLICANT_INTERFACE_DRIVER "driver" +#define NM_SUPPLICANT_INTERFACE_P2P_AVAILABLE "p2p-available" +#define NM_SUPPLICANT_INTERFACE_AUTH_STATE "auth-state" + +#define NM_SUPPLICANT_INTERFACE_STATE "state" +#define NM_SUPPLICANT_INTERFACE_BSS_CHANGED "bss-changed" +#define NM_SUPPLICANT_INTERFACE_PEER_CHANGED "peer-changed" +#define NM_SUPPLICANT_INTERFACE_WPS_CREDENTIALS "wps-credentials" #define NM_SUPPLICANT_INTERFACE_GROUP_STARTED "group-started" #define NM_SUPPLICANT_INTERFACE_GROUP_FINISHED "group-finished" -#define NM_SUPPLICANT_INTERFACE_GROUP_FORMATION_FAILURE "group-formation-failure" typedef struct _NMSupplicantInterfaceClass NMSupplicantInterfaceClass; +struct _NMSupplicantInterfacePrivate; + +struct _NMSupplicantInterface { + GObject parent; + CList supp_lst; + struct _NMSupplicantInterfacePrivate *_priv; +}; + GType nm_supplicant_interface_get_type (void); -NMSupplicantInterface * nm_supplicant_interface_new (const char *ifname, - const char *object_path, - NMSupplicantDriver driver, - NMSupplicantFeature fast_support, - NMSupplicantFeature ap_support, - NMSupplicantFeature pmf_support, - NMSupplicantFeature fils_support, - NMSupplicantFeature p2p_support, - NMSupplicantFeature mesh_support, - NMSupplicantFeature wfd_support, - NMSupplicantFeature ft_support, - NMSupplicantFeature sha384_support); - -void nm_supplicant_interface_set_supplicant_available (NMSupplicantInterface *self, - gboolean available); +NMSupplicantInterface *nm_supplicant_interface_new (NMSupplicantManager *supplicant_manager, + NMRefString *object_path, + int ifindex, + NMSupplicantDriver driver); + +NMRefString *nm_supplicant_interface_get_name_owner (NMSupplicantInterface *self); +NMRefString *nm_supplicant_interface_get_object_path (NMSupplicantInterface * iface); + +void _nm_supplicant_interface_set_state_down (NMSupplicantInterface * self, + gboolean force_remove_from_supplicant, + const char *reason); typedef void (*NMSupplicantInterfaceAssocCb) (NMSupplicantInterface *iface, GError *error, @@ -123,8 +128,6 @@ nm_supplicant_interface_disconnect_async (NMSupplicantInterface * self, NMSupplicantInterfaceDisconnectCb callback, gpointer user_data); -const char *nm_supplicant_interface_get_object_path (NMSupplicantInterface * iface); - void nm_supplicant_interface_request_scan (NMSupplicantInterface *self, GBytes *const*ssids, guint ssids_len); @@ -135,7 +138,7 @@ const char *nm_supplicant_interface_state_to_string (NMSupplicantInterfaceState gboolean nm_supplicant_interface_get_scanning (NMSupplicantInterface *self); -const char *nm_supplicant_interface_get_current_bss (NMSupplicantInterface *self); +NMRefString *nm_supplicant_interface_get_current_bss (NMSupplicantInterface *self); gint64 nm_supplicant_interface_get_last_scan (NMSupplicantInterface *self); @@ -143,7 +146,7 @@ const char *nm_supplicant_interface_get_ifname (NMSupplicantInterface *self); guint nm_supplicant_interface_get_max_scan_ssids (NMSupplicantInterface *self); -gboolean nm_supplicant_interface_get_has_credentials_request (NMSupplicantInterface *self); +gboolean nm_supplicant_interface_get_p2p_available (NMSupplicantInterface *self); gboolean nm_supplicant_interface_get_p2p_group_joined (NMSupplicantInterface *self); @@ -151,11 +154,6 @@ const char* nm_supplicant_interface_get_p2p_group_path (NMSupplicantInterface *s gboolean nm_supplicant_interface_get_p2p_group_owner (NMSupplicantInterface *self); -gboolean nm_supplicant_interface_credentials_reply (NMSupplicantInterface *self, - const char *field, - const char *value, - GError **error); - void nm_supplicant_interface_p2p_start_find (NMSupplicantInterface *self, guint timeout); void nm_supplicant_interface_p2p_stop_find (NMSupplicantInterface *self); @@ -167,41 +165,13 @@ void nm_supplicant_interface_p2p_connect (NMSupplicantInterface * self, void nm_supplicant_interface_p2p_cancel_connect (NMSupplicantInterface * self); void nm_supplicant_interface_p2p_disconnect (NMSupplicantInterface * self); -NMSupplicantFeature nm_supplicant_interface_get_ap_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_pmf_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_fils_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_p2p_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_mesh_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_wfd_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_ft_support (NMSupplicantInterface *self); -NMSupplicantFeature nm_supplicant_interface_get_sha384_support (NMSupplicantInterface *self); - -void nm_supplicant_interface_set_ap_support (NMSupplicantInterface *self, - NMSupplicantFeature apmode); - -void nm_supplicant_interface_set_fast_support (NMSupplicantInterface *self, - NMSupplicantFeature fast_support); - -void nm_supplicant_interface_set_pmf_support (NMSupplicantInterface *self, - NMSupplicantFeature pmf_support); - -void nm_supplicant_interface_set_fils_support (NMSupplicantInterface *self, - NMSupplicantFeature fils_support); - -void nm_supplicant_interface_set_p2p_support (NMSupplicantInterface *self, - NMSupplicantFeature p2p_support); - -void nm_supplicant_interface_set_mesh_support (NMSupplicantInterface *self, - NMSupplicantFeature mesh_support); - -void nm_supplicant_interface_set_wfd_support (NMSupplicantInterface *self, - NMSupplicantFeature wfd_support); +void nm_supplicant_interface_set_global_capabilities (NMSupplicantInterface *self, + NMSupplCapMask value); -void nm_supplicant_interface_set_ft_support (NMSupplicantInterface *self, - NMSupplicantFeature ft_support); +NMTernary nm_supplicant_interface_get_capability (NMSupplicantInterface *self, + NMSupplCapType type); -void nm_supplicant_interface_set_sha384_support (NMSupplicantInterface *self, - NMSupplicantFeature sha384_support); +NMSupplCapMask nm_supplicant_interface_get_capabilities (NMSupplicantInterface *self); void nm_supplicant_interface_enroll_wps (NMSupplicantInterface *self, const char *const type, |