dhcp: initialize hostname as construct-property
The hostname property is only initialized once, early on during start. Move the initialization even earlier during object constructions. This effectively makes the hostname an immutable property. This also makes sense, because the hostname is used by IPv4 and IPv6 DHCP instances alike.
This commit is contained in:
@@ -61,6 +61,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDhcpClient,
|
||||
PROP_ROUTE_TABLE,
|
||||
PROP_TIMEOUT,
|
||||
PROP_UUID,
|
||||
PROP_HOSTNAME,
|
||||
);
|
||||
|
||||
typedef struct _NMDhcpClientPrivate {
|
||||
@@ -506,7 +507,6 @@ gboolean
|
||||
nm_dhcp_client_start_ip4 (NMDhcpClient *self,
|
||||
GBytes *client_id,
|
||||
const char *dhcp_anycast_addr,
|
||||
const char *hostname,
|
||||
const char *last_ip4_address,
|
||||
GError **error)
|
||||
{
|
||||
@@ -526,9 +526,6 @@ nm_dhcp_client_start_ip4 (NMDhcpClient *self,
|
||||
|
||||
nm_dhcp_client_set_client_id (self, client_id);
|
||||
|
||||
g_clear_pointer (&priv->hostname, g_free);
|
||||
priv->hostname = g_strdup (hostname);
|
||||
|
||||
return NM_DHCP_CLIENT_GET_CLASS (self)->ip4_start (self,
|
||||
dhcp_anycast_addr,
|
||||
last_ip4_address,
|
||||
@@ -547,7 +544,6 @@ nm_dhcp_client_start_ip6 (NMDhcpClient *self,
|
||||
gboolean enforce_duid,
|
||||
const char *dhcp_anycast_addr,
|
||||
const struct in6_addr *ll_addr,
|
||||
const char *hostname,
|
||||
NMSettingIP6ConfigPrivacy privacy,
|
||||
guint needed_prefixes,
|
||||
GError **error)
|
||||
@@ -573,9 +569,6 @@ nm_dhcp_client_start_ip6 (NMDhcpClient *self,
|
||||
own_client_id ?: client_id,
|
||||
FALSE);
|
||||
|
||||
g_clear_pointer (&priv->hostname, g_free);
|
||||
priv->hostname = g_strdup (hostname);
|
||||
|
||||
if (priv->timeout == NM_DHCP_TIMEOUT_INFINITY)
|
||||
_LOGI ("activation: beginning transaction (no timeout)");
|
||||
else
|
||||
@@ -855,6 +848,9 @@ get_property (GObject *object, guint prop_id,
|
||||
case PROP_UUID:
|
||||
g_value_set_string (value, priv->uuid);
|
||||
break;
|
||||
case PROP_HOSTNAME:
|
||||
g_value_set_string (value, priv->hostname);
|
||||
break;
|
||||
case PROP_ROUTE_METRIC:
|
||||
g_value_set_uint (value, priv->route_metric);
|
||||
break;
|
||||
@@ -917,6 +913,10 @@ set_property (GObject *object, guint prop_id,
|
||||
/* construct-only */
|
||||
priv->uuid = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_HOSTNAME:
|
||||
/* construct-only */
|
||||
priv->hostname = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_ROUTE_TABLE:
|
||||
priv->route_table = g_value_get_uint (value);
|
||||
break;
|
||||
@@ -1025,6 +1025,12 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class)
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
obj_properties[PROP_HOSTNAME] =
|
||||
g_param_spec_string (NM_DHCP_CLIENT_HOSTNAME, "", "",
|
||||
NULL,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
obj_properties[PROP_ROUTE_TABLE] =
|
||||
g_param_spec_uint (NM_DHCP_CLIENT_ROUTE_TABLE, "", "",
|
||||
0, G_MAXUINT32, RT_TABLE_MAIN,
|
||||
|
@@ -41,6 +41,7 @@
|
||||
#define NM_DHCP_CLIENT_IFINDEX "ifindex"
|
||||
#define NM_DHCP_CLIENT_INTERFACE "iface"
|
||||
#define NM_DHCP_CLIENT_MULTI_IDX "multi-idx"
|
||||
#define NM_DHCP_CLIENT_HOSTNAME "hostname"
|
||||
#define NM_DHCP_CLIENT_ROUTE_METRIC "route-metric"
|
||||
#define NM_DHCP_CLIENT_ROUTE_TABLE "route-table"
|
||||
#define NM_DHCP_CLIENT_TIMEOUT "timeout"
|
||||
@@ -143,7 +144,6 @@ gboolean nm_dhcp_client_get_use_fqdn (NMDhcpClient *self);
|
||||
gboolean nm_dhcp_client_start_ip4 (NMDhcpClient *self,
|
||||
GBytes *client_id,
|
||||
const char *dhcp_anycast_addr,
|
||||
const char *hostname,
|
||||
const char *last_ip4_address,
|
||||
GError **error);
|
||||
|
||||
@@ -152,7 +152,6 @@ gboolean nm_dhcp_client_start_ip6 (NMDhcpClient *self,
|
||||
gboolean enforce_duid,
|
||||
const char *dhcp_anycast_addr,
|
||||
const struct in6_addr *ll_addr,
|
||||
const char *hostname,
|
||||
NMSettingIP6ConfigPrivacy privacy,
|
||||
guint needed_prefixes,
|
||||
GError **error);
|
||||
|
@@ -222,6 +222,7 @@ client_start (NMDhcpManager *self,
|
||||
NM_DHCP_CLIENT_IFINDEX, ifindex,
|
||||
NM_DHCP_CLIENT_HWADDR, hwaddr,
|
||||
NM_DHCP_CLIENT_UUID, uuid,
|
||||
NM_DHCP_CLIENT_HOSTNAME, hostname,
|
||||
NM_DHCP_CLIENT_ROUTE_TABLE, (guint) route_table,
|
||||
NM_DHCP_CLIENT_ROUTE_METRIC, (guint) route_metric,
|
||||
NM_DHCP_CLIENT_TIMEOUT, (guint) timeout,
|
||||
@@ -264,7 +265,6 @@ client_start (NMDhcpManager *self,
|
||||
success = nm_dhcp_client_start_ip4 (client,
|
||||
dhcp_client_id,
|
||||
dhcp_anycast_addr,
|
||||
hostname,
|
||||
last_ip4_address,
|
||||
error);
|
||||
} else {
|
||||
@@ -273,7 +273,6 @@ client_start (NMDhcpManager *self,
|
||||
enforce_duid,
|
||||
dhcp_anycast_addr,
|
||||
ipv6_ll_addr,
|
||||
hostname,
|
||||
privacy,
|
||||
needed_prefixes,
|
||||
error);
|
||||
|
Reference in New Issue
Block a user