## NMSettingIPConfig

NMSettingIPConfig — Abstract base class for IPv4 and IPv6 addressing, routing, and name service properties

## Functions

NMIPAddress * | nm_ip_address_new ()
NMIPAddress * | nm_ip_address_new_binary ()
void | nm_ip_address_ref ()
void | nm_ip_address_unref ()
gboolean | nm_ip_address_equal ()
NMIPAddress * | nm_ip_address_dup ()
int | nm_ip_address_get_family ()
const char * | nm_ip_address_get_address ()
void | nm_ip_address_set_address ()
void | nm_ip_address_get_address_binary ()
void | nm_ip_address_set_address_binary ()
guint | nm_ip_address_get_prefix ()
void | nm_ip_address_set_prefix ()
char ** | nm_ip_address_get_attribute_names ()
GVariant * | nm_ip_address_get_attribute ()
void | nm_ip_address_set_attribute ()
NMIPRoute * | nm_ip_route_new ()
NMIPRoute * | nm_ip_route_new_binary ()
void | nm_ip_route_ref ()
void | nm_ip_route_unref ()
gboolean | nm_ip_route_equal ()
NMIPRoute * | nm_ip_route_dup ()
int | nm_ip_route_get_family ()
const char * | nm_ip_route_get_dest ()
void | nm_ip_route_set_dest ()
void | nm_ip_route_get_dest_binary ()
void | nm_ip_route_set_dest_binary ()
guint | nm_ip_route_get_prefix ()
void | nm_ip_route_set_prefix ()
const char * | nm_ip_route_get_next_hop ()
void | nm_ip_route_set_next_hop ()
gboolean | nm_ip_route_get_next_hop_binary ()
void | nm_ip_route_set_next_hop_binary ()
gint64 | nm_ip_route_get_metric ()
void | nm_ip_route_set_metric ()
char ** | nm_ip_route_get_attribute_names ()
GVariant * | nm_ip_route_get_attribute ()
void | nm_ip_route_set_attribute ()
const char * | nm_setting_ip_config_get_method ()
guint | nm_setting_ip_config_get_num_dns ()
const char * | nm_setting_ip_config_get_dns ()
gboolean | nm_setting_ip_config_add_dns ()
void | nm_setting_ip_config_remove_dns ()
gboolean | nm_setting_ip_config_remove_dns_by_value ()
void | nm_setting_ip_config_clear_dns ()
guint | nm_setting_ip_config_get_num_dns_searches ()
const char * | nm_setting_ip_config_get_dns_search ()
gboolean | nm_setting_ip_config_add_dns_search ()
void | nm_setting_ip_config_remove_dns_search ()
gboolean | nm_setting_ip_config_remove_dns_search_by_value ()
void | nm_setting_ip_config_clear_dns_searches ()
guint | nm_setting_ip_config_get_num_dns_options ()
gboolean | nm_setting_ip_config_has_dns_options ()
const char * | nm_setting_ip_config_get_dns_option ()
gint | nm_setting_ip_config_next_valid_dns_option ()
gboolean | nm_setting_ip_config_add_dns_option ()
void | nm_setting_ip_config_remove_dns_option ()
gboolean | nm_setting_ip_config_remove_dns_option_by_value ()
void | nm_setting_ip_config_clear_dns_options ()
gint | nm_setting_ip_config_get_dns_priority ()
guint | nm_setting_ip_config_get_num_addresses ()
NMIPAddress * | nm_setting_ip_config_get_address ()
gboolean | nm_setting_ip_config_add_address ()
void | nm_setting_ip_config_remove_address ()
gboolean | nm_setting_ip_config_remove_address_by_value ()
void | nm_setting_ip_config_clear_addresses ()
const char * | nm_setting_ip_config_get_gateway ()
guint | nm_setting_ip_config_get_num_routes ()
NMIPRoute * | nm_setting_ip_config_get_route ()
gboolean | nm_setting_ip_config_add_route ()
void | nm_setting_ip_config_remove_route ()
gboolean | nm_setting_ip_config_remove_route_by_value ()
void | nm_setting_ip_config_clear_routes ()
gint64 | nm_setting_ip_config_get_route_metric ()
gboolean | nm_setting_ip_config_get_ignore_auto_routes ()
gboolean | nm_setting_ip_config_get_ignore_auto_dns ()
const char * | nm_setting_ip_config_get_dhcp_hostname ()
gboolean | nm_setting_ip_config_get_dhcp_send_hostname ()
gboolean | nm_setting_ip_config_get_never_default ()
gboolean | nm_setting_ip_config_get_may_fail ()
gint | nm_setting_ip_config_get_dad_timeout ()
gint | nm_setting_ip_config_get_dhcp_timeout ()

## Properties

GPtrArray * | addresses | Read / Write
gint | dad-timeout | Read / Write / Construct
gchar * | dhcp-hostname | Read / Write
gboolean | dhcp-send-hostname | Read / Write / Construct
gint | dhcp-timeout | Read / Write
GStrv | dns | Read / Write
GStrv | dns-options | Read / Write
gint | dns-priority | Read / Write / Construct
GStrv | dns-search | Read / Write
gchar * | gateway | Read / Write
gboolean | ignore-auto-dns | Read / Write / Construct
gboolean | ignore-auto-routes | Read / Write / Construct
gboolean | may-fail | Read / Write / Construct
gchar * | method | Read / Write
gboolean | never-default | Read / Write / Construct
gint64 | route-metric | Read / Write / Construct
GPtrArray * | routes | Read / Write

## Types and Values

#define | NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX
#define | NM_SETTING_IP_CONFIG_METHOD
#define | NM_SETTING_IP_CONFIG_DNS
#define | NM_SETTING_IP_CONFIG_DNS_SEARCH
#define | NM_SETTING_IP_CONFIG_DNS_OPTIONS
#define | NM_SETTING_IP_CONFIG_DNS_PRIORITY
#define | NM_SETTING_IP_CONFIG_ADDRESSES
#define | NM_SETTING_IP_CONFIG_GATEWAY
#define | NM_SETTING_IP_CONFIG_ROUTES
#define | NM_SETTING_IP_CONFIG_ROUTE_METRIC
#define | NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES
#define | NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS
#define | NM_SETTING_IP_CONFIG_DHCP_HOSTNAME
#define | NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME
#define | NM_SETTING_IP_CONFIG_NEVER_DEFAULT
#define | NM_SETTING_IP_CONFIG_MAY_FAIL
#define | NM_SETTING_IP_CONFIG_DAD_TIMEOUT
#define | NM_SETTING_IP_CONFIG_DHCP_TIMEOUT
#define | NM_SETTING_DNS_OPTION_DEBUG
#define | NM_SETTING_DNS_OPTION_NDOTS
#define | NM_SETTING_DNS_OPTION_TIMEOUT
#define | NM_SETTING_DNS_OPTION_ATTEMPTS
#define | NM_SETTING_DNS_OPTION_ROTATE
#define | NM_SETTING_DNS_OPTION_NO_CHECK_NAMES
#define | NM_SETTING_DNS_OPTION_INET6
#define | NM_SETTING_DNS_OPTION_IP6_BYTESTRING
#define | NM_SETTING_DNS_OPTION_IP6_DOTINT
#define | NM_SETTING_DNS_OPTION_NO_IP6_DOTINT
#define | NM_SETTING_DNS_OPTION_EDNS0
#define | NM_SETTING_DNS_OPTION_SINGLE_REQUEST
#define | NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN
#define | NM_SETTING_DNS_OPTION_NO_TLD_QUERY
#define | NM_SETTING_DNS_OPTION_USE_VC
| NMSettingIPConfig

## Object Hierarchy

        GBoxed
        ├── NMIPAddress
        ╰── NMIPRoute
        GObject
        ╰── NMSetting
            ╰── NMSettingIPConfig
                ├── NMSettingIP4Config
                ╰── NMSettingIP6Config

## Includes

    #include <nm-setting-ip-config.h>

## Description

NMSettingIPConfig is the abstract base class of NMSettingIP4Config and NMSettingIP6Config, providing properties related to IP addressing, routing, and Domain Name Service.

## Functions

### nm_ip_address_new ()

    NMIPAddress *
    nm_ip_address_new (int family,
                       const char *addr,
                       guint prefix,
                       GError **error);

Creates a new NMIPAddress object.

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
addr | the IP address |
prefix | the address prefix length |
error | location to store error, or `NULL` |

#### Returns

the new NMIPAddress object, or `NULL` on error.

[transfer full]

### nm_ip_address_new_binary ()

    NMIPAddress *
    nm_ip_address_new_binary (int family,
                              gconstpointer addr,
                              guint prefix,
                              GError **error);

Creates a new NMIPAddress object. `addr` must point to a buffer of the correct size for `family` .

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
addr | the IP address |
prefix | the address prefix length |
error | location to store error, or `NULL` |

#### Returns

the new NMIPAddress object, or `NULL` on error.

[transfer full]

### nm_ip_address_ref ()

    void
    nm_ip_address_ref (NMIPAddress *address);

Increases the reference count of the object.

#### Parameters

address | the NMIPAddress |

### nm_ip_address_unref ()

    void
    nm_ip_address_unref (NMIPAddress *address);

Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed.

#### Parameters

address | the NMIPAddress |

### nm_ip_address_equal ()

    gboolean
    nm_ip_address_equal (NMIPAddress *address,
                         NMIPAddress *other);

Determines if two NMIPAddress objects contain the same address and prefix (attributes are not compared).

#### Parameters

address | the NMIPAddress |
other | the NMIPAddress to compare `address` to. |

#### Returns

`TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip_address_dup ()

    NMIPAddress *
    nm_ip_address_dup (NMIPAddress *address);

Creates a copy of `address`

#### Parameters

address | the NMIPAddress |

#### Returns

a copy of `address` .

[transfer full]

### nm_ip_address_get_family ()

    int
    nm_ip_address_get_family (NMIPAddress *address);

Gets the IP address family (eg, AF_INET) property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address family

### nm_ip_address_get_address ()

    const char *
    nm_ip_address_get_address (NMIPAddress *address);

Gets the IP address property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address

### nm_ip_address_set_address ()

    void
    nm_ip_address_set_address (NMIPAddress *address,
                               const char *addr);

Sets the IP address property of this address object.

`addr` must be a valid address of `address` 's family. If you aren't sure you have a valid address, use `nm_utils_ipaddr_valid()` to check it.

#### Parameters

address | the NMIPAddress |
addr | the IP address, as a string |

### nm_ip_address_get_address_binary ()

    void
    nm_ip_address_get_address_binary (NMIPAddress *address,
                                      gpointer addr);

Gets the IP address property of this address object.

`addr` must point to a buffer that is the correct size for `address` 's family.

[skip]

#### Parameters

address | the NMIPAddress |
addr | a buffer in which to store the address in binary format. |

### nm_ip_address_set_address_binary ()

    void
    nm_ip_address_set_address_binary (NMIPAddress *address,
                                      gconstpointer addr);

Sets the IP address property of this address object.

`addr` must point to a buffer that is the correct size for `address` 's family.

[skip]

#### Parameters

address | the NMIPAddress |
addr | the address, in binary format |

### nm_ip_address_get_prefix ()

    guint
    nm_ip_address_get_prefix (NMIPAddress *address);

Gets the IP address prefix (ie "24" or "30" etc) property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address prefix

### nm_ip_address_set_prefix ()

    void
    nm_ip_address_set_prefix (NMIPAddress *address,
                              guint prefix);

Sets the IP address prefix property of this address object.

#### Parameters

address | the NMIPAddress |
prefix | the IP address prefix |

### nm_ip_address_get_attribute_names ()

    char **
    nm_ip_address_get_attribute_names (NMIPAddress *address);

Gets an array of attribute names defined on `address` .

#### Parameters

address | the NMIPAddress |

#### Returns

a `NULL`-terminated array of attribute names,.

[transfer full]

### nm_ip_address_get_attribute ()

    GVariant *
    nm_ip_address_get_attribute (NMIPAddress *address,
                                 const char *name);

Gets the value of the attribute with name `name` on `address`

#### Parameters

address | the NMIPAddress |
name | the name of an address attribute |

#### Returns

the value of the attribute with name `name` on `address` , or `NULL` if `address` has no such attribute.

[transfer none]

### nm_ip_address_set_attribute ()

    void
    nm_ip_address_set_attribute (NMIPAddress *address,
                                 const char *name,
                                 GVariant *value);

Sets or clears the named attribute on `address` to the given value.

#### Parameters

address | the NMIPAddress |
name | the name of an address attribute |
value | the value. | [transfer none][allow-none]

### nm_ip_route_new ()

    NMIPRoute *
    nm_ip_route_new (int family,
                     const char *dest,
                     guint prefix,
                     const char *next_hop,
                     gint64 metric,
                     GError **error);

Creates a new NMIPRoute object.

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
dest | the IP address of the route's destination |
prefix | the address prefix length |
next_hop | the IP address of the next hop (or `NULL`). | [allow-none]
metric | the route metric (or -1 for "default") |
error | location to store error, or `NULL` |

#### Returns

the new NMIPRoute object, or `NULL` on error.

[transfer full]

### nm_ip_route_new_binary ()

    NMIPRoute *
    nm_ip_route_new_binary (int family,
                            gconstpointer dest,
                            guint prefix,
                            gconstpointer next_hop,
                            gint64 metric,
                            GError **error);

Creates a new NMIPRoute object. `dest` and `next_hop` (if non-`NULL`) must point to buffers of the correct size for `family` .

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
dest | the IP address of the route's destination |
prefix | the address prefix length |
next_hop | the IP address of the next hop (or `NULL`). | [allow-none]
metric | the route metric (or -1 for "default") |
error | location to store error, or `NULL` |

#### Returns

the new NMIPRoute object, or `NULL` on error.

[transfer full]

### nm_ip_route_ref ()

    void
    nm_ip_route_ref (NMIPRoute *route);

Increases the reference count of the object.

#### Parameters

route | the NMIPRoute |

### nm_ip_route_unref ()

    void
    nm_ip_route_unref (NMIPRoute *route);

Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed.

#### Parameters

route | the NMIPRoute |

### nm_ip_route_equal ()

    gboolean
    nm_ip_route_equal (NMIPRoute *route,
                       NMIPRoute *other);

Determines if two NMIPRoute objects contain the same destination, prefix, next hop, and metric. (Attributes are not compared.)

#### Parameters

route | the NMIPRoute |
other | the NMIPRoute to compare `route` to. |

#### Returns

`TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip_route_dup ()

    NMIPRoute *
    nm_ip_route_dup (NMIPRoute *route);

Creates a copy of `route`

#### Parameters

route | the NMIPRoute |

#### Returns

a copy of `route` .

[transfer full]

### nm_ip_route_get_family ()

    int
    nm_ip_route_get_family (NMIPRoute *route);

Gets the IP address family (eg, AF_INET) property of this route object.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address family

### nm_ip_route_get_dest ()

    const char *
    nm_ip_route_get_dest (NMIPRoute *route);

Gets the IP destination address property of this route object.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address of the route's destination

### nm_ip_route_set_dest ()

    void
    nm_ip_route_set_dest (NMIPRoute *route,
                          const char *dest);

Sets the destination property of this route object.

`dest` must be a valid address of `route` 's family. If you aren't sure you have a valid address, use `nm_utils_ipaddr_valid()` to check it.

#### Parameters

route | the NMIPRoute |
dest | the route's destination, as a string |

### nm_ip_route_get_dest_binary ()

    void
    nm_ip_route_get_dest_binary (NMIPRoute *route,
                                 gpointer dest);

Gets the destination property of this route object.

`dest` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
dest | a buffer in which to store the destination in binary format. |

### nm_ip_route_set_dest_binary ()

    void
    nm_ip_route_set_dest_binary (NMIPRoute *route,
                                 gconstpointer dest);

Sets the destination property of this route object.

`dest` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
dest | the route's destination, in binary format |

### nm_ip_route_get_prefix ()

    guint
    nm_ip_route_get_prefix (NMIPRoute *route);

Gets the IP prefix (ie "24" or "30" etc) of this route.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP prefix

### nm_ip_route_set_prefix ()

    void
    nm_ip_route_set_prefix (NMIPRoute *route,
                            guint prefix);

Sets the prefix property of this route object.

#### Parameters

route | the NMIPRoute |
prefix | the route prefix |

### nm_ip_route_get_next_hop ()

    const char *
    nm_ip_route_get_next_hop (NMIPRoute *route);

Gets the IP address of the next hop of this route; this will be `NULL` if the route has no next hop.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address of the next hop, or `NULL` if this is a device route.

### nm_ip_route_set_next_hop ()

    void
    nm_ip_route_set_next_hop (NMIPRoute *route,
                              const char *next_hop);

Sets the next-hop property of this route object.

`next_hop` (if non-`NULL`) must be a valid address of `route` 's family. If you aren't sure you have a valid address, use `nm_utils_ipaddr_valid()` to check it.

#### Parameters

route | the NMIPRoute |
next_hop | the route's next hop, as a string. | [allow-none]

### nm_ip_route_get_next_hop_binary ()

    gboolean
    nm_ip_route_get_next_hop_binary (NMIPRoute *route,
                                     gpointer next_hop);

Gets the next hop property of this route object.

`next_hop` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
next_hop | a buffer in which to store the next hop in binary format. |

#### Returns

`TRUE` if `route` has a next hop, `FALSE` if not (in which case `next_hop` will be zeroed out)

### nm_ip_route_set_next_hop_binary ()

    void
    nm_ip_route_set_next_hop_binary (NMIPRoute *route,
                                     gconstpointer next_hop);

Sets the destination property of this route object.

`next_hop` (if non-`NULL`) must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
next_hop | the route's next hop, in binary format |

### nm_ip_route_get_metric ()

    gint64
    nm_ip_route_get_metric (NMIPRoute *route);

Gets the route metric property of this route object; lower values indicate "better" or more preferred routes; -1 indicates "default" (meaning NetworkManager will set it appropriately).

#### Parameters

route | the NMIPRoute |

#### Returns

the route metric

### nm_ip_route_set_metric ()

    void
    nm_ip_route_set_metric (NMIPRoute *route,
                            gint64 metric);

Sets the metric property of this route object.

#### Parameters

route | the NMIPRoute |
metric | the route metric (or -1 for "default") |

### nm_ip_route_get_attribute_names ()

    char **
    nm_ip_route_get_attribute_names (NMIPRoute *route);

Gets an array of attribute names defined on `route` .

#### Parameters

route | the NMIPRoute |

#### Returns

a `NULL`-terminated array of attribute names.

[transfer full]

### nm_ip_route_get_attribute ()

    GVariant *
    nm_ip_route_get_attribute (NMIPRoute *route,
                               const char *name);

Gets the value of the attribute with name `name` on `route`

#### Parameters

route | the NMIPRoute |
name | the name of an route attribute |

#### Returns

the value of the attribute with name `name` on `route` , or `NULL` if `route` has no such attribute.

[transfer none]

### nm_ip_route_set_attribute ()

    void
    nm_ip_route_set_attribute (NMIPRoute *route,
                               const char *name,
                               GVariant *value);

Sets the named attribute on `route` to the given value.

#### Parameters

route | the NMIPRoute |
name | the name of a route attribute |
value | the value. | [transfer none][allow-none]

### nm_setting_ip_config_get_method ()

    const char *
    nm_setting_ip_config_get_method (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “method” property of the setting; see NMSettingIP4Config and NMSettingIP6Config for details of the methods available with each type.

### nm_setting_ip_config_get_num_dns ()

    guint
    nm_setting_ip_config_get_num_dns (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS servers

### nm_setting_ip_config_get_dns ()

    const char *
    nm_setting_ip_config_get_dns (NMSettingIPConfig *setting,
                                  int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS server to return |

#### Returns

the IP address of the DNS server at index `idx`

### nm_setting_ip_config_add_dns ()

    gboolean
    nm_setting_ip_config_add_dns (NMSettingIPConfig *setting,
                                  const char *dns);

Adds a new DNS server to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns | the IP address of the DNS server to add |

#### Returns

`TRUE` if the DNS server was added; `FALSE` if the server was already known

### nm_setting_ip_config_remove_dns ()

    void
    nm_setting_ip_config_remove_dns (NMSettingIPConfig *setting,
                                     int idx);

Removes the DNS server at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS server to remove |

### nm_setting_ip_config_remove_dns_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns);

Removes the DNS server `dns` .

#### Parameters

setting | the NMSettingIPConfig |
dns | the DNS server to remove |

#### Returns

`TRUE` if the DNS server was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_dns ()

    void
    nm_setting_ip_config_clear_dns (NMSettingIPConfig *setting);

Removes all configured DNS servers.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_num_dns_searches ()

    guint
    nm_setting_ip_config_get_num_dns_searches
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS search domains

### nm_setting_ip_config_get_dns_search ()

    const char *
    nm_setting_ip_config_get_dns_search (NMSettingIPConfig *setting,
                                         int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS search domain to return |

#### Returns

the DNS search domain at index `idx`

### nm_setting_ip_config_add_dns_search ()

    gboolean
    nm_setting_ip_config_add_dns_search (NMSettingIPConfig *setting,
                                         const char *dns_search);

Adds a new DNS search domain to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns_search | the search domain to add |

#### Returns

`TRUE` if the DNS search domain was added; `FALSE` if the search domain was already known

### nm_setting_ip_config_remove_dns_search ()

    void
    nm_setting_ip_config_remove_dns_search
                                   (NMSettingIPConfig *setting,
                                    int idx);

Removes the DNS search domain at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS search domain |

### nm_setting_ip_config_remove_dns_search_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_search_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns_search);

Removes the DNS search domain `dns_search` .

#### Parameters

setting | the NMSettingIPConfig |
dns_search | the search domain to remove |

#### Returns

`TRUE` if the DNS search domain was found and removed; `FALSE` if it was not.

Since 0.9.10

### nm_setting_ip_config_clear_dns_searches ()

    void
    nm_setting_ip_config_clear_dns_searches
                                   (NMSettingIPConfig *setting);

Removes all configured DNS search domains.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_num_dns_options ()

    guint
    nm_setting_ip_config_get_num_dns_options
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS options

Since: 1.2

### nm_setting_ip_config_has_dns_options ()

    gboolean
    nm_setting_ip_config_has_dns_options (NMSettingIPConfig *setting);

NMSettingIPConfig can have a list of dns-options. If the list is empty, there are two similar (but differentiated) states. Either the options are explicitly set to have no values, or the options are left undefined. The latter means to use a default configuration, while the former explicitly means "no-options".

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

whether DNS options are initalized or left unset (the default).

### nm_setting_ip_config_get_dns_option ()

    const char *
    nm_setting_ip_config_get_dns_option (NMSettingIPConfig *setting,
                                         guint idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS option |

#### Returns

the DNS option at index `idx`

Since: 1.2

### nm_setting_ip_config_next_valid_dns_option ()

    gint
    nm_setting_ip_config_next_valid_dns_option
                                   (NMSettingIPConfig *setting,
                                    guint idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index to start the search from |

#### Returns

the index, greater or equal than `idx` , of the first valid DNS option, or -1 if no valid option is found

Since: 1.2

### nm_setting_ip_config_add_dns_option ()

    gboolean
    nm_setting_ip_config_add_dns_option (NMSettingIPConfig *setting,
                                         const char *dns_option);

Adds a new DNS option to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns_option | the DNS option to add |

#### Returns

`TRUE` if the DNS option was added; `FALSE` otherwise

Since: 1.2

### nm_setting_ip_config_remove_dns_option ()

    void
    nm_setting_ip_config_remove_dns_option
                                   (NMSettingIPConfig *setting,
                                    int idx);

Removes the DNS option at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS option |

Since: 1.2

### nm_setting_ip_config_remove_dns_option_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_option_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns_option);

Removes the DNS option `dns_option` .

#### Parameters

setting | the NMSettingIPConfig |
dns_option | the DNS option to remove |

#### Returns

`TRUE` if the DNS option was found and removed; `FALSE` if it was not.

Since: 1.2

### nm_setting_ip_config_clear_dns_options ()

    void
    nm_setting_ip_config_clear_dns_options
                                   (NMSettingIPConfig *setting,
                                    gboolean is_set);

Removes all configured DNS options.

#### Parameters

setting | the NMSettingIPConfig |
is_set | the dns-options can be either empty or unset (default). Specify how to clear the options. |

Since: 1.2

### nm_setting_ip_config_get_dns_priority ()

    gint
    nm_setting_ip_config_get_dns_priority (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the priority of DNS servers

Since: 1.4

### nm_setting_ip_config_get_num_addresses ()

    guint
    nm_setting_ip_config_get_num_addresses
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured addresses

### nm_setting_ip_config_get_address ()

    NMIPAddress *
    nm_setting_ip_config_get_address (NMSettingIPConfig *setting,
                                      int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the address to return |

#### Returns

the address at index `idx` .

[transfer none]

### nm_setting_ip_config_add_address ()

    gboolean
    nm_setting_ip_config_add_address (NMSettingIPConfig *setting,
                                      NMIPAddress *address);

Adds a new IP address and associated information to the setting. The given address is duplicated internally and is not changed by this function.

#### Parameters

setting | the NMSettingIPConfig |
address | the new address to add |

#### Returns

`TRUE` if the address was added; `FALSE` if the address was already known.

### nm_setting_ip_config_remove_address ()

    void
    nm_setting_ip_config_remove_address (NMSettingIPConfig *setting,
                                         int idx);

Removes the address at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the address to remove |

### nm_setting_ip_config_remove_address_by_value ()

    gboolean
    nm_setting_ip_config_remove_address_by_value
                                   (NMSettingIPConfig *setting,
                                    NMIPAddress *address);

Removes the address `address` .

#### Parameters

setting | the NMSettingIPConfig |
address | the IP address to remove |

#### Returns

`TRUE` if the address was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_addresses ()

    void
    nm_setting_ip_config_clear_addresses (NMSettingIPConfig *setting);

Removes all configured addresses.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_gateway ()

    const char *
    nm_setting_ip_config_get_gateway (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the IP address of the gateway associated with this configuration, or `NULL`.

### nm_setting_ip_config_get_num_routes ()

    guint
    nm_setting_ip_config_get_num_routes (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured routes

### nm_setting_ip_config_get_route ()

    NMIPRoute *
    nm_setting_ip_config_get_route (NMSettingIPConfig *setting,
                                    int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the route to return |

#### Returns

the route at index `idx` .

[transfer none]

### nm_setting_ip_config_add_route ()

    gboolean
    nm_setting_ip_config_add_route (NMSettingIPConfig *setting,
                                    NMIPRoute *route);

Adds a new route and associated information to the setting. The given route is duplicated internally and is not changed by this function.

#### Parameters

setting | the NMSettingIPConfig |
route | the route to add |

#### Returns

`TRUE` if the route was added; `FALSE` if the route was already known.

### nm_setting_ip_config_remove_route ()

    void
    nm_setting_ip_config_remove_route (NMSettingIPConfig *setting,
                                       int idx);

Removes the route at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the route |

### nm_setting_ip_config_remove_route_by_value ()

    gboolean
    nm_setting_ip_config_remove_route_by_value
                                   (NMSettingIPConfig *setting,
                                    NMIPRoute *route);

Removes the route `route` .

#### Parameters

setting | the NMSettingIPConfig |
route | the route to remove |

#### Returns

`TRUE` if the route was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_routes ()

    void
    nm_setting_ip_config_clear_routes (NMSettingIPConfig *setting);

Removes all configured routes.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_route_metric ()

    gint64
    nm_setting_ip_config_get_route_metric (NMSettingIPConfig *setting);

Returns the value contained in the “route-metric” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the route metric that is used for routes that don't explicitly specify a metric. See “route-metric” for more details.

### nm_setting_ip_config_get_ignore_auto_routes ()

    gboolean
    nm_setting_ip_config_get_ignore_auto_routes
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “ignore-auto-routes” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if automatically configured (ie via DHCP) routes should be ignored.

### nm_setting_ip_config_get_ignore_auto_dns ()

    gboolean
    nm_setting_ip_config_get_ignore_auto_dns
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “ignore-auto-dns” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if automatically configured (ie via DHCP) DNS information should be ignored.

### nm_setting_ip_config_get_dhcp_hostname ()

    const char *
    nm_setting_ip_config_get_dhcp_hostname
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-hostname” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured hostname to send to the DHCP server

### nm_setting_ip_config_get_dhcp_send_hostname ()

    gboolean
    nm_setting_ip_config_get_dhcp_send_hostname
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-send-hostname” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if NetworkManager should send the machine hostname to the DHCP server when requesting addresses to allow the server to automatically update DNS information for this machine.

### nm_setting_ip_config_get_never_default ()

    gboolean
    nm_setting_ip_config_get_never_default
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “never-default” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if this connection should never be the default connection

### nm_setting_ip_config_get_may_fail ()

    gboolean
    nm_setting_ip_config_get_may_fail (NMSettingIPConfig *setting);

Returns the value contained in the “may-fail” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if this connection doesn't require this type of IP addressing to complete for the connection to succeed.

### nm_setting_ip_config_get_dad_timeout ()

    gint
    nm_setting_ip_config_get_dad_timeout (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “dad-timeout” property.

Since: 1.2

### nm_setting_ip_config_get_dhcp_timeout ()

    gint
    nm_setting_ip_config_get_dhcp_timeout (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-timeout” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured DHCP timeout in seconds. 0 = default for the particular kind of device.

Since: 1.2

## Types and Values

### NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX

    #define NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX     30000

### NM_SETTING_IP_CONFIG_METHOD

    #define NM_SETTING_IP_CONFIG_METHOD             "method"

### NM_SETTING_IP_CONFIG_DNS

    #define NM_SETTING_IP_CONFIG_DNS                "dns"

### NM_SETTING_IP_CONFIG_DNS_SEARCH

    #define NM_SETTING_IP_CONFIG_DNS_SEARCH         "dns-search"

### NM_SETTING_IP_CONFIG_DNS_OPTIONS

    #define NM_SETTING_IP_CONFIG_DNS_OPTIONS        "dns-options"

### NM_SETTING_IP_CONFIG_DNS_PRIORITY

    #define NM_SETTING_IP_CONFIG_DNS_PRIORITY       "dns-priority"

### NM_SETTING_IP_CONFIG_ADDRESSES

    #define NM_SETTING_IP_CONFIG_ADDRESSES          "addresses"

### NM_SETTING_IP_CONFIG_GATEWAY

    #define NM_SETTING_IP_CONFIG_GATEWAY            "gateway"

### NM_SETTING_IP_CONFIG_ROUTES

    #define NM_SETTING_IP_CONFIG_ROUTES             "routes"

### NM_SETTING_IP_CONFIG_ROUTE_METRIC

    #define NM_SETTING_IP_CONFIG_ROUTE_METRIC       "route-metric"

### NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES

    #define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes"

### NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS

    #define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS    "ignore-auto-dns"

### NM_SETTING_IP_CONFIG_DHCP_HOSTNAME

    #define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME      "dhcp-hostname"

### NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME

    #define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME "dhcp-send-hostname"

### NM_SETTING_IP_CONFIG_NEVER_DEFAULT

    #define NM_SETTING_IP_CONFIG_NEVER_DEFAULT      "never-default"

### NM_SETTING_IP_CONFIG_MAY_FAIL

    #define NM_SETTING_IP_CONFIG_MAY_FAIL           "may-fail"

### NM_SETTING_IP_CONFIG_DAD_TIMEOUT

    #define NM_SETTING_IP_CONFIG_DAD_TIMEOUT        "dad-timeout"

### NM_SETTING_IP_CONFIG_DHCP_TIMEOUT

    #define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT       "dhcp-timeout"

### NM_SETTING_DNS_OPTION_DEBUG

    #define NM_SETTING_DNS_OPTION_DEBUG                     "debug"

### NM_SETTING_DNS_OPTION_NDOTS

    #define NM_SETTING_DNS_OPTION_NDOTS                     "ndots"

### NM_SETTING_DNS_OPTION_TIMEOUT

    #define NM_SETTING_DNS_OPTION_TIMEOUT                   "timeout"

### NM_SETTING_DNS_OPTION_ATTEMPTS

    #define NM_SETTING_DNS_OPTION_ATTEMPTS                  "attempts"

### NM_SETTING_DNS_OPTION_ROTATE

    #define NM_SETTING_DNS_OPTION_ROTATE                    "rotate"

### NM_SETTING_DNS_OPTION_NO_CHECK_NAMES

    #define NM_SETTING_DNS_OPTION_NO_CHECK_NAMES            "no-check-names"

### NM_SETTING_DNS_OPTION_INET6

    #define NM_SETTING_DNS_OPTION_INET6                     "inet6"

### NM_SETTING_DNS_OPTION_IP6_BYTESTRING

    #define NM_SETTING_DNS_OPTION_IP6_BYTESTRING            "ip6-bytestring"

### NM_SETTING_DNS_OPTION_IP6_DOTINT

    #define NM_SETTING_DNS_OPTION_IP6_DOTINT                "ip6-dotint"

### NM_SETTING_DNS_OPTION_NO_IP6_DOTINT

    #define NM_SETTING_DNS_OPTION_NO_IP6_DOTINT             "no-ip6-dotint"

### NM_SETTING_DNS_OPTION_EDNS0

    #define NM_SETTING_DNS_OPTION_EDNS0                     "edns0"

### NM_SETTING_DNS_OPTION_SINGLE_REQUEST

    #define NM_SETTING_DNS_OPTION_SINGLE_REQUEST            "single-request"

### NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN

    #define NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN     "single-request-reopen"

### NM_SETTING_DNS_OPTION_NO_TLD_QUERY

    #define NM_SETTING_DNS_OPTION_NO_TLD_QUERY              "no-tld-query"

### NM_SETTING_DNS_OPTION_USE_VC

    #define NM_SETTING_DNS_OPTION_USE_VC                    "use-vc"

### NMSettingIPConfig

    typedef struct _NMSettingIPConfig NMSettingIPConfig;

## Property Details

### The `“addresses”` property

      “addresses”                GPtrArray *

Array of IP addresses.

Element-Type: NMIPAddress

Flags: Read / Write

### The `“dad-timeout”` property

      “dad-timeout”              gint

Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or 3 seconds). A value greater than zero is a timeout in milliseconds.

Flags: Read / Write / Construct

Allowed values: [-1,30000]

Default value: -1

Since: 1.2

### The `“dhcp-hostname”` property

      “dhcp-hostname”            gchar *

If the “dhcp-send-hostname” property is `TRUE`, then the specified name will be sent to the DHCP server when acquiring a lease. This property and “dhcp-fqdn” are mutually exclusive and cannot be set at the same time.

Flags: Read / Write

Default value: NULL

### The `“dhcp-send-hostname”` property

      “dhcp-send-hostname”       gboolean

If `TRUE`, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the “dhcp-hostname” property is `NULL` and this property is `TRUE`, the current persistent hostname of the computer is sent.

Flags: Read / Write / Construct

Default value: TRUE

### The `“dhcp-timeout”` property

      “dhcp-timeout”             gint

A timeout for a DHCP transaction in seconds.

Flags: Read / Write

Allowed values: >= 0

Default value: 0

### The `“dns”` property

      “dns”                      GStrv

Array of IP addresses of DNS servers.

Flags: Read / Write

### The `“dns-options”` property

      “dns-options”              GStrv

Array of DNS options.

`NULL` means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties.

Flags: Read / Write

Since: 1.2

### The `“dns-priority”` property

      “dns-priority”             gint

DNS priority.

The relative priority to be used when determining the order of DNS servers in resolv.conf. A lower value means that servers will be on top of the file. Zero selects the default value, which is 50 for VPNs and 100 for other connections. When multiple devices have configurations with the same priority, the one with an active default route will be preferred. Note that when using dns=dnsmasq the order is meaningless since dnsmasq forwards queries to all known servers at the same time.

Negative values have the special effect of excluding other configurations with a greater priority value; so in presence of at least a negative priority, only DNS servers from configurations with the lowest priority value will be used.

Flags: Read / Write / Construct

Default value: 0

Since: 1.4

### The `“dns-search”` property

      “dns-search”               GStrv

Array of DNS search domains.

Flags: Read / Write

### The `“gateway”` property

      “gateway”                  gchar *

The gateway associated with this configuration. This is only meaningful if “addresses” is also set.

Flags: Read / Write

Default value: NULL

### The `“ignore-auto-dns”` property

      “ignore-auto-dns”          gboolean

When “method” is set to "auto" and this property to `TRUE`, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in the “dns” and “dns-search” properties, if any, are used.

Flags: Read / Write / Construct

Default value: FALSE

### The `“ignore-auto-routes”` property

      “ignore-auto-routes”       gboolean

When “method” is set to "auto" and this property to `TRUE`, automatically configured routes are ignored and only routes specified in the “routes” property, if any, are used.

Flags: Read / Write / Construct

Default value: FALSE

### The `“may-fail”` property

      “may-fail”                 gboolean

If `TRUE`, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to `TRUE` on the NMSettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.

Flags: Read / Write / Construct

Default value: TRUE

### The `“method”` property

      “method”                   gchar *

IP configuration method.

NMSettingIP4Config and NMSettingIP6Config both support "auto", "manual", and "link-local". See the subclass-specific documentation for other values.

In general, for the "auto" method, properties such as “dns” and “routes” specify information that is added on to the information returned from automatic configuration. The “ignore-auto-routes” and “ignore-auto-dns” properties modify this behavior.

For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty.

For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen.

Flags: Read / Write

Default value: NULL

### The `“never-default”` property

      “never-default”            gboolean

If `TRUE`, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.

Flags: Read / Write / Construct

Default value: FALSE

### The `“route-metric”` property

      “route-metric”             gint64

The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is choosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.

Flags: Read / Write / Construct

Allowed values: [-1,4294967295]

Default value: -1

### The `“routes”` property

      “routes”                   GPtrArray *

Array of IP routes.

Element-Type: NMIPRoute

Flags: Read / Write

## See Also

NMSettingIP4Config, NMSettingIP6Config