Merge branch wins-in-ip4-config
This commit is contained in:
@@ -8,6 +8,9 @@
|
|||||||
<property name="Nameservers" type="au" access="read">
|
<property name="Nameservers" type="au" access="read">
|
||||||
<tp:docstring>The nameservers in use.</tp:docstring>
|
<tp:docstring>The nameservers in use.</tp:docstring>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="WinsServers" type="au" access="read">
|
||||||
|
<tp:docstring>The Windows Internet Name Service servers associated with the connection.</tp:docstring>
|
||||||
|
</property>
|
||||||
<property name="Domains" type="as" access="read">
|
<property name="Domains" type="as" access="read">
|
||||||
<tp:docstring>A list of domains this address belongs to.</tp:docstring>
|
<tp:docstring>A list of domains this address belongs to.</tp:docstring>
|
||||||
</property>
|
</property>
|
||||||
|
@@ -128,6 +128,16 @@ dump_ip4_config (NMIP4Config *cfg)
|
|||||||
for (i = 0; i < ptr_array->len; i++)
|
for (i = 0; i < ptr_array->len; i++)
|
||||||
g_print ("\t%s\n", (const char *) g_ptr_array_index (ptr_array, i));
|
g_print ("\t%s\n", (const char *) g_ptr_array_index (ptr_array, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
array = nm_ip4_config_get_wins_servers (cfg);
|
||||||
|
if (array) {
|
||||||
|
g_print ("IP4 WINS:\n");
|
||||||
|
for (i = 0; i < array->len; i++) {
|
||||||
|
tmp = ip4_address_as_string (g_array_index (array, guint32, i));
|
||||||
|
g_print ("\t%s\n", tmp);
|
||||||
|
g_free (tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -94,6 +94,7 @@ global:
|
|||||||
nm_ip4_config_get_domains;
|
nm_ip4_config_get_domains;
|
||||||
nm_ip4_config_get_hostname;
|
nm_ip4_config_get_hostname;
|
||||||
nm_ip4_config_get_nameservers;
|
nm_ip4_config_get_nameservers;
|
||||||
|
nm_ip4_config_get_wins_servers;
|
||||||
nm_ip4_config_get_routes;
|
nm_ip4_config_get_routes;
|
||||||
nm_ip4_config_get_type;
|
nm_ip4_config_get_type;
|
||||||
nm_ip4_config_new;
|
nm_ip4_config_new;
|
||||||
|
@@ -41,6 +41,7 @@ typedef struct {
|
|||||||
GArray *nameservers;
|
GArray *nameservers;
|
||||||
GPtrArray *domains;
|
GPtrArray *domains;
|
||||||
GSList *routes;
|
GSList *routes;
|
||||||
|
GArray *wins;
|
||||||
} NMIP4ConfigPrivate;
|
} NMIP4ConfigPrivate;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -50,6 +51,7 @@ enum {
|
|||||||
PROP_NAMESERVERS,
|
PROP_NAMESERVERS,
|
||||||
PROP_DOMAINS,
|
PROP_DOMAINS,
|
||||||
PROP_ROUTES,
|
PROP_ROUTES,
|
||||||
|
PROP_WINS_SERVERS,
|
||||||
|
|
||||||
LAST_PROP
|
LAST_PROP
|
||||||
};
|
};
|
||||||
@@ -82,6 +84,9 @@ demarshal_ip4_array (NMObject *object, GParamSpec *pspec, GValue *value, gpointe
|
|||||||
|
|
||||||
if (!strcmp (pspec->name, NM_IP4_CONFIG_NAMESERVERS))
|
if (!strcmp (pspec->name, NM_IP4_CONFIG_NAMESERVERS))
|
||||||
_nm_object_queue_notify (object, NM_IP4_CONFIG_NAMESERVERS);
|
_nm_object_queue_notify (object, NM_IP4_CONFIG_NAMESERVERS);
|
||||||
|
else if (!strcmp (pspec->name, NM_IP4_CONFIG_WINS_SERVERS))
|
||||||
|
_nm_object_queue_notify (object, NM_IP4_CONFIG_WINS_SERVERS);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,6 +124,7 @@ register_for_property_changed (NMIP4Config *config)
|
|||||||
{ NM_IP4_CONFIG_NAMESERVERS, demarshal_ip4_array, &priv->nameservers },
|
{ NM_IP4_CONFIG_NAMESERVERS, demarshal_ip4_array, &priv->nameservers },
|
||||||
{ NM_IP4_CONFIG_DOMAINS, demarshal_domains, &priv->domains },
|
{ NM_IP4_CONFIG_DOMAINS, demarshal_domains, &priv->domains },
|
||||||
{ NM_IP4_CONFIG_ROUTES, demarshal_ip4_routes_array, &priv->routes },
|
{ NM_IP4_CONFIG_ROUTES, demarshal_ip4_routes_array, &priv->routes },
|
||||||
|
{ NM_IP4_CONFIG_WINS_SERVERS, demarshal_ip4_array, &priv->wins },
|
||||||
{ NULL },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -169,6 +175,9 @@ finalize (GObject *object)
|
|||||||
if (priv->nameservers)
|
if (priv->nameservers)
|
||||||
g_array_free (priv->nameservers, TRUE);
|
g_array_free (priv->nameservers, TRUE);
|
||||||
|
|
||||||
|
if (priv->wins)
|
||||||
|
g_array_free (priv->wins, TRUE);
|
||||||
|
|
||||||
if (priv->domains) {
|
if (priv->domains) {
|
||||||
g_ptr_array_foreach (priv->domains, (GFunc) g_free, NULL);
|
g_ptr_array_foreach (priv->domains, (GFunc) g_free, NULL);
|
||||||
g_ptr_array_free (priv->domains, TRUE);
|
g_ptr_array_free (priv->domains, TRUE);
|
||||||
@@ -204,6 +213,9 @@ get_property (GObject *object,
|
|||||||
case PROP_ROUTES:
|
case PROP_ROUTES:
|
||||||
nm_utils_ip4_routes_to_gvalue (priv->routes, value);
|
nm_utils_ip4_routes_to_gvalue (priv->routes, value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_WINS_SERVERS:
|
||||||
|
g_value_set_boxed (value, nm_ip4_config_get_wins_servers (self));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -286,6 +298,19 @@ nm_ip4_config_class_init (NMIP4ConfigClass *config_class)
|
|||||||
"Routes",
|
"Routes",
|
||||||
"Routes",
|
"Routes",
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NMIP4Config:wins-servers:
|
||||||
|
*
|
||||||
|
* The #GArray containing WINS servers (%guint32<!-- -->es) of the configuration.
|
||||||
|
**/
|
||||||
|
g_object_class_install_property
|
||||||
|
(object_class, PROP_WINS_SERVERS,
|
||||||
|
g_param_spec_boxed (NM_IP4_CONFIG_WINS_SERVERS,
|
||||||
|
"WINS Servers",
|
||||||
|
"WINS Servers",
|
||||||
|
NM_TYPE_UINT_ARRAY,
|
||||||
|
G_PARAM_READABLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -389,6 +414,7 @@ nm_ip4_config_get_nameservers (NMIP4Config *config)
|
|||||||
|
|
||||||
return priv->nameservers;
|
return priv->nameservers;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nm_ip4_config_get_domains:
|
* nm_ip4_config_get_domains:
|
||||||
* @config: a #NMIP4Config
|
* @config: a #NMIP4Config
|
||||||
@@ -428,6 +454,42 @@ nm_ip4_config_get_domains (NMIP4Config *config)
|
|||||||
return handle_ptr_array_return (priv->domains);
|
return handle_ptr_array_return (priv->domains);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nm_ip4_config_get_wins_servers:
|
||||||
|
* @config: a #NMIP4Config
|
||||||
|
*
|
||||||
|
* Gets the Windows Internet Name Service servers (WINS).
|
||||||
|
*
|
||||||
|
* Returns: the #GArray containing %guint32<!-- -->s. This is the internal copy used by the
|
||||||
|
* configuration and must not be modified.
|
||||||
|
**/
|
||||||
|
const GArray *
|
||||||
|
nm_ip4_config_get_wins_servers (NMIP4Config *config)
|
||||||
|
{
|
||||||
|
NMIP4ConfigPrivate *priv;
|
||||||
|
GArray *array = NULL;
|
||||||
|
GValue value = {0,};
|
||||||
|
|
||||||
|
g_return_val_if_fail (NM_IS_IP4_CONFIG (config), NULL);
|
||||||
|
|
||||||
|
priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
||||||
|
if (!priv->nameservers) {
|
||||||
|
if (_nm_object_get_property (NM_OBJECT (config),
|
||||||
|
NM_DBUS_INTERFACE_IP4_CONFIG,
|
||||||
|
"Nameservers",
|
||||||
|
&value)) {
|
||||||
|
array = (GArray *) g_value_get_boxed (&value);
|
||||||
|
if (array && array->len) {
|
||||||
|
priv->nameservers = g_array_sized_new (FALSE, TRUE, sizeof (guint32), array->len);
|
||||||
|
g_array_append_vals (priv->nameservers, array->data, array->len);
|
||||||
|
}
|
||||||
|
g_value_unset (&value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return priv->nameservers;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nm_ip4_config_get_routes:
|
* nm_ip4_config_get_routes:
|
||||||
* @config: a #NMIP4Config
|
* @config: a #NMIP4Config
|
||||||
|
@@ -51,6 +51,7 @@ typedef struct {
|
|||||||
#define NM_IP4_CONFIG_NAMESERVERS "nameservers"
|
#define NM_IP4_CONFIG_NAMESERVERS "nameservers"
|
||||||
#define NM_IP4_CONFIG_DOMAINS "domains"
|
#define NM_IP4_CONFIG_DOMAINS "domains"
|
||||||
#define NM_IP4_CONFIG_ROUTES "routes"
|
#define NM_IP4_CONFIG_ROUTES "routes"
|
||||||
|
#define NM_IP4_CONFIG_WINS_SERVERS "wins-servers"
|
||||||
|
|
||||||
GType nm_ip4_config_get_type (void);
|
GType nm_ip4_config_get_type (void);
|
||||||
|
|
||||||
@@ -61,6 +62,7 @@ const char * nm_ip4_config_get_hostname (NMIP4Config *config); /* DEPRECA
|
|||||||
const GArray * nm_ip4_config_get_nameservers (NMIP4Config *config);
|
const GArray * nm_ip4_config_get_nameservers (NMIP4Config *config);
|
||||||
const GPtrArray *nm_ip4_config_get_domains (NMIP4Config *config);
|
const GPtrArray *nm_ip4_config_get_domains (NMIP4Config *config);
|
||||||
const GSList * nm_ip4_config_get_routes (NMIP4Config *config);
|
const GSList * nm_ip4_config_get_routes (NMIP4Config *config);
|
||||||
|
const GArray * nm_ip4_config_get_wins_servers (NMIP4Config *config);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@@ -842,6 +842,21 @@ nm_dhcp_manager_get_ip4_config (NMDHCPManager *manager,
|
|||||||
g_strfreev (searches);
|
g_strfreev (searches);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
str = g_hash_table_lookup (device->options, "new_netbios_name_servers");
|
||||||
|
if (str) {
|
||||||
|
char **searches = g_strsplit (str, " ", 0);
|
||||||
|
char **s;
|
||||||
|
|
||||||
|
for (s = searches; *s; s++) {
|
||||||
|
if (inet_pton (AF_INET, *s, &tmp_addr) > 0) {
|
||||||
|
nm_ip4_config_add_wins (ip4_config, tmp_addr.s_addr);
|
||||||
|
nm_info (" wins '%s'", *s);
|
||||||
|
} else
|
||||||
|
nm_warning ("Ignoring invalid WINS server '%s'", *s);
|
||||||
|
}
|
||||||
|
g_strfreev (searches);
|
||||||
|
}
|
||||||
|
|
||||||
str = g_hash_table_lookup (device->options, "new_static_routes");
|
str = g_hash_table_lookup (device->options, "new_static_routes");
|
||||||
if (str) {
|
if (str) {
|
||||||
char **searches = g_strsplit (str, " ", 0);
|
char **searches = g_strsplit (str, " ", 0);
|
||||||
|
@@ -54,6 +54,8 @@ typedef struct {
|
|||||||
GPtrArray *domains;
|
GPtrArray *domains;
|
||||||
GPtrArray *searches;
|
GPtrArray *searches;
|
||||||
|
|
||||||
|
GArray *wins;
|
||||||
|
|
||||||
GSList *routes;
|
GSList *routes;
|
||||||
|
|
||||||
gboolean never_default;
|
gboolean never_default;
|
||||||
@@ -66,6 +68,7 @@ enum {
|
|||||||
PROP_NAMESERVERS,
|
PROP_NAMESERVERS,
|
||||||
PROP_DOMAINS,
|
PROP_DOMAINS,
|
||||||
PROP_ROUTES,
|
PROP_ROUTES,
|
||||||
|
PROP_WINS_SERVERS,
|
||||||
|
|
||||||
LAST_PROP
|
LAST_PROP
|
||||||
};
|
};
|
||||||
@@ -179,10 +182,21 @@ void nm_ip4_config_set_ptp_address (NMIP4Config *config, guint32 ptp_addr)
|
|||||||
|
|
||||||
void nm_ip4_config_add_nameserver (NMIP4Config *config, guint32 nameserver)
|
void nm_ip4_config_add_nameserver (NMIP4Config *config, guint32 nameserver)
|
||||||
{
|
{
|
||||||
g_return_if_fail (NM_IS_IP4_CONFIG (config));
|
NMIP4ConfigPrivate *priv;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (nameserver != 0)
|
g_return_if_fail (NM_IS_IP4_CONFIG (config));
|
||||||
g_array_append_val (NM_IP4_CONFIG_GET_PRIVATE (config)->nameservers, nameserver);
|
g_return_if_fail (nameserver > 0);
|
||||||
|
|
||||||
|
priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
||||||
|
for (i = 0; i < priv->nameservers->len; i++) {
|
||||||
|
guint32 s = g_array_index (priv->nameservers, guint32, i);
|
||||||
|
|
||||||
|
/* No dupes */
|
||||||
|
g_return_if_fail (nameserver != s);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_array_append_val (priv->nameservers, nameserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
guint32 nm_ip4_config_get_nameserver (NMIP4Config *config, guint i)
|
guint32 nm_ip4_config_get_nameserver (NMIP4Config *config, guint i)
|
||||||
@@ -210,6 +224,50 @@ void nm_ip4_config_reset_nameservers (NMIP4Config *config)
|
|||||||
g_array_remove_range (priv->nameservers, 0, priv->nameservers->len);
|
g_array_remove_range (priv->nameservers, 0, priv->nameservers->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nm_ip4_config_add_wins (NMIP4Config *config, guint32 wins)
|
||||||
|
{
|
||||||
|
NMIP4ConfigPrivate *priv;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
g_return_if_fail (NM_IS_IP4_CONFIG (config));
|
||||||
|
g_return_if_fail (wins > 0);
|
||||||
|
|
||||||
|
priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
||||||
|
for (i = 0; i < priv->wins->len; i++) {
|
||||||
|
guint32 s = g_array_index (priv->wins, guint32, i);
|
||||||
|
|
||||||
|
/* No dupes */
|
||||||
|
g_return_if_fail (wins != s);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_array_append_val (priv->wins, wins);
|
||||||
|
}
|
||||||
|
|
||||||
|
guint32 nm_ip4_config_get_wins (NMIP4Config *config, guint i)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (NM_IS_IP4_CONFIG (config), 0);
|
||||||
|
|
||||||
|
return g_array_index (NM_IP4_CONFIG_GET_PRIVATE (config)->wins, guint32, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
guint32 nm_ip4_config_get_num_wins (NMIP4Config *config)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (NM_IS_IP4_CONFIG (config), 0);
|
||||||
|
|
||||||
|
return NM_IP4_CONFIG_GET_PRIVATE (config)->wins->len;
|
||||||
|
}
|
||||||
|
|
||||||
|
void nm_ip4_config_reset_wins (NMIP4Config *config)
|
||||||
|
{
|
||||||
|
NMIP4ConfigPrivate *priv;
|
||||||
|
|
||||||
|
g_return_if_fail (NM_IS_IP4_CONFIG (config));
|
||||||
|
|
||||||
|
priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
||||||
|
if (priv->wins->len)
|
||||||
|
g_array_remove_range (priv->wins, 0, priv->wins->len);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
nm_ip4_config_take_route (NMIP4Config *config, NMIP4Route *route)
|
nm_ip4_config_take_route (NMIP4Config *config, NMIP4Route *route)
|
||||||
{
|
{
|
||||||
@@ -589,6 +647,11 @@ nm_ip4_config_diff (NMIP4Config *a, NMIP4Config *b)
|
|||||||
|| !addr_array_compare (b_priv->nameservers, a_priv->nameservers))
|
|| !addr_array_compare (b_priv->nameservers, a_priv->nameservers))
|
||||||
flags |= NM_IP4_COMPARE_FLAG_NAMESERVERS;
|
flags |= NM_IP4_COMPARE_FLAG_NAMESERVERS;
|
||||||
|
|
||||||
|
if ( (a_priv->wins->len != b_priv->wins->len)
|
||||||
|
|| !addr_array_compare (a_priv->wins, b_priv->wins)
|
||||||
|
|| !addr_array_compare (b_priv->wins, a_priv->wins))
|
||||||
|
flags |= NM_IP4_COMPARE_FLAG_WINS_SERVERS;
|
||||||
|
|
||||||
if ( !route_slist_compare (a_priv->routes, b_priv->routes)
|
if ( !route_slist_compare (a_priv->routes, b_priv->routes)
|
||||||
|| !route_slist_compare (b_priv->routes, a_priv->routes))
|
|| !route_slist_compare (b_priv->routes, a_priv->routes))
|
||||||
flags |= NM_IP4_COMPARE_FLAG_ROUTES;
|
flags |= NM_IP4_COMPARE_FLAG_ROUTES;
|
||||||
@@ -618,6 +681,7 @@ nm_ip4_config_init (NMIP4Config *config)
|
|||||||
NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (config);
|
||||||
|
|
||||||
priv->nameservers = g_array_new (FALSE, TRUE, sizeof (guint32));
|
priv->nameservers = g_array_new (FALSE, TRUE, sizeof (guint32));
|
||||||
|
priv->wins = g_array_new (FALSE, TRUE, sizeof (guint32));
|
||||||
priv->domains = g_ptr_array_new ();
|
priv->domains = g_ptr_array_new ();
|
||||||
priv->searches = g_ptr_array_new ();
|
priv->searches = g_ptr_array_new ();
|
||||||
}
|
}
|
||||||
@@ -629,6 +693,7 @@ finalize (GObject *object)
|
|||||||
|
|
||||||
nm_utils_slist_free (priv->addresses, (GDestroyNotify) nm_ip4_address_unref);
|
nm_utils_slist_free (priv->addresses, (GDestroyNotify) nm_ip4_address_unref);
|
||||||
nm_utils_slist_free (priv->routes, (GDestroyNotify) nm_ip4_route_unref);
|
nm_utils_slist_free (priv->routes, (GDestroyNotify) nm_ip4_route_unref);
|
||||||
|
g_array_free (priv->wins, TRUE);
|
||||||
g_array_free (priv->nameservers, TRUE);
|
g_array_free (priv->nameservers, TRUE);
|
||||||
g_ptr_array_free (priv->domains, TRUE);
|
g_ptr_array_free (priv->domains, TRUE);
|
||||||
g_ptr_array_free (priv->searches, TRUE);
|
g_ptr_array_free (priv->searches, TRUE);
|
||||||
@@ -653,6 +718,9 @@ get_property (GObject *object, guint prop_id,
|
|||||||
case PROP_ROUTES:
|
case PROP_ROUTES:
|
||||||
nm_utils_ip4_routes_to_gvalue (priv->routes, value);
|
nm_utils_ip4_routes_to_gvalue (priv->routes, value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_WINS_SERVERS:
|
||||||
|
g_value_set_boxed (value, priv->wins);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -692,7 +760,6 @@ nm_ip4_config_class_init (NMIP4ConfigClass *config_class)
|
|||||||
"Domains",
|
"Domains",
|
||||||
DBUS_TYPE_G_ARRAY_OF_STRING,
|
DBUS_TYPE_G_ARRAY_OF_STRING,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
g_object_class_install_property
|
g_object_class_install_property
|
||||||
(object_class, PROP_ROUTES,
|
(object_class, PROP_ROUTES,
|
||||||
g_param_spec_boxed (NM_IP4_CONFIG_ROUTES,
|
g_param_spec_boxed (NM_IP4_CONFIG_ROUTES,
|
||||||
@@ -700,6 +767,13 @@ nm_ip4_config_class_init (NMIP4ConfigClass *config_class)
|
|||||||
"Routes",
|
"Routes",
|
||||||
DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT,
|
DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
g_object_class_install_property
|
||||||
|
(object_class, PROP_WINS_SERVERS,
|
||||||
|
g_param_spec_boxed (NM_IP4_CONFIG_WINS_SERVERS,
|
||||||
|
"WinsServers",
|
||||||
|
"WINS server list",
|
||||||
|
DBUS_TYPE_G_UINT_ARRAY,
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (config_class),
|
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (config_class),
|
||||||
&dbus_glib_nm_ip4_config_object_info);
|
&dbus_glib_nm_ip4_config_object_info);
|
||||||
|
@@ -45,6 +45,7 @@ typedef struct {
|
|||||||
#define NM_IP4_CONFIG_NAMESERVERS "nameservers"
|
#define NM_IP4_CONFIG_NAMESERVERS "nameservers"
|
||||||
#define NM_IP4_CONFIG_DOMAINS "domains"
|
#define NM_IP4_CONFIG_DOMAINS "domains"
|
||||||
#define NM_IP4_CONFIG_ROUTES "routes"
|
#define NM_IP4_CONFIG_ROUTES "routes"
|
||||||
|
#define NM_IP4_CONFIG_WINS_SERVERS "wins-servers"
|
||||||
|
|
||||||
GType nm_ip4_config_get_type (void);
|
GType nm_ip4_config_get_type (void);
|
||||||
|
|
||||||
@@ -67,6 +68,11 @@ guint32 nm_ip4_config_get_nameserver (NMIP4Config *config, guint i);
|
|||||||
guint32 nm_ip4_config_get_num_nameservers (NMIP4Config *config);
|
guint32 nm_ip4_config_get_num_nameservers (NMIP4Config *config);
|
||||||
void nm_ip4_config_reset_nameservers (NMIP4Config *config);
|
void nm_ip4_config_reset_nameservers (NMIP4Config *config);
|
||||||
|
|
||||||
|
void nm_ip4_config_add_wins (NMIP4Config *config, guint32 wins);
|
||||||
|
guint32 nm_ip4_config_get_wins (NMIP4Config *config, guint i);
|
||||||
|
guint32 nm_ip4_config_get_num_wins (NMIP4Config *config);
|
||||||
|
void nm_ip4_config_reset_wins (NMIP4Config *config);
|
||||||
|
|
||||||
void nm_ip4_config_take_route (NMIP4Config *config, NMIP4Route *route);
|
void nm_ip4_config_take_route (NMIP4Config *config, NMIP4Route *route);
|
||||||
void nm_ip4_config_add_route (NMIP4Config *config, NMIP4Route *route);
|
void nm_ip4_config_add_route (NMIP4Config *config, NMIP4Route *route);
|
||||||
void nm_ip4_config_replace_route (NMIP4Config *config, guint32 i, NMIP4Route *new_route);
|
void nm_ip4_config_replace_route (NMIP4Config *config, guint32 i, NMIP4Route *new_route);
|
||||||
@@ -114,6 +120,7 @@ typedef enum {
|
|||||||
NM_IP4_COMPARE_FLAG_SEARCHES = 0x00000020,
|
NM_IP4_COMPARE_FLAG_SEARCHES = 0x00000020,
|
||||||
NM_IP4_COMPARE_FLAG_MTU = 0x00000040,
|
NM_IP4_COMPARE_FLAG_MTU = 0x00000040,
|
||||||
NM_IP4_COMPARE_FLAG_MSS = 0x00000080,
|
NM_IP4_COMPARE_FLAG_MSS = 0x00000080,
|
||||||
|
NM_IP4_COMPARE_FLAG_WINS_SERVERS= 0x00000100,
|
||||||
NM_IP4_COMPARE_FLAG_ALL = 0xFFFFFFFF /* match everything */
|
NM_IP4_COMPARE_FLAG_ALL = 0xFFFFFFFF /* match everything */
|
||||||
} NMIP4ConfigCompareFlags;
|
} NMIP4ConfigCompareFlags;
|
||||||
|
|
||||||
|
@@ -509,6 +509,14 @@ impl_ppp_manager_set_ip4_config (NMPPPManager *manager,
|
|||||||
nm_ip4_config_add_nameserver (config, g_array_index (dns, guint, i));
|
nm_ip4_config_add_nameserver (config, g_array_index (dns, guint, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val = (GValue *) g_hash_table_lookup (config_hash, NM_PPP_IP4_CONFIG_WINS);
|
||||||
|
if (val) {
|
||||||
|
GArray *wins = (GArray *) g_value_get_boxed (val);
|
||||||
|
|
||||||
|
for (i = 0; i < wins->len; i++)
|
||||||
|
nm_ip4_config_add_wins (config, g_array_index (wins, guint, i));
|
||||||
|
}
|
||||||
|
|
||||||
val = (GValue *) g_hash_table_lookup (config_hash, NM_PPP_IP4_CONFIG_INTERFACE);
|
val = (GValue *) g_hash_table_lookup (config_hash, NM_PPP_IP4_CONFIG_INTERFACE);
|
||||||
if (!val || !G_VALUE_HOLDS_STRING (val)) {
|
if (!val || !G_VALUE_HOLDS_STRING (val)) {
|
||||||
nm_warning ("No interface");
|
nm_warning ("No interface");
|
||||||
|
@@ -456,7 +456,7 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy,
|
|||||||
GArray *nbns = (GArray *) g_value_get_boxed (val);
|
GArray *nbns = (GArray *) g_value_get_boxed (val);
|
||||||
|
|
||||||
for (i = 0; i < nbns->len; i++)
|
for (i = 0; i < nbns->len; i++)
|
||||||
nm_ip4_config_add_nameserver (config, g_array_index (nbns, guint, i));
|
nm_ip4_config_add_wins (config, g_array_index (nbns, guint, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_MSS);
|
val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_MSS);
|
||||||
|
Reference in New Issue
Block a user