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
Rosen Penev
94b0baceb0
convert address_family_ranking to std::array
...
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-11 01:27:31 -08:00
Max Kellermann
77d74b404e
Permission: add option "host_permissions"
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1115
2021-10-14 14:44:18 +02:00
Max Kellermann
f510564d9d
more [[gnu::...]] attributes
2021-10-13 12:07:05 +02:00
Max Kellermann
b394d8d059
net/Resolver: include cleanup
2021-10-13 11:06:10 +02:00
Max Kellermann
4a1c231734
net/SocketError: use constexpr
2021-04-06 13:59:58 +02:00
Max Kellermann
fd0e958e95
net/SocketError: use auto
2021-04-06 13:58:46 +02:00
Max Kellermann
3d814115c8
net/SocketError: change "const" to "pure"
2021-04-06 13:58:32 +02:00
Max Kellermann
3456b1e50d
use std::size_t
2021-02-12 18:39:28 +01:00
Max Kellermann
6cdb3ff21e
use [[gnu::pure]] instead of gcc_pure
...
This is semi-standard and doesn't require the util/Compiler.h header.
2021-02-12 18:34:16 +01:00
Max Kellermann
d56a51cb5e
Merge branch 'v0.22.x'
2021-01-21 22:28:11 +01:00
Max Kellermann
9e2d09dabc
net/SocketError: add syscall specific check functions
...
Fixes Windows compatibility.
2021-01-21 22:05:21 +01:00
Max Kellermann
2719f62feb
net/SocketError: relicense to BSD-2
2021-01-21 21:31:02 +01:00
Max Kellermann
bcb7e954e9
net/Resolver: add simple getaddrinfo() wrapper
2021-01-12 15:43:26 +01:00
Max Kellermann
866c87c65e
net/ToString: include cleanup
2021-01-12 12:22:44 +01:00
Max Kellermann
4ba36d7cb9
net/SocketError: relicense to BSD-2
2021-01-11 22:31:46 +01:00
Max Kellermann
abbd980671
Merge branch 'v0.22.x'
2021-01-01 19:59:15 +01:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Max Kellermann
273771ffec
net/SocketAddress: add CastTo()
2020-11-30 21:51:07 +01:00
Max Kellermann
32ce9ce919
net/IPv[46]Address: pass SocketAddress by value to Cast()
2020-11-30 21:49:07 +01:00
Max Kellermann
34a070f5a6
net/IPv[46]Address: add Cast(const sockaddr_in&)
2020-11-30 21:49:02 +01:00
Max Kellermann
0ecc3394c3
Merge branch 'v0.22.x' into master
2020-10-15 20:14:36 +02:00
Max Kellermann
95bb12880d
net/UniqueSocketDescriptor: add noexcept
2020-10-15 16:46:29 +02:00
Max Kellermann
257196664a
net/SocketAddress: add missing include
2020-10-15 16:45:50 +02:00
Max Kellermann
ed3d8222d6
net/SocketAddress: include cleanup
2020-10-15 15:01:19 +02:00
Max Kellermann
6825e1144e
net/SocketError: work around -Wvla by defining a constexpr variable
2020-09-22 20:40:53 +02:00
Rosen Penev
821d08999a
remove GCC5 hacks
...
GCC5 cannot build mpd.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-16 18:10:27 -07:00
Max Kellermann
dbdf782e59
net/{Resolver,HostParser}: include <cstring>
...
Fixup after e4dad42ca1
2020-07-23 17:40:29 +02:00
Max Kellermann
f102cbb613
net/AllocatedSocketAddress: add missing forward declaration
2020-07-23 17:40:29 +02:00
Max Kellermann
5522967286
net/StaticSocketAddress: add IWYU pragma
2020-07-23 17:40:29 +02:00
Max Kellermann
155fc8fa5a
include cleanup
2020-07-23 16:26:18 +02:00
Rosen Penev
e4dad42ca1
use std chr functions
...
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-30 13:36:53 +02:00
Max Kellermann
9815d10137
system/FileDescriptor: move to io/
2020-05-05 14:27:03 +02:00
Rosen Penev
a2f5a63bbc
replace stdint.h with cstdint
...
The former is deprecated by C++14. The standard says they are the same:
The header defines all types and macros the same as the C standard library
header<stdint.h>.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 19:04:39 -07:00
Rosen Penev
edc4989d9c
change errno.h to cerrno
...
The former is deprecated by C++14. It's also functionally the same.
From the standard:
19.4
The header<cerrno>is described in Table 43. Its contents are the same as
the POSIX header<errno.h>,except that errno shall be defined as a macro.
[Note: The intent is to remain in close alignment with the POSIX
standard.] A separate errno value shall be provided for each thread.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 15:51:16 -07:00
Rosen Penev
ab9f5d2067
replace assert.h with cassert
...
The former was deprecated with C++14.
According to the C++11 and C++17 standards, both files are identical.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12 15:25:38 -07:00
Max Kellermann
72ec641f0d
*: use auto
2020-02-01 14:02:43 +01:00
Max Kellermann
f7c326dbeb
net/StaticSocketAddress: make the cast operators constexpr
2020-02-01 11:49:55 +01:00
Max Kellermann
50de3a7886
net/AddressInfo: add MakeAddrInfo()
2020-02-01 11:48:15 +01:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
6ec335dcd5
net/UniqueSocketDescriptor: import std::swap()
2019-08-26 20:37:47 +02:00
Max Kellermann
d5d6746ddf
net/UniqueSocketDescriptor: update copyright year
2019-08-26 20:37:31 +02:00
Max Kellermann
00d7759cee
net/SocketDescriptor: expose CheckDuplicate()
2019-08-26 20:36:51 +02:00
Max Kellermann
2ecc4e3eed
net/AllocatedSocketAddress: remove config.h, we have Features.hxx already
2019-08-26 20:28:53 +02:00
Max Kellermann
7d98145ea8
net/AddressInfo: include Features.hxx instead of config.h
2019-08-26 20:26:40 +02:00
Max Kellermann
a478af6759
util/PrintException, ...: update copyright
2019-08-19 19:11:59 +02:00
Max Kellermann
cde6c46d2f
util/Macros: replace with std::size() (C++17)
2019-08-03 13:10:49 +02:00
Max Kellermann
a784c8b1ae
net/Resolver: replace memset(0) with empty C++ initializer list
2019-07-29 11:32:06 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
510e6841a0
net/AllocatedSocketAddress: import std::swap
2019-07-03 22:06:40 +02:00
Max Kellermann
2089c99348
net/{Allocated,Static}SocketAddress: use IPv[46]Address::SetPort()
2019-07-03 21:59:23 +02:00
Max Kellermann
77b5b4158c
net/ToString: move UnmapV4() to class IPv6Address
2019-07-03 21:56:56 +02:00
Max Kellermann
08552f3938
net/ToString: UnmapV4() returns IPv4Address
2019-07-03 21:56:27 +02:00
Max Kellermann
2700265769
net/SocketAddress: use IPv[46]Address::Cast()
2019-07-03 21:53:42 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
ea5e6d8f33
Merge branch 'v0.21.x'
2019-04-04 10:29:58 +02:00
Max Kellermann
37b54179d8
net/IPv[46]Address: add cast to void* to fix GCC9 build failure
...
Fixes:
src/net/IPv4Address.hxx: In member function 'constexpr IPv4Address::operator SocketAddress() const':
src/net/IPv4Address.hxx:171:24: error: a reinterpret_cast is not a constant expression
171 | return SocketAddress((const struct sockaddr *)&address,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/net/IPv6Address.hxx: In member function 'constexpr IPv6Address::operator SocketAddress() const':
src/net/IPv6Address.hxx:138:24: error: a reinterpret_cast is not a constant expression
138 | return SocketAddress((const struct sockaddr *)&address,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Closes https://github.com/MusicPlayerDaemon/MPD/issues/522
2019-04-03 16:59:53 +02:00
Max Kellermann
977a4570d9
Merge branch 'v0.21.x'
2019-03-21 11:49:41 +01:00
Max Kellermann
4f408bd952
event/ServerSocket, doc, ...: refer to AF_LOCAL as "local socket"
...
.. and not "UNIX domain socket. Be consistent about the naming.
2019-03-20 12:57:26 +01:00
Max Kellermann
c176d94598
system/ByteOrder: move to util/
2019-03-08 10:21:10 +01:00
Max Kellermann
4fbf6b6c95
net/StaticSocketAddress: remove GetAddress()
2019-02-27 23:26:59 +01:00
Max Kellermann
1f8ff48168
net/StaticSocketAddress: add GetLocalRaw()
2019-02-27 23:26:00 +01:00
Max Kellermann
20b6e0d684
net/SocketDescriptor: add SetTcpUserTimeout()
2019-02-27 23:22:12 +01:00
Max Kellermann
c0f57b8a8b
net/IPv[46]Address: update copyright
2019-02-19 13:00:45 +01:00
Max Kellermann
57633fbcb3
net/AllocatedSocketAddress: add methods IsV6Any(), IsV4Mapped()
2019-02-19 12:51:24 +01:00
Max Kellermann
864c87e6c0
net/SocketAddress: add method GetLocalPath()
2019-02-19 12:50:40 +01:00
Max Kellermann
1a516cf3c0
net/AllocatedSocketAddress: add method GetLocalRaw()
2019-02-19 12:43:16 +01:00
Max Kellermann
d77b0c7dcd
net/SocketAddress: add constexpr
2019-01-22 08:42:35 +01:00
Max Kellermann
02c68c5cdb
net/HostParser: add noexcept
2019-01-21 21:20:43 +01:00
Max Kellermann
701fd1d939
net/IPv4Address: fix comment typo
2019-01-20 21:05:12 +01:00
Max Kellermann
1fa99da3c2
net/IPv[46]Address: make the initializers even more portable
...
Similar to 5a5229b499
: use more C++14
constexpr.
2019-01-14 19:21:07 +01:00
Zoltán Mizsei
f546e76490
Build fix. This struct is the same on Haiku and on Linux, still gcc
...
fails on it. This fixes.
2019-01-04 19:01:27 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, we don't need to include
`config.h` early to properly enable large file support. Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.
This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
5a5229b499
net/IPv[46]Address: make the initializers more portable
...
Thanks to C++14, we can declare and fill variables inside `constexpr`
functions. This means me can stop make assumptions on the `struct`
layouts without losing `constexpr`.
Closes #393
2018-11-02 17:47:43 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
f5857c4689
net/SocketUtil: update API documentation
2018-10-30 19:56:10 +01:00
Max Kellermann
94592c1406
build with Meson instead of autotools
...
So long, autotools! This is my last MPD related project to migrate
away from it. It has its strengths, but also very obvious weaknesses
and weirdnesses. Today, many of its quirks are not needed anymore,
and are cumbersome and slow. Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann
dda5516eec
net/IPv6Address: pass reference to Cast()
2018-08-21 20:21:41 +02:00
Max Kellermann
adc5c5db88
net/IPv4Address: pass reference to Cast()
2018-08-21 20:16:57 +02:00
Max Kellermann
9151b84c25
net/AllocatedSocketAddress: convert operator== to template
2018-08-21 12:26:19 +02:00
Max Kellermann
5d7dd12f7a
net/SocketDescriptor: add multicast methods
2018-08-21 11:37:19 +02:00
Max Kellermann
21783ff5f7
net/SocketDescriptor: remove unnecessary SO_REUSEPORT check
2018-08-21 11:35:29 +02:00
Max Kellermann
fd923d5d96
net/SocketDescriptor: add Shutdown()
2018-08-21 11:31:58 +02:00
Max Kellermann
ebf607eef8
net/SocketDescriptor: fix SOCK_NONBLOCK flag in CreateSocketPairNonBlock()
2018-08-21 11:27:15 +02:00