mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-18 21:35:11 +01:00
wire/wire_sync: helper routines for direct read/write of messages.
Some of the simple daemons want to use this, as do the status messages. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
2b8c7cc840
commit
9d316e39cd
@ -4,15 +4,17 @@
|
||||
wire-wrongdir:
|
||||
$(MAKE) -C .. wire-all
|
||||
|
||||
WIRE_HEADERS := wire/wire.h
|
||||
WIRE_HEADERS := wire/wire.h wire/wire_sync.h
|
||||
WIRE_GEN_HEADERS := wire/gen_peer_wire.h wire/gen_onion_wire.h
|
||||
WIRE_GEN_SRC := wire/gen_peer_wire.c
|
||||
WIRE_GEN_ONION_SRC := wire/gen_onion_wire.c
|
||||
WIRE_SRC := wire/fromwire.c \
|
||||
WIRE_SRC := wire/wire_sync.c \
|
||||
wire/fromwire.c \
|
||||
wire/towire.c
|
||||
|
||||
WIRE_OBJS := $(WIRE_SRC:.c=.o) $(WIRE_GEN_SRC:.c=.o)
|
||||
WIRE_ONION_OBJS := $(WIRE_GEN_ONION_SRC:.c=.o)
|
||||
$(WIRE_OBJS): $(CCAN_HEADERS)
|
||||
|
||||
# They may not have the bolts.
|
||||
BOLT_EXTRACT=$(BOLTDIR)/tools/extract-formats.py
|
||||
|
26
wire/wire_sync.c
Normal file
26
wire/wire_sync.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include "wire/wire_sync.h"
|
||||
#include <assert.h>
|
||||
#include <ccan/endian/endian.h>
|
||||
#include <ccan/read_write_all/read_write_all.h>
|
||||
|
||||
bool wire_sync_write(int fd, const void *msg)
|
||||
{
|
||||
be16 be_len = cpu_to_be16(tal_count(msg));
|
||||
|
||||
assert(be16_to_cpu(be_len) == tal_count(msg));
|
||||
return write_all(fd, &be_len, sizeof(be_len))
|
||||
&& write_all(fd, msg, tal_count(msg));
|
||||
}
|
||||
|
||||
u8 *wire_sync_read(const tal_t *ctx, int fd)
|
||||
{
|
||||
be16 be_len;
|
||||
u8 *msg;
|
||||
|
||||
if (!read_all(fd, &be_len, sizeof(be_len)))
|
||||
return NULL;
|
||||
msg = tal_arr(ctx, u8, be16_to_cpu(be_len));
|
||||
if (!read_all(fd, msg, be16_to_cpu(be_len)))
|
||||
return tal_free(msg);
|
||||
return msg;
|
||||
}
|
10
wire/wire_sync.h
Normal file
10
wire/wire_sync.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef LIGHTNING_WIRE_WIRE_SYNC_H
|
||||
#define LIGHTNING_WIRE_WIRE_SYNC_H
|
||||
#include "config.h"
|
||||
#include <ccan/short_types/short_types.h>
|
||||
#include <ccan/tal/tal.h>
|
||||
|
||||
bool wire_sync_write(int fd, const void *msg);
|
||||
u8 *wire_sync_read(const tal_t *ctx, int fd);
|
||||
|
||||
#endif /* LIGHTNING_WIRE_WIRE_SYNC_H */
|
Loading…
Reference in New Issue
Block a user