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;