Erik Ekman
559dafb030
Attempt skipping IPv6 if not supported
2021-08-09 12:14:42 +02:00
Erik Ekman
f2b619faad
Allow looking up external address and listen to it
2021-06-04 19:06:03 +02:00
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