Commit Graph

232 Commits

Author SHA1 Message Date
Max Kellermann
b68c3b7f55 net/SocketDescriptor: disable msghdr methods on Windows 2024-01-18 15:44:44 +01:00
Max Kellermann
0fbed6dec1 net/SocketDescriptor: remove misplaced [[nodiscard]] 2024-01-18 15:44:43 +01:00
Max Kellermann
6f6cbeba80 net/SocketDescriptor: add Send()/Receive() overloads with iovec 2024-01-13 22:32:35 +01:00
Max Kellermann
974ed0166c net/SocketDescriptor: add sendmsg(), recvmsg() wrappers 2024-01-13 22:31:58 +01:00
Max Kellermann
a91920a8ff net/SocketDescriptor: pass span<byte> to Read()/Write() 2024-01-13 22:31:34 +01:00
Max Kellermann
7cd38dde09 net/SocketDescriptor: add [[nodiscard]] 2024-01-13 22:31:24 +01:00
Max Kellermann
7f439b01a3 net/SocketAddress: move code to IsInet() 2024-01-08 13:48:13 +01:00
Max Kellermann
0fd6f83766 net/StaticSocketAddress: add constexpr 2024-01-08 13:48:05 +01:00
Max Kellermann
b15b2125e2 net/AddressInfo: add methods IsInet(), IsTCP() 2024-01-08 13:47:59 +01:00
Max Kellermann
0dfd7e3d8c net/SocketDescriptor: SO_PROTOCOL is really Linux-specific 2023-11-25 23:03:30 +01:00
Max Kellermann
6dc708f53f net/SocketDescriptor: use method GetOption() internally 2023-11-25 21:58:17 +01:00
Max Kellermann
60033f3eb4 net/SocketDescriptor: add method GetProtocol() 2023-11-25 21:58:09 +01:00
Max Kellermann
1239e075b8 net/SocketDescriptor: add method GetIntOption() 2023-11-25 21:56:07 +01:00
Max Kellermann
491cc8f54d net/SocketDescriptor: add {Read,Write}NoWait()
It was surprising that Read() was non-blocking, but there was no
blocking version of it.  Let's make the non-blocking behavior explicit
and change Read() to be blocking.

In order to find existing callers easily with compiler errors, this
also refactors Read()/Write() to take a std::span parameter.
2023-09-27 11:39:55 +02:00
Max Kellermann
8ca6606323 net/SocketDescriptor: move code to Receive(), Send() 2023-09-27 10:16:21 +02:00
Max Kellermann
b36f5f1ec4 net/ToString: use #pragma once 2023-09-18 22:01:40 +02:00
Max Kellermann
592649d3f2 net/ToString: check family==AF_INET6 instead of looking for colons 2023-09-18 21:59:27 +02:00
Max Kellermann
9398599816 net/ToString: use libfmt 2023-09-18 21:58:55 +02:00
Max Kellermann
61c29473d3 net/ToString: append port only if it is non-zero 2023-09-18 11:11:00 +02:00
Max Kellermann
5fd2fc77f3 net/ToString: add null check 2023-09-18 11:08:16 +02:00
Max Kellermann
3eb0681e3d net/ToString: use SocketAddress::GetLocalRaw() 2023-09-18 10:54:52 +02:00
Max Kellermann
339b9f6e7b net/StaticSocketAddress: add method GetSteadyPart() 2023-09-11 21:27:12 +02:00
Max Kellermann
35cfa6efa3 net/StaticSocketAddress: add SocketAddress cast constructor 2023-09-11 21:27:12 +02:00
Max Kellermann
34ec024bf4 net/AllocatedSocketAddress: add method GetSteadyPart() 2023-09-11 21:27:12 +02:00
Max Kellermann
53ec02d5e9 net/SocketDescriptor: decouple from FileDescriptor on Windows
On Windows, a socket is not a file descriptor; it is a different beast
(and anyway, Windows doesn't have file descriptors).
2023-03-29 10:12:50 +02:00
Max Kellermann
148aca23be use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Max Kellermann
452400b7ef net/SocketAddress: remove __cpp_lib_span checks 2023-03-05 08:41:33 +01:00
Max Kellermann
d9b1f2fefa net/SocketAddress: add method HasPort() 2022-12-01 15:10:25 +01:00
Max Kellermann
fa58db798b lib/fmt/RuntimeError: new library
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Max Kellermann
bbc82a9892 io/FileDescriptor, net/SocketDescriptor: make lots of methods "const"
Only the file descriptor value itself is const, but the file itself
may be readable/writable.
2022-11-09 19:19:20 +01:00
Max Kellermann
cc0def15c4 Copyright year 2022 2022-07-14 17:59:35 +02:00
Max Kellermann
2ba092711f event/net/UdpListener: use IsSocketErrorReceiveWouldBlock() 2022-06-30 10:32:25 +02:00
Max Kellermann
8aa4227c0c net/SocketAddress: add std::span cast operators 2022-06-30 10:30:54 +02:00
Max Kellermann
bc3415ce8b Copyright year 2022 2022-06-30 09:41:53 +02:00
Max Kellermann
12d67dad35 net/SocketError: support ETIMEDOUT 2022-06-29 17:28:47 +02:00
Max Kellermann
f2cfa3e1c4 net/SocketError: add SocketErrorCategory() 2022-06-13 21:26:58 +02:00
Max Kellermann
eedd490e2d net/AddressInfo: add iterator type aliases 2022-06-07 10:11:26 +02:00
Max Kellermann
d2983b7fde net/SocketAddress: include cleanup 2022-05-31 13:54:19 +02:00
Max Kellermann
059955a48c net/SocketAddress: add #ifdefs for std::span 2022-05-31 13:51:12 +02:00
Max Kellermann
6ebac6a0b2 net/StaticSocketAddress: use std::string_view instead of StringView 2022-05-31 13:49:18 +02:00
Max Kellermann
b5a9d0654e net/Resolver: use std::copy() 2022-05-31 13:44:25 +02:00
Max Kellermann
242ba727b2 net/HostParser: use std::string_view instead of StringView 2022-05-31 13:44:25 +02:00
Max Kellermann
d5db4ca0e7 net/SocketAddress: GetSteadyPart() returns std::span 2022-05-31 13:32:27 +02:00
Max Kellermann
774024a41b net/SocketAddress: add std::span cast operator 2022-05-19 20:52:48 +02:00
Max Kellermann
601e5e6abc net/AddressInfo: add noexcept 2022-04-26 21:17:01 +02:00
dgcampea
4f3828237a
Fix DSCP LE value
Correct value is 0x04 since we need to account for the 2 ECN bits.
2022-02-02 16:29:01 +00:00
Max Kellermann
16f7ec9950 net/DscpParser: new library 2022-01-11 20:31:52 +01:00
Max Kellermann
089a843abd net/SocketDescriptor: add method SetIntOption() 2022-01-10 21:36:15 +01:00
Max Kellermann
c30466b84a net/IPv4Address: add method GetPortBE() 2021-11-26 16:25:43 +01:00
Max Kellermann
868f1a4431 net/UniqueSocketDescriptor, ...: include <utility> instead of <algorithm>
Since C++11, std::swap() lives in <utility>.
2021-11-26 16:25:29 +01:00