serenity/Kernel/API
kleines Filmröllchen ac44ec5ebc Kernel+ifconfig: Allow setting an IPv6 address on an interface
Since we take a socket address with an address
type, this allows us to support setting an IPv6
address using an IPv4 socket without a
particularly hacky API. This deviates from Linux's
behavior (see
https://www.man7.org/linux/man-pages/man7/netdevice.7.html
) where AF_INET6 uses a completely different
control structure, but this doesn't seem
necessary.

This requires changing the sockaddr size to fit
sockaddr_in6, as the network ioctl's are the only
place where sockaddr is used with a fixed size
(and not with variable size data like in POSIX
APIs, which would support sockaddr_in6 without
changes).

ifconfig takes a new parameter for setting the
IPv6 address of an interface. The IPv4 address
short option '-i' is removed, as it only yields
confusion (which IP version is the default? and
usually such options are called -4 or -6, if they
exist) and isn't necessary thanks to the brief
long option name.

This commit's main purpose for now is to allow
participating in IPv6 NDP and pings without
requiring SLAC.

Co-authored-by: Dominique Liberda <ja@sdomi.pl>
2024-09-08 18:27:55 -04:00
..
FileSystem Kernel: Change internal handling of filesystem-specific options 2024-08-03 20:35:06 +02:00
POSIX Kernel+ifconfig: Allow setting an IPv6 address on an interface 2024-09-08 18:27:55 -04:00
archctl_numbers.h Kernel+LibC+LibELF: Move TLS handling to userspace 2024-04-19 16:46:47 -06:00
BeepInstruction.h Kernel+Userland: Add option for duration of /dev/beep producing sound 2023-11-03 15:19:33 +01:00
DeviceEvent.h
DeviceFileTypes.h Kernel: Register block and character devices in separate HashMaps 2024-07-06 21:42:32 +02:00
InodeWatcherEvent.h
InodeWatcherFlags.h
Ioctl.h Kernel: Change internal handling of filesystem-specific options 2024-08-03 20:35:06 +02:00
kcov.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
KeyCode.h Kernel: Define bitwise operations for KeyModifier 2024-03-06 07:46:18 +01:00
MajorNumberAllocation.h Kernel: Remove the AllMiceDevice class 2024-07-06 21:42:32 +02:00
MemoryLayout.h
MousePacket.h
prctl_numbers.h Kernel+Userland: Reduce jails to be a simple boolean flag 2024-07-21 11:44:23 +02:00
serenity_limits.h
Syscall.h Kernel/x86: Add missing rcx + r11 clobber to Syscall::invoke with 4 args 2024-08-21 08:17:17 -04:00
SyscallString.h
TimePage.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
ttydefaults.h
ttydefaultschars.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
Unshare.h Kernel: Introduce the unshare syscall family 2024-07-21 11:44:23 +02:00
Unveil.h
VirGL.h
VirtualMemoryAnnotations.h