#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 { /** * Initially 0, non-zero when connection is open, 0 when connection * is closed again. */ int is_live; /** Network descriptor that maps to daemon */ int nd; /** Time last packet was reveived */ time_t last_packet_sec; /** Incoming packet buffer */ char inp_buf[MAX_PACKET_SIZE_IN]; /** Incoming packet cursor */ size_t inp_crs; /** Outgoing packet buffer */ char outp_buf[MAX_PACKET_SIZE_OUT]; /** 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 */