From bd672d7cb0180e14d0ee413ab85e0e4dbd2fa7ee Mon Sep 17 00:00:00 2001 From: Daniel Soifer Date: Wed, 24 Aug 2022 17:11:23 +0300 Subject: [PATCH 01/94] added wss support Signed-off-by: Daniel Soifer --- client/control.go | 28 ++++++++++++++++++++++++---- client/service.go | 28 ++++++++++++++++++++++++---- cmd/frpc/sub/root.go | 2 +- conf/frpc_full.ini | 2 +- pkg/config/client.go | 6 +++++- pkg/util/net/dial.go | 12 +++++++++--- 6 files changed, 64 insertions(+), 14 deletions(-) diff --git a/client/control.go b/client/control.go index ef9a766fcda..ccec2feda7e 100644 --- a/client/control.go +++ b/client/control.go @@ -18,6 +18,7 @@ import ( "context" "crypto/tls" "io" + "math" "net" "runtime/debug" "strconv" @@ -242,9 +243,21 @@ func (ctl *Control) connectServer() (conn net.Conn, err error) { } dialOptions := []libdial.DialOption{} protocol := ctl.clientCfg.Protocol - if protocol == "websocket" { + var websocketAfterHook *libdial.AfterHook + if protocol == "websocket" || protocol == "wss" { + if protocol == "wss" { + websocketAfterHook = &libdial.AfterHook{ + Priority: math.MaxUint64, // in case of wss, we first want to make the TLS handshake and then switch protocols from https to wss + Hook: frpNet.DialHookWebsocket(true), + } + } else { + websocketAfterHook = &libdial.AfterHook{ + Priority: 0, // in case of ws, we first want to switch protocols from http to ws, and only then make the TLS handshake in case TLS is enabled + Hook: frpNet.DialHookWebsocket(false), + } + } + protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) } if ctl.clientCfg.ConnectServerLocalIP != "" { dialOptions = append(dialOptions, libdial.WithLocalAddr(ctl.clientCfg.ConnectServerLocalIP)) @@ -255,11 +268,18 @@ func (ctl *Control) connectServer() (conn net.Conn, err error) { libdial.WithKeepAlive(time.Duration(ctl.clientCfg.DialServerKeepAlive)*time.Second), libdial.WithProxy(proxyType, addr), libdial.WithProxyAuth(auth), - libdial.WithTLSConfig(tlsConfig), + libdial.WithTLSConfig(tlsConfig), // TLS AfterHook has math.MaxUint64 priority libdial.WithAfterHook(libdial.AfterHook{ - Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, ctl.clientCfg.DisableCustomTLSFirstByte), + Priority: 1, // should be executed before TLS AfterHook but after the rest of the AfterHooks (except for wss) + Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, ctl.clientCfg.DisableCustomTLSFirstByte), }), ) + if websocketAfterHook != nil { + // websocketAfterHook must be appended after TLS AfterHook because they both might have the + // same priority of math.MaxUint64 in case of wss but TLS AfterHook must be executed first + dialOptions = append(dialOptions, libdial.WithAfterHook(*websocketAfterHook)) + } + conn, err = libdial.Dial( net.JoinHostPort(ctl.clientCfg.ServerAddr, strconv.Itoa(ctl.clientCfg.ServerPort)), dialOptions..., diff --git a/client/service.go b/client/service.go index 30bd3f8f5bc..8c753ff4d8e 100644 --- a/client/service.go +++ b/client/service.go @@ -19,6 +19,7 @@ import ( "crypto/tls" "fmt" "io" + "math" "math/rand" "net" "runtime" @@ -256,9 +257,21 @@ func (svr *Service) login() (conn net.Conn, session *fmux.Session, err error) { } dialOptions := []libdial.DialOption{} protocol := svr.cfg.Protocol - if protocol == "websocket" { + var websocketAfterHook *libdial.AfterHook + if protocol == "websocket" || protocol == "wss" { + if protocol == "wss" { + websocketAfterHook = &libdial.AfterHook{ + Priority: math.MaxUint64, // in case of wss, we first want to make the TLS handshake and then switch protocols from https to wss + Hook: frpNet.DialHookWebsocket(true), + } + } else { + websocketAfterHook = &libdial.AfterHook{ + Priority: 0, // in case of ws, we first want to switch protocols from http to ws, and only then make the TLS handshake in case TLS is enabled + Hook: frpNet.DialHookWebsocket(false), + } + } + protocol = "tcp" - dialOptions = append(dialOptions, libdial.WithAfterHook(libdial.AfterHook{Hook: frpNet.DialHookWebsocket()})) } if svr.cfg.ConnectServerLocalIP != "" { dialOptions = append(dialOptions, libdial.WithLocalAddr(svr.cfg.ConnectServerLocalIP)) @@ -269,11 +282,18 @@ func (svr *Service) login() (conn net.Conn, session *fmux.Session, err error) { libdial.WithKeepAlive(time.Duration(svr.cfg.DialServerKeepAlive)*time.Second), libdial.WithProxy(proxyType, addr), libdial.WithProxyAuth(auth), - libdial.WithTLSConfig(tlsConfig), + libdial.WithTLSConfig(tlsConfig), // TLS AfterHook has math.MaxUint64 priority libdial.WithAfterHook(libdial.AfterHook{ - Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, svr.cfg.DisableCustomTLSFirstByte), + Priority: 1, // should be executed before TLS AfterHook but after the rest of the AfterHooks (except for wss) + Hook: frpNet.DialHookCustomTLSHeadByte(tlsConfig != nil, svr.cfg.DisableCustomTLSFirstByte), }), ) + if websocketAfterHook != nil { + // websocketAfterHook must be appended after TLS AfterHook because they both might have the + // same priority of math.MaxUint64 in case of wss but TLS AfterHook must be executed first + dialOptions = append(dialOptions, libdial.WithAfterHook(*websocketAfterHook)) + } + conn, err = libdial.Dial( net.JoinHostPort(svr.cfg.ServerAddr, strconv.Itoa(svr.cfg.ServerPort)), dialOptions..., diff --git a/cmd/frpc/sub/root.go b/cmd/frpc/sub/root.go index f8d7eb17708..3bde61fd9f4 100644 --- a/cmd/frpc/sub/root.go +++ b/cmd/frpc/sub/root.go @@ -85,7 +85,7 @@ func init() { func RegisterCommonFlags(cmd *cobra.Command) { cmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address") cmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user") - cmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket") + cmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or wss") cmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token") cmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level") cmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path") diff --git a/conf/frpc_full.ini b/conf/frpc_full.ini index 9c939678b1f..94c7ab4a2f1 100644 --- a/conf/frpc_full.ini +++ b/conf/frpc_full.ini @@ -87,7 +87,7 @@ user = your_name login_fail_exit = true # communication protocol used to connect to server -# now it supports tcp, kcp and websocket, default is tcp +# now it supports tcp, kcp, websocket and wss, default is tcp protocol = tcp # set client binding ip when connect server, default is empty. diff --git a/pkg/config/client.go b/pkg/config/client.go index f503711b07a..f3c2e41f88c 100644 --- a/pkg/config/client.go +++ b/pkg/config/client.go @@ -215,6 +215,10 @@ func (cfg *ClientCommonConf) Validate() error { } if cfg.TLSEnable == false { + if cfg.Protocol == "wss" { + return fmt.Errorf("tls_enable must be true for wss support") + } + if cfg.TLSCertFile != "" { fmt.Println("WARNING! tls_cert_file is invalid when tls_enable is false") } @@ -228,7 +232,7 @@ func (cfg *ClientCommonConf) Validate() error { } } - if cfg.Protocol != "tcp" && cfg.Protocol != "kcp" && cfg.Protocol != "websocket" { + if cfg.Protocol != "tcp" && cfg.Protocol != "kcp" && cfg.Protocol != "websocket" && cfg.Protocol != "wss" { return fmt.Errorf("invalid protocol") } diff --git a/pkg/util/net/dial.go b/pkg/util/net/dial.go index 251ebbff7ae..4f9bae3242e 100644 --- a/pkg/util/net/dial.go +++ b/pkg/util/net/dial.go @@ -21,15 +21,21 @@ func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte bool) li } } -func DialHookWebsocket() libdial.AfterHookFunc { +func DialHookWebsocket(isSecure bool) libdial.AfterHookFunc { return func(ctx context.Context, c net.Conn, addr string) (context.Context, net.Conn, error) { - addr = "ws://" + addr + FrpWebsocketPath + addrScheme := "ws" + originScheme := "http" + if isSecure { + addrScheme = "wss" + originScheme = "https" + } + addr = addrScheme + "://" + addr + FrpWebsocketPath uri, err := url.Parse(addr) if err != nil { return nil, nil, err } - origin := "http://" + uri.Host + origin := originScheme + "://" + uri.Host cfg, err := websocket.NewConfig(addr, origin) if err != nil { return nil, nil, err From 245189b2e3e13d0120bcefc53538c8d6c8554589 Mon Sep 17 00:00:00 2001 From: Daniel Soifer Date: Wed, 24 Aug 2022 17:13:58 +0300 Subject: [PATCH 02/94] changed entrypoints in Dockerfiles to include config from .ini files Signed-off-by: Daniel Soifer --- dockerfiles/Dockerfile-for-frpc | 2 +- dockerfiles/Dockerfile-for-frps | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index ece950f2190..e8bfa478706 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -9,4 +9,4 @@ FROM alpine:3 COPY --from=building /building/bin/frpc /usr/bin/frpc -ENTRYPOINT ["/usr/bin/frpc"] +ENTRYPOINT /usr/bin/frpc -c /etc/frp/frpc.ini diff --git a/dockerfiles/Dockerfile-for-frps b/dockerfiles/Dockerfile-for-frps index d8ab8247a3a..65b8c92e344 100644 --- a/dockerfiles/Dockerfile-for-frps +++ b/dockerfiles/Dockerfile-for-frps @@ -9,4 +9,4 @@ FROM alpine:3 COPY --from=building /building/bin/frps /usr/bin/frps -ENTRYPOINT ["/usr/bin/frps"] +ENTRYPOINT /usr/bin/frps -c /etc/frp/frps.ini From bffb01e6855733391b1ec718ccb4cdc0a0946f16 Mon Sep 17 00:00:00 2001 From: Daniel Soifer Date: Wed, 24 Aug 2022 17:14:26 +0300 Subject: [PATCH 03/94] run format Signed-off-by: Daniel Soifer --- test/e2e/framework/log.go | 8 ++++---- test/e2e/framework/test_context.go | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/test/e2e/framework/log.go b/test/e2e/framework/log.go index ff33f41dbe0..08fa6861afb 100644 --- a/test/e2e/framework/log.go +++ b/test/e2e/framework/log.go @@ -59,10 +59,10 @@ var codeFilterRE = regexp.MustCompile(`/github.com/onsi/ginkgo/`) // entries coming from Ginkgo. // // This is a modified copy of PruneStack in https://github.com/onsi/ginkgo/blob/f90f37d87fa6b1dd9625e2b1e83c23ffae3de228/internal/codelocation/code_location.go#L25: -// - simplified API and thus renamed (calls debug.Stack() instead of taking a parameter) -// - source code filtering updated to be specific to Kubernetes -// - optimized to use bytes and in-place slice filtering from -// https://github.com/golang/go/wiki/SliceTricks#filter-in-place +// - simplified API and thus renamed (calls debug.Stack() instead of taking a parameter) +// - source code filtering updated to be specific to Kubernetes +// - optimized to use bytes and in-place slice filtering from +// https://github.com/golang/go/wiki/SliceTricks#filter-in-place func PrunedStack(skip int) []byte { fullStackTrace := debug.Stack() stack := bytes.Split(fullStackTrace, []byte("\n")) diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 958c78f8d7b..42a66445dd9 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -24,7 +24,6 @@ var TestContext TestContextType // The other Register*Flags methods below can be used to add more // test-specific flags. However, those settings then get added // regardless whether the test is actually in the test suite. -// func RegisterCommonFlags(flags *flag.FlagSet) { // Turn on EmitSpecProgress to get spec progress (especially on interrupt) config.GinkgoConfig.EmitSpecProgress = true From a97214286fed4f54982c60e852e7a1e6c4f6be81 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 10:44:27 +0300 Subject: [PATCH 04/94] Try push --- dockerfiles/Dockerfile-for-frpc | 1 + 1 file changed, 1 insertion(+) diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index ece950f2190..f29b659c0d2 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,3 +1,4 @@ +# Try1 FROM golang:1.18 AS building COPY . /building From 560cf32eefc29700a251ebe2b9e012754a195045 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 10:47:54 +0300 Subject: [PATCH 05/94] empty From 138a24798f136c970fb9d5a75af7321d1f97fe01 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 10:48:23 +0300 Subject: [PATCH 06/94] empty From 8823a1a635fc438294fc40ce55166e1f1867d945 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 10:49:12 +0300 Subject: [PATCH 07/94] empty From 7c4ec0351b069686d03a06d499a3630e7caec757 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 10:51:15 +0300 Subject: [PATCH 08/94] empty From 7db4dcce898f6dd828f9b0e7d8446b2946304e2c Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 14:08:53 +0300 Subject: [PATCH 09/94] empty From 9718f4f1ed85f3f3c693ffe9d859518cf1474829 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 14:14:02 +0300 Subject: [PATCH 10/94] empty From a8d81610dc0beeb482388994737365c82b6c4a43 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 14:14:37 +0300 Subject: [PATCH 11/94] empty From 9224adf03d85108196948e8599cebe51be38117f Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 14:40:57 +0300 Subject: [PATCH 12/94] empty --- dockerfiles/Dockerfile-for-frpc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockerfiles/Dockerfile-for-frpc b/dockerfiles/Dockerfile-for-frpc index f29b659c0d2..cd6364c013c 100644 --- a/dockerfiles/Dockerfile-for-frpc +++ b/dockerfiles/Dockerfile-for-frpc @@ -1,4 +1,4 @@ -# Try1 +# Try11 FROM golang:1.18 AS building COPY . /building From fa3b86c4dad5c7078a89b6b02227e550e8492797 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 14:52:15 +0300 Subject: [PATCH 13/94] empty From a23f515c54fecfe95c00e2a3897f0928b6faa9fd Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 16:44:34 +0300 Subject: [PATCH 14/94] empty From 7b20e4962c9972b7169b7b98bc511b3209d17219 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 16:46:13 +0300 Subject: [PATCH 15/94] empty From a77bca3e0041bc229a08c16021a0b23c0e298b24 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 16:52:55 +0300 Subject: [PATCH 16/94] empty From 5af4e35432c78476d0949e9491db061ca36b1555 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:00:21 +0300 Subject: [PATCH 17/94] empty From 833fdab28d03c0e724a8280485c37eacccd894a4 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:03:01 +0300 Subject: [PATCH 18/94] empty From 2f185f35757135e6e895976afd125d456db8eda1 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:03:46 +0300 Subject: [PATCH 19/94] empty From ea9cd07345a64c95d8fbf5dbb2c291a41fc8fc88 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:10:24 +0300 Subject: [PATCH 20/94] empty From ab29b6a404aeaa98cf2f241e4c1b298924af7ae2 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:13:29 +0300 Subject: [PATCH 21/94] empty From 23d453b36827462296ebd895ded3444dde47a7d1 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:15:06 +0300 Subject: [PATCH 22/94] empty From 34c752258a6e3c6eb486ac100dfeac072f49f461 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Thu, 1 Sep 2022 18:26:18 +0300 Subject: [PATCH 23/94] empty From 55f456bebb22b8c403450639022bd711dd49e5f0 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:16:56 +0300 Subject: [PATCH 24/94] empty From ad427b4f826b8e9c663fbed0523da549fab487c4 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:24:38 +0300 Subject: [PATCH 25/94] empty From 9e756b3102113c47f6f3773a8939cc681b6e8c87 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:25:36 +0300 Subject: [PATCH 26/94] empty From 03efcea43f18300dbd282cb64a0b3e8bbefca066 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:29:50 +0300 Subject: [PATCH 27/94] empty From 717b9be8b17e504bf5f4b762b35464659875c6c0 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:31:40 +0300 Subject: [PATCH 28/94] empty From cf8c85345a24b45e2744752c153d63d4f4d3ca8f Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 09:33:48 +0300 Subject: [PATCH 29/94] empty From 9def3ce2981b1bb5fdbbfc38d04ee93eb954cce2 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:03:26 +0300 Subject: [PATCH 30/94] empty From f9bd59a1c38a9449d1f9123565099a13d2f29e02 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:14:36 +0300 Subject: [PATCH 31/94] empty From f96e5aad07ffe0343c9773a624dd7e3faeb21644 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:17:33 +0300 Subject: [PATCH 32/94] empty From 62dcf3d10b246a65f5188942aed4a8c0fdb8c361 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:19:13 +0300 Subject: [PATCH 33/94] empty From 90a2ca45aed76c0ebb624e0cecde227c8844b273 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:21:31 +0300 Subject: [PATCH 34/94] empty From d59f01dceb712cba08aa4c138c44317a111e2055 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:24:50 +0300 Subject: [PATCH 35/94] empty From 8e6d9168e777f47964ce5b540046852d08985a07 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:26:14 +0300 Subject: [PATCH 36/94] empty From 4977e15370a9e8573df9bbdf65ec7953e7a9459e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:39:30 +0300 Subject: [PATCH 37/94] empty From f80cfc4ce4db670936572af01acae75cc811b62a Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 18:54:44 +0300 Subject: [PATCH 38/94] set buildvcs=false --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d3f09bd0460..0cc24c86fcf 100644 --- a/Makefile +++ b/Makefile @@ -20,10 +20,10 @@ vet: go vet ./... frps: - env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -o bin/frps ./cmd/frps + env CGO_ENABLED=0 go build -buildvcs=false -trimpath -ldflags "$(LDFLAGS)" -o bin/frps ./cmd/frps frpc: - env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -o bin/frpc ./cmd/frpc + env CGO_ENABLED=0 go build -buildvcs=false -trimpath -ldflags "$(LDFLAGS)" -o bin/frpc ./cmd/frpc test: gotest From 996d667f3db69c3342545d6349cfdfea97f9fa40 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 19:07:45 +0300 Subject: [PATCH 39/94] blah --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92c14933c24..5fe4809befa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# frp +# frp1 [![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) [![GitHub release](https://img.shields.io/github/tag/fatedier/frp.svg?label=release)](https://github.com/fatedier/frp/releases) From 40ca15df1ac439ed8a77b032e97d0dd4405d535e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 19:08:56 +0300 Subject: [PATCH 40/94] blah --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5fe4809befa..9d2eff31e52 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# frp1 +# frp12 [![Build Status](https://circleci.com/gh/fatedier/frp.svg?style=shield)](https://circleci.com/gh/fatedier/frp) [![GitHub release](https://img.shields.io/github/tag/fatedier/frp.svg?label=release)](https://github.com/fatedier/frp/releases) From 918f2edf8eb5e61de101a75b8b1f126999b0a242 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 19:43:23 +0300 Subject: [PATCH 41/94] empty From ab7c922a53dc42caf2393ace252638858feb1cf1 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 19:44:45 +0300 Subject: [PATCH 42/94] empty From 765dd85c2b3c0bd160011844486077c81ccacd80 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Sun, 4 Sep 2022 19:48:11 +0300 Subject: [PATCH 43/94] empty From 92828955b1d7809d42db62723e88ce66490830e4 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 08:19:26 +0300 Subject: [PATCH 44/94] empty From acfe6f833b69665c2a782f5bc71ca8a7f6d96c6d Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 08:21:19 +0300 Subject: [PATCH 45/94] empty From 048f7fd4d2b75e03dd49107405afcc399faffd68 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 08:22:25 +0300 Subject: [PATCH 46/94] empty From 8f8b6281db70475aa9f3d08731cf183727811608 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 08:23:51 +0300 Subject: [PATCH 47/94] empty From fc1a2dc48208e5328e92bbb4ed23989ccdee8e6e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 09:55:44 +0300 Subject: [PATCH 48/94] empty From 19cff010b977063f0eb969b7d52cbdea2b5b5fe3 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 09:57:26 +0300 Subject: [PATCH 49/94] empty From d177318c3f7dffb545cb96de849dcb0496a74107 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 10:31:31 +0300 Subject: [PATCH 50/94] empty From b287f405c3d9f8587eb99ab12dababd89de81375 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 10:53:52 +0300 Subject: [PATCH 51/94] empty From 4936cd015e4395858813f77914faf1b14c95a5eb Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 10:58:55 +0300 Subject: [PATCH 52/94] empty From 1d1da5c9fbf58bb4e28b6886873441f5d57ccdd0 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 11:06:21 +0300 Subject: [PATCH 53/94] empty From 2e3298fcdce3824ad1ea840974ac7bedad6fd64f Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 11:49:45 +0300 Subject: [PATCH 54/94] empty From 7c11f2cf897e1fd35d3c8c3cefbcd03743b0d3ca Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 11:51:43 +0300 Subject: [PATCH 55/94] empty From 46c3b71f0f8d1467919d3a7f3f0982d6d08f252d Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 11:52:09 +0300 Subject: [PATCH 56/94] empty From 1c3832967484299aa0c62bab2f4b734bb51a75b5 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 11:52:52 +0300 Subject: [PATCH 57/94] empty From 982c469ca765949a5523240e68d782265ddb8c1c Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 12:31:02 +0300 Subject: [PATCH 58/94] empty From bd4d77013661f8ded80a7f7c3258c322d8d8b646 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 12:32:13 +0300 Subject: [PATCH 59/94] empty From 2cbb6b394e4f77cbffea3a85b5762c12dd5ef386 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 12:56:15 +0300 Subject: [PATCH 60/94] empty From f04605c74a597c44061e4ebdc35ed39ec66110f6 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 13:05:54 +0300 Subject: [PATCH 61/94] empty From 29df3efb3868673e23a4f72ba901653126c3581b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 14:56:55 +0300 Subject: [PATCH 62/94] empty From fdd04cd62b0519dcf73abd35cdf12e3dfa3d455b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 14:57:36 +0300 Subject: [PATCH 63/94] empty From 1b05dbe3932e889ecb67878732f89b2dd51a0928 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:10:28 +0300 Subject: [PATCH 64/94] empty From 8679b53f2ebc1ad60270f4215e31e1f012e08d2a Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:13:12 +0300 Subject: [PATCH 65/94] empty From 8b3501ea5efee51a833b91674f205a65a1467ee8 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:48:23 +0300 Subject: [PATCH 66/94] empty From 9fa1721a8f33ea50e6fdf99e3ff705cf293f6732 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:49:24 +0300 Subject: [PATCH 67/94] empty From 11ee57c10c1ebe2387daac0c78f2cb1adc405c96 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:50:30 +0300 Subject: [PATCH 68/94] empty From d5b2a8145ce85529e61040c1e6efe7545f2ea76e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 16:56:14 +0300 Subject: [PATCH 69/94] empty From 3ad725ddb9aae02143560b2ce77ca913afad20a9 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 17:02:07 +0300 Subject: [PATCH 70/94] empty From 83c42d32ddc7b39ea277fbc711fe8856cb5beb6b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 17:06:51 +0300 Subject: [PATCH 71/94] empty From 498dea42ed82677bc6376e426183ba66b549ae7f Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 5 Sep 2022 17:18:47 +0300 Subject: [PATCH 72/94] empty From c3f7c2416785016bd3e9a03851c3a6d95abd687c Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Tue, 6 Sep 2022 07:37:28 +0300 Subject: [PATCH 73/94] empty From 39e03dcb347b561294bc2e48a6e4952a4316d95a Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Tue, 6 Sep 2022 17:59:51 +0300 Subject: [PATCH 74/94] empty From bbcea367dc1848dc2f1a76e90c82d7bf07b58b2d Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Fri, 9 Sep 2022 18:12:58 +0300 Subject: [PATCH 75/94] empty From 8e3419fff4192cc808a989e9c8507500c5d9c1ae Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Fri, 9 Sep 2022 18:37:22 +0300 Subject: [PATCH 76/94] empty From 12a6c581e29e0c9f706db429cb75abd83b4e138e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 17:58:56 +0300 Subject: [PATCH 77/94] empty From 86863591bc432135c7051d5bcd7a947ad7545664 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 17:59:07 +0300 Subject: [PATCH 78/94] empty From 03e10a5deb821704ee5e141341c31d9b17262870 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:02:21 +0300 Subject: [PATCH 79/94] empty From 843533774de387eb910a1d13743a789a0668dd0a Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:08:17 +0300 Subject: [PATCH 80/94] empty From 132c437ade7552f9b6aa0d31a0eec8dd30889eaa Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:12:29 +0300 Subject: [PATCH 81/94] empty From f68a9f6d6cdaf83e7e3f3cbd451f4fd4b1573a9c Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:13:55 +0300 Subject: [PATCH 82/94] empty From fe6d8d0f83e59b668faad68c3bafa57884f3dd7b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:23:29 +0300 Subject: [PATCH 83/94] empty From aa611bd2005e7a3bf1a05bf1bfadd16c37d60c2b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:33:37 +0300 Subject: [PATCH 84/94] empty From 09731b08e6bb5cd7af23fc650f0577f637fc309b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:35:15 +0300 Subject: [PATCH 85/94] empty From 8bb2423ec7ffbc07304b3fd9f5a5ed60a3a257d5 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:39:51 +0300 Subject: [PATCH 86/94] empty From 6a6ade837176c1c614c1a9aedbabc9e44bcef90e Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:46:01 +0300 Subject: [PATCH 87/94] empty From 3a2c370db48aec27ba2f392592f5fb6697dc50ae Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:48:21 +0300 Subject: [PATCH 88/94] empty From 088860f51fa193d769e459584fa3f1a3c606f84d Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:52:25 +0300 Subject: [PATCH 89/94] empty From 82d32ba33a0cf8555360b18f96ce132caf8e73ec Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Mon, 12 Sep 2022 18:59:17 +0300 Subject: [PATCH 90/94] empty From b4cb6302d20955285c6d361f0ef0c4994b200018 Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Tue, 13 Sep 2022 07:51:22 +0300 Subject: [PATCH 91/94] empty From e78f95d8b8ae5a905db78bf4896f9dace9b07f5b Mon Sep 17 00:00:00 2001 From: Ilia Medvedev Date: Tue, 13 Sep 2022 08:44:41 +0300 Subject: [PATCH 92/94] empty From c169f789f7cc08eb9b90bccffe1ceecde587ecf1 Mon Sep 17 00:00:00 2001 From: ilia-medvedev-codefresh Date: Wed, 4 Jan 2023 10:39:46 +0200 Subject: [PATCH 93/94] Update ilia-test1 --- ilia-test1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ilia-test1 b/ilia-test1 index 05f59b18c90..28bc29365c1 100644 --- a/ilia-test1 +++ b/ilia-test1 @@ -6,4 +6,4 @@ d333 e222 f111 g333 -3 \ No newline at end of file +3333 From 30a3dfde553c99ab5e6bb43f29e21c4766aa6c08 Mon Sep 17 00:00:00 2001 From: ilia-medvedev-codefresh Date: Wed, 4 Jan 2023 10:50:30 +0200 Subject: [PATCH 94/94] Update ilia-test1 --- ilia-test1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ilia-test1 b/ilia-test1 index 28bc29365c1..d78c956df6b 100644 --- a/ilia-test1 +++ b/ilia-test1 @@ -6,4 +6,4 @@ d333 e222 f111 g333 -3333 +3333111