mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-01-09 09:50:16 +01:00
proto: rename the Frame message to Packet
We're about to use Frame in the protocol itself, so let's not make those confusing. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
8a355bbc2a
commit
730a82d28d
5 changed files with 61 additions and 61 deletions
|
|
@ -238,6 +238,6 @@ message ServerMessage {
|
|||
* This message is used by server and client but it's an implementation
|
||||
* detail, not a part of the actual protocol.
|
||||
*/
|
||||
message Frame {
|
||||
message Packet {
|
||||
fixed32 length = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,15 +46,15 @@ brei_message_take_fd(struct brei_message *m)
|
|||
return fd;
|
||||
}
|
||||
|
||||
static void frame_cleanup(Frame **f) {
|
||||
static void packet_cleanup(Packet **f) {
|
||||
if (*f)
|
||||
frame__free_unpacked(*f, NULL);
|
||||
packet__free_unpacked(*f, NULL);
|
||||
}
|
||||
#define _cleanup_frame_ _cleanup_(frame_cleanup)
|
||||
#define _cleanup_packet_ _cleanup_(packet_cleanup)
|
||||
|
||||
|
||||
/**
|
||||
* The BREI (i.e. the EI protocol) is using Frames to separate the messages.
|
||||
* The BREI (i.e. the EI protocol) is using packets to separate the messages.
|
||||
* This helper takes the data of length msglength and returns the position
|
||||
* of the next actual message.
|
||||
*
|
||||
|
|
@ -66,27 +66,27 @@ static void frame_cleanup(Frame **f) {
|
|||
static const char *
|
||||
brei_next_message(const char *data, size_t *msglen, size_t *consumed)
|
||||
{
|
||||
/* Every message is prefixed by a fixed-length Frame message which
|
||||
* contains the length of the next message. Frames are always the
|
||||
/* Every message is prefixed by a fixed-length packet message which
|
||||
* contains the length of the next message. packets are always the
|
||||
* same length, so we only need to calculate the size once.
|
||||
*/
|
||||
static size_t framelen = 0;
|
||||
static size_t packetlen = 0;
|
||||
|
||||
if (framelen == 0) {
|
||||
Frame f = FRAME__INIT;
|
||||
if (packetlen == 0) {
|
||||
Packet f = PACKET__INIT;
|
||||
f.length = 0xffff;
|
||||
framelen = frame__get_packed_size(&f);
|
||||
assert(framelen >= 5);
|
||||
packetlen = packet__get_packed_size(&f);
|
||||
assert(packetlen >= 5);
|
||||
}
|
||||
|
||||
_cleanup_frame_ Frame *frame = frame__unpack(NULL, framelen, (const unsigned char *)data);
|
||||
if (!frame)
|
||||
_cleanup_packet_ Packet *packet = packet__unpack(NULL, packetlen, (const unsigned char *)data);
|
||||
if (!packet)
|
||||
return NULL;
|
||||
|
||||
*msglen = frame->length;
|
||||
*consumed = framelen;
|
||||
*msglen = packet->length;
|
||||
*consumed = packetlen;
|
||||
|
||||
return data + framelen;
|
||||
return data + packetlen;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -158,7 +158,7 @@ MUNIT_TEST(test_proto_next_message)
|
|||
{
|
||||
char data[64];
|
||||
|
||||
/* Invalid frame, rest can be random */
|
||||
/* Invalid packet, rest can be random */
|
||||
memset(data, 0xab, sizeof(data));
|
||||
data[0] = 0xaa;
|
||||
|
||||
|
|
@ -171,19 +171,19 @@ MUNIT_TEST(test_proto_next_message)
|
|||
munit_assert_int(consumed, ==, 0xbc);
|
||||
|
||||
/* Now try a valid one */
|
||||
Frame f = FRAME__INIT;
|
||||
Packet f = PACKET__INIT;
|
||||
f.length = 0xcd;
|
||||
size_t framelen = frame__get_packed_size(&f);
|
||||
size_t packetlen = packet__get_packed_size(&f);
|
||||
|
||||
unsigned char buf[framelen * 4];
|
||||
unsigned char buf[packetlen * 4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
frame__pack(&f, buf + framelen * i);
|
||||
packet__pack(&f, buf + packetlen * i);
|
||||
|
||||
const char *ptr = (char*)buf;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
const char *next_frame = brei_next_message(ptr, &msglen, &consumed);
|
||||
munit_assert_ptr_equal(next_frame, buf + (i + 1) * framelen);
|
||||
munit_assert_int(consumed, ==, framelen);
|
||||
const char *next_packet = brei_next_message(ptr, &msglen, &consumed);
|
||||
munit_assert_ptr_equal(next_packet, buf + (i + 1) * packetlen);
|
||||
munit_assert_int(consumed, ==, packetlen);
|
||||
munit_assert_int(msglen, ==, 0xcd);
|
||||
ptr += consumed;
|
||||
}
|
||||
|
|
@ -205,18 +205,18 @@ brei_dispatch_cb(struct brei_message *msg,
|
|||
static inline void
|
||||
send_data(int fd, const char *data, size_t data_size)
|
||||
{
|
||||
Frame f = FRAME__INIT;
|
||||
Packet f = PACKET__INIT;
|
||||
f.length = 1;
|
||||
size_t framelen = frame__get_packed_size(&f);
|
||||
size_t packetlen = packet__get_packed_size(&f);
|
||||
|
||||
/* note: data is null-terminated, we copy all of it but only use
|
||||
datalen to check truncation works */
|
||||
unsigned char buf[1024] = {0};
|
||||
f.length = data_size;
|
||||
frame__pack(&f, buf);
|
||||
memcpy(buf + framelen, data, strlen(data)); /* intentionally strlen */
|
||||
int rc = xsend(fd, buf, framelen + data_size);
|
||||
munit_assert_int(rc, ==, framelen + data_size);
|
||||
packet__pack(&f, buf);
|
||||
memcpy(buf + packetlen, data, strlen(data)); /* intentionally strlen */
|
||||
int rc = xsend(fd, buf, packetlen + data_size);
|
||||
munit_assert_int(rc, ==, packetlen + data_size);
|
||||
}
|
||||
|
||||
MUNIT_TEST(test_brei_dispatch)
|
||||
|
|
|
|||
|
|
@ -168,13 +168,13 @@ static int
|
|||
ei_proto_send_msg(struct ei *ei, const ClientMessage *msg)
|
||||
{
|
||||
size_t msglen = client_message__get_packed_size(msg);
|
||||
Frame frame = FRAME__INIT;
|
||||
frame.length = msglen;
|
||||
size_t framelen = frame__get_packed_size(&frame);
|
||||
Packet packet = PACKET__INIT;
|
||||
packet.length = msglen;
|
||||
size_t packetlen = packet__get_packed_size(&packet);
|
||||
|
||||
uint8_t buf[framelen + msglen];
|
||||
frame__pack(&frame, buf);
|
||||
client_message__pack(msg, buf + framelen);
|
||||
uint8_t buf[packetlen + msglen];
|
||||
packet__pack(&packet, buf);
|
||||
client_message__pack(msg, buf + packetlen);
|
||||
|
||||
int rc = min(0, xsend(source_get_fd(ei->source), buf, sizeof(buf)));
|
||||
|
||||
|
|
@ -187,13 +187,13 @@ _unused_ static int
|
|||
ei_proto_send_msg_with_fds(struct ei *ei, const ClientMessage *msg, int *fds)
|
||||
{
|
||||
size_t msglen = client_message__get_packed_size(msg);
|
||||
Frame frame = FRAME__INIT;
|
||||
frame.length = msglen;
|
||||
size_t framelen = frame__get_packed_size(&frame);
|
||||
Packet packet = PACKET__INIT;
|
||||
packet.length = msglen;
|
||||
size_t packetlen = packet__get_packed_size(&packet);
|
||||
|
||||
uint8_t buf[framelen + msglen];
|
||||
frame__pack(&frame, buf);
|
||||
client_message__pack(msg, buf + framelen);
|
||||
uint8_t buf[packetlen + msglen];
|
||||
packet__pack(&packet, buf);
|
||||
client_message__pack(msg, buf + packetlen);
|
||||
|
||||
int rc = min(0, xsend_with_fd(source_get_fd(ei->source), buf, sizeof(buf), fds));
|
||||
log_wire_message(ei, msg, rc);
|
||||
|
|
|
|||
|
|
@ -72,13 +72,13 @@ eis_proto_send_msg(struct eis_client *client, const ServerMessage *msg)
|
|||
log_wire_message(eis_client_get_context(client), msg);
|
||||
|
||||
size_t msglen = server_message__get_packed_size(msg);
|
||||
Frame frame = FRAME__INIT;
|
||||
frame.length = msglen;
|
||||
size_t framelen = frame__get_packed_size(&frame);
|
||||
Packet packet = PACKET__INIT;
|
||||
packet.length = msglen;
|
||||
size_t packetlen = packet__get_packed_size(&packet);
|
||||
|
||||
uint8_t buf[framelen + msglen];
|
||||
frame__pack(&frame, buf);
|
||||
server_message__pack(msg, buf + framelen);
|
||||
uint8_t buf[packetlen + msglen];
|
||||
packet__pack(&packet, buf);
|
||||
server_message__pack(msg, buf + packetlen);
|
||||
return min(0, xsend(source_get_fd(client->source), buf, sizeof(buf)));
|
||||
}
|
||||
|
||||
|
|
@ -88,13 +88,13 @@ eis_proto_send_msg_with_fds(struct eis_client *client, const ServerMessage *msg,
|
|||
log_wire_message(eis_client_get_context(client), msg);
|
||||
|
||||
size_t msglen = server_message__get_packed_size(msg);
|
||||
Frame frame = FRAME__INIT;
|
||||
frame.length = msglen;
|
||||
size_t framelen = frame__get_packed_size(&frame);
|
||||
Packet packet = PACKET__INIT;
|
||||
packet.length = msglen;
|
||||
size_t packetlen = packet__get_packed_size(&packet);
|
||||
|
||||
uint8_t buf[framelen + msglen];
|
||||
frame__pack(&frame, buf);
|
||||
server_message__pack(msg, buf + framelen);
|
||||
uint8_t buf[packetlen + msglen];
|
||||
packet__pack(&packet, buf);
|
||||
server_message__pack(msg, buf + packetlen);
|
||||
|
||||
return min(0, xsend_with_fd(source_get_fd(client->source), buf, sizeof(buf), fds));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,13 +57,13 @@ static int
|
|||
send_msg(int fd, const ClientMessage *msg)
|
||||
{
|
||||
size_t msglen = client_message__get_packed_size(msg);
|
||||
Frame frame = FRAME__INIT;
|
||||
frame.length = msglen;
|
||||
size_t framelen = frame__get_packed_size(&frame);
|
||||
Packet packet = PACKET__INIT;
|
||||
packet.length = msglen;
|
||||
size_t packetlen = packet__get_packed_size(&packet);
|
||||
|
||||
uint8_t buf[framelen + msglen];
|
||||
frame__pack(&frame, buf);
|
||||
client_message__pack(msg, buf + framelen);
|
||||
uint8_t buf[packetlen + msglen];
|
||||
packet__pack(&packet, buf);
|
||||
client_message__pack(msg, buf + packetlen);
|
||||
return min(0, xsend(fd, buf, sizeof(buf)));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue