From bcb479aabb85ace6c6e42d06801ea27bd2876dbb Mon Sep 17 00:00:00 2001 From: John Guo Date: Tue, 24 Oct 2023 10:02:04 +0800 Subject: [PATCH] fix issue #3077 (#3081) --- cmd/gf/go.mod | 14 ++++----- contrib/config/apollo/go.mod | 2 +- contrib/config/consul/go.mod | 2 +- contrib/config/kubecm/go.mod | 2 +- contrib/config/nacos/go.mod | 2 +- contrib/config/polaris/go.mod | 2 +- contrib/drivers/clickhouse/go.mod | 2 +- contrib/drivers/dm/go.mod | 2 +- contrib/drivers/mssql/go.mod | 2 +- contrib/drivers/mysql/go.mod | 2 +- contrib/drivers/oracle/go.mod | 2 +- contrib/drivers/pgsql/go.mod | 2 +- contrib/drivers/sqlite/go.mod | 2 +- contrib/drivers/sqlitecgo/go.mod | 2 +- contrib/nosql/redis/go.mod | 2 +- contrib/registry/etcd/go.mod | 2 +- contrib/registry/file/go.mod | 2 +- contrib/registry/nacos/go.mod | 2 +- contrib/registry/polaris/go.mod | 2 +- contrib/registry/zookeeper/go.mod | 2 +- contrib/rpc/grpcx/go.mod | 4 +-- contrib/sdk/httpclient/go.mod | 2 +- contrib/trace/jaeger/go.mod | 2 +- contrib/trace/otlpgrpc/go.mod | 2 +- contrib/trace/otlphttp/go.mod | 2 +- example/go.mod | 31 +++++++++++--------- example/go.sum | 6 ++-- net/ghttp/ghttp_server_service_handler.go | 23 +++++++++------ net/ghttp/ghttp_z_unit_issue_test.go | 35 +++++++++++++++++++++++ version.go | 2 +- 30 files changed, 104 insertions(+), 57 deletions(-) diff --git a/cmd/gf/go.mod b/cmd/gf/go.mod index 1fb3f34df..96bce9a1f 100644 --- a/cmd/gf/go.mod +++ b/cmd/gf/go.mod @@ -3,13 +3,13 @@ module github.com/gogf/gf/cmd/gf/v2 go 1.18 require ( - github.com/gogf/gf/contrib/drivers/clickhouse/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/mssql/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/mysql/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/oracle/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/sqlite/v2 v2.5.5 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/contrib/drivers/clickhouse/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/mssql/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/mysql/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/oracle/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/pgsql/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/sqlite/v2 v2.5.6 + github.com/gogf/gf/v2 v2.5.6 github.com/minio/selfupdate v0.6.0 github.com/olekukonko/tablewriter v0.0.5 golang.org/x/mod v0.9.0 diff --git a/contrib/config/apollo/go.mod b/contrib/config/apollo/go.mod index d54cc4892..c9f764c0f 100644 --- a/contrib/config/apollo/go.mod +++ b/contrib/config/apollo/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/apolloconfig/agollo/v4 v4.3.1 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 ) require ( diff --git a/contrib/config/consul/go.mod b/contrib/config/consul/go.mod index b685aec3a..949fd3d88 100644 --- a/contrib/config/consul/go.mod +++ b/contrib/config/consul/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/config/consul/v2 go 1.19 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/hashicorp/consul/api v1.24.0 github.com/hashicorp/go-cleanhttp v0.5.2 ) diff --git a/contrib/config/kubecm/go.mod b/contrib/config/kubecm/go.mod index 96f499cb4..448dc155b 100644 --- a/contrib/config/kubecm/go.mod +++ b/contrib/config/kubecm/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/config/kubecm/v2 go 1.19 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 k8s.io/api v0.27.4 k8s.io/apimachinery v0.27.4 k8s.io/client-go v0.27.4 diff --git a/contrib/config/nacos/go.mod b/contrib/config/nacos/go.mod index e3a43da55..c523f0b62 100644 --- a/contrib/config/nacos/go.mod +++ b/contrib/config/nacos/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/config/nacos/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/nacos-group/nacos-sdk-go v1.1.4 ) diff --git a/contrib/config/polaris/go.mod b/contrib/config/polaris/go.mod index e41b88fdd..998b51891 100644 --- a/contrib/config/polaris/go.mod +++ b/contrib/config/polaris/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/config/polaris/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/polarismesh/polaris-go v1.5.4 ) diff --git a/contrib/drivers/clickhouse/go.mod b/contrib/drivers/clickhouse/go.mod index c7d13fa7b..24fbd02e4 100644 --- a/contrib/drivers/clickhouse/go.mod +++ b/contrib/drivers/clickhouse/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/ClickHouse/clickhouse-go/v2 v2.0.15 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/google/uuid v1.3.0 github.com/shopspring/decimal v1.3.1 ) diff --git a/contrib/drivers/dm/go.mod b/contrib/drivers/dm/go.mod index 230141188..aaee57d48 100644 --- a/contrib/drivers/dm/go.mod +++ b/contrib/drivers/dm/go.mod @@ -6,7 +6,7 @@ replace github.com/gogf/gf/v2 => ../../../ require ( gitee.com/chunanyong/dm v1.8.10 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 ) require ( diff --git a/contrib/drivers/mssql/go.mod b/contrib/drivers/mssql/go.mod index 8804ed94a..571f9bda3 100644 --- a/contrib/drivers/mssql/go.mod +++ b/contrib/drivers/mssql/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/denisenkom/go-mssqldb v0.12.3 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 ) require ( diff --git a/contrib/drivers/mysql/go.mod b/contrib/drivers/mysql/go.mod index cd4f18df1..31596e88d 100644 --- a/contrib/drivers/mysql/go.mod +++ b/contrib/drivers/mysql/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 ) require ( diff --git a/contrib/drivers/oracle/go.mod b/contrib/drivers/oracle/go.mod index 5a41b4a10..cdacdf79a 100644 --- a/contrib/drivers/oracle/go.mod +++ b/contrib/drivers/oracle/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/drivers/oracle/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/sijms/go-ora/v2 v2.7.10 ) diff --git a/contrib/drivers/pgsql/go.mod b/contrib/drivers/pgsql/go.mod index dd4822d15..f2700127e 100644 --- a/contrib/drivers/pgsql/go.mod +++ b/contrib/drivers/pgsql/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/drivers/pgsql/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/lib/pq v1.10.9 ) diff --git a/contrib/drivers/sqlite/go.mod b/contrib/drivers/sqlite/go.mod index 441300901..2d2460503 100644 --- a/contrib/drivers/sqlite/go.mod +++ b/contrib/drivers/sqlite/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/glebarez/go-sqlite v1.21.2 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 ) require ( diff --git a/contrib/drivers/sqlitecgo/go.mod b/contrib/drivers/sqlitecgo/go.mod index 163606ad3..cfc29f353 100644 --- a/contrib/drivers/sqlitecgo/go.mod +++ b/contrib/drivers/sqlitecgo/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/drivers/sqlitecgo/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/mattn/go-sqlite3 v1.14.17 ) diff --git a/contrib/nosql/redis/go.mod b/contrib/nosql/redis/go.mod index 1a074ac2d..af252f5e7 100644 --- a/contrib/nosql/redis/go.mod +++ b/contrib/nosql/redis/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/nosql/redis/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/redis/go-redis/v9 v9.0.5 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/trace v1.14.0 diff --git a/contrib/registry/etcd/go.mod b/contrib/registry/etcd/go.mod index 3d74cb24d..3c87dcd6f 100644 --- a/contrib/registry/etcd/go.mod +++ b/contrib/registry/etcd/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/registry/etcd/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 go.etcd.io/etcd/client/v3 v3.5.7 ) diff --git a/contrib/registry/file/go.mod b/contrib/registry/file/go.mod index ca974fdc8..3c8f29694 100644 --- a/contrib/registry/file/go.mod +++ b/contrib/registry/file/go.mod @@ -2,7 +2,7 @@ module github.com/gogf/gf/contrib/registry/file/v2 go 1.18 -require github.com/gogf/gf/v2 v2.5.5 +require github.com/gogf/gf/v2 v2.5.6 require ( github.com/BurntSushi/toml v1.2.0 // indirect diff --git a/contrib/registry/nacos/go.mod b/contrib/registry/nacos/go.mod index a99b0be18..de0a62bfc 100644 --- a/contrib/registry/nacos/go.mod +++ b/contrib/registry/nacos/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/registry/nacos/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/joy999/nacos-sdk-go v0.0.0-20231008093845-7f2f84bc6faa ) diff --git a/contrib/registry/polaris/go.mod b/contrib/registry/polaris/go.mod index 3b59b331e..ef47c87a4 100644 --- a/contrib/registry/polaris/go.mod +++ b/contrib/registry/polaris/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/registry/polaris/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 github.com/polarismesh/polaris-go v1.5.4 ) diff --git a/contrib/registry/zookeeper/go.mod b/contrib/registry/zookeeper/go.mod index d193e46aa..cb5efdf16 100644 --- a/contrib/registry/zookeeper/go.mod +++ b/contrib/registry/zookeeper/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/go-zookeeper/zk v1.0.3 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 golang.org/x/sync v0.3.0 ) diff --git a/contrib/rpc/grpcx/go.mod b/contrib/rpc/grpcx/go.mod index 99cb011db..97eb39bc8 100644 --- a/contrib/rpc/grpcx/go.mod +++ b/contrib/rpc/grpcx/go.mod @@ -3,8 +3,8 @@ module github.com/gogf/gf/contrib/rpc/grpcx/v2 go 1.18 require ( - github.com/gogf/gf/contrib/registry/file/v2 v2.5.5 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/contrib/registry/file/v2 v2.5.6 + github.com/gogf/gf/v2 v2.5.6 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/trace v1.14.0 google.golang.org/grpc v1.57.0 diff --git a/contrib/sdk/httpclient/go.mod b/contrib/sdk/httpclient/go.mod index 6b49cd65a..091aaa9b8 100644 --- a/contrib/sdk/httpclient/go.mod +++ b/contrib/sdk/httpclient/go.mod @@ -2,7 +2,7 @@ module github.com/gogf/gf/contrib/sdk/httpclient/v2 go 1.18 -require github.com/gogf/gf/v2 v2.5.5 +require github.com/gogf/gf/v2 v2.5.6 require ( github.com/BurntSushi/toml v1.2.0 // indirect diff --git a/contrib/trace/jaeger/go.mod b/contrib/trace/jaeger/go.mod index cab8c08f4..15a3ae254 100644 --- a/contrib/trace/jaeger/go.mod +++ b/contrib/trace/jaeger/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/trace/jaeger/v2 go 1.18 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/jaeger v1.14.0 go.opentelemetry.io/otel/sdk v1.14.0 diff --git a/contrib/trace/otlpgrpc/go.mod b/contrib/trace/otlpgrpc/go.mod index 781f71c03..69335b829 100644 --- a/contrib/trace/otlpgrpc/go.mod +++ b/contrib/trace/otlpgrpc/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/trace/otlpgrpc/v2 go 1.20 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 go.opentelemetry.io/otel v1.19.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 diff --git a/contrib/trace/otlphttp/go.mod b/contrib/trace/otlphttp/go.mod index 77d2ced81..531398f01 100644 --- a/contrib/trace/otlphttp/go.mod +++ b/contrib/trace/otlphttp/go.mod @@ -3,7 +3,7 @@ module github.com/gogf/gf/contrib/trace/otlphttp/v2 go 1.20 require ( - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/v2 v2.5.6 go.opentelemetry.io/otel v1.19.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 diff --git a/example/go.mod b/example/go.mod index 93f472c84..11e7ce3b7 100644 --- a/example/go.mod +++ b/example/go.mod @@ -3,20 +3,21 @@ module github.com/gogf/gf/example go 1.20 require ( - github.com/gogf/gf/contrib/config/apollo/v2 v2.5.5 - github.com/gogf/gf/contrib/config/consul/v2 v2.5.5 - github.com/gogf/gf/contrib/config/kubecm/v2 v2.5.5 - github.com/gogf/gf/contrib/config/nacos/v2 v2.5.5 - github.com/gogf/gf/contrib/config/polaris/v2 v2.5.5 - github.com/gogf/gf/contrib/drivers/mysql/v2 v2.5.5 - github.com/gogf/gf/contrib/nosql/redis/v2 v2.5.5 - github.com/gogf/gf/contrib/registry/etcd/v2 v2.5.5 - github.com/gogf/gf/contrib/registry/file/v2 v2.5.5 - github.com/gogf/gf/contrib/registry/polaris/v2 v2.5.5 - github.com/gogf/gf/contrib/rpc/grpcx/v2 v2.5.5 - github.com/gogf/gf/contrib/trace/otlpgrpc/v2 v2.5.5 - github.com/gogf/gf/contrib/trace/otlphttp/v2 v2.5.5 - github.com/gogf/gf/v2 v2.5.5 + github.com/gogf/gf/contrib/config/apollo/v2 v2.5.6 + github.com/gogf/gf/contrib/config/consul/v2 v2.5.6 + github.com/gogf/gf/contrib/config/kubecm/v2 v2.5.6 + github.com/gogf/gf/contrib/config/nacos/v2 v2.5.6 + github.com/gogf/gf/contrib/config/polaris/v2 v2.5.6 + github.com/gogf/gf/contrib/drivers/mysql/v2 v2.5.6 + github.com/gogf/gf/contrib/nosql/redis/v2 v2.5.6 + github.com/gogf/gf/contrib/registry/etcd/v2 v2.5.6 + github.com/gogf/gf/contrib/registry/file/v2 v2.5.6 + github.com/gogf/gf/contrib/registry/nacos/v2 v2.5.5 + github.com/gogf/gf/contrib/registry/polaris/v2 v2.5.6 + github.com/gogf/gf/contrib/rpc/grpcx/v2 v2.5.6 + github.com/gogf/gf/contrib/trace/otlpgrpc/v2 v2.5.6 + github.com/gogf/gf/contrib/trace/otlphttp/v2 v2.5.6 + github.com/gogf/gf/v2 v2.5.6 github.com/hashicorp/consul/api v1.24.0 github.com/hashicorp/go-cleanhttp v0.5.2 github.com/nacos-group/nacos-sdk-go v1.1.4 @@ -53,6 +54,7 @@ require ( github.com/go-openapi/swag v0.22.3 // indirect github.com/go-sql-driver/mysql v1.7.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -72,6 +74,7 @@ require ( github.com/imdario/mergo v0.3.6 // indirect github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect github.com/josharian/intern v1.0.0 // indirect + github.com/joy999/nacos-sdk-go v0.0.0-20231008093845-7f2f84bc6faa // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mailru/easyjson v0.7.7 // indirect diff --git a/example/go.sum b/example/go.sum index fe6c8ade7..f9e816807 100644 --- a/example/go.sum +++ b/example/go.sum @@ -296,6 +296,8 @@ github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogf/gf/contrib/registry/nacos/v2 v2.5.5 h1:SX/Hm8lTVmS+Jgr96nhEfIjkPVFb/G1WHBrJnSkaWtY= +github.com/gogf/gf/contrib/registry/nacos/v2 v2.5.5/go.mod h1:sjXCL0HbPyvRGYHEnuihLfXSkXXrMmoDNKj5D8JT8r0= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -468,6 +470,8 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5i github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/joy999/nacos-sdk-go v0.0.0-20231008093845-7f2f84bc6faa h1:FPzhsWW/aZQKw9tWOTvLc8lpKLGnPVBMaF0B+DIvKlc= +github.com/joy999/nacos-sdk-go v0.0.0-20231008093845-7f2f84bc6faa/go.mod h1:vks3UUh7Hp+e5qbvDySGnvVCD0RYqjyDy/RpVMSf3xc= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -975,8 +979,6 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/net/ghttp/ghttp_server_service_handler.go b/net/ghttp/ghttp_server_service_handler.go index f943fb0a3..d7c2cac05 100644 --- a/net/ghttp/ghttp_server_service_handler.go +++ b/net/ghttp/ghttp_server_service_handler.go @@ -257,13 +257,11 @@ func (s *Server) checkAndCreateFuncInfo( return funcInfo, err } funcInfo.ReqStructFields = fields - funcInfo.Func = createRouterFunc(funcInfo, inputObject, inputObjectPtr) + funcInfo.Func = createRouterFunc(funcInfo) return } -func createRouterFunc( - funcInfo handlerFuncInfo, inputObject reflect.Value, inputObjectPtr interface{}, -) func(r *Request) { +func createRouterFunc(funcInfo handlerFuncInfo) func(r *Request) { return func(r *Request) { var ( ok bool @@ -272,11 +270,20 @@ func createRouterFunc( reflect.ValueOf(r.Context()), } ) - r.error = r.Parse(inputObjectPtr) - if r.error != nil { - return + if funcInfo.Type.NumIn() == 2 { + var inputObject reflect.Value + if funcInfo.Type.In(1).Kind() == reflect.Ptr { + inputObject = reflect.New(funcInfo.Type.In(1).Elem()) + r.error = r.Parse(inputObject.Interface()) + } else { + inputObject = reflect.New(funcInfo.Type.In(1).Elem()).Elem() + r.error = r.Parse(inputObject.Addr().Interface()) + } + if r.error != nil { + return + } + inputValues = append(inputValues, inputObject) } - inputValues = append(inputValues, inputObject) // Call handler with dynamic created parameter values. results := funcInfo.Value.Call(inputValues) switch len(results) { diff --git a/net/ghttp/ghttp_z_unit_issue_test.go b/net/ghttp/ghttp_z_unit_issue_test.go index 1af95fa63..847602e88 100644 --- a/net/ghttp/ghttp_z_unit_issue_test.go +++ b/net/ghttp/ghttp_z_unit_issue_test.go @@ -439,3 +439,38 @@ func Test_Issue2963(t *testing.T) { t.Assert(c.GetContent(ctx, "/"+gurl.Encode("中文G146(1)-icon.txt")), `中文G146(1)-icon`) }) } + +type Issue3077Req struct { + g.Meta `path:"/echo" method:"get"` + A string `default:"a"` + B string `default:""` +} +type Issue3077Res struct { + g.Meta `mime:"text/html"` +} + +type Issue3077V1 struct{} + +func (c *Issue3077V1) Hello(ctx context.Context, req *Issue3077Req) (res *Issue3077Res, err error) { + g.RequestFromCtx(ctx).Response.Write(fmt.Sprintf("%v", req)) + return +} + +// https://github.com/gogf/gf/issues/3077 +func Test_Issue3077(t *testing.T) { + gtest.C(t, func(t *gtest.T) { + s := g.Server(guid.S()) + s.Group("/", func(group *ghttp.RouterGroup) { + group.Bind(Issue3077V1{}) + }) + s.SetDumpRouterMap(false) + s.Start() + defer s.Shutdown() + time.Sleep(100 * time.Millisecond) + + c := g.Client() + c.SetPrefix(fmt.Sprintf("http://127.0.0.1:%d", s.GetListenedPort())) + t.Assert(c.GetContent(ctx, "/echo?a=1&b=2"), `&{{} 1 2}`) + t.Assert(c.GetContent(ctx, "/echo?"), `&{{} a }`) + }) +} diff --git a/version.go b/version.go index 94185e742..0526e4fa5 100644 --- a/version.go +++ b/version.go @@ -2,5 +2,5 @@ package gf const ( // VERSION is the current GoFrame version. - VERSION = "v2.5.5" + VERSION = "v2.5.6" )