Rework udp for linux into just 2 files, add more mips targets
This commit is contained in:
parent
d62bb8b13c
commit
4bbf6dc29c
16
Makefile
16
Makefile
|
@ -3,7 +3,7 @@ BUILD_NUMBER ?= dev+$(shell date -u '+%Y%m%d%H%M%S')
|
||||||
GO111MODULE = on
|
GO111MODULE = on
|
||||||
export GO111MODULE
|
export GO111MODULE
|
||||||
|
|
||||||
all: bin-linux bin-arm bin-arm6 bin-arm64 bin-darwin bin-windows bin-mips64 bin-mips64le
|
all: bin-linux bin-arm bin-arm6 bin-arm64 bin-darwin bin-windows bin-mips bin-mipsle bin-mips64 bin-mips64le
|
||||||
|
|
||||||
bin:
|
bin:
|
||||||
go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula ${NEBULA_CMD_PATH}
|
go build -ldflags "-X main.Build=$(BUILD_NUMBER)" -o ./nebula ${NEBULA_CMD_PATH}
|
||||||
|
@ -47,6 +47,18 @@ bin-linux:
|
||||||
GOARCH=amd64 GOOS=linux go build -o build/linux/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
|
GOARCH=amd64 GOOS=linux go build -o build/linux/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ${NEBULA_CMD_PATH}
|
||||||
GOARCH=amd64 GOOS=linux go build -o build/linux/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
|
GOARCH=amd64 GOOS=linux go build -o build/linux/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
|
||||||
|
|
||||||
|
|
||||||
|
bin-mips:
|
||||||
|
mkdir -p build/mips
|
||||||
|
GOARCH=mips GOOS=linux go build -o build/mips/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
|
||||||
|
GOARCH=mips GOOS=linux go build -o build/mips/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
|
||||||
|
|
||||||
|
|
||||||
|
bin-mipsle:
|
||||||
|
mkdir -p build/mipsle
|
||||||
|
GOARCH=mipsle GOOS=linux go build -o build/mipsle/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
|
||||||
|
GOARCH=mipsle GOOS=linux go build -o build/mipsle/nebula-cert -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula-cert
|
||||||
|
|
||||||
bin-mips64:
|
bin-mips64:
|
||||||
mkdir -p build/mips64
|
mkdir -p build/mips64
|
||||||
GOARCH=mips64 GOOS=linux go build -o build/mips64/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
|
GOARCH=mips64 GOOS=linux go build -o build/mips64/nebula -ldflags "-X main.Build=$(BUILD_NUMBER)" ./cmd/nebula
|
||||||
|
@ -64,6 +76,8 @@ release: all
|
||||||
tar -zcv -C build/darwin/ -f nebula-darwin-amd64.tar.gz nebula nebula-cert
|
tar -zcv -C build/darwin/ -f nebula-darwin-amd64.tar.gz nebula nebula-cert
|
||||||
tar -zcv -C build/windows/ -f nebula-windows-amd64.tar.gz nebula.exe nebula-cert.exe
|
tar -zcv -C build/windows/ -f nebula-windows-amd64.tar.gz nebula.exe nebula-cert.exe
|
||||||
tar -zcv -C build/linux/ -f nebula-linux-amd64.tar.gz nebula nebula-cert
|
tar -zcv -C build/linux/ -f nebula-linux-amd64.tar.gz nebula nebula-cert
|
||||||
|
tar -zcv -C build/mips/ -f nebula-linux-mips.tar.gz nebula nebula-cert
|
||||||
|
tar -zcv -C build/mipsle/ -f nebula-linux-mipsle.tar.gz nebula nebula-cert
|
||||||
tar -zcv -C build/mips64/ -f nebula-linux-mips64.tar.gz nebula nebula-cert
|
tar -zcv -C build/mips64/ -f nebula-linux-mips64.tar.gz nebula nebula-cert
|
||||||
tar -zcv -C build/mips64le/ -f nebula-linux-mips64le.tar.gz nebula nebula-cert
|
tar -zcv -C build/mips64le/ -f nebula-linux-mips64le.tar.gz nebula nebula-cert
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// +build linux
|
||||||
|
// +build 386 amd64p32 arm mips mipsle
|
||||||
|
|
||||||
package nebula
|
package nebula
|
||||||
|
|
||||||
import "unsafe"
|
import "unsafe"
|
|
@ -1,3 +1,6 @@
|
||||||
|
// +build linux
|
||||||
|
// +build amd64 arm64 ppc64 ppc64le mips64 mips64le s390x
|
||||||
|
|
||||||
package nebula
|
package nebula
|
||||||
|
|
||||||
import "unsafe"
|
import "unsafe"
|
|
@ -1,50 +0,0 @@
|
||||||
package nebula
|
|
||||||
|
|
||||||
import "unsafe"
|
|
||||||
|
|
||||||
type iovec struct {
|
|
||||||
Base *byte
|
|
||||||
Len uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
type msghdr struct {
|
|
||||||
Name *byte
|
|
||||||
Namelen uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
Iov *iovec
|
|
||||||
Iovlen uint64
|
|
||||||
Control *byte
|
|
||||||
Controllen uint64
|
|
||||||
Flags int32
|
|
||||||
Pad1 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type rawMessage struct {
|
|
||||||
Hdr msghdr
|
|
||||||
Len uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (u *udpConn) PrepareRawMessages(n int) ([]rawMessage, [][]byte, [][]byte) {
|
|
||||||
msgs := make([]rawMessage, n)
|
|
||||||
buffers := make([][]byte, n)
|
|
||||||
names := make([][]byte, n)
|
|
||||||
|
|
||||||
for i := range msgs {
|
|
||||||
buffers[i] = make([]byte, mtu)
|
|
||||||
names[i] = make([]byte, 0x1c) //TODO = sizeofSockaddrInet6
|
|
||||||
|
|
||||||
//TODO: this is still silly, no need for an array
|
|
||||||
vs := []iovec{
|
|
||||||
{Base: (*byte)(unsafe.Pointer(&buffers[i][0])), Len: uint64(len(buffers[i]))},
|
|
||||||
}
|
|
||||||
|
|
||||||
msgs[i].Hdr.Iov = &vs[0]
|
|
||||||
msgs[i].Hdr.Iovlen = uint64(len(vs))
|
|
||||||
|
|
||||||
msgs[i].Hdr.Name = (*byte)(unsafe.Pointer(&names[i][0]))
|
|
||||||
msgs[i].Hdr.Namelen = uint32(len(names[i]))
|
|
||||||
}
|
|
||||||
|
|
||||||
return msgs, buffers, names
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
package nebula
|
|
||||||
|
|
||||||
import "unsafe"
|
|
||||||
|
|
||||||
type iovec struct {
|
|
||||||
Base *byte
|
|
||||||
Len uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
type msghdr struct {
|
|
||||||
Name *byte
|
|
||||||
Namelen uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
Iov *iovec
|
|
||||||
Iovlen uint64
|
|
||||||
Control *byte
|
|
||||||
Controllen uint64
|
|
||||||
Flags int32
|
|
||||||
Pad1 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type rawMessage struct {
|
|
||||||
Hdr msghdr
|
|
||||||
Len uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (u *udpConn) PrepareRawMessages(n int) ([]rawMessage, [][]byte, [][]byte) {
|
|
||||||
msgs := make([]rawMessage, n)
|
|
||||||
buffers := make([][]byte, n)
|
|
||||||
names := make([][]byte, n)
|
|
||||||
|
|
||||||
for i := range msgs {
|
|
||||||
buffers[i] = make([]byte, mtu)
|
|
||||||
names[i] = make([]byte, 0x1c) //TODO = sizeofSockaddrInet6
|
|
||||||
|
|
||||||
//TODO: this is still silly, no need for an array
|
|
||||||
vs := []iovec{
|
|
||||||
{Base: (*byte)(unsafe.Pointer(&buffers[i][0])), Len: uint64(len(buffers[i]))},
|
|
||||||
}
|
|
||||||
|
|
||||||
msgs[i].Hdr.Iov = &vs[0]
|
|
||||||
msgs[i].Hdr.Iovlen = uint64(len(vs))
|
|
||||||
|
|
||||||
msgs[i].Hdr.Name = (*byte)(unsafe.Pointer(&names[i][0]))
|
|
||||||
msgs[i].Hdr.Namelen = uint32(len(names[i]))
|
|
||||||
}
|
|
||||||
|
|
||||||
return msgs, buffers, names
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
package nebula
|
|
||||||
|
|
||||||
import "unsafe"
|
|
||||||
|
|
||||||
type iovec struct {
|
|
||||||
Base *byte
|
|
||||||
Len uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
type msghdr struct {
|
|
||||||
Name *byte
|
|
||||||
Namelen uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
Iov *iovec
|
|
||||||
Iovlen uint64
|
|
||||||
Control *byte
|
|
||||||
Controllen uint64
|
|
||||||
Flags int32
|
|
||||||
Pad1 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type rawMessage struct {
|
|
||||||
Hdr msghdr
|
|
||||||
Len uint32
|
|
||||||
Pad0 [4]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (u *udpConn) PrepareRawMessages(n int) ([]rawMessage, [][]byte, [][]byte) {
|
|
||||||
msgs := make([]rawMessage, n)
|
|
||||||
buffers := make([][]byte, n)
|
|
||||||
names := make([][]byte, n)
|
|
||||||
|
|
||||||
for i := range msgs {
|
|
||||||
buffers[i] = make([]byte, mtu)
|
|
||||||
names[i] = make([]byte, 0x1c) //TODO = sizeofSockaddrInet6
|
|
||||||
|
|
||||||
//TODO: this is still silly, no need for an array
|
|
||||||
vs := []iovec{
|
|
||||||
{Base: (*byte)(unsafe.Pointer(&buffers[i][0])), Len: uint64(len(buffers[i]))},
|
|
||||||
}
|
|
||||||
|
|
||||||
msgs[i].Hdr.Iov = &vs[0]
|
|
||||||
msgs[i].Hdr.Iovlen = uint64(len(vs))
|
|
||||||
|
|
||||||
msgs[i].Hdr.Name = (*byte)(unsafe.Pointer(&names[i][0]))
|
|
||||||
msgs[i].Hdr.Namelen = uint32(len(names[i]))
|
|
||||||
}
|
|
||||||
|
|
||||||
return msgs, buffers, names
|
|
||||||
}
|
|
Loading…
Reference in New Issue