Commit Graph

94 Commits

Author SHA1 Message Date
Jeff Becker
475ac63f4a
initial admin api infra 2018-10-09 08:06:30 -04:00
despair86
94c5f46d33 try fixing win32 event loop 2018-10-06 12:04:50 -05:00
despair86
6ba60093d2 switch to std::variant for win32 ev_io
- sockets are a distinct (non-negative) file descriptor
- plain old file descriptors are opaque handles

this makes the specialisations of llarp::ev_io on win32 type-safe as
- TAP-Windows v9 adapter is a plain old device file (same as on UNIX and Linux)
- UDP listeners are sockets, so the type must change (from signed to unsigned int) to accomodate Winsock2
2018-10-06 12:04:49 -05:00
Ryan Tharp
ec2aaa533f pretty sure this a clang-format 2018-10-03 03:40:32 -07:00
despair86
991c1d8fce fix 2018-10-01 15:19:26 -05:00
despair86
9fdde65798 make bencode ILP32/LLP64 clean (long is 32 bits outside of unix!)
actually open new RCs in binary mode
clang-format
win32 skeleton code for tun (still working on the guts)
2018-10-01 15:08:55 -05:00
despair86
8ac7d4f6dc if we didn't specify a path to save our config in, only create .lokinet on the assumption that $HOME or $APPDATA (on NT) already exist
add win32 tun glue, fix llarp timebase
(In fact, _both_ of these are guaranteed to exist on their respective platforms.)
also, tuntap is now wired up to the windows port
2018-10-01 15:08:52 -05:00
Jeff Becker
23cff0bee3
try fixing all that tun shit, YOLO 2018-10-01 13:16:15 -04:00
Jeff Becker
8aa0d0d4a8
try fixing tun writing 2018-10-01 13:05:36 -04:00
Jeff Becker
f6c812a642
include packet info in tun but discard it so that tun can work on platforms
that include packet info
2018-09-30 09:23:37 -04:00
Jeff Becker
8114f63e70
use queues 2018-09-16 08:25:17 -04:00
Jeff Becker
b96887ddb2
various fixes and tweaks 2018-09-10 09:43:36 -04:00
Jeff Becker
cb2802e003
fix segfault on quit 2018-09-10 07:05:41 -04:00
Jeff Becker
5dfcd60df1
more 2018-09-06 16:31:58 -04:00
Jeff Becker
b362784581
redo codel to do as few allocations as possible 2018-08-31 14:33:08 -04:00
Jeff Becker
8bae1a4735
move codel off of pointer types 2018-08-31 10:41:04 -04:00
Jeff Becker
b122fc59f8
refactor (not done) 2018-08-29 16:40:26 -04:00
Jeff Becker
d3eef5c8b7
more netns code 2018-08-26 08:51:22 -04:00
despair86
79c992a9be Microsoft libc6.x and libc7.x do not have C99 printf semantics, mingw-w64 handles this inline 2018-08-23 13:44:45 -05:00
Jeff Becker
885fb3cd97
revert back to priority queue for codel 2018-08-23 08:26:31 -04:00
Jeff Becker
b7039f6e5c
more tun stuff 2018-08-22 11:52:10 -04:00
Jeff Becker
4e2f0ccbf8
* add ProcessIf in CoDel queue to requeue unprocessed items
* more tun code
* make event loop tick and write with tun
2018-08-21 14:17:16 -04:00
Jeff Becker
4aebbda640
more tun stuff 2018-08-20 15:12:12 -04:00
despair86
c24a73f756 ran the linter on new code 2018-08-20 05:52:47 -05:00
despair86
961a4b1d3c eww, merge conflicts 2018-08-18 21:54:53 -05:00
despair86
8c1b2c3b79 win32 fluff
more win32 on msc++ fluff

and a solaris patch that i may revert later if the cpp directives aren't processed correctly
-despair86
2018-08-18 21:26:18 -05:00
despair86
9ad93a0893 sunos patches, avoid shadowing data members in derived classes, header fixes
SunOS build works, with a few issues:

- no tuntap debugging on Solaris? (TUNSDEBUG ioctl missing)
- regular socket ioctls are not pulled in with #include <sys/ioctl.h>
  even though they're included at the bottom of same (filio.h,
  sockio.h)
- no named threads in any libre fork of solaris

-despair86 (rick)

sun patch
2018-08-18 21:25:24 -05:00
Jeff Becker
1a1f93c171
* more tun stuff
* use std::unique_ptr where bare pointers aren't absolutely required
2018-08-17 15:49:58 -04:00
Jeff Becker
913fb1d88a
don't use 100% cpu 2018-08-16 11:31:32 -04:00
Jeff Becker
5b322510a7
try making it compile 2018-08-15 12:21:51 -04:00
Jeff Becker
b4f672b950
continue to fix kqueue build 2018-08-15 11:46:39 -04:00
Jeff Becker
04bf8d6116
some tun interface code 2018-08-15 11:36:34 -04:00
Jeff Becker
a9b28e5407
more fuxing around 2018-08-09 23:51:38 -04:00
despair86
ae956aff5f This completes the Windows NT Server port of the LokiNetwork components.
Also changed the epoll_wait timeout to 10ms in llarp_epoll_loop::run() to match the other platforms.

-despair86
2018-08-03 04:21:53 -05:00
despair86
bdc54835c2 initial windows server port. Requires Windows 2000 Server or later.
- 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
2018-08-01 23:41:02 -05:00
Jeff Becker
1c26fb5e40
* codel related changes
* add tick callback to udp event loop
2018-06-27 09:14:07 -04:00
Jeff Becker
a0f1d548f8
more shadow stuff 2018-06-06 17:23:57 -04:00
Jeff Becker
0278ba559c
add single threaded mode for shadow 2018-06-06 08:46:26 -04:00
Jeff Becker
d426f9e65e
more 2018-05-23 09:49:00 -04:00
Jeff Becker
bc9e32d690
clang format and lots of stupid bug fixes 2018-05-22 11:54:19 -04:00
Jeff Becker
c0ff64868d
more meat 2018-05-16 12:41:20 -04:00
Jeff Becker
a5611e2206
format 2018-04-30 12:14:29 -04:00
Jeff Becker
8181670bf3
format 2018-04-30 12:14:20 -04:00
Jeff Becker
d31391d856
start removing libuv 2018-04-30 09:18:57 -04:00