Commit Graph

102 Commits

Author SHA1 Message Date
Jeff
ccead80c3d make jsonrpc server configurable on build, disabled by default.
default to client only and require explicitly run as relay to run as relay.
2018-10-27 08:41:04 -04:00
Jeff Becker
e8bbc10838
zero copy logic for abyss::http::ConnImpl 2018-10-25 09:40:07 -04:00
Jeff Becker
f873b18036
fix up event loop 2018-10-25 08:39:32 -04:00
Jeff Becker
c483ec5231
bounds check for tun and tcp writing 2018-10-25 08:09:29 -04:00
Jeff Becker
de17324012
don't make tcp event code epoll specific 2018-10-25 08:00:29 -04:00
Jeff Becker
957a5ed833
initial epoll event loop implementation for tcp 2018-10-24 14:02:42 -04:00
Jeff Becker
612057003a
de changes 2018-10-19 07:41:36 -04:00
Jeff Becker
32a028f6d8
Merge remote-tracking branch 'cathugger/master' 2018-10-10 07:48:44 -04:00
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