diff --git a/net/spoofdpi/Makefile b/net/spoofdpi/Makefile index 2c9da0e06d27..e6b31c9949c8 100644 --- a/net/spoofdpi/Makefile +++ b/net/spoofdpi/Makefile @@ -1,65 +1,71 @@ PORTNAME= spoofdpi DISTVERSIONPREFIX= v -DISTVERSION= 1.1.3 -PORTREVISION= 1 +DISTVERSION= 1.2.0 CATEGORIES= net MAINTAINER= nxjoseph@protonmail.com COMMENT= Simple and fast anti-censorship tool WWW= https://spoofdpi.xvzc.dev/ \ https://github.com/xvzc/SpoofDPI/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USES= go:modules USE_GITHUB= yes GH_ACCOUNT= xvzc GH_PROJECT= SpoofDPI GH_TUPLE= BurntSushi:toml:v1.5.0:burntsushi_toml/vendor/github.com/BurntSushi/toml \ davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \ + gabriel-vasile:mimetype:v1.4.10:gabriel_vasile_mimetype/vendor/github.com/gabriel-vasile/mimetype \ go-check:check:41f04d3bba15:go_check_check/vendor/gopkg.in/check.v1 \ + go-playground:locales:v0.14.1:go_playground_locales/vendor/github.com/go-playground/locales \ + go-playground:universal-translator:v0.18.1:go_playground_universal_translator/vendor/github.com/go-playground/universal-translator \ + go-playground:validator:v10.28.0:go_playground_validator_v10/vendor/github.com/go-playground/validator/v10 \ go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \ - golang:mod:v0.18.0:golang_mod/vendor/golang.org/x/mod \ - golang:net:v0.38.0:golang_net/vendor/golang.org/x/net \ - golang:sync:v0.12.0:golang_sync/vendor/golang.org/x/sync \ - golang:sys:v0.31.0:golang_sys/vendor/golang.org/x/sys \ - golang:tools:v0.22.0:golang_tools/vendor/golang.org/x/tools \ + golang:crypto:v0.42.0:golang_crypto/vendor/golang.org/x/crypto \ + golang:mod:v0.27.0:golang_mod/vendor/golang.org/x/mod \ + golang:net:v0.43.0:golang_net/vendor/golang.org/x/net \ + golang:sync:v0.17.0:golang_sync/vendor/golang.org/x/sync \ + golang:sys:v0.36.0:golang_sys/vendor/golang.org/x/sys \ + golang:text:v0.29.0:golang_text/vendor/golang.org/x/text \ + golang:tools:v0.36.0:golang_tools/vendor/golang.org/x/tools \ google:gopacket:v1.1.19:google_gopacket/vendor/github.com/google/gopacket \ jackpal:gateway:v1.1.1:jackpal_gateway/vendor/github.com/jackpal/gateway \ kr:pretty:v0.1.0:kr_pretty/vendor/github.com/kr/pretty \ + leodido:go-urn:v1.4.0:leodido_go_urn/vendor/github.com/leodido/go-urn \ mattn:go-colorable:v0.1.13:mattn_go_colorable/vendor/github.com/mattn/go-colorable \ mattn:go-isatty:v0.0.19:mattn_go_isatty/vendor/github.com/mattn/go-isatty \ - mattn:go-runewidth:v0.0.15:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \ miekg:dns:v1.1.61:miekg_dns/vendor/github.com/miekg/dns \ pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \ rs:zerolog:v1.33.0:rs_zerolog/vendor/github.com/rs/zerolog \ + samber:lo:v1.52.0:samber_lo/vendor/github.com/samber/lo \ stretchr:objx:v0.5.2:stretchr_objx/vendor/github.com/stretchr/objx \ stretchr:testify:v1.11.1:stretchr_testify/vendor/github.com/stretchr/testify \ - urfave:cli:v3.5.0:urfave_cli_v3/vendor/github.com/urfave/cli/v3 + urfave:cli:v3.6.1:urfave_cli_v3/vendor/github.com/urfave/cli/v3 USE_RC_SUBR= ${PORTNAME} GO_TARGET= ./cmd/${PORTNAME} GO_BUILDFLAGS= -ldflags="-s -w -X main.build=${OPSYS:tl} -X main.version=${DISTVERSION}" CGO_CFLAGS+= -I/usr/include CGO_LDFLAGS+= -L/usr/lib SUB_FILES= pkg-message SUB_LIST= USER=${USERS} USERS= ${PORTNAME} GROUPS= ${PORTNAME} PLIST_FILES= "@dir(${USERS},${GROUPS},0770) ${ETCDIR}" \ "@sample(${USERS},${GROUPS},0770) ${ETCDIR}/${PORTNAME}.toml.sample" \ bin/${PORTNAME} post-patch: ${CP} ${FILESDIR}/modules.txt ${WRKSRC}/vendor - @${REINPLACE_CMD} -e '220s#"etc"#"${ETCDIR}"#g' \ + @${REINPLACE_CMD} -e '342s#"etc"#"${ETCDIR}"#g' \ ${WRKSRC}/internal/config/cli.go post-install: @${MKDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.toml.sample \ ${STAGEDIR}${ETCDIR} .include diff --git a/net/spoofdpi/distinfo b/net/spoofdpi/distinfo index f7ef56ede616..92bef04d1cfd 100644 --- a/net/spoofdpi/distinfo +++ b/net/spoofdpi/distinfo @@ -1,45 +1,59 @@ -TIMESTAMP = 1764165145 -SHA256 (xvzc-SpoofDPI-v1.1.3_GH0.tar.gz) = 638630f41313583381f58158197fca8bb5b70686298ce0e9539866bde5929a60 -SIZE (xvzc-SpoofDPI-v1.1.3_GH0.tar.gz) = 1495404 +TIMESTAMP = 1765917720 +SHA256 (xvzc-SpoofDPI-v1.2.0_GH0.tar.gz) = 30dbc1b69ac1cedb10703a4dc6923c761bf845b7450e4600dd4aab293480ff05 +SIZE (xvzc-SpoofDPI-v1.2.0_GH0.tar.gz) = 1525752 SHA256 (BurntSushi-toml-v1.5.0_GH0.tar.gz) = 723ede1a61ca8311046f840020e485dec3ceb2e614d1a539cd154375bdd7b8cb SIZE (BurntSushi-toml-v1.5.0_GH0.tar.gz) = 118644 SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152 +SHA256 (gabriel-vasile-mimetype-v1.4.10_GH0.tar.gz) = cabca04c944919cbf146fd8e0bd444795e5942aeacc7252f910df27fb196f97b +SIZE (gabriel-vasile-mimetype-v1.4.10_GH0.tar.gz) = 826818 SHA256 (go-check-check-41f04d3bba15_GH0.tar.gz) = 2d5b1036909b241e44f0d6a7cfa936cf9f875efb4f0af077cd61585c6d0c0432 SIZE (go-check-check-41f04d3bba15_GH0.tar.gz) = 31614 +SHA256 (go-playground-locales-v0.14.1_GH0.tar.gz) = 29b29f1ff125e04a4d81a1f584d929ac8444663255cfdfa076a78339e23b4624 +SIZE (go-playground-locales-v0.14.1_GH0.tar.gz) = 4364173 +SHA256 (go-playground-universal-translator-v0.18.1_GH0.tar.gz) = 5e30d5afbaebbac71e95a826920465fadd7e0ce0fdb00ee8ce29451a09aaa4f2 +SIZE (go-playground-universal-translator-v0.18.1_GH0.tar.gz) = 37149 +SHA256 (go-playground-validator-v10.28.0_GH0.tar.gz) = 60a91e1db10695c626d2c247571e5ff810f7c28eb0a5851704d610dd77e4f247 +SIZE (go-playground-validator-v10.28.0_GH0.tar.gz) = 308643 SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5 SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173 -SHA256 (golang-mod-v0.18.0_GH0.tar.gz) = 247133e4ef1a5863af267a81c2d3f2b6e6b439f250db4e1d7e16df46d37e4d71 -SIZE (golang-mod-v0.18.0_GH0.tar.gz) = 123147 -SHA256 (golang-net-v0.38.0_GH0.tar.gz) = f5f44a7625a2cee3ab3b38f8b08a1e058395faf44c29ae5e9a29af9e5f13c822 -SIZE (golang-net-v0.38.0_GH0.tar.gz) = 1502112 -SHA256 (golang-sync-v0.12.0_GH0.tar.gz) = 1032c8a956571df44cfb3c22122a7a3a771af53b1af5698b15e0143a8aacfde7 -SIZE (golang-sync-v0.12.0_GH0.tar.gz) = 17923 -SHA256 (golang-sys-v0.31.0_GH0.tar.gz) = de9873501d7e57afe8964b48d17392f82b5f1fd611915e6084523f9eb7506972 -SIZE (golang-sys-v0.31.0_GH0.tar.gz) = 1523040 -SHA256 (golang-tools-v0.22.0_GH0.tar.gz) = ae80020fa6994e1e112478eb4fc3aefcf9b21500c6e2ef5c5b3bdbb3f8943f13 -SIZE (golang-tools-v0.22.0_GH0.tar.gz) = 3853706 +SHA256 (golang-crypto-v0.42.0_GH0.tar.gz) = 4f0c623e94394b192af9afb187954b84af65cf0cb6aab852b14323c60506aa63 +SIZE (golang-crypto-v0.42.0_GH0.tar.gz) = 2156903 +SHA256 (golang-mod-v0.27.0_GH0.tar.gz) = dcd1ba21c7695b209830ccc4881e41d591ae65e6f1938575bd095640444afa19 +SIZE (golang-mod-v0.27.0_GH0.tar.gz) = 126553 +SHA256 (golang-net-v0.43.0_GH0.tar.gz) = 82b2d04549216f36a8c538a756010a90222e3942ab815596b86a62dbf766f2d2 +SIZE (golang-net-v0.43.0_GH0.tar.gz) = 1504428 +SHA256 (golang-sync-v0.17.0_GH0.tar.gz) = 43bb928dbf895ec51797c1ec8899dd8cbb57af34e8e0c4960609cb957af1aad7 +SIZE (golang-sync-v0.17.0_GH0.tar.gz) = 18189 +SHA256 (golang-sys-v0.36.0_GH0.tar.gz) = 5a4963997b147e64a840afb93c662bf4e320a3089d4540b7c0cbc982ad09bc2a +SIZE (golang-sys-v0.36.0_GH0.tar.gz) = 1530636 +SHA256 (golang-text-v0.29.0_GH0.tar.gz) = 9fbdba333af6a936b6f54a3c9f730f3e29ecece3f1a98285ff8dfee79225d371 +SIZE (golang-text-v0.29.0_GH0.tar.gz) = 8973069 +SHA256 (golang-tools-v0.36.0_GH0.tar.gz) = 299d2320e8f6adb5b53fb1a32e613b00cd2263237c2c4f8f3a68885040b2cfb9 +SIZE (golang-tools-v0.36.0_GH0.tar.gz) = 9079404 SHA256 (google-gopacket-v1.1.19_GH0.tar.gz) = 31efa87cc9d2b41e5e66c7daa8839d841d2a43cc477bf595c9e8c24ef6903830 SIZE (google-gopacket-v1.1.19_GH0.tar.gz) = 950745 SHA256 (jackpal-gateway-v1.1.1_GH0.tar.gz) = 69842d3b542a8c436f23fabaf40ec8ff88272e0639d7905c3bab2d94ea13b52b SIZE (jackpal-gateway-v1.1.1_GH0.tar.gz) = 16671 SHA256 (kr-pretty-v0.1.0_GH0.tar.gz) = 3aeb5d90b719765781befb9f156d0d0b8e5a7aafbcf15321e9eabbd35df31358 SIZE (kr-pretty-v0.1.0_GH0.tar.gz) = 8550 +SHA256 (leodido-go-urn-v1.4.0_GH0.tar.gz) = 711dcaa61598e44f058be5884aca8ce6d9ba42ed0940fdd280fec36495ed90d3 +SIZE (leodido-go-urn-v1.4.0_GH0.tar.gz) = 1998692 SHA256 (mattn-go-colorable-v0.1.13_GH0.tar.gz) = c3b62c76d365906bba9aa9d9ec048fd33a2a5742299d6482a08e7466d4c52d77 SIZE (mattn-go-colorable-v0.1.13_GH0.tar.gz) = 9762 SHA256 (mattn-go-isatty-v0.0.19_GH0.tar.gz) = 67b1614d495030982d276b211f3ba2a155fad61919ba96e34db8e67ed28660e4 SIZE (mattn-go-isatty-v0.0.19_GH0.tar.gz) = 4679 -SHA256 (mattn-go-runewidth-v0.0.15_GH0.tar.gz) = 44a5d37bd7119a9d288d7ff61cf3b4d42c2902c66b0d94136d41d2eb3cf2ba85 -SIZE (mattn-go-runewidth-v0.0.15_GH0.tar.gz) = 18284 SHA256 (miekg-dns-v1.1.61_GH0.tar.gz) = 90333c02da30c7ec20688e854e34f71d450831e5c4eba007d828864bb4ff4d47 SIZE (miekg-dns-v1.1.61_GH0.tar.gz) = 217914 SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398 SHA256 (rs-zerolog-v1.33.0_GH0.tar.gz) = 7a32947b007164edb7a888048f8bec6d7de9cf503e79e099d6b6814fad0f6ac7 SIZE (rs-zerolog-v1.33.0_GH0.tar.gz) = 216046 +SHA256 (samber-lo-v1.52.0_GH0.tar.gz) = f2045b040f9afff60182f2c161e1c4aca6a49e656be1022d1eda497d240e8383 +SIZE (samber-lo-v1.52.0_GH0.tar.gz) = 93914 SHA256 (stretchr-objx-v0.5.2_GH0.tar.gz) = c21c81a2e619fe8194c9cfafd577a72fe163df5a384d68799fbc54eef4b0e33f SIZE (stretchr-objx-v0.5.2_GH0.tar.gz) = 33222 SHA256 (stretchr-testify-v1.11.1_GH0.tar.gz) = 4b51fbc0f19e42841013748e6d527314e1d0e7255122766b5fca1d35b4630c69 SIZE (stretchr-testify-v1.11.1_GH0.tar.gz) = 116832 -SHA256 (urfave-cli-v3.5.0_GH0.tar.gz) = bb5987d7ba2c59721496e01a246732955051140126df5f1e6da6d9c9c20ad5e2 -SIZE (urfave-cli-v3.5.0_GH0.tar.gz) = 6805679 +SHA256 (urfave-cli-v3.6.1_GH0.tar.gz) = cfddd39c0df7a7c1f7ec93b0c84fdb4c72ef46d2380a46d273a5cda585cb80cf +SIZE (urfave-cli-v3.6.1_GH0.tar.gz) = 6807151 diff --git a/net/spoofdpi/files/modules.txt b/net/spoofdpi/files/modules.txt index 48c505de7ef7..363d89b25ba8 100644 --- a/net/spoofdpi/files/modules.txt +++ b/net/spoofdpi/files/modules.txt @@ -1,88 +1,105 @@ # github.com/BurntSushi/toml v1.5.0 ## explicit; go 1.18 github.com/BurntSushi/toml github.com/BurntSushi/toml/internal # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew +# github.com/gabriel-vasile/mimetype v1.4.10 +## explicit; go 1.21 +# github.com/go-playground/locales v0.14.1 +## explicit; go 1.17 +# github.com/go-playground/universal-translator v0.18.1 +## explicit; go 1.18 +# github.com/go-playground/validator/v10 v10.28.0 +## explicit; go 1.24.0 # github.com/google/gopacket v1.1.19 ## explicit; go 1.12 github.com/google/gopacket github.com/google/gopacket/layers github.com/google/gopacket/pcap # github.com/jackpal/gateway v1.1.1 ## explicit; go 1.24.2 github.com/jackpal/gateway # github.com/kr/pretty v0.1.0 ## explicit +# github.com/leodido/go-urn v1.4.0 +## explicit; go 1.18 # github.com/mattn/go-colorable v0.1.13 ## explicit; go 1.15 github.com/mattn/go-colorable # github.com/mattn/go-isatty v0.0.19 ## explicit; go 1.15 github.com/mattn/go-isatty # github.com/miekg/dns v1.1.61 ## explicit; go 1.19 github.com/miekg/dns # github.com/pmezard/go-difflib v1.0.0 ## explicit github.com/pmezard/go-difflib/difflib # github.com/rs/zerolog v1.33.0 ## explicit; go 1.15 github.com/rs/zerolog github.com/rs/zerolog/internal/cbor github.com/rs/zerolog/internal/json github.com/rs/zerolog/log +# github.com/samber/lo v1.52.0 +## explicit; go 1.18 # github.com/stretchr/objx v0.5.2 ## explicit; go 1.20 github.com/stretchr/objx # github.com/stretchr/testify v1.11.1 ## explicit; go 1.17 github.com/stretchr/testify/assert github.com/stretchr/testify/assert/yaml github.com/stretchr/testify/mock -# github.com/urfave/cli/v3 v3.5.0 +github.com/stretchr/testify/require +# github.com/urfave/cli/v3 v3.6.1 ## explicit; go 1.22 github.com/urfave/cli/v3 -# golang.org/x/mod v0.18.0 -## explicit; go 1.18 +# golang.org/x/crypto v0.42.0 +## explicit; go 1.24.0 +# golang.org/x/mod v0.27.0 +## explicit; go 1.23.0 golang.org/x/mod/semver -# golang.org/x/net v0.38.0 +# golang.org/x/net v0.43.0 ## explicit; go 1.23.0 golang.org/x/net/bpf golang.org/x/net/internal/iana golang.org/x/net/internal/socket golang.org/x/net/ipv4 golang.org/x/net/ipv6 golang.org/x/net/route -# golang.org/x/sync v0.12.0 -## explicit; go 1.23.0 +# golang.org/x/sync v0.17.0 +## explicit; go 1.24.0 golang.org/x/sync/errgroup -# golang.org/x/sys v0.31.0 -## explicit; go 1.23.0 +# golang.org/x/sys v0.36.0 +## explicit; go 1.24.0 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/tools v0.22.0 -## explicit; go 1.19 +# golang.org/x/text v0.29.0 +## explicit; go 1.24.0 +# golang.org/x/tools v0.36.0 +## explicit; go 1.23.0 golang.org/x/tools/go/gcexportdata -golang.org/x/tools/go/internal/packagesdriver golang.org/x/tools/go/packages golang.org/x/tools/go/types/objectpath +golang.org/x/tools/go/types/typeutil golang.org/x/tools/internal/aliases golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys golang.org/x/tools/internal/event/label golang.org/x/tools/internal/gcimporter golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/packagesinternal golang.org/x/tools/internal/pkgbits golang.org/x/tools/internal/stdlib -golang.org/x/tools/internal/tokeninternal +golang.org/x/tools/internal/typeparams golang.org/x/tools/internal/typesinternal golang.org/x/tools/internal/versions # gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 ## explicit # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 diff --git a/net/spoofdpi/files/pkg-message.in b/net/spoofdpi/files/pkg-message.in index 2c70f131080e..a102654f3bf3 100644 --- a/net/spoofdpi/files/pkg-message.in +++ b/net/spoofdpi/files/pkg-message.in @@ -1,37 +1,43 @@ [ { type: install message: < -listen-addr, -port => -listen-port and etc. See the commit link below or project page for the new documentation. # https://github.com/xvzc/${PORTNAME}/commit/a2993ac68d87a0525a93bc23984d21e341214199 EOM } { type: upgrade maximum_version: "1.0.1" message: << EOM A new feature (-fake-https-packets) has been added that adds up a dependency on ${PORTNAME}: libpcap. This feature requires the daemon to be run as root if it is enabled with an argument, it will fail with the default '${PORTNAME}' user, to be able to use it, switch the daemon user to root. # sysrc ${PORTNAME}_user="root" EOM } { type: upgrade maximum_version: "1.0.2" message: << EOM ${PORTNAME} now supports configuration files written in TOML, installed in ${ETCDIR} directory with a sample config file. Options given through the command-line flags (via rc.conf or as user) will override the options set by the config file. You can edit the config via being as root or adding your user to the ${PORTNAME} group (default group). Config locations are: $SPOOFDPI_CONFIG environment variable, ${ETCDIR}/${PORTNAME}.toml, $XDG_CONFIG_HOME/${PORTNAME}/${PORTNAME}.toml and $HOME/.config/${PORTNAME}/${PORTNAME}.toml EOM } +{ type: upgrade + maximum_version: "1.2.0" + message: << EOM +The whole configuration file has changed, see the documentation for more details. I've updated the sample config in the port. +EOM +} ] diff --git a/net/spoofdpi/files/spoofdpi.in b/net/spoofdpi/files/spoofdpi.in index 7c2beb0fc533..9eeedd64b8b2 100644 --- a/net/spoofdpi/files/spoofdpi.in +++ b/net/spoofdpi/files/spoofdpi.in @@ -1,43 +1,43 @@ #!/bin/sh # PROVIDE: spoofdpi # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf or /etc/rc.conf.local to # enable spoofdpi: # spoofdpi_args (str): Custom additional arguments to be passed # spoofdpi (default empty). # spoofdpi_user (str): User to run spoofdpi as. Default # to "%%USER%%" created by the port. -# spoofdpi_log (path): Console log file (default /dev/null). +# spoofdpi_log (path): Console log file (default /var/log/spoofdpi.log or set to /dev/null to omit). . /etc/rc.subr case $0 in /etc/rc*) # during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown), # so get the name of the script from $_file name=$_file ;; *) name=$0 ;; esac name=${name##*/} rcvar="${name}_enable" load_rc_config "${name}" eval "${rcvar}=\${${rcvar}:-'NO'}" eval "_args=\${${name}_args:-''}" eval "_user=\${${name}_user:-'%%USER%%'}" -eval "_log=\${${name}_log:-/dev/null}" +eval "_log=\${${name}_log:-/var/log/${name}.log}" pidfile="/var/run/${name}.pid" command="/usr/sbin/daemon" command_args="-P ${pidfile} -u ${_user} -f -H -o ${_log} -m 3 %%PREFIX%%/bin/spoofdpi ${_args}" run_rc_command "$1" diff --git a/net/spoofdpi/files/spoofdpi.toml.sample b/net/spoofdpi/files/spoofdpi.toml.sample index 3c1af2a7e542..36ce94dbded7 100644 --- a/net/spoofdpi/files/spoofdpi.toml.sample +++ b/net/spoofdpi/files/spoofdpi.toml.sample @@ -1,11 +1,37 @@ -dns-addr = "1.1.1.1" -dns-port = "53" +[general] + +# Available values are debug, trace, info, warn, error, and disabled. (default: "info") +log-level = "info" + +# Don't print banner +silent = true + +# This option is currently only supported on macOS. +system-proxy = false + +[server] # If you want to run SpoofDPI remotely (e.g., on a physically separated machine), then you should set this value # to 0.0.0.0. Otherwise, it is recommended to leave this option as default. -listen-addr = "127.0.0.1" +listen-addr = "127.0.0.1:8080" + +[dns] + +# available options: udp/https/system (default: "udp") +mode = "https" + +# DNS address and port number +# this is used when dns-mode is set to udp. +addr = "8.8.8.8:53" + +# This is used when dns-mode is set to https. +https-url = "https://dns.google/dns-query" + +# Filters DNS queries by record type (A for IPv4, AAAA for IPv6). +# Available values are "ipv4", "ipv6", and "all". +# If your Internet Service Provider (ISP) doesn't support IPv6, it is recommended to set this option to "ipv4" for stability. +qtype = "all" -# Port to listen on. -listen-port = "8080" +# If true, DNS records will be cached to improve performance and reduce latency. +cache = false -doh-endpoint = "https://dns.google/dns-query"