diff options
-rw-r--r-- | include/protocol.h | 5 | ||||
-rw-r--r-- | src/common/protocol_private.h | 13 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/protocol.h b/include/protocol.h index 1f941a4..cd28e2d 100644 --- a/include/protocol.h +++ b/include/protocol.h @@ -111,6 +111,11 @@ int get_tlv(struct tlv_parser *parser, struct tlv *ret); /** * Appends data to the next packet to be sent. Type of data is determined by * enum tlv_type. + * + * In case of overflow return E_TLV_OVERFLOW. + * + * Overflow can be detected after forming tlv header. This means that the + * packet may have changes. * */ int push_data(struct tlv_packet *packet, enum tlv_type type, char *data); diff --git a/src/common/protocol_private.h b/src/common/protocol_private.h index de086cd..fe28aa0 100644 --- a/src/common/protocol_private.h +++ b/src/common/protocol_private.h @@ -3,7 +3,20 @@ #include "protocol_private.h" +/** + * Convenience function that pushes bytes to the end of a packet and reports + * potential overflow. + * + * In case of detected overflow nothing is done to the packet. + */ int push_bytes(struct tlv_packet *packet, char *data, size_t size); + +/** + * Convenience function that forms a tlv header at the end of a packet. Reports + * potential overflow. + * + * In case of detected overflow nothing is done to the packet. + */ int push_tlv_header(struct tlv_packet *packet, enum tlv_type type, size_t size); #endif /* PROTOCOL_PRIVATE_H */
\ No newline at end of file |