Commit Graph

850 Commits

Author SHA1 Message Date
frekky
0449c465e7 Re-implemented working DNS tunnelling (with windows!) 2015-08-29 20:11:46 +08:00
frekky
9f6033c4b8 Added client debug output option 2015-08-29 20:10:53 +08:00
frekky
c83a52c771 Now starts when no non-loopback interfaces configured 2015-08-29 20:10:25 +08:00
frekky
98da57ba74 More unsignedness and working DNS tunnelling 2015-08-29 20:08:46 +08:00
frekky
51a59bed24 Added more debug output and deprecated qmem 2015-08-29 20:07:44 +08:00
frekky
b6162241e6 Fixed some windowing issues + made debug output optional (WINDOW_DEBUG) 2015-08-29 20:06:53 +08:00
frekky
02c2763c26 Unsigned types for encoding data 2015-08-29 13:03:08 +08:00
frekky
ce0c0dc03b Second revision of protocol 800 2015-08-28 15:01:31 +08:00
frekky
917a6af7b8 Updated other tests to be compatible with newer code 2015-08-28 15:00:44 +08:00
frekky
e7119da507 Added sliding window test 2015-08-28 14:59:55 +08:00
frekky
4c8ce94be7 Minor readability adjustments + more debug output 2015-08-23 22:15:51 +08:00
frekky
8e08c007c5 Window buffer max_fragsize adjusted according to MAX_HOSTNAME and
current upstream codec
2015-08-23 22:14:27 +08:00
frekky
391bf5224a Added window_buffer_resize function 2015-08-23 22:11:28 +08:00
frekky
5df91ed775 Added encoder length calculation functions 2015-08-23 22:10:50 +08:00
frekky
96f9270b7f Removed unhelpful coding errors. 2015-08-21 23:24:53 +08:00
frekky
d8c08191cc Server-side sliding window implementation mostly finished. Requires
testing.
2015-08-21 23:23:24 +08:00
frekky
844abefcf8 A little bit of refactoring - separated iodined.c into separate files
Fixed up client side compile issues
Removed old packet handling code - TODO: use sliding window buffer
instead
2015-08-21 16:57:54 +08:00
frekky
83f70608fc Client side sliding window implementation (requires further testing) 2015-08-21 11:08:47 +08:00
frekky
0fcd8d337d Updated docs + protocol description (800) 2015-08-21 11:07:48 +08:00
frekky
92f3963790 Created sliding window buffer implementation and handling code 2015-08-21 11:05:50 +08:00
frekky
709afb8569 Updated docs 2015-08-14 22:27:05 +08:00
frekky
3e7cf55fe4 Added option for multiple nameservers, used in round-robin 2015-08-14 22:07:48 +08:00
Erik Ekman
9c8a941729 Fix make command for old android 2015-08-07 09:54:49 +02:00
Erik Ekman
a8a5fbbf0d Second attempt at PIE binary for new android
Github PR #14
2015-08-05 20:04:03 +02:00
Erik Ekman
e5843a9143 Use english locale for date in latest-file 2015-08-05 19:54:09 +02:00
Erik Ekman
c269a00344 Add support for Android L
Build position-indepent executables, required for Android L (5.0+)
They also work with kitkat.

Add new maketarget "cross-android-old" that builds without PIE
for older versions.

Include both new and old versions in latest-android.zip. Add arm64.

Hopefully solves github PR #14.
2015-08-05 19:36:28 +02:00
Erik Ekman
d8bf5cc85b Fix test build after removed test 2015-07-19 10:03:27 +02:00
Erik Ekman
f61ed01a3c Remove unused method users_waiting_on_reply() 2015-07-19 09:48:36 +02:00
Erik Ekman
7d915500b7 Drop old mingw 2015-06-30 23:35:35 +02:00
Erik Ekman
fc1611fc40 Only accept IPv6 in server IPv6 socket
Set IPV6_V6ONLY flag on server socket. Not all operating systems
support mixing v4/v6 in one socket, so separate them all the time.
2015-06-30 21:58:16 +02:00
Erik Ekman
4d03ee7786 Allow choosing only IPv4 or IPv6 in server
IPv6 might still allow IPv4 since V6_ONLY is not set by the server.
2015-06-30 21:32:21 +02:00
Erik Ekman
e7d253b1c1 Fix compile on Darwin (hopefully) 2015-06-28 22:52:33 +02:00
Erik Ekman
b4e9148df8 Support raw mode for both IPv4 and IPv6
Read destination address of IP request packet and return it.
Check length in client and use it as IPv4 or v6 depending on length.
2015-06-28 22:41:54 +02:00
Erik Ekman
7a51b22909 Simplify cleanup code 2015-06-28 21:05:23 +02:00
Erik Ekman
ec0e3f2e51 Change sockaddr lengths back to signed
They are used to check negative return values.
2015-06-28 20:25:22 +02:00
Erik Ekman
7a117bd71e IPv6 support for DNS traffic in server
Server will by default listen on both IPv4 and IPv6.
No way to only listen on one protocol right now.

Use -L to only listen on a specific v6 address.

IP address to use for raw mode is still IPv4 only.
Use -n on server to make raw mode work from IPv6 clients,
then they will get an IPv4 address from the server for raw mode.

Tunnel data is still IPv4.
2015-06-28 20:01:48 +02:00
Erik Ekman
07c2fd4068 Prepare server code for IPv6 listening socket
Add a struct with multiple dns file descriptors (for IPv4 and IPv6)
and pass this to required areas. Choose which descriptor to use when
sending by looking at the destination address family.
2015-06-28 13:05:17 +02:00
Erik Ekman
3069665646 Speling 2015-06-28 10:36:49 +02:00
Erik Ekman
987a21a0d8 Update manpage 2015-06-27 12:17:13 +02:00
Erik Ekman
69a91d5421 Update changelog 2015-06-27 12:14:34 +02:00
Erik Ekman
582a818f2a Switch external IP service to api.ipify.org
externalip.net seems to have gone away
2015-06-27 12:11:43 +02:00
Erik Ekman
778d29825d Switch to IPv6-ready storage of user IP address 2015-06-27 11:57:39 +02:00
Erik Ekman
5233d1e858 Merge pull request #15 from cpatulea/master
Document utunX.
2015-04-08 09:37:34 +02:00
Catalin Patulea
840155ca9a Document utunX. 2015-04-08 02:59:26 -04:00
Erik Ekman
1f51bab2a3 Update changelog 2015-04-08 08:50:07 +02:00
Erik Ekman
9e105d21d4 Add explanation for tun packet headers 2015-04-08 08:42:05 +02:00
Erik Ekman
b559806a8e Merge pull request #12 from cpatulea/master
Support utun devices on Mac OS X.
2015-04-08 08:36:01 +02:00
Catalin Patulea
b38b2ca7c5 Clarify that header is for both OPENBSD and DARWIN(utun). 2015-04-08 01:40:19 -04:00
Catalin Patulea
33abc0ca26 Support utun devices on Mac OS X.
As of 10.6, OS X has native tunnel devices. They are implemented as
sockets rather than character devices, but otherwise they appear to
behave the same as Free/OpenBSD tunnels.

'-d utunX' will tell iodine to use a utun device. For backward
compatibility, we'll continue to default to the old tuntap devices for
now.

This is a port of Peter Sagerson <psagers.github@ignorare.net>'s openvpn
commit 43e5016a.
2015-03-14 17:02:08 -04:00
gregor herrmann
1160649794 fix compilation error on kFreeBSD and Hurd 2015-01-23 09:50:41 +01:00