diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2025-01-07 20:49:06 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2025-01-11 19:18:03 +0100 |
commit | c9f7090d930504db772557c18f16599e03d616ea (patch) | |
tree | 0b4658e755356787447f7c721919608e4da0cddc /libphobos/src/std/socket.d | |
parent | 292be6817150ed11d599b6ac92269041ed62eb3a (diff) | |
download | gcc-c9f7090d930504db772557c18f16599e03d616ea.zip gcc-c9f7090d930504db772557c18f16599e03d616ea.tar.gz gcc-c9f7090d930504db772557c18f16599e03d616ea.tar.bz2 |
d: Merge upstream dmd, druntime 82a5d2a7c4, phobos dbc09d823
D front-end changes:
- Import latest fixes from dmd v2.110.0-beta.1.
- Added traits `getBitfieldOffset' and `getBitfieldWidth'.
- Added trait `isCOMClass' to detect if a type is a COM class.
- Added `-fpreview=safer` which enables safety checking on
unattributed functions.
D runtime changes:
- Import latest fixes from druntime v2.110.0-beta.1.
Phobos changes:
- Import latest fixes from phobos v2.110.0-beta.1.
- Added `fromHexString' and `fromHexStringAsRange' functions to
`std.digest'.
gcc/d/ChangeLog:
* dmd/MERGE: Merge upstream dmd 82a5d2a7c4.
* d-lang.cc (d_handle_option): Handle new option `-fpreview=safer'.
* expr.cc (ExprVisitor::NewExp): Remove gcc_unreachable for the
generation of `_d_newThrowable'.
* lang.opt: Add -fpreview=safer.
libphobos/ChangeLog:
* libdruntime/MERGE: Merge upstream druntime 82a5d2a7c4.
* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add
core/internal/gc/blkcache.d, core/internal/gc/blockmeta.d.
* libdruntime/Makefile.in: Regenerate.
* src/MERGE: Merge upstream phobos dbc09d823.
Diffstat (limited to 'libphobos/src/std/socket.d')
-rw-r--r-- | libphobos/src/std/socket.d | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libphobos/src/std/socket.d b/libphobos/src/std/socket.d index 52fd33b..7fa9974 100644 --- a/libphobos/src/std/socket.d +++ b/libphobos/src/std/socket.d @@ -54,6 +54,12 @@ version (Windows) enum socket_t : SOCKET { INVALID_SOCKET } private const int _SOCKET_ERROR = SOCKET_ERROR; + /** + * On Windows, there is no `SO_REUSEPORT`. + * However, `SO_REUSEADDR` is equivalent to `SO_REUSEPORT` there. + * $(LINK https://learn.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse) + */ + private enum SO_REUSEPORT = SO_REUSEADDR; private int _lasterr() nothrow @nogc { @@ -2589,6 +2595,22 @@ enum SocketOption: int DEBUG = SO_DEBUG, /// Record debugging information BROADCAST = SO_BROADCAST, /// Allow transmission of broadcast messages REUSEADDR = SO_REUSEADDR, /// Allow local reuse of address + /** + * Allow local reuse of port + * + * On Windows, this is equivalent to `SocketOption.REUSEADDR`. + * There is in fact no option named `REUSEPORT`. + * However, `SocketOption.REUSEADDR` matches the behavior of + * `SocketOption.REUSEPORT` on other platforms. Further details on this + * topic can be found here: + * $(LINK https://learn.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse) + * + * On Linux, this ensures fair distribution of incoming connections accross threads. + * + * See_Also: + * https://lwn.net/Articles/542629/ + */ + REUSEPORT = SO_REUSEPORT, LINGER = SO_LINGER, /// Linger on close if unsent data is present OOBINLINE = SO_OOBINLINE, /// Receive out-of-band data in band SNDBUF = SO_SNDBUF, /// Send buffer size |