Update dependencies
This commit is contained in:
47
vendor/github.com/tailscale/peercred/peercred.go
generated
vendored
Normal file
47
vendor/github.com/tailscale/peercred/peercred.go
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright (c) 2021 AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package peercred maps from a net.Conn to information about the
|
||||
// other side of the connection, using various OS-specific facilities.
|
||||
package peercred
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
// Creds are the peer credentials.
|
||||
type Creds struct {
|
||||
pid int
|
||||
uid string
|
||||
}
|
||||
|
||||
func (c *Creds) PID() (pid int, ok bool) {
|
||||
return c.pid, c.pid != 0
|
||||
}
|
||||
|
||||
// UserID returns the userid (or Windows SID) that owns the other side
|
||||
// of the connection, if known. (ok is false if not known)
|
||||
// The returned string is suitable to passing to os/user.LookupId.
|
||||
func (c *Creds) UserID() (uid string, ok bool) {
|
||||
return c.uid, c.uid != ""
|
||||
}
|
||||
|
||||
var osGet func(net.Conn) (*Creds, error)
|
||||
|
||||
var (
|
||||
ErrNotImplemented = errors.New("not implemented on " + runtime.GOOS)
|
||||
ErrUnsupportedConnType = errors.New("unsupported connection type")
|
||||
)
|
||||
|
||||
// Get returns the peer credentials for c.
|
||||
//
|
||||
// For unsupported system, the error is ErrNotImplemented.
|
||||
func Get(c net.Conn) (*Creds, error) {
|
||||
if osGet == nil {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
return osGet(c)
|
||||
}
|
||||
Reference in New Issue
Block a user