Skip to content

Commit

Permalink
refactor: simplify protobuf related code
Browse files Browse the repository at this point in the history
  • Loading branch information
yin1999 committed Jan 9, 2024
1 parent 8c2d3b3 commit 30e7668
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 19 deletions.
21 changes: 7 additions & 14 deletions infra/conf/jsonpb/jsonpb.go
@@ -1,7 +1,6 @@
package jsonpb

import (
"bytes"
"io"

"google.golang.org/protobuf/encoding/protojson"
Expand All @@ -16,24 +15,18 @@ import (

//go:generate go run github.com/v2fly/v2ray-core/v5/common/errors/errorgen

func loadJSONPB(reader io.Reader) (*core.Config, error) {
func loadJSONPB(data []byte) (*core.Config, error) {
coreconf := &core.Config{}
jsonpbloader := &protojson.UnmarshalOptions{Resolver: serial.GetResolver()}
data := buf.New()
defer data.Release()
_, err := data.ReadFrom(reader)
if err != nil {
return nil, err
}
err = jsonpbloader.Unmarshal(data.Bytes(), coreconf)
jsonpbloader := protojson.UnmarshalOptions{Resolver: serial.GetResolver()}
err := jsonpbloader.Unmarshal(data, coreconf)
if err != nil {
return nil, err
}
return coreconf, nil
}

func dumpJSONPb(config proto.Message, w io.Writer) error {
jsonpbdumper := &protojson.MarshalOptions{Resolver: serial.GetResolver()}
jsonpbdumper := protojson.MarshalOptions{Resolver: serial.GetResolver()}
data, err := jsonpbdumper.Marshal(config)
if err != nil {
return err
Expand Down Expand Up @@ -63,15 +56,15 @@ func init() {
if err != nil {
return nil, err
}
return loadJSONPB(bytes.NewReader(data))
return loadJSONPB(data)
case []byte:
return loadJSONPB(bytes.NewReader(v))
return loadJSONPB(v)
case io.Reader:
data, err := buf.ReadAllToBytes(v)
if err != nil {
return nil, err
}
return loadJSONPB(bytes.NewReader(data))
return loadJSONPB(data)
default:
return nil, newError("unknown type")
}
Expand Down
6 changes: 3 additions & 3 deletions infra/conf/synthetic/dns/dns_test.go
Expand Up @@ -8,7 +8,7 @@ import (
"path/filepath"
"testing"

"google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/proto"

"github.com/v2fly/v2ray-core/v5/app/dns"
"github.com/v2fly/v2ray-core/v5/app/dns/fakedns"
Expand Down Expand Up @@ -50,8 +50,8 @@ func init() {
}

func TestDNSConfigParsing(t *testing.T) {
parserCreator := func() func(string) (protoreflect.ProtoMessage, error) {
return func(s string) (protoreflect.ProtoMessage, error) {
parserCreator := func() func(string) (proto.Message, error) {
return func(s string) (proto.Message, error) {
config := new(dns2.DNSConfig)
if err := json.Unmarshal([]byte(s), config); err != nil {
return nil, err
Expand Down
4 changes: 2 additions & 2 deletions infra/conf/v2jsonpb/v2jsonpb.go
Expand Up @@ -17,7 +17,7 @@ import (

func loadV2JsonPb(data []byte) (*core.Config, error) {
coreconf := &core.Config{}
jsonpbloader := &protojson.UnmarshalOptions{Resolver: serial.GetResolver(), AllowPartial: true}
jsonpbloader := protojson.UnmarshalOptions{Resolver: serial.GetResolver(), AllowPartial: true}
err := jsonpbloader.Unmarshal(data, &V2JsonProtobufFollower{coreconf.ProtoReflect()})
if err != nil {
return nil, err
Expand All @@ -26,7 +26,7 @@ func loadV2JsonPb(data []byte) (*core.Config, error) {
}

func dumpV2JsonPb(config proto.Message) ([]byte, error) {
jsonpbdumper := &protojson.MarshalOptions{Resolver: serial.GetResolver(), AllowPartial: true}
jsonpbdumper := protojson.MarshalOptions{Resolver: serial.GetResolver(), AllowPartial: true}
bytew, err := jsonpbdumper.Marshal(&V2JsonProtobufFollower{config.ProtoReflect()})
if err != nil {
return nil, err
Expand Down

0 comments on commit 30e7668

Please sign in to comment.