Projects STRLCPY dnstt Commits 966c0c15
🤬
  • ■ ■ ■ ■ ■
    .gitignore
    skipped 3 lines
    4 4  /dnstt-client_*
    5 5  /dnstt-server_*
    6 6  /bin/
     7 +/build/
    7 8   
  • ■ ■ ■ ■ ■ ■
    build-release.sh
    skipped 18 lines
    19 19  LDFLAGS="-s -w"
    20 20  GCFLAGS=""
    21 21   
    22  -OSES=(linux darwin windows freebsd)
     22 +OSES=(linux darwin freebsd)
    23 23  ARCHS=(amd64 386)
    24 24   
    25 25  mkdir bin
    skipped 8 lines
    34 34   fi
    35 35   
    36 36   build () {
    37  - env CGO_ENABLED=0 GOOS=$os GOARCH=$arch go build -v -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o $1_${os}_${arch}${suffix} ./$1
    38  - $upx $1_${os}_${arch}${suffix} >/dev/null
    39  - tar -zcf bin/$1-${os}-${arch}-$VERSION.tar.gz $1_${os}_${arch}${suffix}
    40  - $sum bin/$1-${os}-${arch}-$VERSION.tar.gz
     37 + mkdir build
     38 + pushd build
     39 + env CGO_ENABLED=0 GOOS=$os GOARCH=$arch go build -v -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o $1 ../$1
     40 + $upx $1 >/dev/null
     41 + tar -zcf ../bin/$1-plugin-${os}-${arch}-$VERSION.tar.gz $1 -C .. $1-plugin
     42 + $sum ../bin/$1-plugin-${os}-${arch}-$VERSION.tar.gz
     43 + popd
     44 + rm -rf build
    41 45   }
    42 46   build 'dnstt-client'
    43 47   build 'dnstt-server'
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    dnstt-client-plugin
     1 +#!/bin/bash
     2 +
     3 +# ss-local -s 0.0.0.1 -p 1 -l 1080 -k password --plugin dnstt-client-plugin --plugin-opts 'doh=https://doh.example/dns-query;domain=<domain>;pubkey=<pubkey>'
     4 +
     5 +DNSTT_CLIENT="./dnstt-client"
     6 +
     7 +unset TRANSPORT RESOLVER PUBKEY DOMAIN
     8 +IFS=";" read -a OPTIONS <<<"$SS_PLUGIN_OPTIONS"
     9 +for opt in "${OPTIONS[@]}"; do
     10 + IFS="=" read key value <<<"$opt"
     11 + case "$key" in
     12 + doh ) TRANSPORT=-doh; RESOLVER="$value";;
     13 + dot ) TRANSPORT=-dot; RESOLVER="$value";;
     14 + udp ) TRANSPORT=-udp; RESOLVER="$value";;
     15 + pubkey ) PUBKEY="$value";;
     16 + domain ) DOMAIN="$value";;
     17 + esac
     18 +done
     19 +
     20 +TRANSPORT="${TRANSPORT:?need doh=, dot=, or udp=}"
     21 +RESOLVER="${RESOLVER:?need doh=, dot=, or udp=}"
     22 +PUBKEY="${PUBKEY:?need pubkey=}"
     23 +DOMAIN="${DOMAIN:?need domain=}"
     24 +SS_LOCAL_HOST="${SS_LOCAL_HOST:?}"
     25 +SS_LOCAL_PORT="${SS_LOCAL_PORT:?}"
     26 +
     27 +exec "$DNSTT_CLIENT" "$TRANSPORT" "$RESOLVER" -pubkey "$PUBKEY" "$DOMAIN" "$SS_LOCAL_HOST:$SS_LOCAL_PORT"
     28 + 
  • ■ ■ ■ ■ ■ ■
    dnstt-server-plugin
     1 +#!/bin/bash
     2 +
     3 +# ss-server -p 53 -k <password> --plugin dnstt-server-plugin --plugin-opts 'domain=<domain>;privkey=<privkey>'
     4 +
     5 +DNSTT_SERVER="./dnstt-server"
     6 +
     7 +unset PRIVKEY DOMAIN MTU
     8 +IFS=";" read -a OPTIONS <<<"$SS_PLUGIN_OPTIONS"
     9 +for opt in "${OPTIONS[@]}"; do
     10 + IFS="=" read key value <<<"$opt"
     11 + case "$key" in
     12 + privkey ) PRIVKEY="$value";;
     13 + domain ) DOMAIN="$value";;
     14 + mtu ) MTU="$value";;
     15 + esac
     16 +done
     17 +
     18 +PRIVKEY="${PRIVKEY:?need privkey=}"
     19 +DOMAIN="${DOMAIN:?need domain=}"
     20 +SS_LOCAL_HOST="${SS_LOCAL_HOST:?}"
     21 +SS_LOCAL_PORT="${SS_LOCAL_PORT:?}"
     22 +SS_REMOTE_HOST="${SS_REMOTE_HOST:?}"
     23 +SS_REMOTE_PORT="${SS_REMOTE_PORT:?}"
     24 +
     25 +exec "$DNSTT_SERVER" -udp "$SS_REMOTE_HOST:$SS_REMOTE_PORT" -privkey "$PRIVKEY" ${MTU:+-mtu "$MTU"} "$DOMAIN" "$SS_LOCAL_HOST:$SS_LOCAL_PORT"
     26 + 
Please wait...
Page is in error, reload to recover