Browse Source

test/run-peer-wire.c: fix for variable-length reason field in update_fail_htlc

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ppa-0.6.1
Rusty Russell 8 years ago
parent
commit
71ab218ed8
  1. 20
      wire/test/run-peer-wire.c

20
wire/test/run-peer-wire.c

@ -186,7 +186,8 @@ struct msg_open_channel {
struct msg_update_fail_htlc {
struct channel_id channel_id;
u64 id;
u8 reason[154];
u16 len;
u8 *reason;
};
struct msg_channel_announcement {
struct signature node_signature_1;
@ -433,6 +434,7 @@ static void *towire_struct_update_fail_htlc(const tal_t *ctx,
return towire_update_fail_htlc(ctx,
&s->channel_id,
s->id,
s->len,
s->reason);
}
@ -440,12 +442,14 @@ static struct msg_update_fail_htlc *fromwire_struct_update_fail_htlc(const tal_t
{
struct msg_update_fail_htlc *s = tal(ctx, struct msg_update_fail_htlc);
if (fromwire_update_fail_htlc(p, plen,
if (!fromwire_update_fail_htlc(ctx, p, plen,
&s->channel_id,
&s->id,
s->reason))
return s;
return tal_free(s);
&s->reason))
return tal_free(s);
s->len = tal_count(s->reason);
return s;
}
static void *towire_struct_update_fulfill_htlc(const tal_t *ctx,
@ -712,7 +716,8 @@ static bool funding_locked_eq(const struct msg_funding_locked *a,
static bool update_fail_htlc_eq(const struct msg_update_fail_htlc *a,
const struct msg_update_fail_htlc *b)
{
return eq_with(a, b, reason);
return eq_with(a, b, id)
&& eq_var(a, b, len, reason);
}
static bool commit_sig_eq(const struct msg_commit_sig *a,
@ -887,6 +892,9 @@ int main(void)
test_corruption(&fl, fl2, funding_locked);
memset(&ufh, 2, sizeof(ufh));
ufh.len = 2;
ufh.reason = tal_arr(ctx, u8, 2);
memset(ufh.reason, 2, 2);
msg = towire_struct_update_fail_htlc(ctx, &ufh);
len = tal_count(msg);

Loading…
Cancel
Save