summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/sys/unix/syscall_openbsd.go
diff options
context:
space:
mode:
authorcori hudson <54032873+hyperobject@users.noreply.github.com>2019-08-26 15:00:31 -0400
committerWim <wim@42.be>2019-08-26 21:00:31 +0200
commit921f2dfcdf1a6263220b55eb55716e497373dfcf (patch)
tree436478bd7b61ea598d75af0d27520b512dad1683 /vendor/golang.org/x/sys/unix/syscall_openbsd.go
parent79a006c8de311a7bbab540e62bd3fac998d415d5 (diff)
downloadmatterbridge-msglm-921f2dfcdf1a6263220b55eb55716e497373dfcf.tar.gz
matterbridge-msglm-921f2dfcdf1a6263220b55eb55716e497373dfcf.tar.bz2
matterbridge-msglm-921f2dfcdf1a6263220b55eb55716e497373dfcf.zip
Add initial Keybase Chat support (#877)
* initial work on native keybase bridging * Hopefully make a functional keybase bridge * add keybase to bridgemap * send to right channel, try to figure out received msgs * add account and userid * i am a Dam Fool * Fix formatting for messages, handle /me * update vendors, ran golint and goimports * move handlers to handlers.go, clean up unused config options * add sample config, fix inconsistent remote nick handling * Update readme with keybase links * Resolve fixmie errors * Error -> Errorf * fix linting errors in go.mod and go.sum * explicitly join channels, ignore messages from non-specified channels * check that team names match before bridging message
Diffstat (limited to 'vendor/golang.org/x/sys/unix/syscall_openbsd.go')
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd.go37
1 files changed, 35 insertions, 2 deletions
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
index c8648ec0..1a074b2f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
@@ -43,6 +43,18 @@ func nametomib(name string) (mib []_C_int, err error) {
return nil, EINVAL
}
+func direntIno(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))
+}
+
+func direntReclen(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
+}
+
+func direntNamlen(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+}
+
func SysctlClockinfo(name string) (*Clockinfo, error) {
mib, err := sysctlmib(name)
if err != nil {
@@ -89,9 +101,30 @@ func Pipe(p []int) (err error) {
return
}
-//sys getdents(fd int, buf []byte) (n int, err error)
+//sys Getdents(fd int, buf []byte) (n int, err error)
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
- return getdents(fd, buf)
+ n, err = Getdents(fd, buf)
+ if err != nil || basep == nil {
+ return
+ }
+
+ var off int64
+ off, err = Seek(fd, 0, 1 /* SEEK_CUR */)
+ if err != nil {
+ *basep = ^uintptr(0)
+ return
+ }
+ *basep = uintptr(off)
+ if unsafe.Sizeof(*basep) == 8 {
+ return
+ }
+ if off>>32 != 0 {
+ // We can't stuff the offset back into a uintptr, so any
+ // future calls would be suspect. Generate an error.
+ // EIO was allowed by getdirentries.
+ err = EIO
+ }
+ return
}
const ImplementsGetwd = true