summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
authorDimitri Staessens <[email protected]>2018-06-13 11:59:26 +0200
committerSander Vrijders <[email protected]>2018-06-13 13:36:11 +0200
commit39e0358161212c5d662208360c1fdcb68ee6b64a (patch)
tree98681157239c5abc32a4b1add91874896841c3a5 /src/ipcpd
parentf4e0e4e807709a4c1d02eda4bbe8a0e4f637b741 (diff)
downloadouroboros-39e0358161212c5d662208360c1fdcb68ee6b64a.tar.gz
ouroboros-39e0358161212c5d662208360c1fdcb68ee6b64a.zip
ipcpd: Get mtu using ioctl before hw address
The SIOCGIFMTU command uses the ifr struct, which is a union, so it can't store the hw address and the MTU at the same time. We now call SIOCGIFMTU and set the MTU before SIOCGIFHWADDR. Signed-off-by: Dimitri Staessens <[email protected]> Signed-off-by: Sander Vrijders <[email protected]>
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/eth/eth.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ipcpd/eth/eth.c b/src/ipcpd/eth/eth.c
index c76ef60a..7bac64ca 100644
--- a/src/ipcpd/eth/eth.c
+++ b/src/ipcpd/eth/eth.c
@@ -1243,12 +1243,6 @@ static int eth_ipcp_bootstrap(const struct ipcp_config * conf)
return -1;
}
- if (ioctl(skfd, SIOCGIFHWADDR, &ifr)) {
- log_err("Failed to get hwaddr.");
- close(skfd);
- return -1;
- }
-
if (ioctl(skfd, SIOCGIFMTU, &ifr)) {
log_err("Failed to get MTU.");
close(skfd);
@@ -1269,6 +1263,12 @@ static int eth_ipcp_bootstrap(const struct ipcp_config * conf)
#endif
log_dbg("Layer MTU is %d.", eth_data.mtu);
+ if (ioctl(skfd, SIOCGIFHWADDR, &ifr)) {
+ log_err("Failed to get hwaddr.");
+ close(skfd);
+ return -1;
+ }
+
close(skfd);
idx = if_nametoindex(conf->dev);