mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 01:37:39 +03:00
Kernel: Add SIOCGIFHWADDR ioctl to get the MAC address of an adapter
This commit is contained in:
parent
345086ab72
commit
3f2c1a2e3d
Notes:
sideshowbarker
2024-07-19 11:51:22 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/3f2c1a2e3dc
@ -377,6 +377,16 @@ int IPv4Socket::ioctl(FileDescription&, unsigned request, unsigned arg)
|
||||
ifr->ifr_addr.sa_family = AF_INET;
|
||||
((sockaddr_in&)ifr->ifr_addr).sin_addr.s_addr = adapter->ipv4_address().to_u32();
|
||||
return 0;
|
||||
|
||||
case SIOCGIFHWADDR:
|
||||
if (!current->process().validate_write_typed(ifr))
|
||||
return -EFAULT;
|
||||
ifr->ifr_hwaddr.sa_family = AF_INET;
|
||||
{
|
||||
auto mac_address = adapter->mac_address();
|
||||
memcpy(ifr->ifr_hwaddr.sa_data, &mac_address, sizeof(MACAddress));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
|
@ -414,6 +414,7 @@ struct ifreq {
|
||||
struct sockaddr ifru_addr;
|
||||
struct sockaddr ifru_dstaddr;
|
||||
struct sockaddr ifru_broadaddr;
|
||||
struct sockaddr ifru_hwaddr;
|
||||
short ifru_flags;
|
||||
int ifru_metric;
|
||||
int64_t ifru_vnetid;
|
||||
@ -435,4 +436,5 @@ struct ifreq {
|
||||
#define ifr_data ifr_ifru.ifru_data // for use by interface
|
||||
#define ifr_index ifr_ifru.ifru_index // interface index
|
||||
#define ifr_llprio ifr_ifru.ifru_metric // link layer priority
|
||||
#define ifr_hwaddr ifr_ifru.ifru_hwaddr // MAC address
|
||||
};
|
||||
|
@ -12,6 +12,7 @@ struct ifreq {
|
||||
struct sockaddr ifru_addr;
|
||||
struct sockaddr ifru_dstaddr;
|
||||
struct sockaddr ifru_broadaddr;
|
||||
struct sockaddr ifru_hwaddr;
|
||||
short ifru_flags;
|
||||
int ifru_metric;
|
||||
int64_t ifru_vnetid;
|
||||
@ -33,6 +34,7 @@ struct ifreq {
|
||||
#define ifr_data ifr_ifru.ifru_data // for use by interface
|
||||
#define ifr_index ifr_ifru.ifru_index // interface index
|
||||
#define ifr_llprio ifr_ifru.ifru_metric // link layer priority
|
||||
#define ifr_hwaddr ifr_ifru.ifru_hwaddr // MAC address
|
||||
};
|
||||
|
||||
__END_DECLS
|
||||
|
@ -35,4 +35,5 @@ enum IOCtlNumber {
|
||||
FB_IOCTL_SET_BUFFER,
|
||||
SIOCSIFADDR,
|
||||
SIOCGIFADDR,
|
||||
SIOCGIFHWADDR,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user