mirror of
https://github.com/mudler/luet.git
synced 2025-06-27 07:50:18 +00:00
Instead of using gox on one side and an action to release, we can merge them together with goreleaser which will build for extra targets (arm, mips if needed in the future) and it also takes care of creating checksums, a source archive, and a changelog and creating a release with all the artifacts. All binaries should respect the old naming convention, so any scripts out there should still work. Signed-off-by: Itxaka <igarcia@suse.com>
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
// Copyright 2021 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build linux
|
|
// +build linux
|
|
|
|
package unix
|
|
|
|
import "unsafe"
|
|
|
|
// Helpers for dealing with ifreq since it contains a union and thus requires a
|
|
// lot of unsafe.Pointer casts to use properly.
|
|
|
|
// newIfreq creates an ifreq with the input network interface name after
|
|
// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required)
|
|
// bytes.
|
|
func newIfreq(name string) (*ifreq, error) {
|
|
// Leave room for terminating NULL byte.
|
|
if len(name) >= IFNAMSIZ {
|
|
return nil, EINVAL
|
|
}
|
|
|
|
var ifr ifreq
|
|
copy(ifr.Ifrn[:], name)
|
|
|
|
return &ifr, nil
|
|
}
|
|
|
|
// An ifreqData is an ifreq but with a typed unsafe.Pointer field for data in
|
|
// the union. This is required in order to comply with the unsafe.Pointer rules
|
|
// since the "pointer-ness" of data would not be preserved if it were cast into
|
|
// the byte array of a raw ifreq.
|
|
type ifreqData struct {
|
|
name [IFNAMSIZ]byte
|
|
data unsafe.Pointer
|
|
// Pad to the same size as ifreq.
|
|
_ [len(ifreq{}.Ifru) - SizeofPtr]byte
|
|
}
|
|
|
|
// SetData produces an ifreqData with the pointer p set for ioctls which require
|
|
// arbitrary pointer data.
|
|
func (ifr ifreq) SetData(p unsafe.Pointer) ifreqData {
|
|
return ifreqData{
|
|
name: ifr.Ifrn,
|
|
data: p,
|
|
}
|
|
}
|