/* * Usurpataion --- server-client protocol private interface. * * Copyright (C) 2019 Ramūnas Mažeikis * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifdef PROTOCOL_H_PRIVATE #define PROTOCOL_H_PRIVATE #define TLV_ARR_SIZE (16) /* Pease don't rape the buffer with long messages, daemon-kun. */ #define MSG_BUF_SIZE (257) /* UDP can carry bigger packets but memory is hard to come by and more won't be * needed anyway. * */ #define PACKET_MAX_SIZE (512) /* Returns the amount of tlv's int a packet. * * If a tlv reports length that goes beyond the end of a packet, errno is set * to TLV_OVERFLOW. To check this, set errno to 0 first. * */ size_t tlv_count(const struct packet_data * const packet); /* Parses a data packet, fills buffer of tlv's of size `buf_size` and returns * the number of tlv's actually parsed. * * To check for errors, set errno to 0 and check after calling. * */ size_t get_tlvs( const struct packet_data * const data, const struct tlv *buf, size_t buf_size); /* Takes a null-terminated string and appends it to the next outgoing packet. * */ void push_string(char *str); void push_fpi1(fpi1_t num); void push_timestamp(char *data); void push_request(char *data); void push_reply(char *data); void push_uuid(char *data); #endif /* PROTOCOL_H_PRIVATE */