// Copyright 2015 Luke Shumaker . // // This is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; either version 2 of // the License, or (at your option) any later version. // // This software is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this manual; if not, see // . package hackers_nslcd_backend import ( p "lukeshu.com/git/go/libnslcd.git/proto" s "syscall" ) func (o *Hackers) Shadow_ByName(cred s.Ucred, 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) if cred.Uid != 0 { return } uid := o.name2uid(req.Name) user := o.users[uid] ret <- p.Shadow{ Name: user.passwd.Name, PwHash: user.passwd.PwHash, LastChangeDate: -1, MinDays: -1, MaxDays: -1, WarnDays: -1, InactDays: -1, ExpireDate: -1, Flag: -1, } }() return ret } func (o *Hackers) Shadow_All(cred s.Ucred, 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) if cred.Uid != 0 { return } for _, user := range o.users { ret <- p.Shadow{ Name: user.passwd.Name, PwHash: user.passwd.PwHash, LastChangeDate: -1, MinDays: -1, MaxDays: -1, WarnDays: -1, InactDays: -1, ExpireDate: -1, Flag: -1, } } }() return ret }