## NMSettingIP4Config

NMSettingIP4Config — Describes IPv4 addressing, routing, and name service properties

## Synopsis

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

    #define             NM_SETTING_IP4_CONFIG_SETTING_NAME
    enum                NMSettingIP4ConfigError;
    #define             NM_SETTING_IP4_CONFIG_ERROR
    GQuark              nm_setting_ip4_config_error_quark   (void);
    #define             NM_SETTING_IP4_CONFIG_METHOD
    #define             NM_SETTING_IP4_CONFIG_DNS
    #define             NM_SETTING_IP4_CONFIG_DNS_SEARCH
    #define             NM_SETTING_IP4_CONFIG_ADDRESSES
    #define             NM_SETTING_IP4_CONFIG_ROUTES
    #define             NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES
    #define             NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS
    #define             NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID
    #define             NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME
    #define             NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME
    #define             NM_SETTING_IP4_CONFIG_NEVER_DEFAULT
    #define             NM_SETTING_IP4_CONFIG_MAY_FAIL
    #define             NM_SETTING_IP4_CONFIG_METHOD_AUTO
    #define             NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL
    #define             NM_SETTING_IP4_CONFIG_METHOD_MANUAL
    #define             NM_SETTING_IP4_CONFIG_METHOD_SHARED
    #define             NM_SETTING_IP4_CONFIG_METHOD_DISABLED
    typedef             NMIP4Address;
    NMIP4Address *      nm_ip4_address_new                  (void);
    NMIP4Address *      nm_ip4_address_dup                  (NMIP4Address *source);
    void                nm_ip4_address_ref                  (NMIP4Address *address);
    void                nm_ip4_address_unref                (NMIP4Address *address);
    gboolean            nm_ip4_address_compare              (NMIP4Address *address,
                                                             NMIP4Address *other);
    guint32             nm_ip4_address_get_address          (NMIP4Address *address);
    void                nm_ip4_address_set_address          (NMIP4Address *address,
                                                             guint32 addr);
    guint32             nm_ip4_address_get_prefix           (NMIP4Address *address);
    void                nm_ip4_address_set_prefix           (NMIP4Address *address,
                                                             guint32 prefix);
    guint32             nm_ip4_address_get_gateway          (NMIP4Address *address);
    void                nm_ip4_address_set_gateway          (NMIP4Address *address,
                                                             guint32 gateway);
    typedef             NMIP4Route;
    NMIP4Route *        nm_ip4_route_new                    (void);
    NMIP4Route *        nm_ip4_route_dup                    (NMIP4Route *source);
    void                nm_ip4_route_ref                    (NMIP4Route *route);
    void                nm_ip4_route_unref                  (NMIP4Route *route);
    gboolean            nm_ip4_route_compare                (NMIP4Route *route,
                                                             NMIP4Route *other);
    guint32             nm_ip4_route_get_dest               (NMIP4Route *route);
    void                nm_ip4_route_set_dest               (NMIP4Route *route,
                                                             guint32 dest);
    guint32             nm_ip4_route_get_prefix             (NMIP4Route *route);
    void                nm_ip4_route_set_prefix             (NMIP4Route *route,
                                                             guint32 prefix);
    guint32             nm_ip4_route_get_next_hop           (NMIP4Route *route);
    void                nm_ip4_route_set_next_hop           (NMIP4Route *route,
                                                             guint32 next_hop);
    guint32             nm_ip4_route_get_metric             (NMIP4Route *route);
    void                nm_ip4_route_set_metric             (NMIP4Route *route,
                                                             guint32 metric);
                        NMSettingIP4Config;
                        NMSettingIP4ConfigClass;
    NMSetting *         nm_setting_ip4_config_new           (void);
    const char *        nm_setting_ip4_config_get_method    (NMSettingIP4Config *setting);
    guint32             nm_setting_ip4_config_get_num_dns   (NMSettingIP4Config *setting);
    guint32             nm_setting_ip4_config_get_dns       (NMSettingIP4Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip4_config_add_dns       (NMSettingIP4Config *setting,
                                                             guint32 dns);
    void                nm_setting_ip4_config_remove_dns    (NMSettingIP4Config *setting,
                                                             guint32 i);
    void                nm_setting_ip4_config_clear_dns     (NMSettingIP4Config *setting);
    guint32             nm_setting_ip4_config_get_num_dns_searches
                                                            (NMSettingIP4Config *setting);
    const char *        nm_setting_ip4_config_get_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip4_config_add_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             const char *dns_search);
    void                nm_setting_ip4_config_remove_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);
    void                nm_setting_ip4_config_clear_dns_searches
                                                            (NMSettingIP4Config *setting);
    guint32             nm_setting_ip4_config_get_num_addresses
                                                            (NMSettingIP4Config *setting);
    NMIP4Address *      nm_setting_ip4_config_get_address   (NMSettingIP4Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip4_config_add_address   (NMSettingIP4Config *setting,
                                                             NMIP4Address *address);
    void                nm_setting_ip4_config_remove_address
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);
    void                nm_setting_ip4_config_clear_addresses
                                                            (NMSettingIP4Config *setting);
    guint32             nm_setting_ip4_config_get_num_routes
                                                            (NMSettingIP4Config *setting);
    NMIP4Route *        nm_setting_ip4_config_get_route     (NMSettingIP4Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip4_config_add_route     (NMSettingIP4Config *setting,
                                                             NMIP4Route *route);
    void                nm_setting_ip4_config_remove_route  (NMSettingIP4Config *setting,
                                                             guint32 i);
    void                nm_setting_ip4_config_clear_routes  (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_ignore_auto_routes
                                                            (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_ignore_auto_dns
                                                            (NMSettingIP4Config *setting);
    const char *        nm_setting_ip4_config_get_dhcp_client_id
                                                            (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_dhcp_send_hostname
                                                            (NMSettingIP4Config *setting);
    const char *        nm_setting_ip4_config_get_dhcp_hostname
                                                            (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_never_default
                                                            (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_may_fail  (NMSettingIP4Config *setting);

## Object Hierarchy

      GEnum
       +----NMSettingIP4ConfigError

      GBoxed
       +----NMIP4Address

      GBoxed
       +----NMIP4Route

      GObject
       +----NMSetting
             +----NMSettingIP4Config

## Properties

      "addresses"                GPtrArray_GArray_guint__*  : Read / Write
      "dhcp-client-id"           gchar*                : Read / Write
      "dhcp-hostname"            gchar*                : Read / Write
      "dhcp-send-hostname"       gboolean              : Read / Write / Construct
      "dns"                      GArray_guint_*        : Read / Write
      "dns-search"               GSList_gchararray_*   : Read / Write
      "ignore-auto-dns"          gboolean              : Read / Write / Construct
      "ignore-auto-routes"       gboolean              : Read / Write / Construct
      "may-fail"                 gboolean              : Read / Write / Construct
      "method"                   gchar*                : Read / Write
      "never-default"            gboolean              : Read / Write / Construct
      "routes"                   GPtrArray_GArray_guint__*  : Read / Write

## Description

The NMSettingIP4Config object is a NMSetting subclass that describes properties related to IPv4 addressing, routing, and Domain Name Service

## Details

### NM_SETTING_IP4_CONFIG_SETTING_NAME

    #define NM_SETTING_IP4_CONFIG_SETTING_NAME "ipv4"

### enum NMSettingIP4ConfigError

    typedef enum {
    	NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN = 0,           /*< nick=UnknownError >*/
    	NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,      /*< nick=InvalidProperty >*/
    	NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY,      /*< nick=MissingProperty >*/
    	NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD /*< nick=NotAllowedForMethod >*/
    } NMSettingIP4ConfigError;

`NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN` | unknown or unclassified error
`NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY` | the property was invalid
`NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY` | the property was missing and is required
`NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD` | the property's value is not valid with the given IP4 method

### NM_SETTING_IP4_CONFIG_ERROR

    #define NM_SETTING_IP4_CONFIG_ERROR nm_setting_ip4_config_error_quark ()

### nm_setting_ip4_config_error_quark ()

    GQuark              nm_setting_ip4_config_error_quark   (void);

Registers an error quark for NMSettingIP4Config if necessary.

Returns : | the error quark used for NMSettingIP4Config errors.

### NM_SETTING_IP4_CONFIG_METHOD

    #define NM_SETTING_IP4_CONFIG_METHOD             "method"

### NM_SETTING_IP4_CONFIG_DNS

    #define NM_SETTING_IP4_CONFIG_DNS                "dns"

### NM_SETTING_IP4_CONFIG_DNS_SEARCH

    #define NM_SETTING_IP4_CONFIG_DNS_SEARCH         "dns-search"

### NM_SETTING_IP4_CONFIG_ADDRESSES

    #define NM_SETTING_IP4_CONFIG_ADDRESSES          "addresses"

### NM_SETTING_IP4_CONFIG_ROUTES

    #define NM_SETTING_IP4_CONFIG_ROUTES             "routes"

### NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES

    #define NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes"

### NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS

    #define NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS    "ignore-auto-dns"

### NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID

    #define NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID     "dhcp-client-id"

### NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME

    #define NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME "dhcp-send-hostname"

### NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME

    #define NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME      "dhcp-hostname"

### NM_SETTING_IP4_CONFIG_NEVER_DEFAULT

    #define NM_SETTING_IP4_CONFIG_NEVER_DEFAULT      "never-default"

### NM_SETTING_IP4_CONFIG_MAY_FAIL

    #define NM_SETTING_IP4_CONFIG_MAY_FAIL           "may-fail"

### NM_SETTING_IP4_CONFIG_METHOD_AUTO

    #define NM_SETTING_IP4_CONFIG_METHOD_AUTO       "auto"

IPv4 configuration should be automatically determined via a method appropriate for the hardware interface, ie DHCP or PPP or some other device-specific manner.

### NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL

    #define NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL "link-local"

IPv4 configuration should be automatically configured for link-local-only operation.

### NM_SETTING_IP4_CONFIG_METHOD_MANUAL

    #define NM_SETTING_IP4_CONFIG_METHOD_MANUAL     "manual"

All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified in the setting's properties.

### NM_SETTING_IP4_CONFIG_METHOD_SHARED

    #define NM_SETTING_IP4_CONFIG_METHOD_SHARED     "shared"

This connection specifies configuration that allows other computers to connect through it to the default network (usually the Internet). The connection's interface will be assigned a private address, and a DHCP server, caching DNS server, and Network Address Translation (NAT) functionality will be started on this connection's interface to allow other devices to connect through that interface to the default network.

### NM_SETTING_IP4_CONFIG_METHOD_DISABLED

    #define NM_SETTING_IP4_CONFIG_METHOD_DISABLED   "disabled"

This connection does not use or require IPv4 address and it should be disabled.

### NMIP4Address

    typedef struct NMIP4Address NMIP4Address;

### nm_ip4_address_new ()

    NMIP4Address *      nm_ip4_address_new                  (void);

Creates and returns a new NMIP4Address object.

Returns : | the new empty NMIP4Address object. [transfer full]

### nm_ip4_address_dup ()

    NMIP4Address *      nm_ip4_address_dup                  (NMIP4Address *source);

Copies a given NMIP4Address object and returns the copy.

`source` : | the NMIP4Address object to copy
Returns : | the copy of the given NMIP4Address copy. [transfer full]

### nm_ip4_address_ref ()

    void                nm_ip4_address_ref                  (NMIP4Address *address);

Increases the reference count of the object.

`address` : | the NMIP4Address

### nm_ip4_address_unref ()

    void                nm_ip4_address_unref                (NMIP4Address *address);

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

`address` : | the NMIP4Address

### nm_ip4_address_compare ()

    gboolean            nm_ip4_address_compare              (NMIP4Address *address,
                                                             NMIP4Address *other);

Determines if two NMIP4Address objects contain the same values.

`address` : | the NMIP4Address
`other` : | the NMIP4Address to compare `address` to.
Returns : | `TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip4_address_get_address ()

    guint32             nm_ip4_address_get_address          (NMIP4Address *address);

Gets the IPv4 address property of this address object.

`address` : | the NMIP4Address
Returns : | the IPv4 address in network byte order

### nm_ip4_address_set_address ()

    void                nm_ip4_address_set_address          (NMIP4Address *address,
                                                             guint32 addr);

Sets the IPv4 address property of this object.

`address` : | the NMIP4Address
`addr` : | the IPv4 address in network byte order

### nm_ip4_address_get_prefix ()

    guint32             nm_ip4_address_get_prefix           (NMIP4Address *address);

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

`address` : | the NMIP4Address
Returns : | the IPv4 address prefix

### nm_ip4_address_set_prefix ()

    void                nm_ip4_address_set_prefix           (NMIP4Address *address,
                                                             guint32 prefix);

Sets the IPv4 address prefix.

`address` : | the NMIP4Address
`prefix` : | the address prefix, a number between 1 and 32 inclusive

### nm_ip4_address_get_gateway ()

    guint32             nm_ip4_address_get_gateway          (NMIP4Address *address);

Gets the IPv4 default gateway property of this address object.

`address` : | the NMIP4Address
Returns : | the IPv4 gateway address in network byte order

### nm_ip4_address_set_gateway ()

    void                nm_ip4_address_set_gateway          (NMIP4Address *address,
                                                             guint32 gateway);

Sets the IPv4 default gateway property of this address object.

`address` : | the NMIP4Address
`gateway` : | the IPv4 default gateway in network byte order

### NMIP4Route

    typedef struct NMIP4Route NMIP4Route;

### nm_ip4_route_new ()

    NMIP4Route *        nm_ip4_route_new                    (void);

Creates and returns a new NMIP4Route object.

Returns : | the new empty NMIP4Route object. [transfer full]

### nm_ip4_route_dup ()

    NMIP4Route *        nm_ip4_route_dup                    (NMIP4Route *source);

Copies a given NMIP4Route object and returns the copy.

`source` : | the NMIP4Route object to copy
Returns : | the copy of the given NMIP4Route copy. [transfer full]

### nm_ip4_route_ref ()

    void                nm_ip4_route_ref                    (NMIP4Route *route);

Increases the reference count of the object.

`route` : | the NMIP4Route

### nm_ip4_route_unref ()

    void                nm_ip4_route_unref                  (NMIP4Route *route);

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

`route` : | the NMIP4Route

### nm_ip4_route_compare ()

    gboolean            nm_ip4_route_compare                (NMIP4Route *route,
                                                             NMIP4Route *other);

Determines if two NMIP4Route objects contain the same values.

`route` : | the NMIP4Route
`other` : | the NMIP4Route to compare `route` to.
Returns : | `TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip4_route_get_dest ()

    guint32             nm_ip4_route_get_dest               (NMIP4Route *route);

Gets the IPv4 destination address property of this route object.

`route` : | the NMIP4Route
Returns : | the IPv4 address in network byte order

### nm_ip4_route_set_dest ()

    void                nm_ip4_route_set_dest               (NMIP4Route *route,
                                                             guint32 dest);

Sets the IPv4 destination address property of this route object.

`route` : | the NMIP4Route
`dest` : | the destination address in network byte order

### nm_ip4_route_get_prefix ()

    guint32             nm_ip4_route_get_prefix             (NMIP4Route *route);

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

`route` : | the NMIP4Route
Returns : | the IPv4 prefix

### nm_ip4_route_set_prefix ()

    void                nm_ip4_route_set_prefix             (NMIP4Route *route,
                                                             guint32 prefix);

Sets the IPv4 prefix of this route.

`route` : | the NMIP4Route
`prefix` : | the prefix, a number between 1 and 32 inclusive

### nm_ip4_route_get_next_hop ()

    guint32             nm_ip4_route_get_next_hop           (NMIP4Route *route);

Gets the IPv4 address of the next hop of this route.

`route` : | the NMIP4Route
Returns : | the IPv4 address in network byte order

### nm_ip4_route_set_next_hop ()

    void                nm_ip4_route_set_next_hop           (NMIP4Route *route,
                                                             guint32 next_hop);

Sets the IPv4 address of the next hop of this route.

`route` : | the NMIP4Route
`next_hop` : | the IPv4 address of the next hop in network byte order

### nm_ip4_route_get_metric ()

    guint32             nm_ip4_route_get_metric             (NMIP4Route *route);

Gets the route metric property of this route object; lower values indicate "better" or more preferred routes.

`route` : | the NMIP4Route
Returns : | the route metric

### nm_ip4_route_set_metric ()

    void                nm_ip4_route_set_metric             (NMIP4Route *route,
                                                             guint32 metric);

Sets the route metric property of this route object; lower values indicate "better" or more preferred routes.

`route` : | the NMIP4Route
`metric` : | the route metric

### NMSettingIP4Config

    typedef struct _NMSettingIP4Config NMSettingIP4Config;

### NMSettingIP4ConfigClass

    typedef struct {
    	NMSettingClass parent;

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    } NMSettingIP4ConfigClass;

### nm_setting_ip4_config_new ()

    NMSetting *         nm_setting_ip4_config_new           (void);

Creates a new NMSettingIP4Config object with default values.

Returns : | the new empty NMSettingIP4Config object. [transfer full]

### nm_setting_ip4_config_get_method ()

    const char *        nm_setting_ip4_config_get_method    (NMSettingIP4Config *setting);

`setting` : | the NMSettingIP4Config
Returns : | the "method" property of the setting

### nm_setting_ip4_config_get_num_dns ()

    guint32             nm_setting_ip4_config_get_num_dns   (NMSettingIP4Config *setting);

`setting` : | the NMSettingIP4Config
Returns : | the number of configured DNS servers

### nm_setting_ip4_config_get_dns ()

    guint32             nm_setting_ip4_config_get_dns       (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : | the NMSettingIP4Config
`i` : | index number of the DNS server to return
Returns : | the IPv4 address (network byte order) of the DNS server at index `i`

### nm_setting_ip4_config_add_dns ()

    gboolean            nm_setting_ip4_config_add_dns       (NMSettingIP4Config *setting,
                                                             guint32 dns);

Adds a new DNS server to the setting.

`setting` : | the NMSettingIP4Config
`dns` : | the IPv4 address (network byte order) of the DNS server to add
Returns : | `TRUE` if the DNS server was added; `FALSE` if the server was already known

### nm_setting_ip4_config_remove_dns ()

    void                nm_setting_ip4_config_remove_dns    (NMSettingIP4Config *setting,
                                                             guint32 i);

Removes the DNS server at index `i`.

`setting` : | the NMSettingIP4Config
`i` : | index number of the DNS server to remove

### nm_setting_ip4_config_clear_dns ()

    void                nm_setting_ip4_config_clear_dns     (NMSettingIP4Config *setting);

Removes all configured DNS servers.

`setting` : | the NMSettingIP4Config

### nm_setting_ip4_config_get_num_dns_searches ()

    guint32             nm_setting_ip4_config_get_num_dns_searches
                                                            (NMSettingIP4Config *setting);

`setting` : | the NMSettingIP4Config
Returns : | the number of configured DNS search domains

### nm_setting_ip4_config_get_dns_search ()

    const char *        nm_setting_ip4_config_get_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : | the NMSettingIP4Config
`i` : | index number of the DNS search domain to return
Returns : | the DNS search domain at index `i`

### nm_setting_ip4_config_add_dns_search ()

    gboolean            nm_setting_ip4_config_add_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             const char *dns_search);

Adds a new DNS search domain to the setting.

`setting` : | the NMSettingIP4Config
`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_ip4_config_remove_dns_search ()

    void                nm_setting_ip4_config_remove_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);

Removes the DNS search domain at index `i`.

`setting` : | the NMSettingIP4Config
`i` : | index number of the DNS search domain

### nm_setting_ip4_config_clear_dns_searches ()

    void                nm_setting_ip4_config_clear_dns_searches
                                                            (NMSettingIP4Config *setting);

Removes all configured DNS search domains.

`setting` : | the NMSettingIP4Config

### nm_setting_ip4_config_get_num_addresses ()

    guint32             nm_setting_ip4_config_get_num_addresses
                                                            (NMSettingIP4Config *setting);

`setting` : | the NMSettingIP4Config
Returns : | the number of configured addresses

### nm_setting_ip4_config_get_address ()

    NMIP4Address *      nm_setting_ip4_config_get_address   (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : | the NMSettingIP4Config
`i` : | index number of the address to return
Returns : | the address at index `i`

### nm_setting_ip4_config_add_address ()

    gboolean            nm_setting_ip4_config_add_address   (NMSettingIP4Config *setting,
                                                             NMIP4Address *address);

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

`setting` : | the NMSettingIP4Config
`address` : | the new address to add
Returns : | `TRUE` if the address was added; `FALSE` if the address was already known.

### nm_setting_ip4_config_remove_address ()

    void                nm_setting_ip4_config_remove_address
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);

Removes the address at index `i`.

`setting` : | the NMSettingIP4Config
`i` : | index number of the address to remove

### nm_setting_ip4_config_clear_addresses ()

    void                nm_setting_ip4_config_clear_addresses
                                                            (NMSettingIP4Config *setting);

Removes all configured addresses.

`setting` : | the NMSettingIP4Config

### nm_setting_ip4_config_get_num_routes ()

    guint32             nm_setting_ip4_config_get_num_routes
                                                            (NMSettingIP4Config *setting);

`setting` : | the NMSettingIP4Config
Returns : | the number of configured routes

### nm_setting_ip4_config_get_route ()

    NMIP4Route *        nm_setting_ip4_config_get_route     (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : | the NMSettingIP4Config
`i` : | index number of the route to return
Returns : | the route at index `i`

### nm_setting_ip4_config_add_route ()

    gboolean            nm_setting_ip4_config_add_route     (NMSettingIP4Config *setting,
                                                             NMIP4Route *route);

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

`setting` : | the NMSettingIP4Config
`route` : | the route to add
Returns : | `TRUE` if the route was added; `FALSE` if the route was already known.

### nm_setting_ip4_config_remove_route ()

    void                nm_setting_ip4_config_remove_route  (NMSettingIP4Config *setting,
                                                             guint32 i);

Removes the route at index `i`.

`setting` : | the NMSettingIP4Config
`i` : | index number of the route

### nm_setting_ip4_config_clear_routes ()

    void                nm_setting_ip4_config_clear_routes  (NMSettingIP4Config *setting);

Removes all configured routes.

`setting` : | the NMSettingIP4Config

### nm_setting_ip4_config_get_ignore_auto_routes ()

    gboolean            nm_setting_ip4_config_get_ignore_auto_routes
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "ignore-auto-routes" property.

`setting` : | the NMSettingIP4Config
Returns : | `TRUE` if automatically configured (ie via DHCP) routes should be ignored.

### nm_setting_ip4_config_get_ignore_auto_dns ()

    gboolean            nm_setting_ip4_config_get_ignore_auto_dns
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "ignore-auto-dns" property.

`setting` : | the NMSettingIP4Config
Returns : | `TRUE` if automatically configured (ie via DHCP) DNS information should be ignored.

### nm_setting_ip4_config_get_dhcp_client_id ()

    const char *        nm_setting_ip4_config_get_dhcp_client_id
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "dhcp-client-id" property.

`setting` : | the NMSettingIP4Config
Returns : | the configured Client ID to send to the DHCP server when requesting addresses via DHCP.

### nm_setting_ip4_config_get_dhcp_send_hostname ()

    gboolean            nm_setting_ip4_config_get_dhcp_send_hostname
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "dhcp-send-hostname" property.

`setting` : | the NMSettingIP4Config
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_ip4_config_get_dhcp_hostname ()

    const char *        nm_setting_ip4_config_get_dhcp_hostname
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "dhcp-hostname" property.

`setting` : | the NMSettingIP4Config
Returns : | the configured hostname to send to the DHCP server

### nm_setting_ip4_config_get_never_default ()

    gboolean            nm_setting_ip4_config_get_never_default
                                                            (NMSettingIP4Config *setting);

Returns the value contained in the "never-default" property.

`setting` : | the NMSettingIP4Config
Returns : | `TRUE` if this connection should never be the default connection for IPv4 addressing

### nm_setting_ip4_config_get_may_fail ()

    gboolean            nm_setting_ip4_config_get_may_fail  (NMSettingIP4Config *setting);

Returns the value contained in the "may-fail" property.

`setting` : | the NMSettingIP4Config
Returns : | `TRUE` if this connection doesn't require IPv4 addressing to complete for the connection to succeed.

## Property Details

### The `"addresses"` property

      "addresses"                GPtrArray_GArray_guint__*  : Read / Write

Array of IPv4 address structures. Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet. For the 'auto' method, given IP addresses are appended to those returned by automatic configuration. Addresses cannot be used with the 'shared', 'link-local', or 'disabled' methods as addressing is either automatic or disabled with these methods.

### The `"dhcp-client-id"` property

      "dhcp-client-id"           gchar*                : Read / Write

A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options.

Default value: NULL

### The `"dhcp-hostname"` property

      "dhcp-hostname"            gchar*                : Read / Write

If the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease.

Default value: NULL

### The `"dhcp-send-hostname"` property

      "dhcp-send-hostname"       gboolean              : Read / Write / Construct

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 "dhcp-hostname" is empty and this property is TRUE, the current persistent hostname of the computer is sent.

Default value: TRUE

### The `"dns"` property

      "dns"                      GArray_guint_*        : Read / Write

List of DNS servers (network byte order). For the 'auto' method, these DNS servers are appended to those (if any) returned by automatic configuration. DNS servers cannot be used with the 'shared', 'link-local', or 'disabled' methods as there is no upstream network. In all other methods, these DNS servers are used as the only DNS servers for this connection.

### The `"dns-search"` property

      "dns-search"               GSList_gchararray_*   : Read / Write

List of DNS search domains. For the 'auto' method, these search domains are appended to those returned by automatic configuration. Search domains cannot be used with the 'shared', 'link-local', or 'disabled' methods as there is no upstream network. In all other methods, these search domains are used as the only search domains for this connection.

### The `"ignore-auto-dns"` property

      "ignore-auto-dns"          gboolean              : Read / Write / Construct

When the 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 "dns" and "dns-search", if any, are used.

Default value: FALSE

### The `"ignore-auto-routes"` property

      "ignore-auto-routes"       gboolean              : Read / Write / Construct

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

Default value: FALSE

### The `"may-fail"` property

      "may-fail"                 gboolean              : Read / Write / Construct

If TRUE, allow overall network configuration to proceed even if IPv4 configuration 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 allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.

Default value: TRUE

### The `"method"` property

      "method"                   gchar*                : Read / Write

IPv4 configuration method. If 'auto' is specified then the appropriate automatic method (DHCP, PPP, etc) is used for the interface and most other properties can be left unset. If 'link-local' is specified, then a link-local address in the 169.254/16 range will be assigned to the interface. If 'manual' is specified, static IP addressing is used and at least one IP address must be given in the 'addresses' property. If 'shared' is specified (indicating that this connection will provide network access to other computers) then the interface is assigned an address in the 10.42.x.1/24 range and a DHCP and forwarding DNS server are started, and the interface is NAT-ed to the current default network connection. 'disabled' means IPv4 will not be used on this connection. This property must be set.

Default value: NULL

### The `"never-default"` property

      "never-default"            gboolean              : Read / Write / Construct

If TRUE, this connection will never be the default IPv4 connection, meaning it will never be assigned the default route by NetworkManager.

Default value: FALSE

### The `"routes"` property

      "routes"                   GPtrArray_GArray_guint__*  : Read / Write

Array of IPv4 route structures. Each IPv4 route structure is composed of 4 32-bit values; the first being the destination IPv4 network or address (network byte order), the second the destination network or address prefix (1 - 32), the third being the next-hop (network byte order) if any, and the fourth being the route metric. For the 'auto' method, given IP routes are appended to those returned by automatic configuration. Routes cannot be used with the 'shared', 'link-local', or 'disabled' methods because there is no upstream network.