diff options
author | 2019-05-22 21:29:06 +0300 | |
---|---|---|
committer | 2019-05-22 21:29:06 +0300 | |
commit | 323292cb8a1191e1c74c7d42c6e54f589d8023d1 (patch) | |
tree | 0afe288aedebb345beedbc13673f9d83eaf04719 /src/common | |
parent | 5fee4a9996158479fe5503c9acace5733660f9e9 (diff) | |
download | usurpation-323292cb8a1191e1c74c7d42c6e54f589d8023d1.tar.gz usurpation-323292cb8a1191e1c74c7d42c6e54f589d8023d1.tar.bz2 usurpation-323292cb8a1191e1c74c7d42c6e54f589d8023d1.zip |
Protocol: finished reimplementation.
Now protocol only deals with parsing and forming of packets.
Signed-off-by: Ramūnas Mažeikis <ramunasnezinomas@gmail.com>
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/protocol.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/common/protocol.c b/src/common/protocol.c index e71938c..d3317e3 100644 --- a/src/common/protocol.c +++ b/src/common/protocol.c @@ -30,7 +30,7 @@ #include "protocol.h" #include "protocol_private.h" #include "net.h" -#include "util.h" +#include "utils.h" #define READ_AS(type, from) (*((type*)(from))) @@ -41,20 +41,28 @@ int push_tlv(struct tlv_packet *packet, enum tlv_type type, char *data) switch (type) { case TEXT: + size = strlen(data); break; case FPI1: + size = sizeof(fpi1_t); break; case TIMESTAMP: + size = sizeof(time_t); break; case REQUEST: + size = sizeof(msg_idx_t); break; case REPLY: + size = sizeof(msg_idx_t) + strlen(data + sizeof(msg_idx_t)); break; case UUID: + size = sizeof(uuid_t); break; default: ret = E_UNKNOWN_TYPE; } + ret |= push_tlv_header(packet, type, size); + ret |= push_bytes(packet, data, size); return ret; } |