build.zig
This commit is contained in:
parent
b54bab7e5b
commit
8c923f4a1b
6
.gitignore
vendored
6
.gitignore
vendored
@ -2,9 +2,9 @@
|
|||||||
*~
|
*~
|
||||||
Makefile
|
Makefile
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
cfg_file.lex.c
|
#cfg_file.lex.c
|
||||||
cfg_file.tab.c
|
#cfg_file.tab.c
|
||||||
cfg_file.tab.h
|
#cfg_file.tab.h
|
||||||
config.guess
|
config.guess
|
||||||
config.h
|
config.h
|
||||||
config.h.in
|
config.h.in
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
This is a fork of [Frank's VTUN](https://github.com/jedisct1/vtun) with the
|
||||||
|
following changes:
|
||||||
|
|
||||||
|
* `zig build` support, currently tested only on Linux.
|
||||||
|
|
||||||
|
Original README
|
||||||
|
---------------
|
||||||
|
|
||||||
This is a fork of [VTUN](http://vtun.sourceforge.net/), with the
|
This is a fork of [VTUN](http://vtun.sourceforge.net/), with the
|
||||||
following changes:
|
following changes:
|
||||||
|
|
||||||
|
119
build.zig
Normal file
119
build.zig
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn build(b: *std.Build) void {
|
||||||
|
const target = b.standardTargetOptions(.{});
|
||||||
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
|
|
||||||
|
const libsodium_dep = b.dependency(
|
||||||
|
"libsodium",
|
||||||
|
.{
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
.static = true,
|
||||||
|
.shared = false,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
const exe = b.addExecutable(.{
|
||||||
|
.name = "vtund",
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
});
|
||||||
|
|
||||||
|
exe.linkLibrary(libsodium_dep.artifact("sodium"));
|
||||||
|
exe.linkLibC();
|
||||||
|
exe.addCSourceFiles(.{
|
||||||
|
.files = &.{
|
||||||
|
"auth.c",
|
||||||
|
"client.c",
|
||||||
|
//"freebsd/tun_dev.c",
|
||||||
|
"generic/pipe_dev.c",
|
||||||
|
"generic/pty_dev.c",
|
||||||
|
//"generic/tap_dev.c",
|
||||||
|
"generic/tcp_proto.c",
|
||||||
|
//"generic/tun_dev.c",
|
||||||
|
"generic/udp_proto.c",
|
||||||
|
"lfd_encrypt.c",
|
||||||
|
"lfd_lzo.c",
|
||||||
|
"lfd_shaper.c",
|
||||||
|
"lfd_zlib.c",
|
||||||
|
"lib.c",
|
||||||
|
"linkfd.c",
|
||||||
|
"linux/tap_dev.c",
|
||||||
|
"linux/tun_dev.c",
|
||||||
|
"llist.c",
|
||||||
|
"lock.c",
|
||||||
|
"main.c",
|
||||||
|
"netlib.c",
|
||||||
|
//"openbsd/tun_dev.c",
|
||||||
|
"server.c",
|
||||||
|
//"svr4/tap_dev.c",
|
||||||
|
//"svr4/tun_dev.c",
|
||||||
|
"tunnel.c",
|
||||||
|
|
||||||
|
"cfg_file.c",
|
||||||
|
"cfg_file.lex.c",
|
||||||
|
},
|
||||||
|
.flags = &.{
|
||||||
|
"-D_GNU_SOURCE",
|
||||||
|
"-fstack-protector-all",
|
||||||
|
"-fno-strict-overflow",
|
||||||
|
"-fno-strict-aliasing",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
exe.addConfigHeader(b.addConfigHeader(.{
|
||||||
|
.include_path = "config.h",
|
||||||
|
}, .{
|
||||||
|
.VTUN_CONFIG_FILE = "/etc/vtund.conf",
|
||||||
|
.VTUN_PID_FILE = "/var/run/vtund.pid",
|
||||||
|
.VTUN_STAT_DIR = "/var/log/vtund",
|
||||||
|
.VTUN_LOCK_DIR = "/var/lock/vtund",
|
||||||
|
|
||||||
|
.ENABLE_NAT_HACK = 0,
|
||||||
|
.HAVE_ARPA_INET_H = 1,
|
||||||
|
.HAVE_FORK = 1,
|
||||||
|
|
||||||
|
//.HAVE_GETPT = 1, // pty tunnels
|
||||||
|
//.HAVE_GRANTPT = 1, // pty tunnels
|
||||||
|
|
||||||
|
.HAVE_INTTYPES_H = 1,
|
||||||
|
.HAVE_LINUX_IF_TUN_H = 1,
|
||||||
|
.HAVE_NETDB_H = 1,
|
||||||
|
.HAVE_NETINET_IN_H = 1,
|
||||||
|
.HAVE_NETINET_IN_SYSTM_H = 1,
|
||||||
|
.HAVE_NETINET_IP_H = 1,
|
||||||
|
.HAVE_NETINET_TCP_H = 1,
|
||||||
|
//.HAVE_PTSNAME = 1, // pty tunnels
|
||||||
|
.HAVE_RESOLV_H = 1,
|
||||||
|
.HAVE_SCHED_H = 1,
|
||||||
|
.HAVE_SHAPER = 1,
|
||||||
|
.HAVE_SODIUM = 1,
|
||||||
|
.HAVE_STDINT_H = 1,
|
||||||
|
.HAVE_STDIO_H = 1,
|
||||||
|
.HAVE_STDLIB_H = 1,
|
||||||
|
.HAVE_STRINGS_H = 1,
|
||||||
|
.HAVE_STRING_H = 1,
|
||||||
|
.HAVE_SYS_RESOURCE_H = 1,
|
||||||
|
.HAVE_SYS_STAT_H = 1,
|
||||||
|
.HAVE_SYS_TYPES_H = 1,
|
||||||
|
.HAVE_UNISTD_H = 1,
|
||||||
|
//.HAVE_UNLOCKPT = 1, // pty tunnels
|
||||||
|
.HAVE_VFORK = 1,
|
||||||
|
.HAVE_WORKING_FORK = 1,
|
||||||
|
.HAVE_WORKING_VFORK = 1,
|
||||||
|
.PACKAGE_BUGREPORT = "",
|
||||||
|
.PACKAGE_NAME = "vtun",
|
||||||
|
.PACKAGE_STRING = "vtun = 3",
|
||||||
|
.PACKAGE_TARNAME = "vtun",
|
||||||
|
.PACKAGE_URL = "",
|
||||||
|
.PACKAGE_VERSION = "3",
|
||||||
|
.STDC_HEADERS = 1,
|
||||||
|
.VTUN_VER = "3.X = 10/10/2024",
|
||||||
|
.YYTEXT_POINTER = 1,
|
||||||
|
}));
|
||||||
|
|
||||||
|
exe.addIncludePath(b.path("."));
|
||||||
|
|
||||||
|
b.installArtifact(exe);
|
||||||
|
}
|
81
build.zig.zon
Normal file
81
build.zig.zon
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
.{
|
||||||
|
.name = "vtun",
|
||||||
|
.version = "1.1.0",
|
||||||
|
.minimum_zig_version = "0.12.0",
|
||||||
|
.dependencies = .{
|
||||||
|
.libsodium = .{
|
||||||
|
.url = "git+https://github.com/jedisct1/libsodium.git?ref=1.0.20-RELEASE#9511c982fb1d046470a8b42aa36556cdb7da15de",
|
||||||
|
.hash = "1220d265dc673167ffe4a3cefe2840893d2910cfd773cfb1893ff768d5f1351d2a1f",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
.paths = .{
|
||||||
|
"build.zig",
|
||||||
|
"build.zig.zon",
|
||||||
|
|
||||||
|
".cvsignore",
|
||||||
|
".gitignore",
|
||||||
|
"ChangeLog",
|
||||||
|
"Credits",
|
||||||
|
"Makefile.in",
|
||||||
|
"README",
|
||||||
|
"README.md",
|
||||||
|
"TODO",
|
||||||
|
"aclocal.m4",
|
||||||
|
"auth.c",
|
||||||
|
"auth.h",
|
||||||
|
"autogen.sh",
|
||||||
|
"build.zig",
|
||||||
|
"cfg_file.l",
|
||||||
|
"cfg_file.y",
|
||||||
|
"cfg_kwords.h",
|
||||||
|
"client.c",
|
||||||
|
"compat.h",
|
||||||
|
"configure.ac",
|
||||||
|
"driver.h",
|
||||||
|
"freebsd/tun_dev.c",
|
||||||
|
"generic/pipe_dev.c",
|
||||||
|
"generic/pty_dev.c",
|
||||||
|
"generic/tap_dev.c",
|
||||||
|
"generic/tcp_proto.c",
|
||||||
|
"generic/tun_dev.c",
|
||||||
|
"generic/udp_proto.c",
|
||||||
|
"lfd_encrypt.c",
|
||||||
|
"lfd_lzo.c",
|
||||||
|
"lfd_shaper.c",
|
||||||
|
"lfd_zlib.c",
|
||||||
|
"lib.c",
|
||||||
|
"lib.h",
|
||||||
|
"linkfd.c",
|
||||||
|
"linkfd.h",
|
||||||
|
"linux/tap_dev.c",
|
||||||
|
"linux/tun_dev.c",
|
||||||
|
"llist.c",
|
||||||
|
"llist.h",
|
||||||
|
"lock.c",
|
||||||
|
"lock.h",
|
||||||
|
"main.c",
|
||||||
|
"netlib.c",
|
||||||
|
"netlib.h",
|
||||||
|
"openbsd/tun_dev.c",
|
||||||
|
"packages/vtun.bsd.pkg",
|
||||||
|
"packages/vtun.solaris.info",
|
||||||
|
"packages/vtun.spec",
|
||||||
|
"scripts/reroute",
|
||||||
|
"scripts/vtund.rc.debian",
|
||||||
|
"server.c",
|
||||||
|
"svr4/tap_dev.c",
|
||||||
|
"svr4/tun_dev.c",
|
||||||
|
"tunnel.c",
|
||||||
|
"vtun.drivers",
|
||||||
|
"vtun.h",
|
||||||
|
"vtun_socks.h",
|
||||||
|
"vtund.8",
|
||||||
|
"vtund.conf",
|
||||||
|
"vtund.conf.5",
|
||||||
|
|
||||||
|
// generated
|
||||||
|
"cfg_file.c",
|
||||||
|
"cfg_file.lex.c",
|
||||||
|
"cfg_file.tab.h",
|
||||||
|
},
|
||||||
|
}
|
2406
cfg_file.c
Normal file
2406
cfg_file.c
Normal file
File diff suppressed because it is too large
Load Diff
1997
cfg_file.lex.c
Normal file
1997
cfg_file.lex.c
Normal file
File diff suppressed because it is too large
Load Diff
163
cfg_file.tab.h
Normal file
163
cfg_file.tab.h
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
/* A Bison parser, made by GNU Bison 3.8.2. */
|
||||||
|
|
||||||
|
/* Bison interface for Yacc-like parsers in C
|
||||||
|
|
||||||
|
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
|
||||||
|
Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* As a special exception, you may create a larger work that contains
|
||||||
|
part or all of the Bison parser skeleton and distribute that work
|
||||||
|
under terms of your choice, so long as that work isn't itself a
|
||||||
|
parser generator using the skeleton or a modified version thereof
|
||||||
|
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||||
|
the parser skeleton itself, you may (at your option) remove this
|
||||||
|
special exception, which will cause the skeleton and the resulting
|
||||||
|
Bison output files to be licensed under the GNU General Public
|
||||||
|
License without this special exception.
|
||||||
|
|
||||||
|
This special exception was added by the Free Software Foundation in
|
||||||
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
|
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
|
||||||
|
especially those whose name start with YY_ or yy_. They are
|
||||||
|
private implementation details that can be changed or removed. */
|
||||||
|
|
||||||
|
#ifndef YY_YY_CFG_FILE_TAB_H_INCLUDED
|
||||||
|
# define YY_YY_CFG_FILE_TAB_H_INCLUDED
|
||||||
|
/* Debug traces. */
|
||||||
|
#ifndef YYDEBUG
|
||||||
|
# define YYDEBUG 0
|
||||||
|
#endif
|
||||||
|
#if YYDEBUG
|
||||||
|
extern int yydebug;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Token kinds. */
|
||||||
|
#ifndef YYTOKENTYPE
|
||||||
|
# define YYTOKENTYPE
|
||||||
|
enum yytokentype
|
||||||
|
{
|
||||||
|
YYEMPTY = -2,
|
||||||
|
YYEOF = 0, /* "end of file" */
|
||||||
|
YYerror = 256, /* error */
|
||||||
|
YYUNDEF = 257, /* "invalid token" */
|
||||||
|
K_OPTIONS = 258, /* K_OPTIONS */
|
||||||
|
K_DEFAULT = 259, /* K_DEFAULT */
|
||||||
|
K_PORT = 260, /* K_PORT */
|
||||||
|
K_BINDADDR = 261, /* K_BINDADDR */
|
||||||
|
K_PERSIST = 262, /* K_PERSIST */
|
||||||
|
K_TIMEOUT = 263, /* K_TIMEOUT */
|
||||||
|
K_PASSWD = 264, /* K_PASSWD */
|
||||||
|
K_PROG = 265, /* K_PROG */
|
||||||
|
K_PPP = 266, /* K_PPP */
|
||||||
|
K_SPEED = 267, /* K_SPEED */
|
||||||
|
K_IFCFG = 268, /* K_IFCFG */
|
||||||
|
K_FWALL = 269, /* K_FWALL */
|
||||||
|
K_ROUTE = 270, /* K_ROUTE */
|
||||||
|
K_DEVICE = 271, /* K_DEVICE */
|
||||||
|
K_MULTI = 272, /* K_MULTI */
|
||||||
|
K_SRCADDR = 273, /* K_SRCADDR */
|
||||||
|
K_IFACE = 274, /* K_IFACE */
|
||||||
|
K_ADDR = 275, /* K_ADDR */
|
||||||
|
K_TYPE = 276, /* K_TYPE */
|
||||||
|
K_PROT = 277, /* K_PROT */
|
||||||
|
K_NAT_HACK = 278, /* K_NAT_HACK */
|
||||||
|
K_COMPRESS = 279, /* K_COMPRESS */
|
||||||
|
K_ENCRYPT = 280, /* K_ENCRYPT */
|
||||||
|
K_KALIVE = 281, /* K_KALIVE */
|
||||||
|
K_STAT = 282, /* K_STAT */
|
||||||
|
K_UP = 283, /* K_UP */
|
||||||
|
K_DOWN = 284, /* K_DOWN */
|
||||||
|
K_SYSLOG = 285, /* K_SYSLOG */
|
||||||
|
K_IPROUTE = 286, /* K_IPROUTE */
|
||||||
|
K_HOST = 287, /* K_HOST */
|
||||||
|
K_ERROR = 288, /* K_ERROR */
|
||||||
|
WORD = 289, /* WORD */
|
||||||
|
PATH = 290, /* PATH */
|
||||||
|
STRING = 291, /* STRING */
|
||||||
|
NUM = 292, /* NUM */
|
||||||
|
DNUM = 293 /* DNUM */
|
||||||
|
};
|
||||||
|
typedef enum yytokentype yytoken_kind_t;
|
||||||
|
#endif
|
||||||
|
/* Token kinds. */
|
||||||
|
#define YYEMPTY -2
|
||||||
|
#define YYEOF 0
|
||||||
|
#define YYerror 256
|
||||||
|
#define YYUNDEF 257
|
||||||
|
#define K_OPTIONS 258
|
||||||
|
#define K_DEFAULT 259
|
||||||
|
#define K_PORT 260
|
||||||
|
#define K_BINDADDR 261
|
||||||
|
#define K_PERSIST 262
|
||||||
|
#define K_TIMEOUT 263
|
||||||
|
#define K_PASSWD 264
|
||||||
|
#define K_PROG 265
|
||||||
|
#define K_PPP 266
|
||||||
|
#define K_SPEED 267
|
||||||
|
#define K_IFCFG 268
|
||||||
|
#define K_FWALL 269
|
||||||
|
#define K_ROUTE 270
|
||||||
|
#define K_DEVICE 271
|
||||||
|
#define K_MULTI 272
|
||||||
|
#define K_SRCADDR 273
|
||||||
|
#define K_IFACE 274
|
||||||
|
#define K_ADDR 275
|
||||||
|
#define K_TYPE 276
|
||||||
|
#define K_PROT 277
|
||||||
|
#define K_NAT_HACK 278
|
||||||
|
#define K_COMPRESS 279
|
||||||
|
#define K_ENCRYPT 280
|
||||||
|
#define K_KALIVE 281
|
||||||
|
#define K_STAT 282
|
||||||
|
#define K_UP 283
|
||||||
|
#define K_DOWN 284
|
||||||
|
#define K_SYSLOG 285
|
||||||
|
#define K_IPROUTE 286
|
||||||
|
#define K_HOST 287
|
||||||
|
#define K_ERROR 288
|
||||||
|
#define WORD 289
|
||||||
|
#define PATH 290
|
||||||
|
#define STRING 291
|
||||||
|
#define NUM 292
|
||||||
|
#define DNUM 293
|
||||||
|
|
||||||
|
/* Value type. */
|
||||||
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
|
union YYSTYPE
|
||||||
|
{
|
||||||
|
#line 68 "cfg_file.y"
|
||||||
|
|
||||||
|
char *str;
|
||||||
|
int num;
|
||||||
|
struct { int num1; int num2; } dnum;
|
||||||
|
|
||||||
|
#line 149 "cfg_file.tab.h"
|
||||||
|
|
||||||
|
};
|
||||||
|
typedef union YYSTYPE YYSTYPE;
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern YYSTYPE yylval;
|
||||||
|
|
||||||
|
|
||||||
|
int yyparse (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* !YY_YY_CFG_FILE_TAB_H_INCLUDED */
|
@ -25,6 +25,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
|
||||||
|
1
lib.c
1
lib.c
@ -33,6 +33,7 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
#include <time.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "vtun.h"
|
#include "vtun.h"
|
||||||
|
1
lib.h
1
lib.h
@ -27,6 +27,7 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/uio.h>
|
||||||
|
|
||||||
#ifdef HAVE_LIBUTIL_H
|
#ifdef HAVE_LIBUTIL_H
|
||||||
#include <libutil.h>
|
#include <libutil.h>
|
||||||
|
2
lock.c
2
lock.c
@ -27,7 +27,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/time.h>
|
#include <time.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user