chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
networkctl: also draw a nice unicode cirlce when "networkctl status" is run without...
[elogind.git]
/
src
/
network
/
networkd-dhcp4.c
diff --git
a/src/network/networkd-dhcp4.c
b/src/network/networkd-dhcp4.c
index b87fa730826daba3650477c430495523ab09054d..1c2edc5b876838631c952d18f877809b8352d5ec 100644
(file)
--- a/
src/network/networkd-dhcp4.c
+++ b/
src/network/networkd-dhcp4.c
@@
-38,7
+38,7
@@
static int dhcp4_route_handler(sd_rtnl *rtnl, sd_rtnl_message *m,
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
- log_
error_link
(link, "could not set DHCPv4 route: %s",
+ log_
link_error
(link, "could not set DHCPv4 route: %s",
strerror(-r));
link_enter_failed(link);
}
strerror(-r));
link_enter_failed(link);
}
@@
-61,7
+61,7
@@
static int link_set_dhcp_routes(Link *link) {
r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway);
if (r < 0 && r != -ENOENT) {
r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway);
if (r < 0 && r != -ENOENT) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: could not get gateway: %s",
strerror(-r));
return r;
"DHCP error: could not get gateway: %s",
strerror(-r));
return r;
@@
-73,7
+73,7
@@
static int link_set_dhcp_routes(Link *link) {
r = sd_dhcp_lease_get_address(link->dhcp_lease, &address);
if (r < 0) {
r = sd_dhcp_lease_get_address(link->dhcp_lease, &address);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: could not get address: %s",
strerror(-r));
return r;
"DHCP error: could not get address: %s",
strerror(-r));
return r;
@@
-81,7
+81,7
@@
static int link_set_dhcp_routes(Link *link) {
r = route_new_dynamic(&route, RTPROT_DHCP);
if (r < 0) {
r = route_new_dynamic(&route, RTPROT_DHCP);
if (r < 0) {
- log_
error_link
(link,
+ log_
link_error
(link,
"Could not allocate route: %s",
strerror(-r));
return r;
"Could not allocate route: %s",
strerror(-r));
return r;
@@
-89,7
+89,7
@@
static int link_set_dhcp_routes(Link *link) {
r = route_new_dynamic(&route_gw, RTPROT_DHCP);
if (r < 0) {
r = route_new_dynamic(&route_gw, RTPROT_DHCP);
if (r < 0) {
- log_
error_link
(link,
+ log_
link_error
(link,
"Could not allocate route: %s",
strerror(-r));
return r;
"Could not allocate route: %s",
strerror(-r));
return r;
@@
-103,11
+103,11
@@
static int link_set_dhcp_routes(Link *link) {
route_gw->dst_prefixlen = 32;
route_gw->prefsrc_addr.in = address;
route_gw->scope = RT_SCOPE_LINK;
route_gw->dst_prefixlen = 32;
route_gw->prefsrc_addr.in = address;
route_gw->scope = RT_SCOPE_LINK;
- route_gw->metrics =
DHCP_ROUTE_METRIC
;
+ route_gw->metrics =
link->network->dhcp_route_metric
;
r = route_configure(route_gw, link, &dhcp4_route_handler);
if (r < 0) {
r = route_configure(route_gw, link, &dhcp4_route_handler);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"could not set host route: %s",
strerror(-r));
return r;
"could not set host route: %s",
strerror(-r));
return r;
@@
-118,11
+118,11
@@
static int link_set_dhcp_routes(Link *link) {
route->family = AF_INET;
route->in_addr.in = gateway;
route->prefsrc_addr.in = address;
route->family = AF_INET;
route->in_addr.in = gateway;
route->prefsrc_addr.in = address;
- route->metrics =
DHCP_ROUTE_METRIC
;
+ route->metrics =
link->network->dhcp_route_metric
;
r = route_configure(route, link, &dhcp4_route_handler);
if (r < 0) {
r = route_configure(route, link, &dhcp4_route_handler);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"could not set routes: %s",
strerror(-r));
link_enter_failed(link);
"could not set routes: %s",
strerror(-r));
link_enter_failed(link);
@@
-136,7
+136,7
@@
static int link_set_dhcp_routes(Link *link) {
if (n == -ENOENT)
return 0;
if (n < 0) {
if (n == -ENOENT)
return 0;
if (n < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: could not get routes: %s",
strerror(-n));
"DHCP error: could not get routes: %s",
strerror(-n));
@@
-148,7
+148,7
@@
static int link_set_dhcp_routes(Link *link) {
r = route_new_dynamic(&route, RTPROT_DHCP);
if (r < 0) {
r = route_new_dynamic(&route, RTPROT_DHCP);
if (r < 0) {
- log_
error_link
(link, "Could not allocate route: %s",
+ log_
link_error
(link, "Could not allocate route: %s",
strerror(-r));
return r;
}
strerror(-r));
return r;
}
@@
-157,11
+157,11
@@
static int link_set_dhcp_routes(Link *link) {
route->in_addr.in = static_routes[i].gw_addr;
route->dst_addr.in = static_routes[i].dst_addr;
route->dst_prefixlen = static_routes[i].dst_prefixlen;
route->in_addr.in = static_routes[i].gw_addr;
route->dst_addr.in = static_routes[i].dst_addr;
route->dst_prefixlen = static_routes[i].dst_prefixlen;
- route->metrics =
DHCP_ROUTE_METRIC
;
+ route->metrics =
link->network->dhcp_route_metric
;
r = route_configure(route, link, &dhcp4_route_handler);
if (r < 0) {
r = route_configure(route, link, &dhcp4_route_handler);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"could not set host route: %s",
strerror(-r));
return r;
"could not set host route: %s",
strerror(-r));
return r;
@@
-178,13
+178,13
@@
static int dhcp_lease_lost(Link *link) {
struct in_addr addr;
struct in_addr netmask;
struct in_addr gateway;
struct in_addr addr;
struct in_addr netmask;
struct in_addr gateway;
- unsigned prefixlen;
+ unsigned prefixlen
= 0
;
int r;
assert(link);
assert(link->dhcp_lease);
int r;
assert(link);
assert(link->dhcp_lease);
- log_
warning_link
(link, "DHCP lease lost");
+ log_
link_warning
(link, "DHCP lease lost");
if (link->network->dhcp_routes) {
struct sd_dhcp_route *routes;
if (link->network->dhcp_routes) {
struct sd_dhcp_route *routes;
@@
-237,15
+237,18
@@
static int dhcp_lease_lost(Link *link) {
}
}
}
}
- sd_dhcp_lease_get_address(link->dhcp_lease, &addr);
- sd_dhcp_lease_get_netmask(link->dhcp_lease, &netmask);
- prefixlen = in_addr_netmask_to_prefixlen(&netmask);
+ r = sd_dhcp_lease_get_address(link->dhcp_lease, &addr);
+ if (r >= 0) {
+ r = sd_dhcp_lease_get_netmask(link->dhcp_lease, &netmask);
+ if (r >= 0)
+ prefixlen = in_addr_netmask_to_prefixlen(&netmask);
- address->family = AF_INET;
- address->in_addr.in = addr;
- address->prefixlen = prefixlen;
+
address->family = AF_INET;
+
address->in_addr.in = addr;
+
address->prefixlen = prefixlen;
- address_drop(address, link, &link_address_drop_handler);
+ address_drop(address, link, &link_address_drop_handler);
+ }
}
if (link->network->dhcp_mtu) {
}
if (link->network->dhcp_mtu) {
@@
-255,7
+258,7
@@
static int dhcp_lease_lost(Link *link) {
if (r >= 0 && link->original_mtu != mtu) {
r = link_set_mtu(link, link->original_mtu);
if (r < 0) {
if (r >= 0 && link->original_mtu != mtu) {
r = link_set_mtu(link, link->original_mtu);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: could not reset MTU");
link_enter_failed(link);
return r;
"DHCP error: could not reset MTU");
link_enter_failed(link);
return r;
@@
-270,7
+273,7
@@
static int dhcp_lease_lost(Link *link) {
if (r >= 0 && hostname) {
r = link_set_hostname(link, "");
if (r < 0)
if (r >= 0 && hostname) {
r = link_set_hostname(link, "");
if (r < 0)
- log_
error_link
(link,
+ log_
link_error
(link,
"Failed to reset transient hostname");
}
}
"Failed to reset transient hostname");
}
}
@@
-290,14
+293,11
@@
static int dhcp4_address_handler(sd_rtnl *rtnl, sd_rtnl_message *m,
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST) {
- log_
error_link
(link, "could not set DHCPv4 address: %s",
+ log_
link_error
(link, "could not set DHCPv4 address: %s",
strerror(-r));
link_enter_failed(link);
strerror(-r));
link_enter_failed(link);
- } else if (r >= 0) {
- /* calling handler directly so take a ref */
- link_ref(link);
- link_get_address_handler(rtnl, m, link);
- }
+ } else if (r >= 0)
+ link_rtnl_process_address(rtnl, m, link->manager);
link_set_dhcp_routes(link);
link_set_dhcp_routes(link);
@@
-351,7
+351,7
@@
static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_client_get_lease(client, &lease);
if (r < 0) {
r = sd_dhcp_client_get_lease(client, &lease);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no lease %s",
+ log_
link_warning
(link, "DHCP error: no lease %s",
strerror(-r));
return r;
}
strerror(-r));
return r;
}
@@
-362,14
+362,14
@@
static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_lease_get_address(lease, &address);
if (r < 0) {
r = sd_dhcp_lease_get_address(lease, &address);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no address: %s",
+ log_
link_warning
(link, "DHCP error: no address: %s",
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_netmask(lease, &netmask);
if (r < 0) {
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_netmask(lease, &netmask);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no netmask: %s",
+ log_
link_warning
(link, "DHCP error: no netmask: %s",
strerror(-r));
return r;
}
strerror(-r));
return r;
}
@@
-378,7
+378,7
@@
static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_lease_get_lifetime(link->dhcp_lease,
&lifetime);
if (r < 0) {
r = sd_dhcp_lease_get_lifetime(link->dhcp_lease,
&lifetime);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: no lifetime: %s",
strerror(-r));
return r;
"DHCP error: no lifetime: %s",
strerror(-r));
return r;
@@
-387,7
+387,7
@@
static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) {
r = dhcp4_update_address(link, &address, &netmask, lifetime);
if (r < 0) {
r = dhcp4_update_address(link, &address, &netmask, lifetime);
if (r < 0) {
- log_
warning_link
(link, "could not update IP address: %s",
+ log_
link_warning
(link, "could not update IP address: %s",
strerror(-r));
link_enter_failed(link);
return r;
strerror(-r));
link_enter_failed(link);
return r;
@@
-410,21
+410,21
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_client_get_lease(client, &lease);
if (r < 0) {
r = sd_dhcp_client_get_lease(client, &lease);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no lease: %s",
+ log_
link_warning
(link, "DHCP error: no lease: %s",
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_address(lease, &address);
if (r < 0) {
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_address(lease, &address);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no address: %s",
+ log_
link_warning
(link, "DHCP error: no address: %s",
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_netmask(lease, &netmask);
if (r < 0) {
strerror(-r));
return r;
}
r = sd_dhcp_lease_get_netmask(lease, &netmask);
if (r < 0) {
- log_
warning_link
(link, "DHCP error: no netmask: %s",
+ log_
link_warning
(link, "DHCP error: no netmask: %s",
strerror(-r));
return r;
}
strerror(-r));
return r;
}
@@
-433,13
+433,13
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_lease_get_router(lease, &gateway);
if (r < 0 && r != -ENOENT) {
r = sd_dhcp_lease_get_router(lease, &gateway);
if (r < 0 && r != -ENOENT) {
- log_
warning_link
(link, "DHCP error: could not get gateway: %s",
+ log_
link_warning
(link, "DHCP error: could not get gateway: %s",
strerror(-r));
return r;
}
if (r >= 0)
strerror(-r));
return r;
}
if (r >= 0)
- log_
struct_link(LOG_INFO, link
,
+ log_
link_struct(link, LOG_INFO
,
"MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
IFNAMSIZ,
link->ifname,
"MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
IFNAMSIZ,
link->ifname,
@@
-454,7
+454,7
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
ADDRESS_FMT_VAL(gateway),
NULL);
else
ADDRESS_FMT_VAL(gateway),
NULL);
else
- log_
struct_link(LOG_INFO, link
,
+ log_
link_struct(link, LOG_INFO
,
"MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u",
IFNAMSIZ,
link->ifname,
"MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u",
IFNAMSIZ,
link->ifname,
@@
-475,7
+475,7
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
if (r >= 0) {
r = link_set_mtu(link, mtu);
if (r < 0)
if (r >= 0) {
r = link_set_mtu(link, mtu);
if (r < 0)
- log_
error_link
(link, "Failed to set MTU "
+ log_
link_error
(link, "Failed to set MTU "
"to %" PRIu16, mtu);
}
}
"to %" PRIu16, mtu);
}
}
@@
-487,7
+487,7
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
if (r >= 0) {
r = link_set_hostname(link, hostname);
if (r < 0)
if (r >= 0) {
r = link_set_hostname(link, hostname);
if (r < 0)
- log_
error_link
(link,
+ log_
link_error
(link,
"Failed to set transient hostname to '%s'",
hostname);
}
"Failed to set transient hostname to '%s'",
hostname);
}
@@
-497,7
+497,7
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
r = sd_dhcp_lease_get_lifetime(link->dhcp_lease,
&lifetime);
if (r < 0) {
r = sd_dhcp_lease_get_lifetime(link->dhcp_lease,
&lifetime);
if (r < 0) {
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: no lifetime: %s",
strerror(-r));
return r;
"DHCP error: no lifetime: %s",
strerror(-r));
return r;
@@
-506,7
+506,7
@@
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
r = dhcp4_update_address(link, &address, &netmask, lifetime);
if (r < 0) {
r = dhcp4_update_address(link, &address, &netmask, lifetime);
if (r < 0) {
- log_
warning_link
(link, "could not update IP address: %s",
+ log_
link_warning
(link, "could not update IP address: %s",
strerror(-r));
link_enter_failed(link);
return r;
strerror(-r));
link_enter_failed(link);
return r;
@@
-530,7
+530,7
@@
static void dhcp4_handler(sd_dhcp_client *client, int event, void *userdata) {
case DHCP_EVENT_STOP:
case DHCP_EVENT_IP_CHANGE:
if (link->network->dhcp_critical) {
case DHCP_EVENT_STOP:
case DHCP_EVENT_IP_CHANGE:
if (link->network->dhcp_critical) {
- log_
error_link
(link,
+ log_
link_error
(link,
"DHCPv4 connection considered system critical, ignoring request to reconfigure it.");
return;
}
"DHCPv4 connection considered system critical, ignoring request to reconfigure it.");
return;
}
@@
-568,11
+568,11
@@
static void dhcp4_handler(sd_dhcp_client *client, int event, void *userdata) {
break;
default:
if (event < 0)
break;
default:
if (event < 0)
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP error: client failed: %s",
strerror(-event));
else
"DHCP error: client failed: %s",
strerror(-event));
else
- log_
warning_link
(link,
+ log_
link_warning
(link,
"DHCP unknown event: %d",
event);
break;
"DHCP unknown event: %d",
event);
break;
@@
-596,7
+596,9
@@
int dhcp4_configure(Link *link) {
if (r < 0)
return r;
if (r < 0)
return r;
- r = sd_dhcp_client_set_mac(link->dhcp_client, &link->mac);
+ r = sd_dhcp_client_set_mac(link->dhcp_client,
+ (const uint8_t *) &link->mac,
+ sizeof (link->mac), ARPHRD_ETHER);
if (r < 0)
return r;
if (r < 0)
return r;