BlinkenArea - GitList
Repositories
Blog
Wiki
libetherpix
Code
Commits
Branches
Tags
Search
Tree:
aa3270a
Branches
Tags
master
libetherpix
include
intern
net.h
removed version information from file headers (manged via git now)
Stefan Schuermans
commited
aa3270a
at 2011-09-11 17:30:15
net.h
Blame
History
Raw
/* * FlexiPix library * * Copyright 2010-2011 Stefan Schuermans <stefan schuermans info> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 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 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, see <http://www.gnu.org/licenses/>. */ #ifndef FLP_NET_H #define FLP_NET_H #ifdef WINDOWS # include <stdint.h> # include <winsock2.h> #else # include <arpa/inet.h> # include <errno.h> # include <netdb.h> # include <netinet/in.h> # include <string.h> # include <sys/socket.h> # include <unistd.h> #endif /** type of socket descriptor */ #ifdef WINDOWS typedef SOCKET flp_sock_t; #else typedef int flp_sock_t; #endif #ifdef WINDOWS /** IP address type missing on Windows */ typedef uint32_t in_addr_t; #endif #ifdef WINDOWS /** port type missing on Windows */ typedef uint16_t in_port_t; #endif #ifndef WINDOWS /** closesocket() only exists for Windows,other OSes just use close() */ extern inline int closesocket(int fd) { return close(fd); } #endif /** * \brief check a socket descriptor * \param[in] sock socket descriptor to check * \return 1 if valid, 0 if not valid */ extern inline int flp_sock_is_valid(flp_sock_t sock) { #ifdef WINDOWS return sock != INVALID_SOCKET; #else return sock >= 0; #endif } /** * \brief get error of last socket call as text * \param[in] buf pointer to buffer to place text into * \param[in] buflen size of buffer */ extern inline void flp_sock_get_last_error(char *buf, size_t buflen) { #ifdef WINDOWS int err = WSAGetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, buf, buflen, NULL); #else strerror_r(errno, buf, buflen); #endif } #endif /* #ifndef FLP_NET_H */