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.c10
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;
}