Pull request: all: add native endianness, imp Makefile
Merge in DNS/adguard-home from fix-some to master Squashed commit of the following: commit 190e9a88d9c0f2bfc597aa61b41dae8b8686158e Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Mar 16 20:50:02 2021 +0300 all: add native endianness, imp Makefile
This commit is contained in:
parent
3a67cc2c45
commit
67164f89f3
15
Makefile
15
Makefile
|
@ -82,18 +82,3 @@ go-check: go-tools go-lint go-test
|
||||||
|
|
||||||
openapi-lint: ; cd ./openapi/ && $(YARN) test
|
openapi-lint: ; cd ./openapi/ && $(YARN) test
|
||||||
openapi-show: ; cd ./openapi/ && $(YARN) start
|
openapi-show: ; cd ./openapi/ && $(YARN) start
|
||||||
|
|
||||||
# TODO(a.garipov): Remove the legacy targets once the build
|
|
||||||
# infrastructure stops using them.
|
|
||||||
dependencies:
|
|
||||||
@ echo "use make deps instead"
|
|
||||||
@ $(MAKE) deps
|
|
||||||
docker-multi-arch:
|
|
||||||
@ echo "use make build-docker instead"
|
|
||||||
@ $(MAKE) build-docker
|
|
||||||
go-install-tools:
|
|
||||||
@ echo "use make go-tools instead"
|
|
||||||
@ $(MAKE) go-tools
|
|
||||||
release:
|
|
||||||
@ echo "use make build-release instead"
|
|
||||||
@ $(MAKE) build-release
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
// +build mips mips64
|
||||||
|
|
||||||
|
// This file is an adapted version of github.com/josharian/native.
|
||||||
|
|
||||||
|
package aghos
|
||||||
|
|
||||||
|
import "encoding/binary"
|
||||||
|
|
||||||
|
// NativeEndian is the native endianness of this system.
|
||||||
|
var NativeEndian = binary.BigEndian
|
|
@ -0,0 +1,10 @@
|
||||||
|
// +build amd64 386 arm arm64 mipsle mips64le ppc64le
|
||||||
|
|
||||||
|
// This file is an adapted version of github.com/josharian/native.
|
||||||
|
|
||||||
|
package aghos
|
||||||
|
|
||||||
|
import "encoding/binary"
|
||||||
|
|
||||||
|
// NativeEndian is the native endianness of this system.
|
||||||
|
var NativeEndian = binary.LittleEndian
|
|
@ -8,9 +8,9 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
"unsafe"
|
|
||||||
|
|
||||||
"github.com/AdguardTeam/AdGuardHome/internal/aghio"
|
"github.com/AdguardTeam/AdGuardHome/internal/aghio"
|
||||||
|
"github.com/AdguardTeam/AdGuardHome/internal/aghos"
|
||||||
"github.com/AdguardTeam/golibs/log"
|
"github.com/AdguardTeam/golibs/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -66,16 +66,6 @@ func glCheckToken(sess string) bool {
|
||||||
return now <= (tokenDate + glTokenTimeoutSeconds)
|
return now <= (tokenDate + glTokenTimeoutSeconds)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(a.garipov): Replace with a smaller version of
|
|
||||||
// https://github.com/josharian/native.
|
|
||||||
func archIsLittleEndian() bool {
|
|
||||||
var i int32 = 0x01020304
|
|
||||||
u := unsafe.Pointer(&i)
|
|
||||||
pb := (*byte)(u)
|
|
||||||
b := *pb
|
|
||||||
return (b == 0x04)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MaxFileSize is a maximum file length in bytes.
|
// MaxFileSize is a maximum file length in bytes.
|
||||||
const MaxFileSize = 1024 * 1024
|
const MaxFileSize = 1024 * 1024
|
||||||
|
|
||||||
|
@ -104,12 +94,7 @@ func glGetTokenDate(file string) uint32 {
|
||||||
}
|
}
|
||||||
buf := bytes.NewBuffer(bs)
|
buf := bytes.NewBuffer(bs)
|
||||||
|
|
||||||
var order binary.ByteOrder = binary.BigEndian
|
err = binary.Read(buf, aghos.NativeEndian, &dateToken)
|
||||||
if archIsLittleEndian() {
|
|
||||||
order = binary.LittleEndian
|
|
||||||
}
|
|
||||||
|
|
||||||
err = binary.Read(buf, order, &dateToken)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("binary.Read: %s", err)
|
log.Error("binary.Read: %s", err)
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package home
|
package home
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/AdguardTeam/AdGuardHome/internal/aghos"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -20,19 +20,14 @@ func TestAuthGL(t *testing.T) {
|
||||||
})
|
})
|
||||||
glFilePrefix = dir + "/gl_token_"
|
glFilePrefix = dir + "/gl_token_"
|
||||||
|
|
||||||
putFunc := binary.BigEndian.PutUint32
|
|
||||||
if archIsLittleEndian() {
|
|
||||||
putFunc = binary.LittleEndian.PutUint32
|
|
||||||
}
|
|
||||||
|
|
||||||
data := make([]byte, 4)
|
data := make([]byte, 4)
|
||||||
putFunc(data, 1)
|
aghos.NativeEndian.PutUint32(data, 1)
|
||||||
|
|
||||||
require.Nil(t, ioutil.WriteFile(glFilePrefix+"test", data, 0o644))
|
require.Nil(t, ioutil.WriteFile(glFilePrefix+"test", data, 0o644))
|
||||||
assert.False(t, glCheckToken("test"))
|
assert.False(t, glCheckToken("test"))
|
||||||
|
|
||||||
data = make([]byte, 4)
|
data = make([]byte, 4)
|
||||||
putFunc(data, uint32(time.Now().UTC().Unix()+60))
|
aghos.NativeEndian.PutUint32(data, uint32(time.Now().UTC().Unix()+60))
|
||||||
|
|
||||||
require.Nil(t, ioutil.WriteFile(glFilePrefix+"test", data, 0o644))
|
require.Nil(t, ioutil.WriteFile(glFilePrefix+"test", data, 0o644))
|
||||||
r, _ := http.NewRequest(http.MethodGet, "http://localhost/", nil)
|
r, _ := http.NewRequest(http.MethodGet, "http://localhost/", nil)
|
||||||
|
|
|
@ -66,10 +66,20 @@ method_const() {
|
||||||
|
|
||||||
# underscores is a simple check against Go filenames with underscores.
|
# underscores is a simple check against Go filenames with underscores.
|
||||||
underscores() {
|
underscores() {
|
||||||
git ls-files '*_*.go' | { grep -F -e '_darwin.go' \
|
git ls-files '*_*.go' | {
|
||||||
-e '_freebsd.go' -e '_linux.go' -e '_others.go' \
|
grep -F\
|
||||||
-e '_test.go' -e '_unix.go' -e '_windows.go' \
|
-e '_big.go'\
|
||||||
-v || exit 0; }
|
-e '_darwin.go'\
|
||||||
|
-e '_freebsd.go'\
|
||||||
|
-e '_linux.go'\
|
||||||
|
-e '_little.go'\
|
||||||
|
-e '_others.go'\
|
||||||
|
-e '_test.go'\
|
||||||
|
-e '_unix.go'\
|
||||||
|
-e '_windows.go' \
|
||||||
|
-v\
|
||||||
|
|| exit 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue