diff options
Diffstat (limited to 'src/common/protocol.c')
-rw-r--r-- | src/common/protocol.c | 14 |
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); } |