Commit graph

850 commits

Author SHA1 Message Date
Erik Ekman
13d081f5ed Convert fail_unless to ck_assert[_msg]
To work with check 0.15.0

Add == 0 to change fail_if to asserts as well.
2020-07-23 22:31:53 +02:00
Erik Ekman
cde0b7632d Set additional record count properly in NS reply
For when there is no IPv4 address to return.
2020-07-23 22:12:07 +02:00
Erik Ekman
ec6a1ac308 Fix IPv4 address in replies to A or NS queries (github issue #38)
The destination field in struct query was changed from in_addr_t to
struct sockaddr_storage, wihtout updating the functions sending it
in src/dns.c.

Only add extra A answer for NS queries if destination refers to an
IPv4 address, and fail if trying to encode a reply to an A query
if destination is not IPv4.

This means NS requests received over IPv6 will not contain an address
and A requests will be ignored, unless the -n option is used, or the
www subdomain is requested which sets a fixed address (127.0.0.1).
2020-07-23 21:49:46 +02:00
Erik Ekman
d09c3e4f0b Revert "Hide clang warnings when building tests"
Didn't work again, giving up for now.

This reverts commit c77b875e89.
2020-07-03 18:25:54 +02:00
Erik Ekman
c77b875e89 Hide clang warnings when building tests
Try again while using gmake for tests on macOS on travis-ci.
2020-07-03 18:19:12 +02:00
Erik Ekman
07beeca580 Revert "Hide clang warnings when building tests"
Didn't help on travis macOS build.

This reverts commit ed78f1b43f.
2020-07-03 18:11:51 +02:00
Erik Ekman
ed78f1b43f Hide clang warnings when building tests 2020-07-03 18:02:53 +02:00
Erik Ekman
d8f3ac8971 Add helper function tun_uses_header()
Remove code duplication and hide some ifdefs
2020-07-03 17:06:14 +02:00
Erik Ekman
07b2978326 Only check for utun if tun_device was given
Fixes github issue #37 hopefully.
2020-07-03 16:53:30 +02:00
Erik Ekman
814a1fd7b0 Update links 2020-06-04 23:51:41 +02:00
Erik Ekman
aae23e2482 Remove TODO file from Makefile 2020-05-24 16:17:33 +02:00
Erik Ekman
db65eed2c3 Delete TODO file: Had only broken link in it 2020-05-24 16:10:52 +02:00
Erik Ekman
2032b44949 Look up external IP via DNS instead of HTTP
Use myip.opendns.com via their resolver.

The code is now TCP free again :)
2020-05-24 16:06:41 +02:00
Erik Ekman
e8a4c66719 Clean up makefile 2020-05-24 14:12:40 +02:00
Erik Ekman
b213d56eb4 Merge branch 'doronbehar-install-README'
Tweaked the docdir.
2020-05-24 14:02:49 +02:00
Doron Behar
ff91879ae1 Add docdir and install README.md to it.
[yarrick@kryo.se: Fixed duplicate share/ in path]
2020-05-24 14:01:02 +02:00
Erik Ekman
8379384d37 Improve usage/help text around finding external IP 2020-05-24 13:41:54 +02:00
Erik Ekman
25323f6839 Simplify license file
Try to get github to parse it as ISC
2020-05-24 13:27:31 +02:00
Erik Ekman
721b7f0d9b Add LICENSE file 2020-05-24 13:21:46 +02:00
Erik Ekman
78d64f3cb0
Merge pull request #36 from deep-42-thought/master
documentation: make it clear, what incompleteness `-b` has
2020-05-24 13:20:45 +02:00
Erich Eckner
be0735d7c7 documentation: make it clear, what incompleteness -b has
AXFR does not pass through iodine (sounds reasonable), so we should
recommend in the README.md to keep the original dns server in front if
zone transfers are required.
2020-02-21 14:39:52 +01:00
Erik Ekman
8e14f18282
Merge pull request #35 from JohnAZoidberg/routepath
Define searchpath for route with macro
2019-08-27 22:34:08 +02:00
Daniel Schaefer
d2f671bdc7 Define searchpath for route with macro
Allows it to be easily overridden using the compiler commmandline.
Just like IFCONFIGPATH.
2019-08-24 16:43:34 +02:00
Erik Ekman
67643ee996 Merge PR #32: client: warn when handshake fails due to BADIP
Shortened the message, the timeout only applies when tunnel is up.
2019-08-04 13:53:43 +02:00
rofl0r
37960ab9dd client: warn when handshake fails due to BADIP
other parts of the code show the meaningful error message too, but
not at the spot where it happened for me.
2019-08-04 13:53:21 +02:00
Erik Ekman
d37ebdaca7
Merge pull request #28 from l29ah/strncat-warning
client.c: don't produce an useless strncat usage warning
2019-08-04 13:42:13 +02:00
gregor herrmann
024481c94b Fix cross compilation
src/osflags hard codes the build architecture pkg-config. After making it
substitutable and substituting it from the build environment, iodine cross
builds successfully.

Original patch from Helmut Grohne <helmut@subdivi.de> in
https://bugs.debian.org/921822, adjusted to Git HEAD.
2019-08-04 13:30:33 +02:00
Sergey Alirzaev
b406009c6d
client.c: don't produce an useless strncat usage warning 2018-10-01 04:04:15 +03:00
Erik Ekman
27e5d6fadd code.kryo.se is now served over HTTPS 2018-03-24 15:00:37 +01:00
Erik Ekman
05dc792d86 Update android readme 2017-10-22 12:01:46 +02:00
Erik Ekman
99c0efc467 Try building working binaries for non-ancient Android
Based on help from admin@hypothermic.nl
2017-10-22 11:54:59 +02:00
Erik Ekman
72bdf7f20e Merge branch 'protect-options' of https://github.com/Masaq-/iodine into protect_opts 2017-10-22 11:59:38 +02:00
Erik Ekman
31bfe9ff3e Merge pull request #26 from TijmenW/androidGitignore
Add android build files to .gitignore
2017-10-22 11:54:32 +02:00
Erik Ekman
cd5bedca74 Merge pull request #25 from chengzhicn/master
check error returned by dns_decode
2017-10-22 11:49:42 +02:00
Tijmen Wildervanck
9f48fc01a5 Add android build files to .gitignore 2017-10-13 21:12:00 +02:00
chengzhicn
122ac1a25d check error returned by dns_decode
before this commit, sending "GET / HTTP/1.1" to server will cause uninitialized variable access.
2017-10-13 03:08:12 +08:00
Erik Ekman
006ffa619e Fix android build after removal of base64u.h 2017-04-10 21:44:26 +02:00
Ralf Ramsauer
79455c380d consequently use tabs, and no spaces
and wrap lines at 80 characters

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-04-10 21:26:13 +02:00
Ralf Ramsauer
8d4b43e178 Update tests to latest changes
Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
[Erik Ekman: reverted login test changes]
2017-04-10 21:25:42 +02:00
Ralf Ramsauer
8c5127b375 don't zero-initialise variable
For global variables, the C standard ensures that this variable will be
zeroed on startup.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:50 -08:00
Ralf Ramsauer
119d1b2da1 dns: improve code style
Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:50 -08:00
Ralf Ramsauer
4591cafd27 encoding: simplify {places,eats}_dots
Why not using constant bools?

Much simpler than complex function calls, that eventually return
constant values.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:50 -08:00
Ralf Ramsauer
0eb3b65158 encoding: use simple int's instead of accessor functions
Why are those values exposed to the outer world? They seem not be in use
anyway.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:50 -08:00
Ralf Ramsauer
317511e3ca nitpick: coding style
Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:50 -08:00
Ralf Ramsauer
844a2798eb encoder: use explicit variable names in operation structure
This makes it obvious, what each variable stands for.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:49 -08:00
Ralf Ramsauer
6b438e7517 encoder: further simplifications
Get rid of unique header files for each encoder, consolidate them to
where they are actually needed: encoding.h.

This also simplifies the generation of the base64u decoder, as its
header file does not need to be generated any longer.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:49 -08:00
Ralf Ramsauer
b517121f1c base encoder: simplify structures
We don't need complex getters. Just expose basic operations as they are.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:49 -08:00
Ralf Ramsauer
d05923d2b1 global: constify things
const everything, that should be const.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:49 -08:00
Ralf Ramsauer
52c4940523 Warn, warn warn.
iodine does not seem to follow any styling guidelines (mixture of
different function prototypes, ...).  So let's introduce some.  This
will improve overall code quality and readability.

Additionally, warnings will improve code quality as well. Let's turn on
very pedantic warnings, and fix everything where the compiler barks
back.

Introduce the following function definition scheme:
  type function_name(type name, type1 name1 ...)
  {
  }
This allows us to copy and paste the definition to the declaration by
selecting one single line.

Furthermore, limit line length to 80 characters.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 21:30:01 -08:00
Ralf Ramsauer
ccc49f16f7 util: add missing #includes
Detected by activating stronger warnings. If include is missing,
prototypes might diverge.

Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2017-03-11 14:23:02 -08:00