mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-25 08:20:37 +01:00
* libnm-util/nm-setting.c: Get rid of dump virtual functions, that can happen automagically. Implement NMSettingIP4Config. Finish NMSettingWired by adding all known members. (setting_wired_verify): Implement. Finish NMSettingWireless by adding all known members. (setting_wireless_verify): Implement. * libnm-util/nm-connection.c: Register "ipv4" setting. (nm_connection_dump): Implement. Instead of requiring every NMSetting to implement dump function, we can introspect the GHashTable which is used for sending connections over dbus. * src/nm-device-802-11-wireless.c (nm_device_802_11_wireless_set_activation_ap): Take GByteArray for essid, it's really not a string. * src/nm-device.c (real_act_stage3_ip_config_start): Get information from NMSettings. Start DHCP request if setting is not passed or if it states that DHCP should be used. (real_act_stage4_get_ip4_config): If settings are provided, use them, even if it means overriding the values we got from DHCP. (real_activation_cancel_handler): Cancel DHCP transaction only if it has started, doh. (nm_device_deactivate_quickly): Ditto. * src/nm-device-interface.c (impl_device_activate): Dump the connection structure for debugging. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2577 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
94 lines
1.9 KiB
C
94 lines
1.9 KiB
C
#ifndef NM_SETTING_H
|
|
#define NM_SETTING_H
|
|
|
|
#include <glib.h>
|
|
|
|
typedef struct _NMSetting NMSetting;
|
|
|
|
typedef NMSetting *(*NMSettingCreateFn) (GHashTable *settings);
|
|
typedef gboolean (*NMSettingVerifyFn) (NMSetting *setting,
|
|
GHashTable *all_settings);
|
|
|
|
typedef GHashTable *(*NMSettingToHashFn) (NMSetting *setting);
|
|
|
|
typedef void (*NMSettingDestroyFn) (NMSetting *setting);
|
|
|
|
struct _NMSetting {
|
|
char *name;
|
|
|
|
NMSettingVerifyFn verify_fn;
|
|
NMSettingToHashFn hash_fn;
|
|
NMSettingDestroyFn destroy_fn;
|
|
};
|
|
|
|
gboolean nm_settings_verify (GHashTable *all_settings);
|
|
GHashTable *nm_setting_to_hash (NMSetting *setting);
|
|
void nm_setting_destroy (NMSetting *setting);
|
|
|
|
/* Default, built-in settings */
|
|
|
|
/* Info */
|
|
|
|
typedef struct {
|
|
NMSetting parent;
|
|
|
|
char *name;
|
|
char *devtype;
|
|
gboolean autoconnect;
|
|
} NMSettingInfo;
|
|
|
|
NMSetting *nm_setting_info_new (void);
|
|
NMSetting *nm_setting_info_new_from_hash (GHashTable *settings);
|
|
|
|
/* IP4 config */
|
|
|
|
typedef struct {
|
|
NMSetting parent;
|
|
|
|
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;
|
|
} NMSettingWired;
|
|
|
|
NMSetting *nm_setting_wired_new (void);
|
|
NMSetting *nm_setting_wired_new_from_hash (GHashTable *settings);
|
|
|
|
/* Wireless device */
|
|
|
|
typedef struct {
|
|
NMSetting parent;
|
|
|
|
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;
|
|
} NMSettingWireless;
|
|
|
|
NMSetting *nm_setting_wireless_new (void);
|
|
NMSetting *nm_setting_wireless_new_from_hash (GHashTable *settings);
|
|
|
|
#endif /* NM_SETTING_H */
|