2007-08-15 14:30:06 +00:00
|
|
|
/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
#ifndef NM_SETTING_H
|
|
|
|
|
#define NM_SETTING_H
|
|
|
|
|
|
|
|
|
|
#include <glib.h>
|
|
|
|
|
|
2007-08-09 09:19:57 +00:00
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
typedef struct _NMSetting NMSetting;
|
|
|
|
|
|
|
|
|
|
typedef NMSetting *(*NMSettingCreateFn) (GHashTable *settings);
|
|
|
|
|
typedef gboolean (*NMSettingVerifyFn) (NMSetting *setting,
|
|
|
|
|
GHashTable *all_settings);
|
|
|
|
|
|
|
|
|
|
typedef GHashTable *(*NMSettingToHashFn) (NMSetting *setting);
|
|
|
|
|
|
2007-09-11 18:02:27 +00:00
|
|
|
typedef gboolean (*NMSettingUpdateSecretsFn) (NMSetting *setting,
|
|
|
|
|
GHashTable *secrets);
|
|
|
|
|
|
2007-09-11 18:28:36 +00:00
|
|
|
typedef GPtrArray *(*NMSettingNeedSecretsFn) (NMSetting *setting);
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
typedef void (*NMSettingDestroyFn) (NMSetting *setting);
|
|
|
|
|
|
2007-09-16 12:47:14 +00:00
|
|
|
typedef void (*NMSettingValueIterFn) (NMSetting *setting,
|
|
|
|
|
const char *key,
|
|
|
|
|
guint32 type,
|
|
|
|
|
void *value,
|
|
|
|
|
gboolean secret,
|
|
|
|
|
gpointer user_data);
|
|
|
|
|
|
|
|
|
|
#define NM_S_TYPE_STRING 1
|
|
|
|
|
#define NM_S_TYPE_UINT32 2
|
|
|
|
|
#define NM_S_TYPE_BOOL 3
|
|
|
|
|
#define NM_S_TYPE_BYTE_ARRAY 4
|
|
|
|
|
#define NM_S_TYPE_STRING_ARRAY 5
|
|
|
|
|
|
|
|
|
|
typedef struct SettingMember {
|
|
|
|
|
const char *key;
|
|
|
|
|
guint32 type;
|
|
|
|
|
gulong offset;
|
|
|
|
|
gboolean required;
|
|
|
|
|
gboolean secret;
|
|
|
|
|
} SettingMember;
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
struct _NMSetting {
|
|
|
|
|
char *name;
|
2007-09-16 12:47:14 +00:00
|
|
|
SettingMember *_members; /* Private */
|
2007-05-07 14:39:20 +00:00
|
|
|
|
|
|
|
|
NMSettingVerifyFn verify_fn;
|
|
|
|
|
NMSettingToHashFn hash_fn;
|
2007-09-11 18:02:27 +00:00
|
|
|
NMSettingUpdateSecretsFn update_secrets_fn;
|
2007-09-11 18:28:36 +00:00
|
|
|
NMSettingNeedSecretsFn need_secrets_fn;
|
2007-05-07 14:39:20 +00:00
|
|
|
NMSettingDestroyFn destroy_fn;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
gboolean nm_settings_verify (GHashTable *all_settings);
|
|
|
|
|
GHashTable *nm_setting_to_hash (NMSetting *setting);
|
2007-09-11 18:02:27 +00:00
|
|
|
gboolean nm_setting_update_secrets (NMSetting *setting, GHashTable *secrets);
|
2007-09-11 18:28:36 +00:00
|
|
|
GPtrArray * nm_setting_need_secrets (NMSetting *setting);
|
2007-05-07 14:39:20 +00:00
|
|
|
void nm_setting_destroy (NMSetting *setting);
|
2007-09-16 12:47:14 +00:00
|
|
|
void nm_setting_enumerate_values (NMSetting *setting,
|
|
|
|
|
NMSettingValueIterFn func,
|
|
|
|
|
gpointer user_data);
|
2007-05-07 14:39:20 +00:00
|
|
|
|
|
|
|
|
/* Default, built-in settings */
|
|
|
|
|
|
2007-08-29 21:27:52 +00:00
|
|
|
/* Connection */
|
2007-06-06 13:33:51 +00:00
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
|
|
|
|
char *name;
|
|
|
|
|
char *devtype;
|
|
|
|
|
gboolean autoconnect;
|
2007-08-29 21:27:52 +00:00
|
|
|
} NMSettingConnection;
|
2007-05-07 14:39:20 +00:00
|
|
|
|
2007-08-29 21:27:52 +00:00
|
|
|
NMSetting *nm_setting_connection_new (void);
|
|
|
|
|
NMSetting *nm_setting_connection_new_from_hash (GHashTable *settings);
|
2007-05-07 14:39:20 +00:00
|
|
|
|
2007-06-06 13:33:51 +00:00
|
|
|
/* IP4 config */
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
2007-06-06 13:33:51 +00:00
|
|
|
gboolean manual;
|
|
|
|
|
guint32 address;
|
|
|
|
|
guint32 netmask;
|
|
|
|
|
guint32 gateway;
|
|
|
|
|
} NMSettingIP4Config;
|
|
|
|
|
|
|
|
|
|
NMSetting *nm_setting_ip4_config_new (void);
|
|
|
|
|
NMSetting *nm_setting_ip4_config_new_from_hash (GHashTable *settings);
|
|
|
|
|
|
|
|
|
|
/* Wired device */
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
|
|
|
|
char *port;
|
|
|
|
|
guint32 speed;
|
|
|
|
|
char *duplex;
|
|
|
|
|
gboolean auto_negotiate;
|
|
|
|
|
GByteArray *mac_address;
|
|
|
|
|
guint32 mtu;
|
2007-05-07 14:39:20 +00:00
|
|
|
} NMSettingWired;
|
|
|
|
|
|
|
|
|
|
NMSetting *nm_setting_wired_new (void);
|
|
|
|
|
NMSetting *nm_setting_wired_new_from_hash (GHashTable *settings);
|
|
|
|
|
|
2007-06-06 13:33:51 +00:00
|
|
|
/* Wireless device */
|
|
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
2007-06-06 13:33:51 +00:00
|
|
|
GByteArray *ssid;
|
|
|
|
|
char *mode;
|
|
|
|
|
char *band;
|
|
|
|
|
guint32 channel;
|
|
|
|
|
GByteArray *bssid;
|
|
|
|
|
guint32 rate;
|
|
|
|
|
guint32 tx_power;
|
|
|
|
|
GByteArray *mac_address;
|
|
|
|
|
guint32 mtu;
|
|
|
|
|
GSList *seen_bssids;
|
|
|
|
|
char *security;
|
2007-05-07 14:39:20 +00:00
|
|
|
} NMSettingWireless;
|
|
|
|
|
|
|
|
|
|
NMSetting *nm_setting_wireless_new (void);
|
|
|
|
|
NMSetting *nm_setting_wireless_new_from_hash (GHashTable *settings);
|
|
|
|
|
|
2007-06-08 05:47:12 +00:00
|
|
|
/* Wireless security */
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
|
|
|
|
char *key_mgmt;
|
2007-09-16 12:47:14 +00:00
|
|
|
guint32 wep_tx_keyidx;
|
2007-06-08 05:47:12 +00:00
|
|
|
char *auth_alg;
|
|
|
|
|
char *proto;
|
|
|
|
|
GSList *pairwise; /* GSList of strings */
|
|
|
|
|
GSList *group; /* GSList of strings */
|
|
|
|
|
GSList *eap; /* GSList of strings */
|
|
|
|
|
char *identity;
|
|
|
|
|
char *anonymous_identity;
|
|
|
|
|
GByteArray *ca_cert;
|
|
|
|
|
char *ca_path;
|
|
|
|
|
GByteArray *client_cert;
|
|
|
|
|
GByteArray *private_key;
|
|
|
|
|
char *phase1_peapver;
|
|
|
|
|
char *phase1_peaplabel;
|
|
|
|
|
char *phase1_fast_provisioning;
|
|
|
|
|
char *phase2_auth;
|
|
|
|
|
char *phase2_autheap;
|
|
|
|
|
GByteArray *phase2_ca_cert;
|
|
|
|
|
char *phase2_ca_path;
|
|
|
|
|
GByteArray *phase2_client_cert;
|
|
|
|
|
GByteArray *phase2_private_key;
|
|
|
|
|
char *nai;
|
|
|
|
|
char *wep_key0;
|
|
|
|
|
char *wep_key1;
|
|
|
|
|
char *wep_key2;
|
|
|
|
|
char *wep_key3;
|
|
|
|
|
char *psk;
|
|
|
|
|
char *password;
|
|
|
|
|
char *pin;
|
|
|
|
|
char *eappsk;
|
|
|
|
|
char *private_key_passwd;
|
|
|
|
|
char *phase2_private_key_passwd;
|
|
|
|
|
} NMSettingWirelessSecurity;
|
|
|
|
|
|
|
|
|
|
NMSetting *nm_setting_wireless_security_new (void);
|
|
|
|
|
NMSetting *nm_setting_wireless_security_new_from_hash (GHashTable *settings);
|
|
|
|
|
|
2007-08-15 14:30:06 +00:00
|
|
|
/* PPP */
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
NMSetting parent;
|
|
|
|
|
|
|
|
|
|
gboolean noauth;
|
|
|
|
|
gboolean refuse_eap;
|
|
|
|
|
gboolean refuse_chap;
|
|
|
|
|
gboolean refuse_mschap;
|
|
|
|
|
gboolean nobsdcomp;
|
|
|
|
|
gboolean nodeflate;
|
|
|
|
|
gboolean require_mppe;
|
|
|
|
|
gboolean require_mppe_128;
|
|
|
|
|
gboolean mppe_stateful;
|
|
|
|
|
gboolean require_mppc;
|
|
|
|
|
gboolean crtscts;
|
|
|
|
|
gboolean usepeerdns;
|
|
|
|
|
|
|
|
|
|
gint32 baud;
|
|
|
|
|
gint32 mru;
|
|
|
|
|
gint32 mtu;
|
|
|
|
|
gint32 lcp_echo_failure;
|
|
|
|
|
gint32 lcp_echo_interval;
|
|
|
|
|
} NMSettingPPP;
|
|
|
|
|
|
|
|
|
|
NMSetting *nm_setting_ppp_new (void);
|
|
|
|
|
NMSetting *nm_setting_ppp_new_from_hash (GHashTable *settings);
|
|
|
|
|
|
2007-08-09 09:19:57 +00:00
|
|
|
G_END_DECLS
|
2007-06-08 05:47:12 +00:00
|
|
|
|
2007-05-07 14:39:20 +00:00
|
|
|
#endif /* NM_SETTING_H */
|