From ca6153c314bbba8b4d227d6cbc7ba5a72885c60b Mon Sep 17 00:00:00 2001 From: James McCoy Date: Wed, 15 Jun 2016 09:26:20 -0400 Subject: [PATCH] [PATCH] Use msgpack_pack_v4raw(_body) with new msgpack-c versions In msgpack-c's 1.0.0 release, the code was changed to be compatible with the v5 msgpack spec, specifically separating out the STR and BIN types as replacements for the old RAW type. While the STR type is likely the right replacement type to use, it does introduce a str 8 variant that wasn't present for the old RAW type. For better compatibility, the msgpack_pack_v4raw functions were added to directly map to the old functionality. Signed-off-by: James McCoy Gbp-Pq: Name msgpack-compat.patch --- formats/msgpack.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/formats/msgpack.c b/formats/msgpack.c index dc1ab0c..a3abc8b 100644 --- a/formats/msgpack.c +++ b/formats/msgpack.c @@ -8,6 +8,18 @@ #include #include +/* msgpack-c versions >= 1.0 changed to support the v5 msgpack spec. + * As part of doing this, the (un)pack_raw functions were replaced with + * more explicit (un)pack_str and (un)pack_bin. 1.2.0 introduced the + * (un)pack_v4raw functions to retain compatibility. + */ +#if defined(MSGPACK_VERSION_MAJOR) && defined(MSGPACK_VERSION_MINOR) \ + && MSGPACK_VERSION_MAJOR > 1 \ + || (MSGPACK_VERSION_MAJOR == 1 && MSGPACK_VERSION_MINOR >= 2) +#define msgpack_pack_raw msgpack_pack_v4raw +#define msgpack_pack_raw_body msgpack_pack_v4raw_body +#endif + struct msg_out { char *p; size_t sz; -- 2.30.2