diff --git a/internal/db/models/origin_dao.go b/internal/db/models/origin_dao.go index b536740c..3fee404c 100644 --- a/internal/db/models/origin_dao.go +++ b/internal/db/models/origin_dao.go @@ -104,7 +104,8 @@ func (this *OriginDAO) CreateOrigin(tx *dbs.Tx, certRef *sslconfigs.SSLCertRef, domains []string, host string, - followPort bool) (originId int64, err error) { + followPort bool, + http2Enabled bool) (originId int64, err error) { var op = NewOriginOperator() op.AdminId = adminId op.UserId = userId @@ -182,6 +183,7 @@ func (this *OriginDAO) CreateOrigin(tx *dbs.Tx, op.Host = host op.FollowPort = followPort + op.Http2Enabled = http2Enabled op.State = OriginStateEnabled err = this.Save(tx, op) @@ -208,7 +210,8 @@ func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx, certRef *sslconfigs.SSLCertRef, domains []string, host string, - followPort bool) error { + followPort bool, + http2Enabled bool) error { if originId <= 0 { return errors.New("invalid originId") } @@ -290,6 +293,7 @@ func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx, op.Host = host op.FollowPort = followPort + op.Http2Enabled = http2Enabled err := this.Save(tx, op) if err != nil { @@ -353,6 +357,7 @@ func (this *OriginDAO) CloneOrigin(tx *dbs.Tx, fromOriginId int64) (newOriginId op.Domains = origin.Domains } op.FollowPort = origin.FollowPort + op.Http2Enabled = origin.Http2Enabled op.State = origin.State return this.SaveInt64(tx, op) } @@ -391,6 +396,7 @@ func (this *OriginDAO) ComposeOriginConfig(tx *dbs.Tx, originId int64, dataMap * RequestHost: origin.Host, Domains: origin.DecodeDomains(), FollowPort: origin.FollowPort, + HTTP2Enabled: origin.Http2Enabled, } // addr diff --git a/internal/db/models/origin_model.go b/internal/db/models/origin_model.go index 795380bf..90ddb1e1 100644 --- a/internal/db/models/origin_model.go +++ b/internal/db/models/origin_model.go @@ -32,6 +32,7 @@ type Origin struct { Domains dbs.JSON `field:"domains"` // 所属域名 FollowPort bool `field:"followPort"` // 端口跟随 State uint8 `field:"state"` // 状态 + Http2Enabled bool `field:"http2Enabled"` // 是否支持HTTP/2 } type OriginOperator struct { @@ -63,6 +64,7 @@ type OriginOperator struct { Domains any // 所属域名 FollowPort any // 端口跟随 State any // 状态 + Http2Enabled any // 是否支持HTTP/2 } func NewOriginOperator() *OriginOperator { diff --git a/internal/rpc/services/service_origin.go b/internal/rpc/services/service_origin.go index e7a3d13b..593974b6 100644 --- a/internal/rpc/services/service_origin.go +++ b/internal/rpc/services/service_origin.go @@ -84,7 +84,7 @@ func (this *OriginService) CreateOrigin(ctx context.Context, req *pb.CreateOrigi } } - originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, userId, req.Name, addrMap.AsJSON(), ossConfig, req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains, req.Host, req.FollowPort) + originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, userId, req.Name, addrMap.AsJSON(), ossConfig, req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains, req.Host, req.FollowPort, req.Http2Enabled) if err != nil { return nil, err } @@ -166,7 +166,7 @@ func (this *OriginService) UpdateOrigin(ctx context.Context, req *pb.UpdateOrigi } } - err = models.SharedOriginDAO.UpdateOrigin(tx, req.OriginId, req.Name, addrMap.AsJSON(), ossConfig, req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains, req.Host, req.FollowPort) + err = models.SharedOriginDAO.UpdateOrigin(tx, req.OriginId, req.Name, addrMap.AsJSON(), ossConfig, req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains, req.Host, req.FollowPort, req.Http2Enabled) if err != nil { return nil, err } @@ -204,7 +204,7 @@ func (this *OriginService) FindEnabledOrigin(ctx context.Context, req *pb.FindEn return nil, err } - result := &pb.Origin{ + return &pb.FindEnabledOriginResponse{Origin: &pb.Origin{ Id: int64(origin.Id), IsOn: origin.IsOn, Name: origin.Name, @@ -213,10 +213,11 @@ func (this *OriginService) FindEnabledOrigin(ctx context.Context, req *pb.FindEn Host: addr.Host, PortRange: addr.PortRange, }, - Description: origin.Description, - Domains: origin.DecodeDomains(), - } - return &pb.FindEnabledOriginResponse{Origin: result}, nil + Description: origin.Description, + Domains: origin.DecodeDomains(), + FollowPort: origin.FollowPort, + Http2Enabled: origin.Http2Enabled, + }}, nil } // FindEnabledOriginConfig 查找源站配置 diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go index d1d9c3f4..3e64b3ce 100644 --- a/internal/rpc/services/service_server.go +++ b/internal/rpc/services/service_server.go @@ -392,7 +392,7 @@ func (this *ServerService) CreateBasicHTTPServer(ctx context.Context, req *pb.Cr return nil, err } - originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, req.UserId, "", addrJSON, nil, "", 10, true, nil, nil, nil, 0, 0, nil, nil, u.Host, false) + originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, req.UserId, "", addrJSON, nil, "", 10, true, nil, nil, nil, 0, 0, nil, nil, u.Host, false, false) if err != nil { return nil, err } @@ -651,7 +651,7 @@ func (this *ServerService) CreateBasicTCPServer(ctx context.Context, req *pb.Cre return nil, err } - originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, req.UserId, "", addrJSON, nil, "", 10, true, nil, nil, nil, 0, 0, nil, nil, "", false) + originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, req.UserId, "", addrJSON, nil, "", 10, true, nil, nil, nil, 0, 0, nil, nil, "", false, false) if err != nil { return nil, err }