/* * Usurpation – network logic * * Copyright (C) 2019 Gediminas Jakutis * Copyright (C) 2019 Paulius Ratkevičius * * 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 */ #ifndef USURPATION_NET_H_INCLUDED #define USURPATION_NET_H_INCLUDED #include #include #include /** * Initialises a listening socket and returns the associated network descriptor. */ int net_init(const unsigned short int port); /** * Closes connection associated with network descriptor. */ int net_close(int nd); /** * Get last data received from connection associated with network descriptor. * If the pointer pointed by data is NULL, a buffer is allocated by the function * and needs to be free()'d later. Otherwise, the supplied buffer is reused. * Returns the amount of data acually fetched through recvsize pointer. */ int net_getlastdata(int nd, char ** const data, size_t *recvsize); int net_send(int nd, const char * const buf, size_t buf_size); int net_send_addr(int nd, const char * const buf, size_t buf_size, const struct sockaddr_in * const addr); void net_flush_read_buffer(int nd); #endif /* USURPATION_NET_H_INCLUDED */