Compare commits

..

1 commit

Author SHA1 Message Date
Erik Ekman
607b9d3be1 Tag 0.8.0 release 2023-04-17 09:50:19 +02:00
28 changed files with 51 additions and 156 deletions

View file

@ -1,28 +0,0 @@
name: freebsd
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: make
uses: vmactions/freebsd-vm@v1.0.8
with:
prepare: |
pkg install -y \
devel/check \
devel/git \
devel/pkgconf
run: |
make
make test

View file

@ -6,16 +6,13 @@ on:
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- name: make
run: make
- name: install check

View file

@ -1,28 +0,0 @@
name: openbsd
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: make
uses: vmactions/openbsd-vm@v1.0.8
with:
prepare: |
pkg_add \
check \
git \
pkgconf
run: |
make
make test

View file

@ -6,16 +6,13 @@ on:
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- name: make
run: make
- name: install check
@ -28,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- uses: nttld/setup-ndk@v1
with:
ndk-version: r21e

View file

@ -6,9 +6,6 @@ on:
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
@ -18,7 +15,7 @@ jobs:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64

View file

@ -1,15 +1,10 @@
iodine - https://code.kryo.se/iodine
************************************
***********************************
CHANGES:
master:
- Changed deprecated tzsetwall() to tzset() (only used by FreeBSD),
patch by Pouria Mousavizadeh Tehrani.
- Now builds on macOS even without if_utun.h (pre 10.6).
2023-04-17: 0.8.0 "Burning Snowman"
- Mac OS X: Support native utun VPN devices. Patch by
Peter Sagerson, ported from OpenVPN by Catalin Patulea.

View file

@ -11,13 +11,11 @@
LOCAL_PATH:= $(call my-dir)
HEAD_COMMIT = `git rev-parse --short HEAD`
include $(CLEAR_VARS)
LOCAL_MODULE := iodine
LOCAL_SRC_FILES := tun.c dns.c read.c encoding.c login.c base32.c base64.c base64u.c base128.c md5.c common.c iodine.c client.c util.c
LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall -DGITREVISION=\"$(HEAD_COMMIT)\"
LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall
LOCAL_LDLIBS := -lz
LOCAL_CFLAGS += -fPIE
LOCAL_LDFLAGS += -fPIE -pie

View file

@ -11,13 +11,11 @@
LOCAL_PATH:= $(call my-dir)
HEAD_COMMIT = `git rev-parse --short HEAD`
include $(CLEAR_VARS)
LOCAL_MODULE := iodine
LOCAL_SRC_FILES := tun.c dns.c read.c encoding.c login.c base32.c base64.c base64u.c base128.c md5.c common.c iodine.c client.c util.c
LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall -DGITREVISION=\"$(HEAD_COMMIT)\"
LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall
LOCAL_LDLIBS := -lz
include $(BUILD_EXECUTABLE)

View file

@ -6,11 +6,10 @@ SERVER = ../bin/iodined
OS = `echo $(TARGETOS) | tr "a-z" "A-Z"`
ARCH = `uname -m`
HEAD_COMMIT = `git rev-parse --short HEAD`
LIBPATH = -L.
LDFLAGS += -lz `sh osflags $(TARGETOS) link` $(LIBPATH)
CFLAGS += -std=c99 -c -g -Wall -D$(OS) -pedantic `sh osflags $(TARGETOS) cflags` -DGITREVISION=\"$(HEAD_COMMIT)\"
CFLAGS += -std=c99 -c -g -Wall -D$(OS) -pedantic `sh osflags $(TARGETOS) cflags`
CFLAGS += -Wstrict-prototypes -Wtype-limits -Wmissing-declarations -Wmissing-prototypes
all: stateos $(CLIENT) $(SERVER)

View file

@ -103,7 +103,7 @@ static long send_query_recvcnt = 0;
static int hostname_maxlen = 0xFF;
void
client_init(void)
client_init()
{
running = 1;
rand_seed = ((unsigned int) rand()) & 0xFFFF;
@ -124,13 +124,13 @@ client_init(void)
}
void
client_stop(void)
client_stop()
{
running = 0;
}
enum connection
client_get_conn(void)
client_get_conn()
{
return conn;
}
@ -175,7 +175,7 @@ client_set_qtype(char *qtype)
}
char *
client_get_qtype(void)
client_get_qtype()
{
char *c = "UNDEFINED";
@ -225,7 +225,7 @@ client_set_hostname_maxlen(int i)
}
const char *
client_get_raw_addr(void)
client_get_raw_addr()
{
return format_addr(&raw_serv, raw_serv_len);
}

View file

@ -57,7 +57,7 @@
const unsigned char raw_header[RAW_HDR_LEN] = { 0x10, 0xd1, 0x9e, 0x00 };
/* daemon(3) exists only in 4.4BSD or later, and in GNU libc */
#if !defined(ANDROID) && !defined(WINDOWS32) && !(defined(BSD) && (BSD >= 199306)) && !defined(__GLIBC__) && !defined(__HAIKU__)
#if !defined(ANDROID) && !defined(WINDOWS32) && !(defined(BSD) && (BSD >= 199306)) && !defined(__GLIBC__)
static int daemon(int nochdir, int noclose)
{
int fd, i;
@ -142,7 +142,6 @@ get_addr(char *host, int port, int addr_family, int flags, struct sockaddr_stora
struct addrinfo hints, *addr;
int res;
char portnum[8];
int addrlen;
memset(portnum, 0, sizeof(portnum));
snprintf(portnum, sizeof(portnum) - 1, "%d", port);
@ -159,15 +158,14 @@ get_addr(char *host, int port, int addr_family, int flags, struct sockaddr_stora
hints.ai_protocol = IPPROTO_UDP;
res = getaddrinfo(host, portnum, &hints, &addr);
if (res != 0) {
return -1;
if (res == 0) {
int addrlen = addr->ai_addrlen;
/* Grab first result */
memcpy(out, addr->ai_addr, addr->ai_addrlen);
freeaddrinfo(addr);
return addrlen;
}
addrlen = addr->ai_addrlen;
/* Grab first result */
memcpy(out, addr->ai_addr, addr->ai_addrlen);
freeaddrinfo(addr);
return addrlen;
return res;
}
int
@ -278,7 +276,7 @@ do_pidfile(char *pidfile)
}
void
do_detach(void)
do_detach()
{
#ifndef WINDOWS32
fprintf(stderr, "Detaching from terminal...\n");

View file

@ -47,7 +47,7 @@
int dnsc_use_edns0 = 1;
#define CHECKLEN(x) if (buflen < (x) + (size_t)(p-buf)) return 0
#define CHECKLEN(x) if (buflen < (x) + (unsigned)(p-buf)) return 0
int dns_encode(char *buf, size_t buflen, struct query *q, qr_t qr,
const char *data, size_t datalen)
@ -403,7 +403,7 @@ unsigned short dns_get_id(char *packet, size_t packetlen)
return ntohs(header->id);
}
#define CHECKLEN(x) if (packetlen < (x) + (size_t)(data-packet)) return 0
#define CHECKLEN(x) if (packetlen < (x) + (unsigned)(data-packet)) return 0
int dns_decode(char *buf, size_t buflen, struct query *q, qr_t qr, char *packet,
size_t packetlen)

View file

@ -20,7 +20,7 @@
static struct fw_query fwq[FW_QUERY_CACHE_SIZE];
static int fwq_ix;
void fw_query_init(void)
void fw_query_init()
{
memset(fwq, 0, sizeof(struct fw_query) * FW_QUERY_CACHE_SIZE);
fwq_ix = 0;

View file

@ -116,7 +116,7 @@ static inline void usage(void)
static void version(void)
{
fprintf(stderr, "iodine IP over DNS tunneling client\n"
"Git version: %s\n", GITREVISION);
"version 0.8.0 from 2023-04-17\n");
exit(0);
}

View file

@ -2332,7 +2332,7 @@ static void version(void)
{
fprintf(stderr,
"iodine IP over DNS tunneling server\n"
"Git version: %s\n", GITREVISION);
"version 0.8.0 from 2023-04-17\n");
exit(0);
}
@ -2754,7 +2754,7 @@ main(int argc, char **argv)
do_pidfile(pidfile);
#ifdef FREEBSD
tzset();
tzsetwall();
#endif
#ifndef WINDOWS32
openlog(__progname, LOG_NDELAY, LOG_DAEMON);

View file

@ -13,14 +13,14 @@ link)
echo '-lsocket -lbind -lbsd';
;;
Haiku)
echo '-lnetwork -lbsd';
echo '-lnetwork';
;;
windows32)
echo '-lws2_32 -liphlpapi';
;;
Linux)
FLAGS="";
"$PKG_CONFIG" --exists libselinux && FLAGS="$FLAGS $($PKG_CONFIG --libs libselinux)";
[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux";
"$PKG_CONFIG" --exists libsystemd-daemon && FLAGS="$FLAGS $($PKG_CONFIG --libs libsystemd-daemon)";
"$PKG_CONFIG" --exists libsystemd && FLAGS="$FLAGS $($PKG_CONFIG --libs libsystemd)";
echo $FLAGS;
@ -35,15 +35,12 @@ cflags)
BeOS)
echo '-Dsocklen_t=int';
;;
Haiku)
echo '-D_DEFAULT_SOURCE';
;;
Darwin)
echo '-D__APPLE_USE_RFC_3542';
;;
Linux)
FLAGS="-D_GNU_SOURCE"
"$PKG_CONFIG" --exists libselinux && FLAGS="$FLAGS -DHAVE_SETCON";
[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -DHAVE_SETCON";
"$PKG_CONFIG" --exists libsystemd-daemon && FLAGS="$FLAGS -DHAVE_SYSTEMD";
"$PKG_CONFIG" --exists libsystemd && FLAGS="$FLAGS -DHAVE_SYSTEMD";
echo $FLAGS;

View file

@ -31,9 +31,7 @@
#include <sys/kern_control.h>
#include <sys/sys_domain.h>
#include <sys/ioctl.h>
/* Inline used parts of if_utun.h to compile without it. */
#define UTUN_CONTROL_NAME "com.apple.net.utun_control"
#define UTUN_OPT_IFNAME 2
#include <net/if_utun.h>
#include <netinet/ip.h>
#endif

View file

@ -119,7 +119,7 @@ START_TEST(test_base32_blksize)
END_TEST
TCase *
test_base32_create_tests(void)
test_base32_create_tests()
{
TCase *tc;

View file

@ -132,7 +132,7 @@ START_TEST(test_base64_blksize)
END_TEST
TCase *
test_base64_create_tests(void)
test_base64_create_tests()
{
TCase *tc;

View file

@ -280,30 +280,8 @@ START_TEST(test_parse_format_ipv4_mapped_ipv6)
}
END_TEST
START_TEST(test_get_addr_err)
{
char *host = "192.168.2.10";
struct sockaddr_storage addr;
int addr_len;
int flags = AI_PASSIVE;
/* Invalid host */
addr_len = get_addr(NULL, -1, flags, 0, &addr);
ck_assert(addr_len == -1);
/* Invalid port */
addr_len = get_addr(host, -1, flags, 0, &addr);
ck_assert(addr_len == -1);
/* Invalid flag */
addr_len = get_addr(host, 53, flags | 0xFFF, 0, &addr);
ck_assert(addr_len == -1);
/* Invalid addr */
addr_len = get_addr(host, 53, flags, 0, (struct sockaddr_storage *)NULL);
ck_assert(addr_len == -1);
}
END_TEST
TCase *
test_common_create_tests(void)
test_common_create_tests()
{
TCase *tc;
int sock;
@ -317,7 +295,6 @@ test_common_create_tests(void)
tcase_add_test(tc, test_query_datalen_wild);
tcase_add_test(tc, test_parse_format_ipv4);
tcase_add_test(tc, test_parse_format_ipv4_listen_all);
tcase_add_test(tc, test_get_addr_err);
/* Tests require IPv6 support */
sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);

View file

@ -250,7 +250,7 @@ dump_packet(char *buf, size_t len)
}
TCase *
test_dns_create_tests(void)
test_dns_create_tests()
{
TCase *tc;

View file

@ -93,7 +93,7 @@ START_TEST(test_build_hostname)
END_TEST
TCase *
test_encoding_create_tests(void)
test_encoding_create_tests()
{
TCase *tc;

View file

@ -76,7 +76,7 @@ START_TEST(test_fw_query_edge)
END_TEST
TCase *
test_fw_query_create_tests(void)
test_fw_query_create_tests()
{
TCase *tc;

View file

@ -59,7 +59,7 @@ START_TEST(test_login_hash_short)
END_TEST
TCase *
test_login_create_tests(void)
test_login_create_tests()
{
TCase *tc;

View file

@ -270,7 +270,7 @@ END_TEST
TCase *
test_read_create_tests(void)
test_read_create_tests()
{
TCase *tc;

View file

@ -24,7 +24,7 @@
#include "test.h"
int
main(void)
main()
{
SRunner *runner;
Suite *iodine;

View file

@ -18,15 +18,15 @@
#ifndef __TEST_H__
#define __TEST_H__
TCase *test_base32_create_tests(void);
TCase *test_base64_create_tests(void);
TCase *test_common_create_tests(void);
TCase *test_dns_create_tests(void);
TCase *test_encoding_create_tests(void);
TCase *test_read_create_tests(void);
TCase *test_login_create_tests(void);
TCase *test_user_create_tests(void);
TCase *test_fw_query_create_tests(void);
TCase *test_base32_create_tests();
TCase *test_base64_create_tests();
TCase *test_common_create_tests();
TCase *test_dns_create_tests();
TCase *test_encoding_create_tests();
TCase *test_read_create_tests();
TCase *test_login_create_tests();
TCase *test_user_create_tests();
TCase *test_fw_query_create_tests();
char *va_str(const char *, ...);

View file

@ -170,7 +170,7 @@ START_TEST(test_find_available_user_small_net)
END_TEST
TCase *
test_user_create_tests(void)
test_user_create_tests()
{
TCase *tc;