summaryrefslogtreecommitdiffstats
path: root/src/common/protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/protocol.c')
-rw-r--r--src/common/protocol.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/common/protocol.c b/src/common/protocol.c
index 2ac8280..2243dad 100644
--- a/src/common/protocol.c
+++ b/src/common/protocol.c
@@ -113,14 +113,17 @@ static int push_timestamp(char *data)
static int push_request(char *data)
{
- (void)data;
- return 0;
+ return push_tlv_header(REQUEST, sizeof(msg_idx_t))
+ | push_bytes(data, sizeof(msg_idx_t));
}
static int push_reply(char *data)
{
- (void)data;
- return 0;
+ int ret = 0;
+ size_t msglen = strlen(data + sizeof(msg_idx_t));
+ ret |= push_tlv_header(REPLY, msglen + sizeof(msg_idx_t));
+ ret |= push_bytes(data, msglen);
+ return ret;
}
static int push_uuid(char *data)
@@ -129,7 +132,7 @@ static int push_uuid(char *data)
| push_bytes(data, sizeof(uuid_t));
}
-int push_tlv_header(enum tlv_type type, size_t size)
+static int push_tlv_header(enum tlv_type type, size_t size)
{
if (size + sizeof(type) + packet_cursor >= PACKET_MAX_SIZE) {
return E_PACKET_OVERFLOW;
@@ -147,7 +150,6 @@ void get_last_data()
msg_buf[0] = '\0';
msg_buf[1] = '\0';
tlv_cursor = 0;
- /* Get packet here. Somehow. TODO */
get_tlvs(packet_buf, tlv_buf, TLV_BUF_SIZE);
}