cln/common
Rusty Russell 68f6a1a1dc common/jsonrpc_io: helper routines for reading JSON from sockets.
The efficient way to do this is to use membuf, which handles the buffer
control (only using memmove when necessary).  We have multiple places
where we opencoded this, some of which did not use membuf at all.

So now we create common infrastructure.  I tried making it a single
function but the various users are quite different, so instead I opted
for a toolbox approach.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2025-10-24 11:28:57 +10:30
..
test common/jsonrpc_io: helper routines for reading JSON from sockets. 2025-10-24 11:28:57 +10:30
addr.c splice: Add plugin for magic “splice all” command 2024-11-12 06:42:52 +10:30
addr.h splice: Add plugin for magic “splice all” command 2024-11-12 06:42:52 +10:30
amount.c common/amount: prevent scaling with invalid factors in amount scale functions 2025-09-15 11:29:49 +09:30
amount.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
autodata.c common: clean up autodata in common_shutdown(). 2021-11-17 10:51:48 +10:30
autodata.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
base32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
base32.h common/base32: make this a simple tal-wrapper around ccan/base32. 2018-05-10 02:28:44 +00:00
base64.c fuzz-tests: Enhance b64_encode() validation with roundtrip decoding 2025-07-08 12:54:56 +09:30
base64.h fuzz-tests: Enhance b64_encode() validation with roundtrip decoding 2025-07-08 12:54:56 +09:30
bech32.c common: rename bech32_encode parameter 2023-05-27 15:06:31 +09:30
bech32.h common: rename bech32_encode parameter 2023-05-27 15:06:31 +09:30
bech32_util.c common: Fix off-by-one in from_bech32_charset 2024-05-18 10:02:43 +02:00
bech32_util.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
bigsize.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
bigsize.h Remove varint typedef for bigsize 2020-09-23 16:30:36 +09:30
billboard.c build: allow DEVELOPER builds with -Og and gcc 9.4.0 2022-09-19 10:18:55 +09:30
billboard.h channeld/dualopend/lightningd: use channel_ready everywhere. 2022-09-12 09:34:52 +09:30
bip32.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
bip32.h wire: move remaining bitcoin functions out to bitcoin/ files. 2020-05-18 14:51:12 +02:00
blindedpath.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
blindedpath.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
blindedpay.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
blindedpay.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
blinding.c BOLTs: update which renames blinding terminology. 2024-10-16 07:14:32 +10:30
blinding.h BOLTs: update which renames blinding terminology. 2024-10-16 07:14:32 +10:30
blockheight_states.c common: remove type_to_string files altogther. 2024-03-20 13:51:48 +10:30
blockheight_states.h global: expose all fmt_X functions for direct use, make uniform. 2024-03-20 13:51:48 +10:30
bolt11.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
bolt11.h common/bolt11: remove #if DEVELOPER. 2023-09-21 20:08:24 +09:30
bolt11_json.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
bolt11_json.h common/bolt11_json: extract bolt11->json code. 2021-01-09 14:34:35 +10:30
bolt12.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
bolt12.h BOLT12: Update recurrence to latest spec draft. 2025-10-01 15:31:30 +09:30
bolt12_id.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
bolt12_id.h common/bolt12_id: generate alias tweak. 2024-08-01 12:31:48 +09:30
bolt12_merkle.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
bolt12_merkle.h lightningd: use tweak on node_id of different key, for createinvoicerequest. 2024-08-01 12:31:48 +09:30
channel_config.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
channel_config.h BOLTs: catch up with minor clarifications. 2024-05-09 16:14:23 -05:00
channel_id.c common/utils: macros to help get copy/compare across different types right. 2024-07-23 09:54:47 +09:30
channel_id.h splice: Add plugin for magic “splice all” command 2024-11-12 06:42:52 +10:30
channel_type.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
channel_type.h lightningd: always tell openingd/dualopend what channel type we want. 2025-08-13 14:20:28 +09:30
close_tx.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
close_tx.h hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
closing_fee.h closingd: configurable closing fee negotiation step 2020-04-07 13:52:48 +09:30
codex32.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
codex32.h codex32: use "cl" instead of "ms" as our HRP. 2023-08-02 16:12:32 +09:30
coin_mvt.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
coin_mvt.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
configdir.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
configdir.h common: return location of a ".setconfig" file when we load config. 2025-02-24 19:38:37 +10:30
configvar.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
configvar.h setconfig: make source for setconfig "setconfig transient". 2025-02-24 19:38:37 +10:30
crypto_state.h per_peer_state: remove struct crypto_state 2022-01-20 15:24:06 +10:30
cryptomsg.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
cryptomsg.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
daemon.c common: don't enable steal loop checking unless we're doing memleak checking. 2025-05-08 14:01:38 +09:30
daemon.h pyln-testing: use DEBUG_LIGHTNINGD to start gdb on lightningd during test. 2024-03-20 11:18:36 +10:30
daemon_conn.c common: fix dangling memory allocation in daemon_conn_new_() 2025-09-04 13:29:29 +09:30
daemon_conn.h common/daemon_conn: add function to read an fd. 2022-07-18 20:50:04 -05:00
decode_array.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
decode_array.h Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
deprecation.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
deprecation.h Makefile: add CLN_NEXT_VERSION, functions encoding deprecation schedule. 2024-01-26 10:30:22 +10:30
derive_basepoints.c common/utils: macros to help get copy/compare across different types right. 2024-07-23 09:54:47 +09:30
derive_basepoints.h common: remove #if DEVELOPER. 2023-09-21 20:08:24 +09:30
descriptor_checksum.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
descriptor_checksum.h common: add a descriptor checksum computation module 2020-11-10 10:34:13 -06:00
dev_disconnect.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
dev_disconnect.h dev_disconnect: add '<' to close after an incoming msg. 2025-01-27 11:07:04 +10:30
dijkstra.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
dijkstra.h common: fix dijkstra scoring. 2024-03-07 14:09:14 +01:00
ecdh.h common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
ecdh_hsmd.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
ecdh_hsmd.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
errcode.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
features.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
features.h BOLTs: Update to version with peer storage merged. 2025-03-18 14:30:58 +10:30
fee_states.c channeld: Adjust the feerate security margin profile 2024-05-13 14:06:45 -05:00
fee_states.h channeld: Adjust the feerate security margin profile 2024-05-13 14:06:45 -05:00
fp16.c common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
fp16.h common: extract fp16 routines into their own file. 2021-02-04 12:02:36 +10:30
gossip_constants.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
gossip_store.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
gossip_store.h gossip: add COMPLETED bit to mark records which are complete. 2025-10-01 13:29:33 +09:30
gossmap.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
gossmap.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
gossmods_listpeerchannels.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
gossmods_listpeerchannels.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
hash_u5.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
hash_u5.h common: use tabs everywhere. 2020-02-05 14:19:12 +01:00
hmac.c common/utils: macros to help get copy/compare across different types right. 2024-07-23 09:54:47 +09:30
hmac.h common/sphinx: don't make copy to compute packet hmac. 2020-12-11 15:51:24 +01:00
hsm_capable.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
hsm_capable.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
hsm_encryption.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
hsm_encryption.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
hsm_version.h HSMD: add new wire BIP137 sign message API 2025-05-13 13:19:03 +09:30
htlc.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
htlc_state.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
htlc_state.h Fix a-vs-an typos 2018-02-08 22:49:34 +01:00
htlc_trim.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_trim.h global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_tx.c global: thread zero fee option everywhere. 2023-06-29 11:28:47 -04:00
htlc_tx.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
htlc_wire.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
htlc_wire.h htlc_wire: fix crash when adding an HTLC 2025-08-27 14:14:31 +09:30
initial_channel.c common: remove take() leak if new_initial_channel() fails. 2025-10-23 06:44:04 +10:30
initial_channel.h global: expose all fmt_X functions for direct use, make uniform. 2024-03-20 13:51:48 +10:30
initial_commit_tx.c common: remove type_to_string files altogther. 2024-03-20 13:51:48 +10:30
initial_commit_tx.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
interactivetx.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
interactivetx.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
iso4217.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
iso4217.h BOLT12: remove -offers from bolt12 quotes, update them. 2025-02-11 20:19:01 -06:00
json_blinded_path.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
json_blinded_path.h common: move json_to_blinded_path into its own file. 2024-05-12 19:11:43 -05:00
json_channel_type.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
json_channel_type.h common: move json_add_channel_type from lightningd/ 2024-01-29 13:40:34 +10:30
json_command.c lightningd: check command should return as much detail as possible. 2024-06-25 08:47:50 +09:30
json_command.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
json_filter.c common/json_filter: routine to turn "filter" JSON into a filter. 2022-11-09 20:25:58 +10:30
json_filter.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
json_param.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
json_param.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
json_parse.c common: add json_dup_contents() to duplicate toks and buffer. 2025-10-24 11:28:57 +10:30
json_parse.h common: add json_dup_contents() to duplicate toks and buffer. 2025-10-24 11:28:57 +10:30
json_parse_simple.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
json_parse_simple.h common/json_parse_simple: drop redundant and wrong json_str_to_u64() 2025-09-22 10:16:51 +09:30
json_stream.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
json_stream.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
jsonrpc_errors.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
jsonrpc_io.c common/jsonrpc_io: helper routines for reading JSON from sockets. 2025-10-24 11:28:57 +10:30
jsonrpc_io.h common/jsonrpc_io: helper routines for reading JSON from sockets. 2025-10-24 11:28:57 +10:30
key_derive.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
key_derive.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
keyset.c common: update bolt to neaten pubkey descriptions. 2025-02-11 20:19:01 -06:00
keyset.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
lease_rates.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
lease_rates.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
Makefile common/jsonrpc_io: helper routines for reading JSON from sockets. 2025-10-24 11:28:57 +10:30
memleak.c common/memleak: show tal_steal operations on memleak. 2023-10-03 10:05:55 +02:00
memleak.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
msg_queue.c common: export helper membuf_tal_realloc. 2025-10-24 11:28:57 +10:30
msg_queue.h msg_queue: don't allow magic MSG_PASS_FD message for peers. 2022-01-20 15:24:06 +10:30
node_id.c common/node_id: runtime assertion override, not separate compile time for fuzzing. 2025-10-23 06:44:04 +10:30
node_id.h common/node_id: runtime assertion override, not separate compile time for fuzzing. 2025-10-23 06:44:04 +10:30
onion_decode.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
onion_decode.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
onion_encode.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
onion_encode.h global: rename blinding to path_key everywhere. 2024-10-16 07:14:32 +10:30
onion_message.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
onion_message.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
onion_message_parse.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
onion_message_parse.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
onionreply.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
onionreply.h common: add struct onionreply 2020-01-23 16:17:42 +10:30
overflows.h overflows: helpers for integer assignment overflows. 2021-07-20 13:28:38 -04:00
peer_billboard.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
peer_billboard.h common: peer_billboard() helper for updating the billboard. 2018-02-23 18:02:00 +01:00
peer_failed.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
peer_failed.h Makefile: run fuzzing corpora as normal unit tests in non-fuzzing mode. 2025-10-23 06:44:04 +10:30
peer_io.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
peer_io.h connectd: do nagle by packet type. 2022-01-20 15:24:06 +10:30
peer_status_wire.csv common: add peer_failed_warn_nodisconnect routine for non-disconnecting warnings 2023-10-23 15:48:50 +10:30
penalty_base.c check-includes: allow redundant "config.h" 2021-02-04 12:02:36 +10:30
penalty_base.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
per_peer_state.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
per_peer_state.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
permute_tx.c Update libwally to 0.8.8, support PSBTv2 2023-03-23 16:10:55 +10:30
permute_tx.h common: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
ping.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
ping.h channeld: restore ping command, but only for channeld. 2021-10-10 15:32:57 +02:00
plugin.c core: notify plugins when a log line is emitted. 2024-05-17 13:03:12 -05:00
plugin.h core: notify plugins when a log line is emitted. 2024-05-17 13:03:12 -05:00
psbt_internal.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
psbt_internal.h channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
psbt_keypath.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
psbt_keypath.h Support p2tr deposit addresses 2023-07-11 11:41:15 +09:30
psbt_open.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
psbt_open.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
pseudorand.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
pseudorand.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
random_select.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
random_select.h Apply @cdecker typo suggestions from code review 2020-08-28 10:56:50 +09:30
read_peer_msg.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
read_peer_msg.h common: move is_peer_error/is_peer_warning from read_peer_msg.c to wire_error.c 2023-10-23 15:48:50 +10:30
route.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
route.h pay: Switch to msat for total_capacity 2024-10-07 14:05:47 +02:00
scb_wire.csv global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
sciddir_or_pubkey.c common: add sciddir_or_pubkey type. 2024-05-12 19:11:43 -05:00
sciddir_or_pubkey.h common: add sciddir_or_pubkey type. 2024-05-12 19:11:43 -05:00
setup.c PSBT: tal_wally updates and docs 2025-05-13 14:52:15 +09:30
setup.h setup: create a common setup which will handle the wally-context 2020-05-19 13:35:42 +09:30
shutdown_scriptpubkey.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
shutdown_scriptpubkey.h common: implement op_return test. 2025-03-18 14:30:58 +10:30
sphinx.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
sphinx.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
splice_script.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
splice_script.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
status.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
status.h common: don't send trace messages by default, don't ratelimit at all. 2024-12-16 09:48:51 +10:30
status_levels.c logging: add TRACE between DEBUG and IO 2024-05-08 21:05:49 -05:00
status_levels.h pyln-testing: catch special CI string so we can have non-BROKEN CI warnings. 2025-09-30 11:37:31 +09:30
status_wire.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
status_wire.csv cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
status_wire.h status: generate messages rather than marshal/unmarshal manually. 2018-02-08 19:07:12 +01:00
subdaemon.c common: don't send trace messages by default, don't ratelimit at all. 2024-12-16 09:48:51 +10:30
subdaemon.h common/daemon.c: remove #ifdef DEVELOPER in favor of runtime flag. 2023-09-21 20:08:24 +09:30
timeout.c common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
timeout.h common: add routine for absolute timeouts (vs. relative). 2022-01-20 15:24:06 +10:30
trace.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
trace.h trace: don't use randombytes_buf(), use pseudorand. 2025-04-23 13:45:18 +09:30
tx_roles.c tx_roles: allow to be serialized btw processes 2023-02-07 21:03:36 -06:00
tx_roles.h tx_roles: allow to be serialized btw processes 2023-02-07 21:03:36 -06:00
utils.c common: export helper membuf_tal_realloc. 2025-10-24 11:28:57 +10:30
utils.h common: export helper membuf_tal_realloc. 2025-10-24 11:28:57 +10:30
utxo.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
utxo.h bitcoin: make input witness weight calculation explicit. 2025-05-06 12:27:53 +09:30
version.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
version.h lightningd: use OPT_EXITS for options which exit. 2023-06-03 10:50:29 +09:30
wallet.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
wallet.h wallet: remove unused TX_ANNOTATION type in transaction_annotations table. 2023-01-30 15:15:41 -06:00
wire_error.c global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
wire_error.h channeld: Fix tx_abort encoding 2024-11-21 14:15:36 +10:30
wireaddr.c common/wireaddr: Fix an out-of-bounds bug in the address parser 2025-09-22 10:23:13 +09:30
wireaddr.h common: routine to make wireaddr_internal from wireaddr. 2024-11-25 15:39:13 +10:30