diff options
author | Dimitri Staessens <[email protected]> | 2018-06-13 11:59:26 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2018-06-13 13:36:11 +0200 |
commit | 39e0358161212c5d662208360c1fdcb68ee6b64a (patch) | |
tree | 98681157239c5abc32a4b1add91874896841c3a5 /src | |
parent | f4e0e4e807709a4c1d02eda4bbe8a0e4f637b741 (diff) | |
download | ouroboros-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')
-rw-r--r-- | src/ipcpd/eth/eth.c | 12 |
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); |