Erik Ekman
a6d82b1a44
Allow listen adresses to be non-numeric (using domains)
2021-06-04 18:57:34 +02:00
Erik Ekman
8041e0368c
Print address when failing to bind
2021-06-04 18:38:50 +02:00
Erik Ekman
d02f1b4f41
tun: Fix warning
...
tun.c:389:19: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (addr.sc_unit < 0) {
~~~~~~~~~~~~ ^ ~
2021-05-14 13:38:51 +02:00
Erik Ekman
02173b8352
Fix iteration of utun devices on macos
...
Pass the constructed name instead of NULL to open_utun
Also add some error handling to utun_unit.
2021-05-13 20:13:00 +02:00
Erik Ekman
dc307b7183
Add prototypes for vwarn/vwarnx
...
Fixes this warning:
common.c:406:1: warning: no previous prototype for 'vwarn' [-Wmissing-prototypes]
406 | vwarn(const char *fmt, va_list list)
| ^~~~~
common.c:429:1: warning: no previous prototype for 'vwarnx' [-Wmissing-prototypes]
429 | vwarnx(const char *fmt, va_list list)
| ^~~~~~
Also move err() to have non-x versions first.
2021-01-31 14:08:27 +01:00
Erik Ekman
6a7763c210
More compact no-op of Windows syslog
2021-01-31 14:01:13 +01:00
Erik Ekman
cc51ee6f02
Formatting: Indent multi-line prints less
2021-01-31 13:54:09 +01:00
Erik Ekman
4b3d6e2962
Formatting: Use tabs for indents
2021-01-31 13:46:12 +01:00
Erik Ekman
a9045705ba
tun: Automatically attempt to use utun on mac
...
Once /dev/tunX has been tried without success
2021-01-21 17:40:22 +01:00
Erik Ekman
39356163d9
Formatting: Fix mixed use of tabs and spaces
2020-08-01 17:29:49 +02:00
Erik Ekman
9a041683be
Formatting: Fix lines starting with spaces
2020-08-01 17:19:37 +02:00
Erik Ekman
8d2c86c73d
Fix strncat size argument in send_handshake_query
...
Found by clang:
client.c:1276:26: warning: the value of the size argument in 'strncat' is too large, might lead to a buffer overflow [-Wstrncat-size]
strncat(buf, topdomain, sizeof(buf) - strlen(buf));
^~~~~~~~~~~~~~~~~~~~~~~~~
2020-07-25 15:45:24 +02:00
Erik Ekman
b7b1082dc6
client: Stop passing static variable userid to local functions
2020-07-24 21:17:18 +02:00
Erik Ekman
c399f915b7
Improve logging around getting server address
2020-07-24 21:01:38 +02:00
Erik Ekman
bbb604db06
Use send_handshake_query inside send_lazy_switch
2020-07-24 20:49:39 +02:00
Erik Ekman
ba90706429
Replace send_downenc_switch with send_handshake_query
2020-07-24 20:38:45 +02:00
Erik Ekman
9cba3299c4
Replace send_ip_request with send_handshake_query
2020-07-24 20:36:51 +02:00
Erik Ekman
5de13805d8
Replace send_codec_switch with send_handshake_query
2020-07-24 20:36:41 +02:00
Erik Ekman
d74939d323
Add send_handshake_query helper function
...
Convert send_downenctest to use it.
Remove unused data/len args from send_downenctest.
2020-07-24 20:18:07 +02:00
Erik Ekman
a8a20f570e
Formatting: spaces around operators
2020-07-24 19:15:02 +02:00
Erik Ekman
aeacfbc2c0
Formatting: No spaces after '(' or before ')'
2020-07-24 19:02:41 +02:00
Erik Ekman
15f12d0693
Formatting: Space between 'for' and parenthesis
2020-07-24 18:57:57 +02:00
Erik Ekman
19d0d1be64
Formatting: Space between 'if' and parenthesis
2020-07-24 18:56:30 +02:00
Erik Ekman
310aedac8e
Formatting: no space before parenthesis in function call.
2020-07-24 18:51:05 +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
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
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
8379384d37
Improve usage/help text around finding external IP
2020-05-24 13:41:54 +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
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
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
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
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
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