common: add struct onionreply

I really want a type which means "I am a wrapped onion reply" as separate
from "I am a normal wire msg".  Currently both user u8 *, and I got very
confused trying to figure out where each one was an unwrapped error msg,
or where it still needed (un)wrapping.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2020-01-22 16:58:25 +10:30
parent aae5148206
commit aa6aad0131
6 changed files with 88 additions and 0 deletions

24
common/onionreply.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef LIGHTNING_COMMON_ONIONREPLY_H
#define LIGHTNING_COMMON_ONIONREPLY_H
#include "config.h"
#include <ccan/short_types/short_types.h>
#include <ccan/tal/tal.h>
/* A separate type for an onion reply, to differentiate from a wire msg. */
struct onionreply {
u8 *contents;
};
/**
* Wire marshalling routines for onionreply
*/
void towire_onionreply(u8 **cursor, const struct onionreply *r);
struct onionreply *fromwire_onionreply(const tal_t *ctx,
const u8 **cursor, size_t *max);
struct onionreply *dup_onionreply(const tal_t *ctx,
const struct onionreply *r TAKES);
struct onionreply *new_onionreply(const tal_t *ctx, const u8 *contents TAKES);
#endif /* LIGHTNING_COMMON_ONIONREPLY_H */