mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
bdc54835c2
- updated CMake build script - builds with Microsoft C++ 19.1x. such builds require Windows 8.1 or later unless you have the .NET Server 2003-toolset (v141_xp) - windows port requires a C++17 compiler since cpp17::filesystem is POSIX-only - HAVE_CXX17_FILESYSTEM manual toggle in CMake. You must manually specify where std::[experimental::]filesystem is defined in LDFLAGS or CMAKE_x_LINKER_FLAGS. - IPv6 support can be added at any time, and the windows sdk still has that inline getaddrinfo(3) if it can't find a suitable IPv6 stack. - inline code for mingw-w64: there's a few bits and pieces still missing simply because mingw-w64 derives its windows sdk from wine and reactos, and then writing all the newer stuff into it by hand straight from the MSDN manpages. - misc. C++11 stuff (nullptr and friends) - Internal file handling code takes UTF-8 or plain 8-bit text, NTFS is UTF-16, so std::filesystem::path::c_str() is wchar_t. That's no good unless you first call std::filesystem::path::string(). - implemented getifaddrs(3) and if_nametoindex(3) on top of GetAdapters[Info|Addresses](2). - updated readme with new info BONUS: may implement Solaris/illumos IOCP someday... -despair86
36 lines
741 B
C
36 lines
741 B
C
#ifndef LLARP_NET_H
|
|
#define LLARP_NET_H
|
|
#if defined(_WIN32) || defined(__MINGW32__)
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
#include <wspiapi.h>
|
|
// because this shit is not defined for Windows NT reeeee
|
|
#ifndef _MSC_VER
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
const char*
|
|
inet_ntop(int af, const void* src, char* dst, size_t size);
|
|
int
|
|
inet_pton(int af, const char* src, void* dst);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
#ifndef ssize_t
|
|
#define ssize_t long
|
|
#endif
|
|
typedef unsigned short in_port_t;
|
|
typedef unsigned int in_addr_t;
|
|
#else
|
|
#include <arpa/inet.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#endif
|
|
#include <stdbool.h>
|
|
#include <sys/types.h>
|
|
|
|
bool
|
|
llarp_getifaddr(const char* ifname, int af, struct sockaddr* addr);
|
|
|
|
#endif
|