## NMSettingIP4Config

NMSettingIP4Config

## Synopsis

    #define             NM_SETTING_IP4_CONFIG_SETTING_NAME
    enum                NMSettingIP4ConfigError;
    #define             NM_TYPE_SETTING_IP4_CONFIG_ERROR
    #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_HOSTNAME
    #define             NM_SETTING_IP4_CONFIG_NEVER_DEFAULT
    #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
    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 *route);
    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;
    GType               nm_setting_ip4_config_get_type      (void);
    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);
    const char *        nm_setting_ip4_config_get_dhcp_hostname
                                                            (NMSettingIP4Config *setting);
    gboolean            nm_setting_ip4_config_get_never_default
                                                            (NMSettingIP4Config *setting);

## Object Hierarchy

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

## Properties

      "addresses"                GPtrArray_GArray_guint__*  : Read / Write
      "dhcp-client-id"           gchar*                : Read / Write
      "dhcp-hostname"            gchar*                : Read / Write
      "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
      "method"                   gchar*                : Read / Write
      "never-default"            gboolean              : Read / Write / Construct
      "routes"                   GPtrArray_GArray_guint__*  : Read / Write

## Description

## 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,
    	NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
    	NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY,
    	NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD
    } NMSettingIP4ConfigError;

### NM_TYPE_SETTING_IP4_CONFIG_ERROR

    #define NM_TYPE_SETTING_IP4_CONFIG_ERROR (nm_setting_ip4_config_error_get_type ())

### 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);

Returns : |

### 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_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_METHOD_AUTO

    #define NM_SETTING_IP4_CONFIG_METHOD_AUTO       "auto"

### NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL

    #define NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL "link-local"

### NM_SETTING_IP4_CONFIG_METHOD_MANUAL

    #define NM_SETTING_IP4_CONFIG_METHOD_MANUAL     "manual"

### NM_SETTING_IP4_CONFIG_METHOD_SHARED

    #define NM_SETTING_IP4_CONFIG_METHOD_SHARED     "shared"

### NMIP4Address

    typedef struct NMIP4Address NMIP4Address;

### nm_ip4_address_new ()

    NMIP4Address *      nm_ip4_address_new                  (void);

Returns : |

### nm_ip4_address_dup ()

    NMIP4Address *      nm_ip4_address_dup                  (NMIP4Address *source);

`source` : |
Returns : |

### nm_ip4_address_ref ()

    void                nm_ip4_address_ref                  (NMIP4Address *address);

`address` : |

### nm_ip4_address_unref ()

    void                nm_ip4_address_unref                (NMIP4Address *address);

`address` : |

### nm_ip4_address_compare ()

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

`address` : |
`other` : |
Returns : |

### nm_ip4_address_get_address ()

    guint32             nm_ip4_address_get_address          (NMIP4Address *address);

`address` : |
Returns : |

### nm_ip4_address_set_address ()

    void                nm_ip4_address_set_address          (NMIP4Address *address,
                                                             guint32 addr);

`address` : |
`addr` : |

### nm_ip4_address_get_prefix ()

    guint32             nm_ip4_address_get_prefix           (NMIP4Address *address);

`address` : |
Returns : |

### nm_ip4_address_set_prefix ()

    void                nm_ip4_address_set_prefix           (NMIP4Address *address,
                                                             guint32 prefix);

`address` : |
`prefix` : |

### nm_ip4_address_get_gateway ()

    guint32             nm_ip4_address_get_gateway          (NMIP4Address *address);

`address` : |
Returns : |

### nm_ip4_address_set_gateway ()

    void                nm_ip4_address_set_gateway          (NMIP4Address *address,
                                                             guint32 gateway);

`address` : |
`gateway` : |

### NMIP4Route

    typedef struct NMIP4Route NMIP4Route;

### nm_ip4_route_new ()

    NMIP4Route *        nm_ip4_route_new                    (void);

Returns : |

### nm_ip4_route_dup ()

    NMIP4Route *        nm_ip4_route_dup                    (NMIP4Route *route);

`route` : |
Returns : |

### nm_ip4_route_ref ()

    void                nm_ip4_route_ref                    (NMIP4Route *route);

`route` : |

### nm_ip4_route_unref ()

    void                nm_ip4_route_unref                  (NMIP4Route *route);

`route` : |

### nm_ip4_route_compare ()

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

`route` : |
`other` : |
Returns : |

### nm_ip4_route_get_dest ()

    guint32             nm_ip4_route_get_dest               (NMIP4Route *route);

`route` : |
Returns : |

### nm_ip4_route_set_dest ()

    void                nm_ip4_route_set_dest               (NMIP4Route *route,
                                                             guint32 dest);

`route` : |
`dest` : |

### nm_ip4_route_get_prefix ()

    guint32             nm_ip4_route_get_prefix             (NMIP4Route *route);

`route` : |
Returns : |

### nm_ip4_route_set_prefix ()

    void                nm_ip4_route_set_prefix             (NMIP4Route *route,
                                                             guint32 prefix);

`route` : |
`prefix` : |

### nm_ip4_route_get_next_hop ()

    guint32             nm_ip4_route_get_next_hop           (NMIP4Route *route);

`route` : |
Returns : |

### nm_ip4_route_set_next_hop ()

    void                nm_ip4_route_set_next_hop           (NMIP4Route *route,
                                                             guint32 next_hop);

`route` : |
`next_hop` : |

### nm_ip4_route_get_metric ()

    guint32             nm_ip4_route_get_metric             (NMIP4Route *route);

`route` : |
Returns : |

### nm_ip4_route_set_metric ()

    void                nm_ip4_route_set_metric             (NMIP4Route *route,
                                                             guint32 metric);

`route` : |
`metric` : |

### NMSettingIP4Config

    typedef struct _NMSettingIP4Config NMSettingIP4Config;

### nm_setting_ip4_config_get_type ()

    GType               nm_setting_ip4_config_get_type      (void);

Returns : |

### nm_setting_ip4_config_new ()

    NMSetting *         nm_setting_ip4_config_new           (void);

Returns : |

### nm_setting_ip4_config_get_method ()

    const char *        nm_setting_ip4_config_get_method    (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_num_dns ()

    guint32             nm_setting_ip4_config_get_num_dns   (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_dns ()

    guint32             nm_setting_ip4_config_get_dns       (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |
Returns : |

### nm_setting_ip4_config_add_dns ()

    gboolean            nm_setting_ip4_config_add_dns       (NMSettingIP4Config *setting,
                                                             guint32 dns);

`setting` : |
`dns` : |
Returns : |

### nm_setting_ip4_config_remove_dns ()

    void                nm_setting_ip4_config_remove_dns    (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip4_config_clear_dns ()

    void                nm_setting_ip4_config_clear_dns     (NMSettingIP4Config *setting);

`setting` : |

### nm_setting_ip4_config_get_num_dns_searches ()

    guint32             nm_setting_ip4_config_get_num_dns_searches
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_dns_search ()

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

`setting` : |
`i` : |
Returns : |

### nm_setting_ip4_config_add_dns_search ()

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

`setting` : |
`dns_search` : |
Returns : |

### nm_setting_ip4_config_remove_dns_search ()

    void                nm_setting_ip4_config_remove_dns_search
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip4_config_clear_dns_searches ()

    void                nm_setting_ip4_config_clear_dns_searches
                                                            (NMSettingIP4Config *setting);

`setting` : |

### nm_setting_ip4_config_get_num_addresses ()

    guint32             nm_setting_ip4_config_get_num_addresses
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_address ()

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

`setting` : |
`i` : |
Returns : |

### nm_setting_ip4_config_add_address ()

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

`setting` : |
`address` : |
Returns : |

### nm_setting_ip4_config_remove_address ()

    void                nm_setting_ip4_config_remove_address
                                                            (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip4_config_clear_addresses ()

    void                nm_setting_ip4_config_clear_addresses
                                                            (NMSettingIP4Config *setting);

`setting` : |

### nm_setting_ip4_config_get_num_routes ()

    guint32             nm_setting_ip4_config_get_num_routes
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_route ()

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

`setting` : |
`i` : |
Returns : |

### nm_setting_ip4_config_add_route ()

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

`setting` : |
`route` : |
Returns : |

### nm_setting_ip4_config_remove_route ()

    void                nm_setting_ip4_config_remove_route  (NMSettingIP4Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip4_config_clear_routes ()

    void                nm_setting_ip4_config_clear_routes  (NMSettingIP4Config *setting);

`setting` : |

### nm_setting_ip4_config_get_ignore_auto_routes ()

    gboolean            nm_setting_ip4_config_get_ignore_auto_routes
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_ignore_auto_dns ()

    gboolean            nm_setting_ip4_config_get_ignore_auto_dns
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_dhcp_client_id ()

    const char *        nm_setting_ip4_config_get_dhcp_client_id
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_dhcp_hostname ()

    const char *        nm_setting_ip4_config_get_dhcp_hostname
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

### nm_setting_ip4_config_get_never_default ()

    gboolean            nm_setting_ip4_config_get_never_default
                                                            (NMSettingIP4Config *setting);

`setting` : |
Returns : |

## 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' or 'link-local' methods as the interface is automatically assigned an address 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 cusomize the DHCP lease and options.

Default value: NULL

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

      "dhcp-hostname"            gchar*                : Read / Write

A hostname to be 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.

Default value: NULL

### 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' or 'link-local' methods as there is no usptream 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' or 'link-local' 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 namservers 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 `"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. 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' or 'link-local' methods because there is no upstream network.