From 255a9c1e01ee568da1b3d5be6a3ad7e0c85eed35 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 24 Nov 2022 01:04:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:bug:=20=E8=B6=85=E7=BA=A7=E5=9D=97?= =?UTF-8?q?=E4=B8=8B=E6=96=B9=E5=9D=97=E8=A2=AB=E4=BD=9C=E4=B8=BA=E5=B5=8C?= =?UTF-8?q?=E5=85=A5=E5=9D=97=E6=97=B6=E8=AE=BE=E7=BD=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=9D=A2=E5=8C=85=E5=B1=91=E5=90=8E=E4=B8=8D=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=20Fix=20https://github.com/siyuan-note/siyuan/issues/6690?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/blockinfo.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/model/blockinfo.go b/kernel/model/blockinfo.go index b5412b8a4..8ab656936 100644 --- a/kernel/model/blockinfo.go +++ b/kernel/model/blockinfo.go @@ -280,6 +280,10 @@ func buildBlockBreadcrumb(node *ast.Node) (ret []*BlockPath) { if ast.NodeSuperBlock == prev.Type { // 超级块中包含标题块时下方块面包屑计算不正确 https://github.com/siyuan-note/siyuan/issues/6675 b = treenode.SuperBlockLastHeading(prev) + if nil == b { + // 超级块下方块被作为嵌入块时设置显示面包屑后不渲染 https://github.com/siyuan-note/siyuan/issues/6690 + b = prev + } } if ast.NodeHeading == b.Type && headingLevel > b.HeadingLevel { From f38e0537025d1e1b76b448f2520d9698a459eec1 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 24 Nov 2022 11:00:58 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:bug:=20S3/WebDAV=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=90=86=20Fix=20https://github.com/siyuan-note/siyuan/issues/?= =?UTF-8?q?6695?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/repository.go | 5 ++--- kernel/util/{web.go => net.go} | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) rename kernel/util/{web.go => net.go} (67%) diff --git a/kernel/model/repository.go b/kernel/model/repository.go index 9ff57f12f..00a07e35b 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -20,7 +20,6 @@ import ( "bytes" "crypto/rand" "crypto/sha256" - "crypto/tls" "encoding/base64" "errors" "fmt" @@ -824,7 +823,7 @@ func newRepository() (ret *dejavu.Repo, err error) { case conf.ProviderSiYuan: cloudRepo = cloud.NewSiYuan(&cloud.BaseCloud{Conf: cloudConf}) case conf.ProviderS3: - s3HTTPClient := &http.Client{Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: cloudConf.S3.SkipTlsVerify}}} + s3HTTPClient := &http.Client{Transport: util.NewTransport(cloudConf.S3.SkipTlsVerify)} s3HTTPClient.Timeout = 30 * time.Second cloudRepo = cloud.NewS3(&cloud.BaseCloud{Conf: cloudConf}, s3HTTPClient) case conf.ProviderWebDAV: @@ -834,7 +833,7 @@ func newRepository() (ret *dejavu.Repo, err error) { webdavClient.SetHeader("Authorization", auth) webdavClient.SetHeader("User-Agent", util.UserAgent) webdavClient.SetTimeout(30 * time.Second) - webdavClient.SetTransport(&http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: cloudConf.WebDAV.SkipTlsVerify}}) + webdavClient.SetTransport(util.NewTransport(cloudConf.WebDAV.SkipTlsVerify)) cloudRepo = cloud.NewWebDAV(&cloud.BaseCloud{Conf: cloudConf}, webdavClient) default: err = fmt.Errorf("unknown cloud provider [%d]", Conf.Sync.Provider) diff --git a/kernel/util/web.go b/kernel/util/net.go similarity index 67% rename from kernel/util/web.go rename to kernel/util/net.go index 7fc757c2e..e836ddebc 100644 --- a/kernel/util/web.go +++ b/kernel/util/net.go @@ -17,7 +17,12 @@ package util import ( + "context" + "crypto/tls" + "net" + "net/http" "strings" + "time" "github.com/88250/gulu" "github.com/gin-gonic/gin" @@ -48,3 +53,23 @@ func JsonArg(c *gin.Context, result *gulu.Result) (arg map[string]interface{}, o ok = true return } + +func NewTransport(skipTlsVerify bool) *http.Transport { + return &http.Transport{ + Proxy: http.ProxyFromEnvironment, + DialContext: defaultTransportDialContext(&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }), + ForceAttemptHTTP2: true, + MaxIdleConns: 100, + IdleConnTimeout: 90 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + + TLSClientConfig: &tls.Config{InsecureSkipVerify: skipTlsVerify}} +} + +func defaultTransportDialContext(dialer *net.Dialer) func(context.Context, string, string) (net.Conn, error) { + return dialer.DialContext +}