#include <netinet/ether.h>
#include <linux/if.h>
+#include <unistd.h>
#include "networkd.h"
#include "libudev-private.h"
return r;
}
- link_ref(link);
link->route_messages ++;
}
return r;
}
- link_ref(link);
link->route_messages ++;
}
return r;
}
- link_ref(link);
link->route_messages ++;
}
}
return r;
}
- link_ref(link);
link->route_messages ++;
route->family = AF_INET;
return r;
}
- link_ref(link);
link->route_messages ++;
}
return r;
}
- link_ref(link);
link->addr_messages ++;
}
return r;
}
- link_ref(link);
link->addr_messages ++;
}
}
return r;
}
- link_ref(link);
link->addr_messages ++;
}
route->dst_prefixlen = routes[i].dst_prefixlen;
route_drop(route, link, &route_drop_handler);
- link_ref(link);
}
}
}
route_gw->scope = RT_SCOPE_LINK;
route_drop(route_gw, link, &route_drop_handler);
- link_ref(link);
}
r = route_new_dynamic(&route);
route->in_addr.in = gateway;
route_drop(route, link, &route_drop_handler);
- link_ref(link);
}
}
address->prefixlen = prefixlen;
address_drop(address, link, &address_drop_handler);
- link_ref(link);
}
if (link->network->dhcp_mtu) {
address->broadcast.s_addr = address->in_addr.in.s_addr | htonl(0xfffffffflu >> address->prefixlen);
address_update(address, link, &address_update_handler);
- link_ref(link);
}
return 0;
address->scope = RT_SCOPE_LINK;
address_drop(address, link, &address_drop_handler);
- link_ref(link);
r = route_new_dynamic(&route);
if (r < 0) {
route->metrics = 99;
route_drop(route, link, &route_drop_handler);
- link_ref(link);
}
return 0;
return r;
}
- link_ref(link);
link->enslaving ++;
}
return r;
}
- link_ref(link);
link->enslaving ++;
}
return r;
}
- link_ref(link);
link->enslaving ++;
}
return r;
}
- link_ref(link);
link->enslaving ++;
}
return r;
}
- link_ref(link);
link->enslaving ++;
}
return r;
}
- link_ref(link);
link->enslaving ++;
}
if (r < 0)
return r;
}
+
if (link->network->dhcp_routes) {
r = sd_dhcp_client_set_request_option(link->dhcp_client, DHCP_OPTION_STATIC_ROUTE);
if (r < 0)
if (r < 0)
return r;
}
+
+ if (link->network->dhcp_sendhost) {
+ _cleanup_free_ char *hostname = gethostname_malloc();
+ if (!hostname)
+ return -ENOMEM;
+
+ if (!is_localhost(hostname)) {
+ r = sd_dhcp_client_set_hostname(link->dhcp_client, hostname);
+ if (r < 0)
+ return r;
+ }
+ }
}
if (link->network->dhcp_server) {