diff --git a/net/server/go.mod b/net/server/go.mod index d4e475f3..3fa6f525 100644 --- a/net/server/go.mod +++ b/net/server/go.mod @@ -6,7 +6,9 @@ require ( github.com/client9/misspell v0.3.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/felixge/httpsnoop v1.0.1 // indirect + github.com/fzipp/gocyclo v0.6.0 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.4.2 // indirect @@ -22,6 +24,8 @@ require ( github.com/valyala/fastjson v1.6.3 // indirect golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 // indirect golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect golang.org/x/tools v0.1.11 // indirect gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect gorm.io/driver/sqlite v1.2.6 // indirect diff --git a/net/server/go.sum b/net/server/go.sum index a09c720e..c0cf8a59 100644 --- a/net/server/go.sum +++ b/net/server/go.sum @@ -6,8 +6,12 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= +github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= +github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -41,6 +45,7 @@ github.com/theckman/go-securerandom v0.1.1 h1:5KctSyM0D5KKFK+bsypIyLq7yik0CEaI5i github.com/theckman/go-securerandom v0.1.1/go.mod h1:bmkysLfBH6i891sBpcP4xRM3XIB7jMeiKJB31jlResI= github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M= @@ -48,16 +53,33 @@ golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/net/server/internal/api_addCard.go b/net/server/internal/api_addCard.go index e5d8a6dd..759114f4 100644 --- a/net/server/internal/api_addCard.go +++ b/net/server/internal/api_addCard.go @@ -128,11 +128,11 @@ func AddCard(w http.ResponseWriter, r *http.Request) { slot.Card = &card return nil }) - } - if err != nil { - ErrResponse(w, http.StatusInternalServerError, err) - return + if err != nil { + ErrResponse(w, http.StatusInternalServerError, err) + return + } } SetStatus(account) diff --git a/net/server/internal/api_getChannelTopic.go b/net/server/internal/api_getChannelTopic.go index 755d6548..ce956fb9 100644 --- a/net/server/internal/api_getChannelTopic.go +++ b/net/server/internal/api_getChannelTopic.go @@ -28,6 +28,7 @@ func GetChannelTopic(w http.ResponseWriter, r *http.Request) { } else { code = http.StatusInternalServerError } + ErrResponse(w, code, err) return } diff --git a/net/server/internal/api_getChannelTopicDetail.go b/net/server/internal/api_getChannelTopicDetail.go index 637a9597..5b372b8f 100644 --- a/net/server/internal/api_getChannelTopicDetail.go +++ b/net/server/internal/api_getChannelTopicDetail.go @@ -34,6 +34,7 @@ func GetChannelTopicDetail(w http.ResponseWriter, r *http.Request) { } else { code = http.StatusInternalServerError } + ErrResponse(w, code, err) return } diff --git a/net/server/internal/api_getChannelTopicSubjectField.go b/net/server/internal/api_getChannelTopicSubjectField.go index 26c8eab9..743e3ea2 100644 --- a/net/server/internal/api_getChannelTopicSubjectField.go +++ b/net/server/internal/api_getChannelTopicSubjectField.go @@ -35,6 +35,7 @@ func GetChannelTopicSubjectField(w http.ResponseWriter, r *http.Request) { } else { code = http.StatusInternalServerError } + ErrResponse(w, code, err) return } if topicSlot.Topic == nil { diff --git a/net/server/internal/api_getChannelTopicTagSubjectField.go b/net/server/internal/api_getChannelTopicTagSubjectField.go index 3ee02f91..012ea2e4 100644 --- a/net/server/internal/api_getChannelTopicTagSubjectField.go +++ b/net/server/internal/api_getChannelTopicTagSubjectField.go @@ -36,6 +36,7 @@ func GetChannelTopicTagSubjectField(w http.ResponseWriter, r *http.Request) { } else { code = http.StatusInternalServerError } + ErrResponse(w, code, err) return } if tagSlot.Tag == nil { diff --git a/net/server/internal/api_removeChannel.go b/net/server/internal/api_removeChannel.go index 6af811d2..fe05a652 100644 --- a/net/server/internal/api_removeChannel.go +++ b/net/server/internal/api_removeChannel.go @@ -36,6 +36,7 @@ func RemoveChannel(w http.ResponseWriter, r *http.Request) { } else { err = errors.New("unknown token type") code = http.StatusBadRequest + ErrResponse(w, code, err) return } diff --git a/net/server/internal/messageUtil.go b/net/server/internal/messageUtil.go index d52b40a8..0adc1538 100644 --- a/net/server/internal/messageUtil.go +++ b/net/server/internal/messageUtil.go @@ -104,6 +104,9 @@ func WriteDataMessage(privateKey string, publicKey string, keyType string, signedData.MessageType = messageType signedData.Value = string(data) data, err = json.Marshal(&signedData) + if err != nil { + return nil, errors.New("marshall failed"); + } message := base64.StdEncoding.EncodeToString(data) if keyType != APPRSA2048 && keyType != APPRSA4096 { @@ -126,6 +129,9 @@ func WriteDataMessage(privateKey string, publicKey string, keyType string, } else { return nil, errors.New("unsupported signature type") } + if err != nil { + return nil, errors.New("rsa sign failed"); + } signature := base64.StdEncoding.EncodeToString(data) dataMessage := DataMessage{ diff --git a/net/server/internal/ucAttributeShare_test.go b/net/server/internal/ucAttributeShare_test.go index 5277ee5e..24a90544 100644 --- a/net/server/internal/ucAttributeShare_test.go +++ b/net/server/internal/ucAttributeShare_test.go @@ -38,8 +38,6 @@ func TestAttributeShare(t *testing.T) { bRev = GetTestRevision(set.B.Revisions) assert.NoError(t, APITestMsg(GetCard, "GET", "/contact/cards/{cardID}", ¶m, nil, APPTokenAgent, set.B.Token, card, nil)) - bViewRevision = card.Data.NotifiedView - bArticleRevision = card.Data.NotifiedArticle card = &Card{} param["cardID"] = set.C.A.CardID cRev = GetTestRevision(set.C.Revisions) @@ -269,7 +267,7 @@ func TestAttributeShare(t *testing.T) { nil, nil, APPTokenContact, set.B.A.Token, articles, &hdr)) assert.Equal(t, 1, len(*articles)) assert.NotNil(t, (*articles)[0].Data) - bArticleRevision, _ = strconv.ParseInt(hdr["Article-Revision"][0], 10, 64) + strconv.ParseInt(hdr["Article-Revision"][0], 10, 64) bViewRevision, _ = strconv.ParseInt(hdr["View-Revision"][0], 10, 64) // delete B's group diff --git a/net/server/internal/ucTopicShare_test.go b/net/server/internal/ucTopicShare_test.go index ec0a4971..fbaf47f7 100644 --- a/net/server/internal/ucTopicShare_test.go +++ b/net/server/internal/ucTopicShare_test.go @@ -15,7 +15,7 @@ func TestTopicShare(t *testing.T) { var detail *ChannelDetail var subject *Subject params := make(map[string]string) - header := make(map[string][]string) + var header map[string][]string var err error var data []byte var aRev *Revision