From 38c50d0d3de38a49a2c3f42b1351b2c7608e7c1c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 21 Aug 2020 13:19:40 +1000 Subject: [PATCH] libei: push the new brei_message one level up into eiproto This is the proto parser and it'll know when we need an fd on the message, so let's make sure we have everything in place to fetch the fd. Signed-off-by: Peter Hutterer --- src/libei-proto.c | 9 +++++---- src/libei-proto.h | 3 ++- src/libei.c | 3 +-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/libei-proto.c b/src/libei-proto.c index 706d621..84c4ed8 100644 --- a/src/libei-proto.c +++ b/src/libei-proto.c @@ -49,14 +49,15 @@ static void servermessage_cleanup(ServerMessage **m) { #define _cleanup_servermessage_ _cleanup_(servermessage_cleanup) struct message * -ei_proto_parse_message(const char *msgdata, size_t msglen, size_t *consumed) +ei_proto_parse_message(struct brei_message *bmsg, size_t *consumed) { - _cleanup_servermessage_ ServerMessage *proto = server_message__unpack(NULL, msglen, - (const unsigned char*)msgdata); + _cleanup_servermessage_ ServerMessage *proto = server_message__unpack(NULL, + bmsg->len, + (const unsigned char*)bmsg->data); if (!proto) return NULL; - *consumed = msglen; + *consumed = bmsg->len; _cleanup_message_ struct message *msg = xalloc(sizeof(*msg)); diff --git a/src/libei-proto.h b/src/libei-proto.h index 0444450..2c227e0 100644 --- a/src/libei-proto.h +++ b/src/libei-proto.h @@ -28,6 +28,7 @@ #include "util-macros.h" #include "util-mem.h" +#include "brei-shared.h" #include "libei-private.h" /* The message type for the wire format */ @@ -71,7 +72,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(struct message*, message_free); #define _cleanup_message_ _cleanup_(message_freep) struct message * -ei_proto_parse_message(const char *data, size_t len, size_t *consumed); +ei_proto_parse_message(struct brei_message *message, size_t *consumed); int ei_proto_send_connect(struct ei *ei); diff --git a/src/libei.c b/src/libei.c index c1a80ca..cab7584 100644 --- a/src/libei.c +++ b/src/libei.c @@ -544,8 +544,7 @@ connection_message_callback(struct brei_message *bmsg, void *userdata) struct ei *ei = userdata; size_t consumed; - _cleanup_message_ struct message *msg = - ei_proto_parse_message(bmsg->data, bmsg->len, &consumed); + _cleanup_message_ struct message *msg = ei_proto_parse_message(bmsg, &consumed); if (!msg) return -EBADMSG;