Upgade Cwtch, Allow Unsigned APIs.
continuous-integration/drone/pr Build is failing
Details
continuous-integration/drone/pr Build is failing
Details
Also update .drone
This commit is contained in:
parent
7ddf09caec
commit
c2c3c2894d
17
.drone.yml
17
.drone.yml
|
@ -11,9 +11,14 @@ steps:
|
||||||
path: /go
|
path: /go
|
||||||
commands:
|
commands:
|
||||||
- go install honnef.co/go/tools/cmd/staticcheck@latest
|
- go install honnef.co/go/tools/cmd/staticcheck@latest
|
||||||
- wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/master/tor/tor
|
- go install go.uber.org/nilaway/cmd/nilaway@latest
|
||||||
- wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/master/tor/torrc
|
- wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-0.4.8.9-linux-x86_64.tar.gz -O tor.tar.gz
|
||||||
- chmod a+x tor
|
- tar -xzf tor.tar.gz
|
||||||
|
- chmod a+x Tor/tor
|
||||||
|
- export PATH=$PWD/Tor/:$PATH
|
||||||
|
- export LD_LIBRARY_PATH=$PWD/Tor/
|
||||||
|
- tor --version
|
||||||
|
- export GO111MODULE=on
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
- go mod download
|
- go mod download
|
||||||
- echo `git describe --tags` > VERSION
|
- echo `git describe --tags` > VERSION
|
||||||
|
@ -21,7 +26,7 @@ steps:
|
||||||
- export GOSUMDB="off"
|
- export GOSUMDB="off"
|
||||||
|
|
||||||
- name: build-linux
|
- name: build-linux
|
||||||
image: openpriv/golangxarm:1.19.1
|
image: openpriv/golangxarm:1.21.5
|
||||||
volumes:
|
volumes:
|
||||||
- name: deps
|
- name: deps
|
||||||
path: /go
|
path: /go
|
||||||
|
@ -31,7 +36,7 @@ steps:
|
||||||
- make linux
|
- make linux
|
||||||
|
|
||||||
- name: build-android
|
- name: build-android
|
||||||
image: openpriv/android-go-mobile:2023.02
|
image: openpriv/android-go-mobile:2024.01
|
||||||
volumes:
|
volumes:
|
||||||
- name: deps
|
- name: deps
|
||||||
path: /go
|
path: /go
|
||||||
|
@ -44,7 +49,7 @@ steps:
|
||||||
- make android
|
- make android
|
||||||
|
|
||||||
- name: build-windows
|
- name: build-windows
|
||||||
image: openpriv/mingw-go:2023.01
|
image: openpriv/mingw-go:2024.01
|
||||||
environment:
|
environment:
|
||||||
GOPATH: /go
|
GOPATH: /go
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
@ -146,6 +146,10 @@ func intArgPrototype(varName string) (string, string, string, string) {
|
||||||
return fmt.Sprintf(`%s C.int`, ToSnakeCase(varName)), fmt.Sprintf(`int(%v)`, ToSnakeCase(varName)), fmt.Sprintf(`%v int`, varName), varName
|
return fmt.Sprintf(`%s C.int`, ToSnakeCase(varName)), fmt.Sprintf(`int(%v)`, ToSnakeCase(varName)), fmt.Sprintf(`%v int`, varName), varName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func uintArgPrototype(varName string) (string, string, string, string) {
|
||||||
|
return fmt.Sprintf(`%s C.uint`, ToSnakeCase(varName)), fmt.Sprintf(`int(%v)`, ToSnakeCase(varName)), fmt.Sprintf(`%v int`, varName), varName
|
||||||
|
}
|
||||||
|
|
||||||
func conversationArgPrototype(varName string) (string, string, string, string) {
|
func conversationArgPrototype(varName string) (string, string, string, string) {
|
||||||
return intArgPrototype(varName)
|
return intArgPrototype(varName)
|
||||||
}
|
}
|
||||||
|
@ -235,7 +239,7 @@ func mapArgs(argsTypes []string) (string, string, string, string) {
|
||||||
gUse = append(gUse, c4)
|
gUse = append(gUse, c4)
|
||||||
case "int":
|
case "int":
|
||||||
if len(argTypeParts) != 2 {
|
if len(argTypeParts) != 2 {
|
||||||
fmt.Printf("generic bool arg must have have e.g. bool:<name>\n")
|
fmt.Printf("generic int arg must have have e.g. int:<name>\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
c1, c2, c3, c4 := intArgPrototype(argTypeParts[1])
|
c1, c2, c3, c4 := intArgPrototype(argTypeParts[1])
|
||||||
|
@ -243,6 +247,20 @@ func mapArgs(argsTypes []string) (string, string, string, string) {
|
||||||
c2GoArgs = append(c2GoArgs, c2)
|
c2GoArgs = append(c2GoArgs, c2)
|
||||||
goSpec = append(goSpec, c3)
|
goSpec = append(goSpec, c3)
|
||||||
gUse = append(gUse, c4)
|
gUse = append(gUse, c4)
|
||||||
|
case "uint":
|
||||||
|
if len(argTypeParts) != 2 {
|
||||||
|
fmt.Printf("generic uint arg must have have e.g. uint:<name>\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
c1, c2, c3, c4 := uintArgPrototype(argTypeParts[1])
|
||||||
|
cArgs = append(cArgs, c1)
|
||||||
|
c2GoArgs = append(c2GoArgs, c2)
|
||||||
|
goSpec = append(goSpec, c3)
|
||||||
|
// because of java/kotlin/android/gomobile inability to recognize unsigned integers
|
||||||
|
// we need to pretent this is a signed interface...so do the final cast here...
|
||||||
|
// this will cause bad behavior if a negative number is passed through the java
|
||||||
|
// interface...so...don't do that...
|
||||||
|
gUse = append(gUse, fmt.Sprintf("uint(%s)", c4))
|
||||||
case "string":
|
case "string":
|
||||||
if len(argTypeParts) != 2 {
|
if len(argTypeParts) != 2 {
|
||||||
fmt.Printf("generic string arg must have have e.g. string:<name>\n")
|
fmt.Printf("generic string arg must have have e.g. string:<name>\n")
|
||||||
|
|
4
go.mod
4
go.mod
|
@ -1,9 +1,9 @@
|
||||||
module git.openprivacy.ca/cwtch.im/cwtch-autobindings
|
module git.openprivacy.ca/cwtch.im/cwtch-autobindings
|
||||||
|
|
||||||
go 1.19
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cwtch.im/cwtch v0.24.5
|
cwtch.im/cwtch v0.25.0
|
||||||
git.openprivacy.ca/cwtch.im/server v1.4.5
|
git.openprivacy.ca/cwtch.im/server v1.4.5
|
||||||
git.openprivacy.ca/openprivacy/connectivity v1.11.0
|
git.openprivacy.ca/openprivacy/connectivity v1.11.0
|
||||||
git.openprivacy.ca/openprivacy/log v1.0.3
|
git.openprivacy.ca/openprivacy/log v1.0.3
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -1,6 +1,6 @@
|
||||||
cwtch.im/cwtch v0.18.0/go.mod h1:StheazFFY7PKqBbEyDVLhzWW6WOat41zV0ckC240c5Y=
|
cwtch.im/cwtch v0.18.0/go.mod h1:StheazFFY7PKqBbEyDVLhzWW6WOat41zV0ckC240c5Y=
|
||||||
cwtch.im/cwtch v0.24.5 h1:Fr5F23sfCHTw95QnKTkbEkdLlcYI279imUOYdppJE70=
|
cwtch.im/cwtch v0.25.0 h1:39mAzuR6gDR3IBtWtA0QgZiCJKR+O+8lUZ0SGllcxRI=
|
||||||
cwtch.im/cwtch v0.24.5/go.mod h1:o8uZBYjDS1DEHftxdYl91iMQZ2WDxlajM7Pa0ScfviI=
|
cwtch.im/cwtch v0.25.0/go.mod h1:A3i92aFuhyHI2DYO2Qnvl5iqEw0Cox22pdiypHnMOy4=
|
||||||
filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
||||||
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
|
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
|
||||||
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
||||||
|
|
22
quality.sh
22
quality.sh
|
@ -3,22 +3,26 @@
|
||||||
echo "Checking code quality (you want to see no output here)"
|
echo "Checking code quality (you want to see no output here)"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo "Vetting:"
|
|
||||||
go vet generate/*
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Linting:"
|
echo "Running staticcheck..."
|
||||||
|
|
||||||
staticcheck ./generate
|
staticcheck ./...
|
||||||
|
|
||||||
|
# In the future we should remove include-pkgs. However, there are a few false positives in the overall go stdlib that make this
|
||||||
|
# too noisy right now, specifically assigning nil to initialize slices (safe), and using go internal context channels assigned
|
||||||
|
# nil (also safe).
|
||||||
|
# We also have one file infinite_channel.go written in a way that static analysis cannot reason about easily. So it is explictly
|
||||||
|
# ignored.
|
||||||
|
echo "Running nilaway..."
|
||||||
|
nilaway -include-pkgs="cwtch.im/cwtch,cwtch.im/tapir,git.openprivacy.ca/openprivacy/connectivity" -exclude-file-docstrings="nolint:nilaway" ./...
|
||||||
|
|
||||||
echo "Time to format"
|
echo "Time to format"
|
||||||
gofmt -l -s -w .
|
gofmt -l -s -w .
|
||||||
|
|
||||||
# ineffassign (https://github.com/gordonklaus/ineffassign)
|
# ineffassign (https://github.com/gordonklaus/ineffassign)
|
||||||
echo "Checking for ineffectual assignment of errors (unchecked errors...)"
|
# echo "Checking for ineffectual assignment of errors (unchecked errors...)"
|
||||||
ineffassign .
|
# ineffassign .
|
||||||
|
|
||||||
# misspell (https://github.com/client9/misspell/cmd/misspell)
|
# misspell (https://github.com/client9/misspell/cmd/misspell)
|
||||||
echo "Checking for misspelled words..."
|
# echo "Checking for misspelled words..."
|
||||||
misspell . | grep -v "testing/" | grep -v "vendor/" | grep -v "go.sum" | grep -v ".idea"
|
# misspell . | grep -v "testing/" | grep -v "vendor/" | grep -v "go.sum" | grep -v ".idea"
|
||||||
|
|
2
spec
2
spec
|
@ -30,7 +30,7 @@ profile DisconnectFromPeer string:handle
|
||||||
(json)profile EnhancedSendMessage conversation string:msg
|
(json)profile EnhancedSendMessage conversation string:msg
|
||||||
(json)profile EnhancedGetMessageById conversation message
|
(json)profile EnhancedGetMessageById conversation message
|
||||||
(json)profile EnhancedGetMessageByContentHash conversation string:contentHash
|
(json)profile EnhancedGetMessageByContentHash conversation string:contentHash
|
||||||
(json)profile EnhancedGetMessages conversation int:index int:count
|
(json)profile EnhancedGetMessages conversation int:index uint:count
|
||||||
(json)profile EnhancedSendInviteMessage conversation conversation:target
|
(json)profile EnhancedSendInviteMessage conversation conversation:target
|
||||||
profile UpdateMessageAttribute conversation channel message string:attributeKey string:attributeValue
|
profile UpdateMessageAttribute conversation channel message string:attributeKey string:attributeValue
|
||||||
|
|
||||||
|
|
|
@ -200,7 +200,8 @@ func (eh *EventHandler) handleAppBusEvent(e *event.Event) string {
|
||||||
if conversationInfo.IsServer() {
|
if conversationInfo.IsServer() {
|
||||||
groupHandler := servers.FunctionalityGate()
|
groupHandler := servers.FunctionalityGate()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
knownServers = append(knownServers, groupHandler.GetServerInfo(profile, conversationInfo.Handle))
|
serverInfo, _ := groupHandler.GetServerInfo(profile, conversationInfo.Handle);
|
||||||
|
knownServers = append(knownServers, serverInfo)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -478,41 +479,12 @@ func (eh *EventHandler) handleProfileEvent(ev *EventProfileEnvelope) string {
|
||||||
}
|
}
|
||||||
case event.PeerStateChange:
|
case event.PeerStateChange:
|
||||||
cxnState := connections.ConnectionStateToType()[ev.Event.Data[event.ConnectionState]]
|
cxnState := connections.ConnectionStateToType()[ev.Event.Data[event.ConnectionState]]
|
||||||
|
|
||||||
// skip events the UI doesn't act on
|
|
||||||
if cxnState == connections.CONNECTING || cxnState == connections.CONNECTED {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
contact, err := profile.FetchConversationInfo(ev.Event.Data[event.RemotePeer])
|
|
||||||
|
|
||||||
if ev.Event.Data[event.RemotePeer] == profile.GetOnion() {
|
if ev.Event.Data[event.RemotePeer] == profile.GetOnion() {
|
||||||
return "" // suppress events from our own profile...
|
return "" // suppress events from our own profile...
|
||||||
}
|
}
|
||||||
|
|
||||||
// We do not know who this is...don't send any event until we see a message from them
|
|
||||||
// (at that point the conversation will have been created...)
|
|
||||||
if contact == nil || err != nil || contact.ID == 0 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// if we already know this state, suppress
|
|
||||||
if knownState, exists := contactStateCache[ev.Event.Data[event.RemotePeer]]; exists && cxnState == knownState {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
contactStateCache[ev.Event.Data[event.RemotePeer]] = cxnState
|
contactStateCache[ev.Event.Data[event.RemotePeer]] = cxnState
|
||||||
case event.ServerStateChange:
|
case event.ServerStateChange:
|
||||||
cxnState := connections.ConnectionStateToType()[ev.Event.Data[event.ConnectionState]]
|
cxnState := connections.ConnectionStateToType()[ev.Event.Data[event.ConnectionState]]
|
||||||
|
|
||||||
// skip events the UI doesn't act on
|
|
||||||
if cxnState == connections.CONNECTING || cxnState == connections.CONNECTED {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// if we already know this state, suppress
|
|
||||||
if knownState, exists := contactStateCache[ev.Event.Data[event.RemotePeer]]; exists && cxnState == knownState {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
contactStateCache[ev.Event.Data[event.RemotePeer]] = cxnState
|
contactStateCache[ev.Event.Data[event.RemotePeer]] = cxnState
|
||||||
case event.TokenManagerInfo:
|
case event.TokenManagerInfo:
|
||||||
conversations, err := profile.FetchConversations()
|
conversations, err := profile.FetchConversations()
|
||||||
|
|
Loading…
Reference in New Issue