diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml new file mode 100644 index 00000000..b11fe486 --- /dev/null +++ b/.github/workflows/build-and-push-image.yml @@ -0,0 +1,115 @@ +name: Build Image and Publish to Dockerhub & GPR + +on: + release: + types: [ created ] + workflow_dispatch: + inputs: + tag: + description: 'Image tag' + required: true + default: 'test' +jobs: + binary: + name: Build Golang project + runs-on: ubuntu-latest + steps: + - + name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: 1.15 + - + run: go version + - + name: Check out code into the Go module directory + uses: actions/checkout@v2 + - + name: Build + run: make build + - + name: Archive artifacts for frpc + uses: actions/upload-artifact@v1 + with: + name: frpc + path: bin/frpc + - + name: Archive artifacts for frps + uses: actions/upload-artifact@v1 + with: + name: frps + path: bin/frps + + image: + name: Build Image from Dockerfile and binaries + runs-on: ubuntu-latest + needs: binary + steps: + # environment + - + name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: '0' + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + # download binaries of frpc and frps + - + name: Download binary of frpc + uses: actions/download-artifact@v2 + with: + name: frpc + path: bin/frpc + - + name: Download binary of frps + uses: actions/download-artifact@v2 + with: + name: frps + path: bin/frps + # get image tag name + - + name: Get Image Tag Name + run: | + if [ x${{ github.event.inputs.tag }} == x"" ]; then + echo ::set-env name=TAG_NAME::${GITHUB_REF#refs/*/} + else + echo ::set-env name=TAG_NAME::${{ github.event.inputs.tag }} + fi + # prepare image tags + - + name: Prepare Image Tags + run: | + echo ::set-env name=DOCKERFILE_FRPC_PATH::dockerfiles/Dockerfile-for-frpc + echo ::set-env name=DOCKERFILE_FRPS_PATH::dockerfiles/Dockerfile-for-frps + echo ::set-env name=TAG_FRPC::fatedier/frpc:$TAG_NAME + echo ::set-env name=TAG_FRPS::fatedier/frps:$TAG_NAME + echo ::set-env name=TAG_FRPC_GPR::ghcr.io/fatedier/frpc:$TAG_NAME + echo ::set-env name=TAG_FRPS_GPR::ghcr.io/fatedier/frps:$TAG_NAME + # build images + - + name: Build Images + run: | + # for Docker hub + docker build --file $DOCKERFILE_FRPC_PATH --tag $TAG_FRPC . + docker build --file $DOCKERFILE_FRPS_PATH --tag $TAG_FRPS . + # for GPR + docker build --file $DOCKERFILE_FRPC_PATH --tag $TAG_FRPC_GPR . + docker build --file $DOCKERFILE_FRPS_PATH --tag $TAG_FRPS_GPR . + # push to dockerhub + - + name: Publish to Dockerhub + run: | + echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login --username ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin + docker push $TAG_FRPC + docker push $TAG_FRPS + # push to gpr + - + name: Publish to GPR + run: | + echo ${{ secrets.GPR_TOKEN }} | docker login ghcr.io --username ${{ github.repository_owner }} --password-stdin + docker push $TAG_FRPC_GPR + docker push $TAG_FRPS_GPR diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 00000000..587a447f --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,26 @@ +name: "Close stale issues" +on: + schedule: + - cron: "20 0 * * *" + workflow_dispatch: + inputs: + debug-only: + description: 'In debug mod' + required: false + default: 'false' +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v3 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: 'Issues go stale after 45d of inactivity. Stale issues rot after an additional 10d of inactivity and eventually close.' + stale-pr-message: 'Issues go stale after 45d of inactivity. Stale issues rot after an additional 10d of inactivity and eventually close.' + stale-issue-label: 'lifecycle/stale' + exempt-issue-labels: 'bug,doc,enhancement,future,proposal,question,testing,todo,easy,help wanted,assigned' + stale-pr-label: 'lifecycle/stale' + exempt-pr-labels: 'bug,doc,enhancement,future,proposal,question,testing,todo,easy,help wanted,assigned' + days-before-stale: 45 + days-before-close: 10 + debug-only: ${{ github.event.inputs.debug-only }} diff --git a/Makefile b/Makefile index 691cee26..dab01d9b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ export PATH := $(GOPATH)/bin:$(PATH) export GO111MODULE=on +LDFLAGS := -s -w all: fmt build @@ -19,20 +20,19 @@ fmt: go fmt ./... frps: - go build -o bin/frps ./cmd/frps + env CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/frps ./cmd/frps frpc: - go build -o bin/frpc ./cmd/frpc + env CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" -o bin/frpc ./cmd/frpc test: gotest gotest: go test -v --cover ./assets/... - go test -v --cover ./client/... go test -v --cover ./cmd/... - go test -v --cover ./models/... + go test -v --cover ./client/... go test -v --cover ./server/... - go test -v --cover ./utils/... + go test -v --cover ./pkg/... ci: go test -count=1 -p=1 -v ./tests/... diff --git a/client/admin.go b/client/admin.go index 52babe23..fdef060f 100644 --- a/client/admin.go +++ b/client/admin.go @@ -21,7 +21,7 @@ import ( "time" "github.com/fatedier/frp/assets" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/gorilla/mux" ) diff --git a/client/admin_api.go b/client/admin_api.go index 14626736..3977df1f 100644 --- a/client/admin_api.go +++ b/client/admin_api.go @@ -23,8 +23,8 @@ import ( "strings" "github.com/fatedier/frp/client/proxy" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/utils/log" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/log" ) type GeneralResponse struct { diff --git a/client/control.go b/client/control.go index 861c9777..c44a6415 100644 --- a/client/control.go +++ b/client/control.go @@ -25,12 +25,12 @@ import ( "time" "github.com/fatedier/frp/client/proxy" - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/models/transport" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/crypto" @@ -211,10 +211,11 @@ func (ctl *Control) connectServer() (conn net.Conn, err error) { var tlsConfig *tls.Config if ctl.clientCfg.TLSEnable { - tlsConfig, err = transport.NewServerTLSConfig( + tlsConfig, err = transport.NewClientTLSConfig( ctl.clientCfg.TLSCertFile, ctl.clientCfg.TLSKeyFile, - ctl.clientCfg.TLSTrustedCaFile) + ctl.clientCfg.TLSTrustedCaFile, + ctl.clientCfg.ServerAddr) if err != nil { xl.Warn("fail to build tls configuration when connecting to server, err: %v", err) diff --git a/client/event/event.go b/client/event/event.go index 71d61733..f9718448 100644 --- a/client/event/event.go +++ b/client/event/event.go @@ -3,7 +3,7 @@ package event import ( "errors" - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/msg" ) type Type int diff --git a/client/health/health.go b/client/health/health.go index d2ae9103..5a7b3691 100644 --- a/client/health/health.go +++ b/client/health/health.go @@ -24,7 +24,7 @@ import ( "net/http" "time" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/util/xlog" ) var ( diff --git a/client/proxy/proxy.go b/client/proxy/proxy.go index cb7d5177..3e97784a 100644 --- a/client/proxy/proxy.go +++ b/client/proxy/proxy.go @@ -26,13 +26,13 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - plugin "github.com/fatedier/frp/models/plugin/client" - "github.com/fatedier/frp/models/proto/udp" - "github.com/fatedier/frp/utils/limit" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + plugin "github.com/fatedier/frp/pkg/plugin/client" + "github.com/fatedier/frp/pkg/proto/udp" + "github.com/fatedier/frp/pkg/util/limit" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" diff --git a/client/proxy/proxy_manager.go b/client/proxy/proxy_manager.go index 9a78f0f0..98c17faa 100644 --- a/client/proxy/proxy_manager.go +++ b/client/proxy/proxy_manager.go @@ -7,9 +7,9 @@ import ( "sync" "github.com/fatedier/frp/client/event" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/errors" ) diff --git a/client/proxy/proxy_wrapper.go b/client/proxy/proxy_wrapper.go index b3b375e8..f1cd7659 100644 --- a/client/proxy/proxy_wrapper.go +++ b/client/proxy/proxy_wrapper.go @@ -10,9 +10,9 @@ import ( "github.com/fatedier/frp/client/event" "github.com/fatedier/frp/client/health" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/errors" ) diff --git a/client/service.go b/client/service.go index e6451ff1..f5039189 100644 --- a/client/service.go +++ b/client/service.go @@ -18,7 +18,6 @@ import ( "context" "crypto/tls" "fmt" - "github.com/fatedier/frp/models/transport" "io/ioutil" "net" "runtime" @@ -27,13 +26,14 @@ import ( "time" "github.com/fatedier/frp/assets" - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/log" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/version" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/log" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/version" + "github.com/fatedier/frp/pkg/util/xlog" fmux "github.com/hashicorp/yamux" ) diff --git a/client/visitor.go b/client/visitor.go index ce5625f0..85f6a153 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -24,12 +24,12 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/models/proto/udp" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/proto/udp" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" diff --git a/client/visitor_manager.go b/client/visitor_manager.go index ea32eac0..642b21e8 100644 --- a/client/visitor_manager.go +++ b/client/visitor_manager.go @@ -19,8 +19,8 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/xlog" ) type VisitorManager struct { diff --git a/cmd/frpc/sub/http.go b/cmd/frpc/sub/http.go index 801ac5b5..d1286b2e 100644 --- a/cmd/frpc/sub/http.go +++ b/cmd/frpc/sub/http.go @@ -19,10 +19,10 @@ import ( "os" "strings" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/https.go b/cmd/frpc/sub/https.go index 0c01f558..99a22953 100644 --- a/cmd/frpc/sub/https.go +++ b/cmd/frpc/sub/https.go @@ -21,8 +21,8 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" ) func init() { diff --git a/cmd/frpc/sub/reload.go b/cmd/frpc/sub/reload.go index f3514754..44b16770 100644 --- a/cmd/frpc/sub/reload.go +++ b/cmd/frpc/sub/reload.go @@ -22,9 +22,9 @@ import ( "os" "strings" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/models/config" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index 44904768..d84ce827 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -25,13 +25,13 @@ import ( "syscall" "time" - "github.com/spf13/cobra" - "github.com/fatedier/frp/client" - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/version" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/version" + + "github.com/spf13/cobra" ) const ( diff --git a/cmd/frpc/sub/status.go b/cmd/frpc/sub/status.go index a9123f9f..774de53f 100644 --- a/cmd/frpc/sub/status.go +++ b/cmd/frpc/sub/status.go @@ -23,11 +23,11 @@ import ( "os" "strings" + "github.com/fatedier/frp/client" + "github.com/fatedier/frp/pkg/config" + "github.com/rodaine/table" "github.com/spf13/cobra" - - "github.com/fatedier/frp/client" - "github.com/fatedier/frp/models/config" ) func init() { diff --git a/cmd/frpc/sub/stcp.go b/cmd/frpc/sub/stcp.go index 24e881d4..1b4ac0f1 100644 --- a/cmd/frpc/sub/stcp.go +++ b/cmd/frpc/sub/stcp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/sudp.go b/cmd/frpc/sub/sudp.go index 399a5627..d7306771 100644 --- a/cmd/frpc/sub/sudp.go +++ b/cmd/frpc/sub/sudp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/tcp.go b/cmd/frpc/sub/tcp.go index ee30669c..e6f310fd 100644 --- a/cmd/frpc/sub/tcp.go +++ b/cmd/frpc/sub/tcp.go @@ -20,8 +20,8 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" ) func init() { diff --git a/cmd/frpc/sub/tcpmux.go b/cmd/frpc/sub/tcpmux.go index 7a150949..065bf9c1 100644 --- a/cmd/frpc/sub/tcpmux.go +++ b/cmd/frpc/sub/tcpmux.go @@ -21,8 +21,8 @@ import ( "github.com/spf13/cobra" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" ) func init() { diff --git a/cmd/frpc/sub/udp.go b/cmd/frpc/sub/udp.go index 01ff466c..c5219960 100644 --- a/cmd/frpc/sub/udp.go +++ b/cmd/frpc/sub/udp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frpc/sub/xtcp.go b/cmd/frpc/sub/xtcp.go index 018cbf36..6e66f953 100644 --- a/cmd/frpc/sub/xtcp.go +++ b/cmd/frpc/sub/xtcp.go @@ -18,10 +18,10 @@ import ( "fmt" "os" - "github.com/spf13/cobra" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" + "github.com/spf13/cobra" ) func init() { diff --git a/cmd/frps/main.go b/cmd/frps/main.go index 50be5862..d95d8427 100644 --- a/cmd/frps/main.go +++ b/cmd/frps/main.go @@ -21,7 +21,7 @@ import ( "github.com/fatedier/golib/crypto" _ "github.com/fatedier/frp/assets/frps/statik" - _ "github.com/fatedier/frp/models/metrics" + _ "github.com/fatedier/frp/pkg/metrics" ) func main() { diff --git a/cmd/frps/root.go b/cmd/frps/root.go index b6fb362a..fb4fbd02 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -18,14 +18,14 @@ import ( "fmt" "os" - "github.com/spf13/cobra" - - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/version" "github.com/fatedier/frp/server" - "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/version" + + "github.com/spf13/cobra" ) const ( diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index f47c1f21..b73d81a0 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -5,10 +5,11 @@ server_addr = 0.0.0.0 server_port = 7000 -# if you want to connect frps by http proxy or socks5 proxy, you can set http_proxy here or in global environment variables +# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set http_proxy here or in global environment variables # it only works when protocol is tcp # http_proxy = http://user:passwd@192.168.1.128:8080 # http_proxy = socks5://user:passwd@192.168.1.128:1080 +# http_proxy = ntlm://user:passwd@192.168.1.128:2080 # console or real logFile path like ./frpc.log log_file = ./frpc.log @@ -46,7 +47,7 @@ user = your_name login_fail_exit = true # communication protocol used to connect to server -# now it supports tcp and kcp and websocket, default is tcp +# now it supports tcp, kcp and websocket, default is tcp protocol = tcp # if tls_enable is true, frpc will connect frps by tls diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc new file mode 100644 index 00000000..ad3c81dc --- /dev/null +++ b/dockerfiles/Dockerfile-for-frpc @@ -0,0 +1,14 @@ +FROM alpine:3.12.0 AS temp + +COPY bin/frpc /tmp + +RUN chmod -R 777 /tmp/frpc + + +FROM alpine:3.12.0 + +WORKDIR /app + +COPY --from=temp /tmp/frpc /usr/bin + +ENTRYPOINT ["/usr/bin/frpc"] diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps new file mode 100644 index 00000000..77108041 --- /dev/null +++ b/dockerfiles/Dockerfile-for-frps @@ -0,0 +1,14 @@ +FROM alpine:3.12.0 AS temp + +COPY bin/frps /tmp + +RUN chmod -R 777 /tmp/frps + + +FROM alpine:3.12.0 + +WORKDIR /app + +COPY --from=temp /tmp/frps /usr/bin + +ENTRYPOINT ["/usr/bin/frps"] diff --git a/go.mod b/go.mod index d681988a..2b54b4e7 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,8 @@ require ( github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/coreos/go-oidc v2.2.1+incompatible github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb - github.com/fatedier/golib v0.0.0-20181107124048-ff8cd814b049 + github.com/fatedier/golib v0.1.1-0.20200901083111-1f870741e185 github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible - github.com/golang/snappy v0.0.0-20170215233205-553a64147049 // indirect github.com/google/uuid v1.1.1 github.com/gorilla/mux v1.7.3 github.com/gorilla/websocket v1.4.0 diff --git a/go.sum b/go.sum index 2b5e4275..cd561f6f 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= +github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= @@ -25,8 +27,8 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb h1:wCrNShQidLmvVWn/0PikGmpdP0vtQmnvyRg3ZBEhczw= github.com/fatedier/beego v0.0.0-20171024143340-6c6a4f5bd5eb/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= -github.com/fatedier/golib v0.0.0-20181107124048-ff8cd814b049 h1:teH578mf2ii42NHhIp3PhgvjU5bv+NFMq9fSQR8NaG8= -github.com/fatedier/golib v0.0.0-20181107124048-ff8cd814b049/go.mod h1:DqIrnl0rp3Zybg9zbJmozTy1n8fYJoX+QoAj9slIkKM= +github.com/fatedier/golib v0.1.1-0.20200901083111-1f870741e185 h1:2p4W5xYizIYwhiGQgeHOQcRD2O84j0tjD40P6gUCRrk= +github.com/fatedier/golib v0.1.1-0.20200901083111-1f870741e185/go.mod h1:MUs+IH/MGJNz5Cj2JVJBPZBKw2exON7LzO3HrJHmGiQ= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible h1:ssXat9YXFvigNge/IkkZvFMn8yeYKFX+uI6wn2mLJ74= github.com/fatedier/kcp-go v2.0.4-0.20190803094908-fe8645b0a904+incompatible/go.mod h1:YpCOaxj7vvMThhIQ9AfTOPW2sfztQR5WDfs7AflSy4s= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -58,8 +60,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20170215233205-553a64147049 h1:K9KHZbXKpGydfDN0aZrsoHpLJlZsBrGMFWbgLDGnPZk= -github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= @@ -174,6 +176,7 @@ github.com/vaughan0/go-ini v0.0.0-20130923145212-a98ad7ee00ec/go.mod h1:owBmyHYM github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae h1:J0GxkO96kL4WF+AIT3M4mfUVinOCPgf2uUWYFUzN0sM= github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -181,6 +184,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190228165749-92fc7df08ae7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7 h1:AeiKBIuRw3UomYXSbLy0Mc2dDLfdtbT/IVn4keq83P0= diff --git a/models/auth/auth.go b/pkg/auth/auth.go similarity index 98% rename from models/auth/auth.go rename to pkg/auth/auth.go index adbcb3d9..a77123fb 100644 --- a/models/auth/auth.go +++ b/pkg/auth/auth.go @@ -17,8 +17,8 @@ package auth import ( "fmt" - "github.com/fatedier/frp/models/consts" - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/msg" "github.com/vaughan0/go-ini" ) diff --git a/models/auth/oidc.go b/pkg/auth/oidc.go similarity index 99% rename from models/auth/oidc.go rename to pkg/auth/oidc.go index 91c70be0..a1e791aa 100644 --- a/models/auth/oidc.go +++ b/pkg/auth/oidc.go @@ -18,7 +18,7 @@ import ( "context" "fmt" - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/msg" "github.com/coreos/go-oidc" "github.com/vaughan0/go-ini" diff --git a/models/auth/token.go b/pkg/auth/token.go similarity index 97% rename from models/auth/token.go rename to pkg/auth/token.go index 4c680d74..02faf2f9 100644 --- a/models/auth/token.go +++ b/pkg/auth/token.go @@ -18,8 +18,8 @@ import ( "fmt" "time" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/util" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/util" "github.com/vaughan0/go-ini" ) diff --git a/models/config/client_common.go b/pkg/config/client_common.go similarity index 99% rename from models/config/client_common.go rename to pkg/config/client_common.go index 1fe148f6..1af90746 100644 --- a/models/config/client_common.go +++ b/pkg/config/client_common.go @@ -20,9 +20,9 @@ import ( "strconv" "strings" - ini "github.com/vaughan0/go-ini" + "github.com/fatedier/frp/pkg/auth" - "github.com/fatedier/frp/models/auth" + ini "github.com/vaughan0/go-ini" ) // ClientCommonConf contains information for a client service. It is @@ -100,7 +100,7 @@ type ClientCommonConf struct { // set. Start map[string]struct{} `json:"start"` // Protocol specifies the protocol to use when interacting with the server. - // Valid values are "tcp", "kcp", and "websocket". By default, this value + // Valid values are "tcp", "kcp" and "websocket". By default, this value // is "tcp". Protocol string `json:"protocol"` // TLSEnable specifies whether or not TLS should be used when communicating diff --git a/models/config/proxy.go b/pkg/config/proxy.go similarity index 99% rename from models/config/proxy.go rename to pkg/config/proxy.go index 7c143a1a..ad5b64b7 100644 --- a/models/config/proxy.go +++ b/pkg/config/proxy.go @@ -20,9 +20,9 @@ import ( "strconv" "strings" - "github.com/fatedier/frp/models/consts" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/util" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/util" ini "github.com/vaughan0/go-ini" ) diff --git a/models/config/server_common.go b/pkg/config/server_common.go similarity index 99% rename from models/config/server_common.go rename to pkg/config/server_common.go index 1690aa0e..594ad31b 100644 --- a/models/config/server_common.go +++ b/pkg/config/server_common.go @@ -19,11 +19,11 @@ import ( "strconv" "strings" - ini "github.com/vaughan0/go-ini" + "github.com/fatedier/frp/pkg/auth" + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/util/util" - "github.com/fatedier/frp/models/auth" - plugin "github.com/fatedier/frp/models/plugin/server" - "github.com/fatedier/frp/utils/util" + ini "github.com/vaughan0/go-ini" ) // ServerCommonConf contains information for a server service. It is diff --git a/models/config/types.go b/pkg/config/types.go similarity index 100% rename from models/config/types.go rename to pkg/config/types.go diff --git a/models/config/types_test.go b/pkg/config/types_test.go similarity index 100% rename from models/config/types_test.go rename to pkg/config/types_test.go diff --git a/models/config/value.go b/pkg/config/value.go similarity index 100% rename from models/config/value.go rename to pkg/config/value.go diff --git a/models/config/visitor.go b/pkg/config/visitor.go similarity index 99% rename from models/config/visitor.go rename to pkg/config/visitor.go index a3568410..39958ea5 100644 --- a/models/config/visitor.go +++ b/pkg/config/visitor.go @@ -19,7 +19,7 @@ import ( "reflect" "strconv" - "github.com/fatedier/frp/models/consts" + "github.com/fatedier/frp/pkg/consts" ini "github.com/vaughan0/go-ini" ) diff --git a/models/consts/consts.go b/pkg/consts/consts.go similarity index 100% rename from models/consts/consts.go rename to pkg/consts/consts.go diff --git a/models/errors/errors.go b/pkg/errors/errors.go similarity index 100% rename from models/errors/errors.go rename to pkg/errors/errors.go diff --git a/models/metrics/aggregate/server.go b/pkg/metrics/aggregate/server.go similarity index 95% rename from models/metrics/aggregate/server.go rename to pkg/metrics/aggregate/server.go index 39549f97..1ff15e42 100644 --- a/models/metrics/aggregate/server.go +++ b/pkg/metrics/aggregate/server.go @@ -15,8 +15,8 @@ package aggregate import ( - "github.com/fatedier/frp/models/metrics/mem" - "github.com/fatedier/frp/models/metrics/prometheus" + "github.com/fatedier/frp/pkg/metrics/mem" + "github.com/fatedier/frp/pkg/metrics/prometheus" "github.com/fatedier/frp/server/metrics" ) diff --git a/models/metrics/mem/server.go b/pkg/metrics/mem/server.go similarity index 96% rename from models/metrics/mem/server.go rename to pkg/metrics/mem/server.go index 307583ad..55d8daf1 100644 --- a/models/metrics/mem/server.go +++ b/pkg/metrics/mem/server.go @@ -18,9 +18,9 @@ import ( "sync" "time" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/metric" server "github.com/fatedier/frp/server/metrics" - "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/metric" ) var sm *serverMetrics = newServerMetrics() @@ -69,7 +69,9 @@ func (m *serverMetrics) clearUselessInfo() { m.mu.Lock() defer m.mu.Unlock() for name, data := range m.info.ProxyStatistics { - if !data.LastCloseTime.IsZero() && time.Since(data.LastCloseTime) > time.Duration(7*24)*time.Hour { + if !data.LastCloseTime.IsZero() && + data.LastStartTime.Before(data.LastCloseTime) && + time.Since(data.LastCloseTime) > time.Duration(7*24)*time.Hour { delete(m.info.ProxyStatistics, name) log.Trace("clear proxy [%s]'s statistics data, lastCloseTime: [%s]", name, data.LastCloseTime.String()) } diff --git a/models/metrics/mem/types.go b/pkg/metrics/mem/types.go similarity index 97% rename from models/metrics/mem/types.go rename to pkg/metrics/mem/types.go index bdb1863d..2650b54b 100644 --- a/models/metrics/mem/types.go +++ b/pkg/metrics/mem/types.go @@ -17,7 +17,7 @@ package mem import ( "time" - "github.com/fatedier/frp/utils/metric" + "github.com/fatedier/frp/pkg/util/metric" ) const ( diff --git a/models/metrics/metrics.go b/pkg/metrics/metrics.go similarity index 68% rename from models/metrics/metrics.go rename to pkg/metrics/metrics.go index b9fb3084..6520317d 100644 --- a/models/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -1,7 +1,7 @@ package metrics import ( - "github.com/fatedier/frp/models/metrics/aggregate" + "github.com/fatedier/frp/pkg/metrics/aggregate" ) var EnableMem = aggregate.EnableMem diff --git a/models/metrics/prometheus/server.go b/pkg/metrics/prometheus/server.go similarity index 100% rename from models/metrics/prometheus/server.go rename to pkg/metrics/prometheus/server.go diff --git a/models/msg/ctl.go b/pkg/msg/ctl.go similarity index 100% rename from models/msg/ctl.go rename to pkg/msg/ctl.go diff --git a/models/msg/msg.go b/pkg/msg/msg.go similarity index 100% rename from models/msg/msg.go rename to pkg/msg/msg.go diff --git a/models/nathole/nathole.go b/pkg/nathole/nathole.go similarity index 97% rename from models/nathole/nathole.go rename to pkg/nathole/nathole.go index e44e149b..545ad7aa 100644 --- a/models/nathole/nathole.go +++ b/pkg/nathole/nathole.go @@ -7,9 +7,9 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/util" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/golib/errors" "github.com/fatedier/golib/pool" diff --git a/models/plugin/client/http2https.go b/pkg/plugin/client/http2https.go similarity index 98% rename from models/plugin/client/http2https.go rename to pkg/plugin/client/http2https.go index 570b3f9c..ddf559ae 100644 --- a/models/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -23,7 +23,7 @@ import ( "net/http/httputil" "strings" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTP2HTTPS = "http2https" diff --git a/models/plugin/client/http_proxy.go b/pkg/plugin/client/http_proxy.go similarity index 99% rename from models/plugin/client/http_proxy.go rename to pkg/plugin/client/http_proxy.go index 08600820..45bd3a9a 100644 --- a/models/plugin/client/http_proxy.go +++ b/pkg/plugin/client/http_proxy.go @@ -22,7 +22,7 @@ import ( "net/http" "strings" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" frpIo "github.com/fatedier/golib/io" gnet "github.com/fatedier/golib/net" diff --git a/models/plugin/client/https2http.go b/pkg/plugin/client/https2http.go similarity index 98% rename from models/plugin/client/https2http.go rename to pkg/plugin/client/https2http.go index 093a74f4..81806e39 100644 --- a/models/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -23,7 +23,7 @@ import ( "net/http/httputil" "strings" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" ) const PluginHTTPS2HTTP = "https2http" diff --git a/models/plugin/client/plugin.go b/pkg/plugin/client/plugin.go similarity index 100% rename from models/plugin/client/plugin.go rename to pkg/plugin/client/plugin.go diff --git a/models/plugin/client/socks5.go b/pkg/plugin/client/socks5.go similarity index 97% rename from models/plugin/client/socks5.go rename to pkg/plugin/client/socks5.go index dc089345..79919e44 100644 --- a/models/plugin/client/socks5.go +++ b/pkg/plugin/client/socks5.go @@ -20,7 +20,7 @@ import ( "log" "net" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" gosocks5 "github.com/armon/go-socks5" ) diff --git a/models/plugin/client/static_file.go b/pkg/plugin/client/static_file.go similarity index 97% rename from models/plugin/client/static_file.go rename to pkg/plugin/client/static_file.go index 668a0338..1eeea3ba 100644 --- a/models/plugin/client/static_file.go +++ b/pkg/plugin/client/static_file.go @@ -19,7 +19,7 @@ import ( "net" "net/http" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/gorilla/mux" ) diff --git a/models/plugin/client/unix_domain_socket.go b/pkg/plugin/client/unix_domain_socket.go similarity index 100% rename from models/plugin/client/unix_domain_socket.go rename to pkg/plugin/client/unix_domain_socket.go diff --git a/models/plugin/server/http.go b/pkg/plugin/server/http.go similarity index 100% rename from models/plugin/server/http.go rename to pkg/plugin/server/http.go diff --git a/models/plugin/server/manager.go b/pkg/plugin/server/manager.go similarity index 98% rename from models/plugin/server/manager.go rename to pkg/plugin/server/manager.go index dd2b67f4..19c894b2 100644 --- a/models/plugin/server/manager.go +++ b/pkg/plugin/server/manager.go @@ -19,8 +19,8 @@ import ( "errors" "fmt" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/xlog" ) type Manager struct { diff --git a/models/plugin/server/plugin.go b/pkg/plugin/server/plugin.go similarity index 100% rename from models/plugin/server/plugin.go rename to pkg/plugin/server/plugin.go diff --git a/models/plugin/server/tracer.go b/pkg/plugin/server/tracer.go similarity index 100% rename from models/plugin/server/tracer.go rename to pkg/plugin/server/tracer.go diff --git a/models/plugin/server/types.go b/pkg/plugin/server/types.go similarity index 97% rename from models/plugin/server/types.go rename to pkg/plugin/server/types.go index 5667625b..82d4032c 100644 --- a/models/plugin/server/types.go +++ b/pkg/plugin/server/types.go @@ -15,7 +15,7 @@ package plugin import ( - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/msg" ) type Request struct { diff --git a/models/proto/udp/udp.go b/pkg/proto/udp/udp.go similarity index 98% rename from models/proto/udp/udp.go rename to pkg/proto/udp/udp.go index 5a058964..97f6ea40 100644 --- a/models/proto/udp/udp.go +++ b/pkg/proto/udp/udp.go @@ -20,7 +20,7 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/golib/errors" "github.com/fatedier/golib/pool" diff --git a/models/proto/udp/udp_test.go b/pkg/proto/udp/udp_test.go similarity index 100% rename from models/proto/udp/udp_test.go rename to pkg/proto/udp/udp_test.go diff --git a/models/transport/tls.go b/pkg/transport/tls.go similarity index 78% rename from models/transport/tls.go rename to pkg/transport/tls.go index 9338b90d..a266cb8a 100644 --- a/models/transport/tls.go +++ b/pkg/transport/tls.go @@ -10,25 +10,6 @@ import ( "math/big" ) -/* - Example for self-signed certificates by openssl: - - Self CA: - openssl genrsa -out ca.key 2048 - openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt - - Server: - openssl genrsa -out server.key 2048 - openssl req -new -key server.key -subj "/CN=example.server.com" -out server.csr - openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000 - - Client: - openssl genrsa -out client.key 2048 - openssl req -new -key client.key -subj "/CN=example.client.com" -out client.csr - openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 5000 - -*/ - func newCustomTLSKeyPair(certfile, keyfile string) (*tls.Certificate, error) { tlsCert, err := tls.LoadX509KeyPair(certfile, keyfile) if err != nil { diff --git a/utils/limit/reader.go b/pkg/util/limit/reader.go similarity index 100% rename from utils/limit/reader.go rename to pkg/util/limit/reader.go diff --git a/utils/limit/writer.go b/pkg/util/limit/writer.go similarity index 100% rename from utils/limit/writer.go rename to pkg/util/limit/writer.go diff --git a/utils/log/log.go b/pkg/util/log/log.go similarity index 100% rename from utils/log/log.go rename to pkg/util/log/log.go diff --git a/utils/metric/counter.go b/pkg/util/metric/counter.go similarity index 100% rename from utils/metric/counter.go rename to pkg/util/metric/counter.go diff --git a/utils/metric/counter_test.go b/pkg/util/metric/counter_test.go similarity index 100% rename from utils/metric/counter_test.go rename to pkg/util/metric/counter_test.go diff --git a/utils/metric/date_counter.go b/pkg/util/metric/date_counter.go similarity index 100% rename from utils/metric/date_counter.go rename to pkg/util/metric/date_counter.go diff --git a/utils/metric/date_counter_test.go b/pkg/util/metric/date_counter_test.go similarity index 100% rename from utils/metric/date_counter_test.go rename to pkg/util/metric/date_counter_test.go diff --git a/utils/metric/metrics.go b/pkg/util/metric/metrics.go similarity index 100% rename from utils/metric/metrics.go rename to pkg/util/metric/metrics.go diff --git a/utils/net/conn.go b/pkg/util/net/conn.go similarity index 99% rename from utils/net/conn.go rename to pkg/util/net/conn.go index 4a122b03..5a33dd62 100644 --- a/utils/net/conn.go +++ b/pkg/util/net/conn.go @@ -24,7 +24,8 @@ import ( "sync/atomic" "time" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/util/xlog" + gnet "github.com/fatedier/golib/net" kcp "github.com/fatedier/kcp-go" ) diff --git a/utils/net/http.go b/pkg/util/net/http.go similarity index 100% rename from utils/net/http.go rename to pkg/util/net/http.go diff --git a/utils/net/kcp.go b/pkg/util/net/kcp.go similarity index 100% rename from utils/net/kcp.go rename to pkg/util/net/kcp.go diff --git a/utils/net/listener.go b/pkg/util/net/listener.go similarity index 100% rename from utils/net/listener.go rename to pkg/util/net/listener.go diff --git a/utils/net/tls.go b/pkg/util/net/tls.go similarity index 100% rename from utils/net/tls.go rename to pkg/util/net/tls.go diff --git a/utils/net/udp.go b/pkg/util/net/udp.go similarity index 100% rename from utils/net/udp.go rename to pkg/util/net/udp.go diff --git a/utils/net/websocket.go b/pkg/util/net/websocket.go similarity index 100% rename from utils/net/websocket.go rename to pkg/util/net/websocket.go diff --git a/utils/tcpmux/httpconnect.go b/pkg/util/tcpmux/httpconnect.go similarity index 95% rename from utils/tcpmux/httpconnect.go rename to pkg/util/tcpmux/httpconnect.go index 145d38a7..014f6881 100644 --- a/utils/tcpmux/httpconnect.go +++ b/pkg/util/tcpmux/httpconnect.go @@ -22,8 +22,8 @@ import ( "net/http" "time" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/vhost" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/vhost" ) type HTTPConnectTCPMuxer struct { diff --git a/utils/util/http.go b/pkg/util/util/http.go similarity index 100% rename from utils/util/http.go rename to pkg/util/util/http.go diff --git a/utils/util/util.go b/pkg/util/util/util.go similarity index 100% rename from utils/util/util.go rename to pkg/util/util/util.go diff --git a/utils/util/util_test.go b/pkg/util/util/util_test.go similarity index 100% rename from utils/util/util_test.go rename to pkg/util/util/util_test.go diff --git a/utils/version/version.go b/pkg/util/version/version.go similarity index 98% rename from utils/version/version.go rename to pkg/util/version/version.go index 44d14d7c..7a38f2e6 100644 --- a/utils/version/version.go +++ b/pkg/util/version/version.go @@ -19,7 +19,7 @@ import ( "strings" ) -var version string = "0.34.0" +var version string = "0.34.1" func Full() string { return version diff --git a/utils/version/version_test.go b/pkg/util/version/version_test.go similarity index 100% rename from utils/version/version_test.go rename to pkg/util/version/version_test.go diff --git a/utils/vhost/http.go b/pkg/util/vhost/http.go similarity index 98% rename from utils/vhost/http.go rename to pkg/util/vhost/http.go index 31759647..de105cbd 100644 --- a/utils/vhost/http.go +++ b/pkg/util/vhost/http.go @@ -25,8 +25,8 @@ import ( "strings" "time" - frpLog "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/util" + frpLog "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/util" "github.com/fatedier/golib/pool" ) diff --git a/utils/vhost/https.go b/pkg/util/vhost/https.go similarity index 100% rename from utils/vhost/https.go rename to pkg/util/vhost/https.go diff --git a/utils/vhost/resource.go b/pkg/util/vhost/resource.go similarity index 96% rename from utils/vhost/resource.go rename to pkg/util/vhost/resource.go index 5c084306..f89348ee 100644 --- a/utils/vhost/resource.go +++ b/pkg/util/vhost/resource.go @@ -19,8 +19,8 @@ import ( "io/ioutil" "net/http" - frpLog "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/version" + frpLog "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/version" ) var ( diff --git a/utils/vhost/reverseproxy.go b/pkg/util/vhost/reverseproxy.go similarity index 100% rename from utils/vhost/reverseproxy.go rename to pkg/util/vhost/reverseproxy.go diff --git a/utils/vhost/router.go b/pkg/util/vhost/router.go similarity index 100% rename from utils/vhost/router.go rename to pkg/util/vhost/router.go diff --git a/utils/vhost/vhost.go b/pkg/util/vhost/vhost.go similarity index 97% rename from utils/vhost/vhost.go rename to pkg/util/vhost/vhost.go index 363d0ea9..9049f28b 100644 --- a/utils/vhost/vhost.go +++ b/pkg/util/vhost/vhost.go @@ -19,9 +19,9 @@ import ( "strings" "time" - "github.com/fatedier/frp/utils/log" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/xlog" + "github.com/fatedier/frp/pkg/util/log" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/golib/errors" ) diff --git a/utils/xlog/ctx.go b/pkg/util/xlog/ctx.go similarity index 100% rename from utils/xlog/ctx.go rename to pkg/util/xlog/ctx.go diff --git a/utils/xlog/xlog.go b/pkg/util/xlog/xlog.go similarity index 97% rename from utils/xlog/xlog.go rename to pkg/util/xlog/xlog.go index a1c48672..b5746f9d 100644 --- a/utils/xlog/xlog.go +++ b/pkg/util/xlog/xlog.go @@ -15,7 +15,7 @@ package xlog import ( - "github.com/fatedier/frp/utils/log" + "github.com/fatedier/frp/pkg/util/log" ) // Logger is not thread safety for operations on prefix diff --git a/server/control.go b/server/control.go index e148459b..ef470f52 100644 --- a/server/control.go +++ b/server/control.go @@ -23,18 +23,18 @@ import ( "sync" "time" - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" - frpErr "github.com/fatedier/frp/models/errors" - "github.com/fatedier/frp/models/msg" - plugin "github.com/fatedier/frp/models/plugin/server" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" + frpErr "github.com/fatedier/frp/pkg/errors" + "github.com/fatedier/frp/pkg/msg" + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/version" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/metrics" "github.com/fatedier/frp/server/proxy" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/version" - "github.com/fatedier/frp/utils/xlog" "github.com/fatedier/golib/control/shutdown" "github.com/fatedier/golib/crypto" diff --git a/server/controller/resource.go b/server/controller/resource.go index 6e128b8c..47236c9e 100644 --- a/server/controller/resource.go +++ b/server/controller/resource.go @@ -15,13 +15,13 @@ package controller import ( - "github.com/fatedier/frp/models/nathole" - plugin "github.com/fatedier/frp/models/plugin/server" + "github.com/fatedier/frp/pkg/nathole" + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/util/tcpmux" + "github.com/fatedier/frp/pkg/util/vhost" "github.com/fatedier/frp/server/group" "github.com/fatedier/frp/server/ports" "github.com/fatedier/frp/server/visitor" - "github.com/fatedier/frp/utils/tcpmux" - "github.com/fatedier/frp/utils/vhost" ) // All resource managers and controllers diff --git a/server/dashboard.go b/server/dashboard.go index 473f37e4..7af9df27 100644 --- a/server/dashboard.go +++ b/server/dashboard.go @@ -21,7 +21,7 @@ import ( "time" "github.com/fatedier/frp/assets" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/gorilla/mux" "github.com/prometheus/client_golang/prometheus/promhttp" diff --git a/server/dashboard_api.go b/server/dashboard_api.go index e0b10ced..210b6e3e 100644 --- a/server/dashboard_api.go +++ b/server/dashboard_api.go @@ -18,11 +18,11 @@ import ( "encoding/json" "net/http" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" - "github.com/fatedier/frp/models/metrics/mem" - "github.com/fatedier/frp/utils/log" - "github.com/fatedier/frp/utils/version" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/metrics/mem" + "github.com/fatedier/frp/pkg/util/log" + "github.com/fatedier/frp/pkg/util/version" "github.com/gorilla/mux" ) diff --git a/server/group/http.go b/server/group/http.go index 90b82292..0039b8ae 100644 --- a/server/group/http.go +++ b/server/group/http.go @@ -6,7 +6,7 @@ import ( "sync" "sync/atomic" - "github.com/fatedier/frp/utils/vhost" + "github.com/fatedier/frp/pkg/util/vhost" ) type HTTPGroupController struct { diff --git a/server/group/tcpmux.go b/server/group/tcpmux.go index 61058ca6..f2db8def 100644 --- a/server/group/tcpmux.go +++ b/server/group/tcpmux.go @@ -20,9 +20,9 @@ import ( "net" "sync" - "github.com/fatedier/frp/models/consts" - "github.com/fatedier/frp/utils/tcpmux" - "github.com/fatedier/frp/utils/vhost" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/util/tcpmux" + "github.com/fatedier/frp/pkg/util/vhost" gerr "github.com/fatedier/golib/errors" ) diff --git a/server/proxy/http.go b/server/proxy/http.go index ce14388e..86925281 100644 --- a/server/proxy/http.go +++ b/server/proxy/http.go @@ -19,11 +19,11 @@ import ( "net" "strings" - "github.com/fatedier/frp/models/config" + "github.com/fatedier/frp/pkg/config" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/vhost" "github.com/fatedier/frp/server/metrics" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/vhost" frpIo "github.com/fatedier/golib/io" ) diff --git a/server/proxy/https.go b/server/proxy/https.go index 4a1c999f..cd566462 100644 --- a/server/proxy/https.go +++ b/server/proxy/https.go @@ -17,9 +17,9 @@ package proxy import ( "strings" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/vhost" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/vhost" ) type HTTPSProxy struct { diff --git a/server/proxy/proxy.go b/server/proxy/proxy.go index b82fce9e..88c23763 100644 --- a/server/proxy/proxy.go +++ b/server/proxy/proxy.go @@ -22,13 +22,13 @@ import ( "strconv" "sync" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - plugin "github.com/fatedier/frp/models/plugin/server" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + plugin "github.com/fatedier/frp/pkg/plugin/server" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/metrics" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/xlog" frpIo "github.com/fatedier/golib/io" ) diff --git a/server/proxy/stcp.go b/server/proxy/stcp.go index 44be1b39..5ac47eaa 100644 --- a/server/proxy/stcp.go +++ b/server/proxy/stcp.go @@ -15,7 +15,7 @@ package proxy import ( - "github.com/fatedier/frp/models/config" + "github.com/fatedier/frp/pkg/config" ) type STCPProxy struct { diff --git a/server/proxy/sudp.go b/server/proxy/sudp.go index 182c792a..c4dba6d6 100644 --- a/server/proxy/sudp.go +++ b/server/proxy/sudp.go @@ -15,7 +15,7 @@ package proxy import ( - "github.com/fatedier/frp/models/config" + "github.com/fatedier/frp/pkg/config" ) type SUDPProxy struct { diff --git a/server/proxy/tcp.go b/server/proxy/tcp.go index 786c1a5d..420f43fe 100644 --- a/server/proxy/tcp.go +++ b/server/proxy/tcp.go @@ -18,7 +18,7 @@ import ( "fmt" "net" - "github.com/fatedier/frp/models/config" + "github.com/fatedier/frp/pkg/config" ) type TCPProxy struct { diff --git a/server/proxy/tcpmux.go b/server/proxy/tcpmux.go index d0da63be..16cbcff3 100644 --- a/server/proxy/tcpmux.go +++ b/server/proxy/tcpmux.go @@ -19,10 +19,10 @@ import ( "net" "strings" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/consts" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/vhost" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/consts" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/vhost" ) type TCPMuxProxy struct { diff --git a/server/proxy/udp.go b/server/proxy/udp.go index d87e0efd..09842655 100644 --- a/server/proxy/udp.go +++ b/server/proxy/udp.go @@ -21,11 +21,11 @@ import ( "net" "time" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/models/proto/udp" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/proto/udp" + frpNet "github.com/fatedier/frp/pkg/util/net" "github.com/fatedier/frp/server/metrics" - frpNet "github.com/fatedier/frp/utils/net" "github.com/fatedier/golib/errors" frpIo "github.com/fatedier/golib/io" diff --git a/server/proxy/xtcp.go b/server/proxy/xtcp.go index 8dbb881a..317a3d48 100644 --- a/server/proxy/xtcp.go +++ b/server/proxy/xtcp.go @@ -17,8 +17,8 @@ package proxy import ( "fmt" - "github.com/fatedier/frp/models/config" - "github.com/fatedier/frp/models/msg" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/pkg/msg" "github.com/fatedier/golib/errors" ) diff --git a/server/service.go b/server/service.go index 3880d382..0bbe9552 100644 --- a/server/service.go +++ b/server/service.go @@ -26,26 +26,26 @@ import ( "time" "github.com/fatedier/frp/assets" - "github.com/fatedier/frp/models/auth" - "github.com/fatedier/frp/models/config" - modelmetrics "github.com/fatedier/frp/models/metrics" - "github.com/fatedier/frp/models/msg" - "github.com/fatedier/frp/models/nathole" - plugin "github.com/fatedier/frp/models/plugin/server" - "github.com/fatedier/frp/models/transport" + "github.com/fatedier/frp/pkg/auth" + "github.com/fatedier/frp/pkg/config" + modelmetrics "github.com/fatedier/frp/pkg/metrics" + "github.com/fatedier/frp/pkg/msg" + "github.com/fatedier/frp/pkg/nathole" + plugin "github.com/fatedier/frp/pkg/plugin/server" + "github.com/fatedier/frp/pkg/transport" + "github.com/fatedier/frp/pkg/util/log" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/tcpmux" + "github.com/fatedier/frp/pkg/util/util" + "github.com/fatedier/frp/pkg/util/version" + "github.com/fatedier/frp/pkg/util/vhost" + "github.com/fatedier/frp/pkg/util/xlog" "github.com/fatedier/frp/server/controller" "github.com/fatedier/frp/server/group" "github.com/fatedier/frp/server/metrics" "github.com/fatedier/frp/server/ports" "github.com/fatedier/frp/server/proxy" "github.com/fatedier/frp/server/visitor" - "github.com/fatedier/frp/utils/log" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/tcpmux" - "github.com/fatedier/frp/utils/util" - "github.com/fatedier/frp/utils/version" - "github.com/fatedier/frp/utils/vhost" - "github.com/fatedier/frp/utils/xlog" "github.com/fatedier/golib/net/mux" fmux "github.com/hashicorp/yamux" diff --git a/server/visitor/visitor.go b/server/visitor/visitor.go index 7b54ab13..4796b416 100644 --- a/server/visitor/visitor.go +++ b/server/visitor/visitor.go @@ -20,8 +20,8 @@ import ( "net" "sync" - frpNet "github.com/fatedier/frp/utils/net" - "github.com/fatedier/frp/utils/util" + frpNet "github.com/fatedier/frp/pkg/util/net" + "github.com/fatedier/frp/pkg/util/util" frpIo "github.com/fatedier/golib/io" ) diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 60d73c5a..ce830fdc 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -3,8 +3,8 @@ package e2e import ( "testing" + "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" - "github.com/fatedier/frp/utils/log" "github.com/onsi/ginkgo" "github.com/onsi/ginkgo/config" diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index afe77c3d..ea0bfdfa 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -6,8 +6,8 @@ import ( "os" "testing" + "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/framework" - "github.com/fatedier/frp/utils/log" // test source _ "github.com/fatedier/frp/test/e2e/basic" diff --git a/test/e2e/framework/process.go b/test/e2e/framework/process.go index 5be4572e..1e477ee0 100644 --- a/test/e2e/framework/process.go +++ b/test/e2e/framework/process.go @@ -6,8 +6,8 @@ import ( "path/filepath" "time" + flog "github.com/fatedier/frp/pkg/util/log" "github.com/fatedier/frp/test/e2e/pkg/process" - flog "github.com/fatedier/frp/utils/log" ) func GenerateConfigFile(path string, content string) error { diff --git a/test/e2e/mock/echoserver/echoserver.go b/test/e2e/mock/echoserver/echoserver.go index 9d51490e..09a20954 100644 --- a/test/e2e/mock/echoserver/echoserver.go +++ b/test/e2e/mock/echoserver/echoserver.go @@ -5,7 +5,7 @@ import ( "net" "strings" - fnet "github.com/fatedier/frp/utils/net" + fnet "github.com/fatedier/frp/pkg/util/net" ) type ServerType string diff --git a/tests/mock/echo_server.go b/tests/mock/echo_server.go index ad49a558..20ee1831 100644 --- a/tests/mock/echo_server.go +++ b/tests/mock/echo_server.go @@ -7,7 +7,7 @@ import ( "os" "syscall" - frpNet "github.com/fatedier/frp/utils/net" + frpNet "github.com/fatedier/frp/pkg/util/net" ) type EchoServer struct {