diff options
author | 2019-05-21 19:16:22 +0300 | |
---|---|---|
committer | 2019-05-21 19:16:22 +0300 | |
commit | 36b3e7f310c624b7b4e31829090dd02131c528d5 (patch) | |
tree | 492df5090f64e298cad3f8995ef9d6a611b45c9d /src/device/protocol_device_private.h | |
parent | cabb90c1240015ee5cd17d91573588527bcc2482 (diff) | |
download | usurpation-36b3e7f310c624b7b4e31829090dd02131c528d5.tar.gz usurpation-36b3e7f310c624b7b4e31829090dd02131c528d5.tar.bz2 usurpation-36b3e7f310c624b7b4e31829090dd02131c528d5.zip |
Protocol: implementation of device-side protocol.
Parts of protocol specific for device are implementepd to reflect the
fact that the device is a client. This effectively means that device
gets a single connection only and severe memory restrictions about
which the daemon might get informed about in the future.
Signed-off-by: Ramūnas Mažeikis <ramunasnezinomas@gmail.com>
Diffstat (limited to 'src/device/protocol_device_private.h')
-rwxr-xr-x | src/device/protocol_device_private.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/device/protocol_device_private.h b/src/device/protocol_device_private.h index 0fb46c7..29ff567 100755 --- a/src/device/protocol_device_private.h +++ b/src/device/protocol_device_private.h @@ -1,11 +1,28 @@ #ifndef PROTOCOL_DEVICE_PRIVATE_H #define PROTOCOL_DEVICE_PRIVATE_H +#include "net.h" + #define MAX_PACKET_SIZE_OUT (64) + +/* Maximum size of packet that can fit into the packet buffer. UDP can carry + * bigger packets but memory is hard to come by and more won't be needed + * anyway. + * */ #define MAX_PACKET_SIZE_IN (512) + +/** + * Device only gets one connection. Because daemon. + */ #define MAX_CONNECTIONS (1UL) /** + * Error which says that writing any more to packet buffer will overflow + * outgoing buffer. + */ +#define E_PACKET_OVERFLOW (1 << 0) + +/** * Device's view of connection to daemon. */ struct connection_t { @@ -15,8 +32,8 @@ struct connection_t { */ int is_live; - /** Daemon IP adress */ - IPAddress address; + /** Network descriptor that maps to daemon */ + int nd; /** Time last packet was reveived */ time_t last_packet_sec; @@ -32,6 +49,12 @@ struct connection_t { /** Outgoing packet cursor */ size_t outp_crs; + + /** + * Next tlv to be returned via get_tlv. NULL initially and after last + * element. + * */ + struct tlv next_tlv; }; #endif /* PROTOCOL_DEVICE_PRIVATE_H */
\ No newline at end of file |