core-lightning/lightningd
Rusty Russell 3f65f0f000 lightningd: fix up malformed onion handling.
In the case where we can't decrypt the onion, we can't fail it in the
normal way (which is encrypted using the onion shared secret), we need
to respond with a update_fail_malformed_htlc message.

Moreover, we need to remember this for persistence.  This means that
we really have three conclusions for an HTLC: fulfilled, failed,
malformed.  Fix up the logic everywhere which assumed failed or
fulfilled.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-06-23 09:29:42 +09:30
..
channel lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
gossip lightningd: update BOLT to add channel_reestablish message. 2017-06-23 09:29:42 +09:30
handshake BOLT update for 8-byte satoshi values, and other updates. 2017-06-07 09:19:04 +09:30
hsm subdaemons: handle master or gossipd failing. 2017-06-07 09:19:04 +09:30
opening channel: change initialization to have explicit local amount, and commot indices. 2017-06-23 09:29:42 +09:30
test lightningd/channel: support forcing HTLCs to restore channel state. 2017-06-23 09:29:42 +09:30
.gitignore Update .gitignore files. 2017-05-12 12:59:09 +02:00
build_utxos.c wallet: Move UTXO tracking to DB 2017-06-06 09:16:10 +09:30
build_utxos.h lightningd/funding_tx: fill in scriptsigs for p2sh UTXOs. 2017-03-07 11:31:55 +10:30
channel_config.c lightningd: fix minimum depth. 2017-04-12 09:09:19 -07:00
channel_config.h BOLT update for 8-byte satoshi values, and other updates. 2017-06-07 09:19:04 +09:30
channel.c lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
channel.h lightningd/channel: support forcing HTLCs to restore channel state. 2017-06-23 09:29:42 +09:30
commit_tx.c Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
commit_tx.h Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
crypto_sync.c lightningd: --dev-disconnect support. 2017-05-25 14:24:47 +09:30
crypto_sync.h crypto_sync: synchronous routines for inter-peer crypto. 2017-02-21 15:15:29 +10:30
cryptomsg.c lightningd/cryptomsg: fix use-after-free introduced by dev_disconnect. 2017-06-23 09:29:42 +09:30
cryptomsg.h struct secret: use everywhere. 2017-05-09 11:43:35 +09:30
daemon_conn.c subdaemons: handle master or gossipd failing. 2017-06-07 09:19:04 +09:30
daemon_conn.h subdaemons: handle master or gossipd failing. 2017-06-07 09:19:04 +09:30
debug.c lightningd: --dev-disconnect support. 2017-05-25 14:24:47 +09:30
debug.h lightningd: --dev-debugger=<subdaemon> 2017-02-24 16:22:56 +10:30
derive_basepoints.c Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
derive_basepoints.h derive_basepoints: make arguments optional. 2017-05-25 14:24:47 +09:30
dev_disconnect.c lightningd: --dev-disconnect support. 2017-05-25 14:24:47 +09:30
dev_disconnect.h lightningd: --dev-disconnect support. 2017-05-25 14:24:47 +09:30
dev_ping.c sphinx: Updating daemon to new sphinx implementation 2017-05-02 11:47:52 +02:00
funding_tx.c lightningd/funding_tx: fix no-change-needed case. 2017-05-25 14:24:47 +09:30
funding_tx.h lightningd/funding_tx: output number is 16 bit. 2017-03-07 11:33:24 +10:30
gossip_control.c lightningd/peer_control: embed id, don't use pointer. 2017-06-07 09:19:04 +09:30
gossip_control.h lightningd/lightningd: wire up lightningd_gossip. 2017-01-10 15:38:33 +10:30
gossip_msg.c routing: Cleaning up old hostname and port handling 2017-05-10 12:37:44 +09:30
gossip_msg.h routing: Cleaning up old hostname and port handling 2017-05-10 12:37:44 +09:30
hsm_control.c lightningd/peer_control: embed id, don't use pointer. 2017-06-07 09:19:04 +09:30
hsm_control.h lightningd/lightningd: start HSM at initialization time. 2017-01-10 15:38:33 +10:30
htlc_end.c lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
htlc_end.h lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
htlc_tx.c Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
htlc_tx.h bitcoin/script: update scripts to the lightningnetwork/lightning-rfc#123 version 2017-03-07 16:16:59 +10:30
htlc_wire.c lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
htlc_wire.h lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
key_derive.c Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
key_derive.h struct secret: use everywhere. 2017-05-09 11:43:35 +09:30
lightningd.c lightningd: explictly split htlc_in and htlc_out. 2017-06-23 09:29:42 +09:30
lightningd.h lightningd: explictly split htlc_in and htlc_out. 2017-06-23 09:29:42 +09:30
Makefile lightningd: remove dev-newhtlc command. 2017-06-23 09:29:42 +09:30
msg_queue.c lightningd/msg_queue: add msg_wake helper. 2017-04-25 22:00:28 +02:00
msg_queue.h lightningd/msg_queue: add msg_wake helper. 2017-04-25 22:00:28 +02:00
new_connection.c BOLT update for 8-byte satoshi values, and other updates. 2017-06-07 09:19:04 +09:30
new_connection.h lightningd: set up reconnect timer if we don't want to forget peer. 2017-05-25 14:24:47 +09:30
pay.c lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
pay.h lightningd: explictly split htlc_in and htlc_out. 2017-06-23 09:29:42 +09:30
peer_control.c channeld: get handed existing HTLCs in init message. 2017-06-23 09:29:42 +09:30
peer_control.h channeld: get commit indices from master. 2017-06-23 09:29:42 +09:30
peer_failed.c Massive BOLT text underscore and formatting updates. 2017-06-07 09:19:04 +09:30
peer_failed.h lightningd/peer_failed: helper to send PKT_ERR and exit daemon. 2017-02-24 16:22:55 +10:30
peer_htlcs.c lightningd: fix up malformed onion handling. 2017-06-23 09:29:42 +09:30
peer_htlcs.h channeld: get handed existing HTLCs in init message. 2017-06-23 09:29:42 +09:30
peer_state.h openingd: fundee: don't send watch command to master. 2017-05-25 14:24:47 +09:30
ping.c lightningd: add dev_ping command for channeld. 2017-04-25 22:00:28 +02:00
ping.h lightningd/ping: ping support. 2017-04-25 22:00:28 +02:00
sphinx.c sphinx: Add BOLT#4 quotes. 2017-06-07 09:19:04 +09:30
sphinx.h BOLT update for 8-byte satoshi values, and other updates. 2017-06-07 09:19:04 +09:30
status.c lightningd/status: reuse wire code for sending status. 2017-03-20 07:50:53 +10:30
status.h lightningd/status: support daemon_conn for status_trace and status_failed. 2017-03-20 07:50:53 +10:30
subd.c lightningd: --dev-disconnect support. 2017-05-25 14:24:47 +09:30
subd.h Minor fixes: feedback from Christian 2017-05-25 14:24:47 +09:30
utxo.c lightningd/utxo: helpers to translate from utxo * <-> utxo ** 2017-05-25 14:24:47 +09:30
utxo.h wallet: Move UTXO tracking to DB 2017-06-06 09:16:10 +09:30