summaryrefslogtreecommitdiff
path: root/go/src/nshd/nslcd_backend/db_shadow.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/src/nshd/nslcd_backend/db_shadow.go')
-rw-r--r--go/src/nshd/nslcd_backend/db_shadow.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/go/src/nshd/nslcd_backend/db_shadow.go b/go/src/nshd/nslcd_backend/db_shadow.go
index ab1d68f..6cf6dbc 100644
--- a/go/src/nshd/nslcd_backend/db_shadow.go
+++ b/go/src/nshd/nslcd_backend/db_shadow.go
@@ -17,17 +17,24 @@
package nslcd_backend
import (
+ "context"
+
p "git.lukeshu.com/go/libnslcd/nslcd_proto"
- s "golang.org/x/sys/unix"
+ "git.lukeshu.com/go/libnslcd/nslcd_server"
)
-func (o *Hackers) Shadow_ByName(cred s.Ucred, req p.Request_Shadow_ByName) <-chan p.Shadow {
+func (o *Hackers) Shadow_ByName(ctx context.Context, req p.Request_Shadow_ByName) <-chan p.Shadow {
o.lock.RLock()
ret := make(chan p.Shadow)
go func() {
defer o.lock.RUnlock()
defer close(ret)
+ cred, ok := nslcd_server.PeerCredFromContext(ctx)
+ if !ok {
+ return
+ }
+
if cred.Uid != 0 {
return
}
@@ -48,13 +55,18 @@ func (o *Hackers) Shadow_ByName(cred s.Ucred, req p.Request_Shadow_ByName) <-cha
return ret
}
-func (o *Hackers) Shadow_All(cred s.Ucred, req p.Request_Shadow_All) <-chan p.Shadow {
+func (o *Hackers) Shadow_All(ctx context.Context, req p.Request_Shadow_All) <-chan p.Shadow {
o.lock.RLock()
ret := make(chan p.Shadow)
go func() {
defer o.lock.RUnlock()
defer close(ret)
+ cred, ok := nslcd_server.PeerCredFromContext(ctx)
+ if !ok {
+ return
+ }
+
if cred.Uid != 0 {
return
}