Commit graph

83 commits

Author SHA1 Message Date
Byron Hambly
cfe620f7fd Merge 93cae70d87 into merged_master (Bitcoin PR bitcoin/bitcoin#26561) 2025-03-03 14:54:07 +02:00
Byron Hambly
7fe321f93a
Merge 0968c51401 into merged_master (Bitcoin PR bitcoin/bitcoin#26497) 2025-03-03 12:10:27 +02:00
Byron Hambly
ca0a68b350
Merge UP TO 551c8e9526 into merged_master (UP TO bitcoin/bitcoin#26349)
Includes FIXMEs for a few functional tests
2025-02-05 09:50:17 +02:00
Byron Hambly
5501bf04b8 Merge ea67232cdb into merged_master (Bitcoin PR bitcoin/bitcoin#25962) 2024-11-26 11:34:14 +02:00
Byron Hambly
da5b3cf786 Merge 9ba73758c9 into merged_master (Bitcoin PR bitcoin/bitcoin#24697)
Also removes the redundant redeclaration of CheckMinimalPush from
interpreter.h that was moved to script.h in f4e289f384
2024-10-20 20:19:04 +02:00
Byron Hambly
299207b5d6 Merge 2bdce7f7ad into merged_master (Bitcoin PR bitcoin/bitcoin#25514)
Note I did manually run the trim headers functional test successfully on
this commit, since it touched some of trim headers code.
2024-10-17 10:44:56 +02:00
James Dorfman
c86e00508f Merge dd13d7bf16 into merged_master (Bitcoin PR bitcoin/bitcoin#25591) 2024-10-16 05:03:53 +00:00
James Dorfman
0d5e99e733 Merge 55c9e2d790 into merged_master (Bitcoin PR bitcoin/bitcoin#24378) 2024-09-17 18:40:39 +00:00
James Dorfman
3c3193e5fb Merge ba29911e21 into merged_master (Bitcoin PR bitcoin/bitcoin#25426) 2024-09-17 18:36:20 +00:00
James Dorfman
94c443f2bf Merge a085a55491 into merged_master (Bitcoin PR bitcoin/bitcoin#25428) 2024-09-16 05:05:52 +00:00
James Dorfman
d12772b740 Merge 0ea92cad52 into merged_master (Bitcoin PR bitcoin/bitcoin#24356) 2024-09-10 20:19:42 +00:00
James Dorfman
5fa8f4dda7 Merge 6300b9556e into merged_master (Bitcoin PR bitcoin/bitcoin#24357) 2024-08-01 16:18:44 +00:00
James Dorfman
e860ace1e4 Merge f089a0802c into merged_master (Bitcoin PR bitcoin/bitcoin#24692) 2024-05-23 23:51:34 +00:00
James Dorfman
363d930f8e Merge 9344697e57 into merged_master (Bitcoin PR bitcoin/bitcoin#21160) 2024-03-19 20:07:00 +00:00
Byron Hambly
a573a48bf9 Merge 292a841553 into merged_master (Bitcoin PR bitcoin/bitcoin#24449) 2023-07-02 16:32:16 +00:00
Byron Hambly
4e5e47d2d5 Merge 5f4c07b799 into merged_master (Bitcoin PR bitcoin/bitcoin#24136) 2023-06-29 13:43:18 +00:00
Byron Hambly
b535b87e0e Merge 7de2cf9b25 into merged_master (Bitcoin PR bitcoin/bitcoin#23992) 2023-06-20 11:11:11 +00:00
Byron Hambly
2643bd7860 Merge 8f1c28a609 into merged_master (Bitcoin PR bitcoin/bitcoin#21879) 2023-06-15 08:00:33 +00:00
Byron Hambly
b8e9358d8c Merge e31cdb0238 into merged_master (Bitcoin PR bitcoin/bitcoin#23411) 2023-06-15 07:42:35 +00:00
Byron Hambly
5494a066ab Merge 498fe4b780 into merged_master (Bitcoin PR bitcoin/bitcoin#23575) 2023-06-13 09:58:15 +00:00
Byron Hambly
9189a19022 Merge 024e4debc5 into merged_master (Bitcoin PR bitcoin/bitcoin#23408) 2023-05-25 08:34:33 +00:00
Byron Hambly
498907a233 Merge 816e15ee81 into merged_master (Bitcoin PR bitcoin/bitcoin#22951) 2023-05-09 11:50:39 +00:00
MarcoFalke
fa3b2cf277
fuzz: Move-only net utils 2022-11-23 17:26:01 +01:00
dergoegge
0eeb9b0442 [fuzz] Move ConsumeNetAddr to fuzz/util/net.h 2022-11-17 14:52:45 +00:00
dergoegge
291c8697d4 [fuzz] Make ConsumeNetAddr produce valid onion addresses 2022-11-17 14:52:45 +00:00
glozow
7e1007a3c6
Merge bitcoin/bitcoin#25421: net: convert standalone IsSelectableSocket() and SetSocketNonBlocking() to Sock methods
b527b54950 net: convert standalone SetSocketNonBlocking() to Sock::SetNonBlocking() (Vasil Dimov)
29f66f7682 moveonly: move SetSocketNonBlocking() from netbase to util/sock (Vasil Dimov)
b4bac55679 net: convert standalone IsSelectableSocket() to Sock::IsSelectable() (Vasil Dimov)
5db7d2ca0a moveonly: move IsSelectableSocket() from compat.h to sock.{h,cpp} (Vasil Dimov)

Pull request description:

  _This is a piece of #21878, chopped off to ease review._

  * convert standalone `IsSelectableSocket()` to `Sock::IsSelectable()`
  * convert standalone `SetSocketNonBlocking()` to `Sock::SetNonBlocking()`

  This further encapsulates syscalls inside the `Sock` class and makes the callers mockable.

ACKs for top commit:
  jonatack:
    ACK b527b54950 review/debug build/unit tests at each commit, cross-referenced the changes with `man select` and `man errno`, ran a signet node on the last commit with ip4/ip6//tor/i2p/cjdns and network connections were nominal
  dergoegge:
    Code review ACK b527b54950

Tree-SHA512: af783ce558c7a89e173f7ab323fb3517103d765c19b5d14de29f64706b4e1fea3653492e8ea73ae972699986aaddf2ae72c7cfaa7dad7614254283083b7d2632
2022-10-12 15:49:02 -04:00
fanquake
eb15569280
fuzz: add util/mempool/h.cpp
Moving the mempool code (Boost) out of util.h, results in a ~10% speedup
(for me) when compiling the fuzz tests.
2022-10-04 21:12:50 +01:00
fanquake
079cf88c0d
refactor: move Boost datetime usage to wallet
This means we don't need datetime in a --disable-wallet build, and it
isn't included in the kernel.
2022-10-01 11:41:53 +01:00
Anthony Towns
d394156b99 net: make CNode::m_permissionFlags const 2022-09-01 20:53:57 +10:00
MarcoFalke
fa64dd6673
refactor: Use type-safe std::chrono for addrman time 2022-07-26 11:06:10 +02:00
Vasil Dimov
b527b54950
net: convert standalone SetSocketNonBlocking() to Sock::SetNonBlocking()
This further encapsulates syscalls inside the `Sock` class.

Co-authored-by: practicalswift <practicalswift@users.noreply.github.com>
2022-07-20 16:26:24 +02:00
Vasil Dimov
b4bac55679
net: convert standalone IsSelectableSocket() to Sock::IsSelectable()
This makes the callers mockable.
2022-07-20 16:26:23 +02:00
John Newbery
8d8eeb422e [net processing] Remove CNode::nLocalServices 2022-07-14 15:25:15 +02:00
MacroFake
fa4be8e7c3
move-only: InitializeNode to handshake helper 2022-07-12 08:41:34 +02:00
MacroFake
fa7098947c
move-only: Version handshake to libtest_util 2022-07-12 08:41:24 +02:00
laanwj
55c9e2d790
Merge bitcoin/bitcoin#24378: refactor: make bind() and listen() mockable/testable
b2733ab6a8 net: add new method Sock::Listen() that wraps listen() (Vasil Dimov)
3ad7de225e net: add new method Sock::Bind() that wraps bind() (Vasil Dimov)

Pull request description:

  _This is a piece of #21878, chopped off to ease review._

  Add new methods `Sock::Bind()` and `Sock::Listen()` that wrap `bind()` and `listen()`.
  This will help to increase `Sock` usage and make more code mockable.

ACKs for top commit:
  pk-b2:
    ACK b2733ab6a8
  laanwj:
    Code review ACK b2733ab6a8

Tree-SHA512: c6e737606703e2106fe60cc000cfbbae3a7f43deadb25f70531e2cac0457e0b0581440279d14c76c492eb85c12af4adde52c30baf74542c41597e419817488e8
2022-06-28 15:10:00 +02:00
laanwj
ba29911e21
Merge bitcoin/bitcoin#25426: net: add new method Sock::GetSockName() that wraps getsockname() and use it in GetBindAddress()
a8d6abba5e net: change GetBindAddress() to take Sock argument (Vasil Dimov)
748dbcd9f2 net: add new method Sock::GetSockName() that wraps getsockname() (Vasil Dimov)

Pull request description:

  _This is a piece of #21878, chopped off to ease review._

  Wrap the syscall `getsockname()` in `Sock::GetSockName()` and change `GetBindAddress()` to take a `Sock` argument so that it can use the wrapper.

  This further encapsulates syscalls inside the `Sock` class and makes the callers mockable.

ACKs for top commit:
  laanwj:
    Code review ACK a8d6abba5e

Tree-SHA512: 3a73463258c0057487fb3fd67215816b03a1c5160f45e45930eaeef86bb3611ec385794cdb08339aa074feba8ad67cd2bfd3836f6cbd40834e15d933214a05dc
2022-06-28 13:40:05 +02:00
Vasil Dimov
a724c39606
net: rename Sock::Reset() to Sock::Close() and make it private
Outside of `Sock`, `Sock::Reset()` was used in just one place (in
`i2p.cpp`) which can use the assignment operator instead.

This simplifies the public `Sock` API by having one method less.
2022-06-22 09:19:43 +02:00
Vasil Dimov
e8ff3f0c52
net: remove CloseSocket()
Do the closing in `Sock::Reset()` and remove the standalone
`CloseSocket()`.

This reduces the exposure of low-level sockets (i.e. integer file
descriptors) outside of the `Sock` class.
2022-06-20 16:38:31 +02:00
Vasil Dimov
748dbcd9f2
net: add new method Sock::GetSockName() that wraps getsockname()
This will help to increase `Sock` usage and make more code mockable.
2022-06-20 14:51:18 +02:00
Vasil Dimov
ae263460ba
net: introduce Sock::WaitMany()
It allows waiting concurrently on more than one socket. Being a
`virtual` `Sock` method it can be overriden by tests.

Will be used to replace `CConnman::SocketEvents()`.
2022-06-09 14:20:18 +02:00
Vasil Dimov
b2733ab6a8
net: add new method Sock::Listen() that wraps listen()
This will help to increase `Sock` usage and make more code mockable.
2022-05-18 16:40:13 +02:00
Vasil Dimov
3ad7de225e
net: add new method Sock::Bind() that wraps bind()
This will help to increase `Sock` usage and make more code mockable.
2022-05-18 16:40:12 +02:00
Vasil Dimov
184e56d668
net: add new method Sock::SetSockOpt() that wraps setsockopt()
This will help to increase `Sock` usage and make more code mockable.
2022-04-15 09:14:49 +02:00
John Newbery
a40978dcbd [fuzz] Assert that Peer.m_tx_relay.m_relay_txs has been set correctly 2022-03-29 15:54:22 +01:00
John Newbery
575bbd0dea [net processing] Move tx relay data to Peer 2022-03-18 11:35:56 +00:00
eugene
fc471814dc
fuzz: FuzzedFileProvider::write should not return negative value
Doing so can lead to a glibc crash. Also the manpage for fopencookie
warns against this: https://man7.org/linux/man-pages/man3/fopencookie.3.html
2022-02-27 17:03:35 -05:00
MarcoFalke
fa4339e4c1
Extract CTxIn::MAX_SEQUENCE_NONFINAL constant 2022-01-26 15:10:44 +01:00
MarcoFalke
fa7238300c
fuzz: Limit fuzzed time to years 2000-2100 2022-01-10 11:15:38 +01:00
W. J. van der Laan
8f1c28a609
Merge bitcoin/bitcoin#21879: refactor: wrap accept() and extend usage of Sock
6bf6e9fd9d net: change CreateNodeFromAcceptedSocket() to take Sock (Vasil Dimov)
9e3cbfca7c net: use Sock in CConnman::ListenSocket (Vasil Dimov)
f8bd13f85a net: add new method Sock::Accept() that wraps accept() (Vasil Dimov)

Pull request description:

  _This is a piece of https://github.com/bitcoin/bitcoin/pull/21878, chopped off to ease review._

  Introduce an `accept(2)` wrapper `Sock::Accept()` and extend the usage of `Sock` in `CConnman::ListenSocket` and `CreateNodeFromAcceptedSocket()`.

ACKs for top commit:
  laanwj:
    Code review ACK 6bf6e9fd9d
  jamesob:
    ACK 6bf6e9fd9d ([`jamesob/ackr/21879.2.vasild.wrap_accept_and_extend_u`](https://github.com/jamesob/bitcoin/tree/ackr/21879.2.vasild.wrap_accept_and_extend_u))
  jonatack:
    ACK 6bf6e9fd9d per `git range-diff ea989de 976f6e8 6bf6e9f` -- only change since my last review was `s/listen_socket.socket/listen_socket.sock->Get()/` in `src/net.cpp: CConnman::SocketHandlerListening()` -- re-read the code changes, rebase/debug build/ran units following my previous full review (https://github.com/bitcoin/bitcoin/pull/21879#pullrequestreview-761251278)
  w0xlt:
    tACK 6bf6e9f

Tree-SHA512: dc6d1acc4f255f1f7e8cf6dd74e97975cf3d5959e9fc2e689f74812ac3526d5ee8b6a32eca605925d10a4f7b6ff1ce5e900344311e587d19786b48c54d021b64
2022-01-05 15:32:53 +01:00