Browse Source

common: rename decode_short_channel_ids.{c,h} to decode_array.{c.h}

This encoding scheme is no longer just used for short_channel_ids, so make
the names more generic.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
travis-debug
Rusty Russell 5 years ago
parent
commit
722b4942ed
  1. 2
      common/Makefile
  2. 12
      common/decode_array.c
  3. 12
      common/decode_array.h
  4. 2
      connectd/connectd.c
  5. 2
      devtools/Makefile
  6. 2
      devtools/decodemsg.c
  7. 6
      devtools/mkencoded.c
  8. 10
      devtools/print_wire.c
  9. 2
      gossipd/Makefile
  10. 10
      gossipd/queries.c
  11. 12
      gossipd/test/run-extended-info.c

2
common/Makefile

@ -15,7 +15,7 @@ COMMON_SRC_NOGEN := \
common/cryptomsg.c \
common/daemon.c \
common/daemon_conn.c \
common/decode_short_channel_ids.c \
common/decode_array.c \
common/derive_basepoints.c \
common/dev_disconnect.c \
common/features.c \

12
common/decode_short_channel_ids.c → common/decode_array.c

@ -1,5 +1,5 @@
#include <ccan/cast/cast.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/utils.h>
#include <wire/gen_peer_wire.h>
#include <wire/wire.h>
@ -27,7 +27,7 @@ struct short_channel_id *decode_short_ids(const tal_t *ctx, const u8 *encoded)
{
struct short_channel_id *scids;
size_t max = tal_count(encoded);
enum scid_encode_types type;
enum arr_encode_types type;
/* BOLT #7:
*
@ -41,13 +41,13 @@ struct short_channel_id *decode_short_ids(const tal_t *ctx, const u8 *encoded)
*/
type = fromwire_u8(&encoded, &max);
switch (type) {
case SHORTIDS_ZLIB:
case ARR_ZLIB:
encoded = unzlib(tmpctx, encoded, max);
if (!encoded)
return NULL;
max = tal_count(encoded);
/* fall thru */
case SHORTIDS_UNCOMPRESSED:
case ARR_UNCOMPRESSED:
scids = tal_arr(ctx, struct short_channel_id, 0);
while (max) {
struct short_channel_id scid;
@ -82,13 +82,13 @@ bigsize_t *decode_scid_query_flags(const tal_t *ctx,
* - MAY fail the connection.
*/
switch (qf->encoding_type) {
case SHORTIDS_ZLIB:
case ARR_ZLIB:
encoded = unzlib(tmpctx, encoded, max);
if (!encoded)
return NULL;
max = tal_count(encoded);
/* fall thru */
case SHORTIDS_UNCOMPRESSED:
case ARR_UNCOMPRESSED:
flags = tal_arr(ctx, bigsize_t, 0);
while (max)
tal_arr_expand(&flags,

12
common/decode_short_channel_ids.h → common/decode_array.h

@ -1,5 +1,5 @@
#ifndef LIGHTNING_COMMON_DECODE_SHORT_CHANNEL_IDS_H
#define LIGHTNING_COMMON_DECODE_SHORT_CHANNEL_IDS_H
#ifndef LIGHTNING_COMMON_DECODE_ARRAY_H
#define LIGHTNING_COMMON_DECODE_ARRAY_H
#include "config.h"
#include <ccan/short_types/short_types.h>
#include <ccan/tal/tal.h>
@ -13,9 +13,9 @@ struct tlv_query_short_channel_ids_tlvs_query_flags;
* * `0`: uncompressed array of `short_channel_id` types, in ascending order.
* * `1`: array of `short_channel_id` types, in ascending order, compressed with zlib deflate<sup>[1](#reference-1)</sup>
*/
enum scid_encode_types {
SHORTIDS_UNCOMPRESSED = 0,
SHORTIDS_ZLIB = 1
enum arr_encode_types {
ARR_UNCOMPRESSED = 0,
ARR_ZLIB = 1
};
struct short_channel_id *decode_short_ids(const tal_t *ctx, const u8 *encoded);
@ -44,4 +44,4 @@ enum scid_query_flag {
bigsize_t *decode_scid_query_flags(const tal_t *ctx,
const struct tlv_query_short_channel_ids_tlvs_query_flags *qf);
#endif /* LIGHTNING_COMMON_DECODE_SHORT_CHANNEL_IDS_H */
#endif /* LIGHTNING_COMMON_DECODE_ARRAY_H */

2
connectd/connectd.c

@ -28,7 +28,7 @@
#include <common/bech32_util.h>
#include <common/cryptomsg.h>
#include <common/daemon_conn.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/features.h>
#include <common/memleak.h>
#include <common/ping.h>

2
devtools/Makefile

@ -14,7 +14,7 @@ DEVTOOLS_COMMON_OBJS := \
common/bigsize.o \
common/bolt11.o \
common/crypto_state.o \
common/decode_short_channel_ids.o \
common/decode_array.o \
common/features.o \
common/gossip_rcvd_filter.o \
common/hash_u5.o \

2
devtools/decodemsg.c

@ -1,7 +1,7 @@
#include <ccan/err/err.h>
#include <ccan/opt/opt.h>
#include <ccan/tal/grab_file/grab_file.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/utils.h>
#include <devtools/gen_print_onion_wire.h>
#include <devtools/gen_print_wire.h>

6
devtools/mkencoded.c

@ -2,7 +2,7 @@
#include <bitcoin/short_channel_id.h>
#include <ccan/err/err.h>
#include <ccan/str/hex/hex.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/utils.h>
#include <stdio.h>
#include <wire/wire.h>
@ -41,9 +41,9 @@ int main(int argc, char *argv[])
if (!hex_decode(argv[1], strlen(argv[1]), &encoding, sizeof(encoding)))
errx(1, "Expected single hex byte not %s", argv[1]);
if (encoding == SHORTIDS_UNCOMPRESSED)
if (encoding == ARR_UNCOMPRESSED)
printf("%02x%s\n", encoding, tal_hex(NULL, data));
else if (encoding == SHORTIDS_ZLIB) {
else if (encoding == ARR_ZLIB) {
/* https://www.zlib.net/zlib_tech.html:
* the only expansion is an overhead of five bytes per 16 KB
* block (about 0.03%), plus a one-time overhead of six bytes

10
devtools/print_wire.c

@ -1,6 +1,6 @@
#include <ccan/mem/mem.h>
#include <ccan/utf8/utf8.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/type_to_string.h>
#include <devtools/print_wire.h>
#include <errno.h>
@ -114,10 +114,10 @@ static void printwire_encoded_short_ids(const u8 **cursor, size_t *plen, size_t
scids = decode_short_ids(tmpctx, arr);
if (scids) {
switch (arr[0]) {
case SHORTIDS_UNCOMPRESSED:
case ARR_UNCOMPRESSED:
printf(" (UNCOMPRESSED)");
break;
case SHORTIDS_ZLIB:
case ARR_ZLIB:
printf(" (ZLIB)");
break;
default:
@ -129,8 +129,8 @@ static void printwire_encoded_short_ids(const u8 **cursor, size_t *plen, size_t
} else {
/* If it was unknown, that's different from corrupt */
if (len == 0
|| arr[0] == SHORTIDS_UNCOMPRESSED
|| arr[0] == SHORTIDS_ZLIB) {
|| arr[0] == ARR_UNCOMPRESSED
|| arr[0] == ARR_ZLIB) {
printf(" **CORRUPT**");
return;
} else {

2
gossipd/Makefile

@ -49,7 +49,7 @@ GOSSIPD_COMMON_OBJS := \
common/cryptomsg.o \
common/daemon.o \
common/daemon_conn.o \
common/decode_short_channel_ids.o \
common/decode_array.o \
common/derive_basepoints.o \
common/dev_disconnect.o \
common/features.o \

10
gossipd/queries.c

@ -4,7 +4,7 @@
#include <ccan/crc32c/crc32c.h>
#include <ccan/tal/tal.h>
#include <common/daemon_conn.h>
#include <common/decode_short_channel_ids.h>
#include <common/decode_array.h>
#include <common/status.h>
#include <common/type_to_string.h>
#include <common/wire_error.h>
@ -116,10 +116,10 @@ static void encoding_end_no_compress(u8 **encoded, size_t off)
static bool encoding_end_prepend_type(u8 **encoded, size_t max_bytes)
{
if (encoding_end_zlib(encoded, 1))
**encoded = SHORTIDS_ZLIB;
**encoded = ARR_ZLIB;
else {
encoding_end_no_compress(encoded, 1);
**encoded = SHORTIDS_UNCOMPRESSED;
**encoded = ARR_UNCOMPRESSED;
}
#if DEVELOPER
@ -133,10 +133,10 @@ static bool encoding_end_prepend_type(u8 **encoded, size_t max_bytes)
static UNNEEDED bool encoding_end_external_type(u8 **encoded, u8 *type, size_t max_bytes)
{
if (encoding_end_zlib(encoded, 0))
*type = SHORTIDS_ZLIB;
*type = ARR_ZLIB;
else {
encoding_end_no_compress(encoded, 0);
*type = SHORTIDS_UNCOMPRESSED;
*type = ARR_UNCOMPRESSED;
}
return tal_count(*encoded) <= max_bytes;

12
gossipd/test/run-extended-info.c

@ -297,11 +297,11 @@ static u8 *get_scid_array(const tal_t *ctx,
}
if (json_tok_streq(test_vector, encoding, "UNCOMPRESSED")) {
encoding_end_no_compress(&encoded, 1);
encoded[0] = SHORTIDS_UNCOMPRESSED;
encoded[0] = ARR_UNCOMPRESSED;
} else {
assert(json_tok_streq(test_vector, encoding, "COMPRESSED_ZLIB"));
assert(encoding_end_zlib(&encoded, 1));
encoded[0] = SHORTIDS_ZLIB;
encoded[0] = ARR_ZLIB;
}
return encoded;
@ -380,13 +380,13 @@ static u8 *test_reply_channel_range(const char *test_vector, const jsmntok_t *ob
if (json_tok_streq(test_vector, encodingtok, "UNCOMPRESSED")) {
encoding_end_no_compress(&tlvs->timestamps_tlv->encoded_timestamps,
0);
tlvs->timestamps_tlv->encoding_type = SHORTIDS_UNCOMPRESSED;
tlvs->timestamps_tlv->encoding_type = ARR_UNCOMPRESSED;
} else {
assert(json_tok_streq(test_vector, encodingtok,
"COMPRESSED_ZLIB"));
assert(encoding_end_zlib(&tlvs->timestamps_tlv->encoded_timestamps,
0));
tlvs->timestamps_tlv->encoding_type = SHORTIDS_ZLIB;
tlvs->timestamps_tlv->encoding_type = ARR_ZLIB;
}
}
@ -443,11 +443,11 @@ get_query_flags_array(const tal_t *ctx,
}
if (json_tok_streq(test_vector, encoding, "UNCOMPRESSED")) {
encoding_end_no_compress(&tlv->encoded_query_flags, 0);
tlv->encoding_type = SHORTIDS_UNCOMPRESSED;
tlv->encoding_type = ARR_UNCOMPRESSED;
} else {
assert(json_tok_streq(test_vector, encoding, "COMPRESSED_ZLIB"));
assert(encoding_end_zlib(&tlv->encoded_query_flags, 0));
tlv->encoding_type = SHORTIDS_ZLIB;
tlv->encoding_type = ARR_ZLIB;
}
return tlv;

Loading…
Cancel
Save