diff options
Diffstat (limited to 'src/nshd')
-rw-r--r-- | src/nshd/hackers_git/main.go | 112 | ||||
-rw-r--r-- | src/nshd/main.go | 21 |
2 files changed, 114 insertions, 19 deletions
diff --git a/src/nshd/hackers_git/main.go b/src/nshd/hackers_git/main.go new file mode 100644 index 0000000..9e71710 --- /dev/null +++ b/src/nshd/hackers_git/main.go @@ -0,0 +1,112 @@ +package hackers_git + +import ( + _ "golang.org/x/exp/inotify" + _ "gopkg.in/yaml.v2" + p "nslcd_proto" + "nslcd_systemd" + "sync" +) + +type Hackers struct { + p.NullBackend + lock *sync.RWMutex + pam_password_prohibit_message string +} + +var _ nslcd_systemd.Backend = &Hackers{} +var _ p.Backend = &Hackers{} +// +func (o *Hackers) Reload() { + o.lock.Lock() + defer o.lock.Unlock() + // TODO +} + +func NewHackers(yamlDir string) *Hackers { + // TODO + var hackers Hackers + + var lock sync.RWMutex + hackers.lock = &lock + + go inotify_watcher(yamlDir) + + return &hackers +} + +func inotify_watcher(yamlDir string) { + // TODO +} + +// +func (o *Hackers) Config_Get(cred p.Ucred, req p.Request_Config_Get) p.Config_Enumerator { + var val *string = nil + + switch req { + case p.NSLCD_CONFIG_PAM_PASSWORD_PROHIBIT_MESSAGE: + val = &o.pam_password_prohibit_message + } + + if val != nil { + return p.New_Config_List([]p.Config{p.Config(*val)}) + } else { + return p.Config_Ø{} + } +} +// +func (o *Hackers) Passwd_ByName(cred p.Ucred, req p.Request_Passwd_ByName) p.Passwd_Enumerator { + // TODO + return nil +} +func (o *Hackers) Passwd_ByUID(cred p.Ucred, req p.Request_Passwd_ByUID) p.Passwd_Enumerator { + // TODO + return nil +} +func (o *Hackers) Passwd_All(cred p.Ucred, req p.Request_Passwd_All) p.Passwd_Enumerator { + // TODO + return nil +} +// +func (o *Hackers) Shadow_ByName(cred p.Ucred, req p.Request_Shadow_ByName) p.Shadow_Enumerator { + // TODO + return nil +} +func (o *Hackers) Shadow_All(cred p.Ucred, req p.Request_Shadow_All) p.Shadow_Enumerator { + // TODO + return nil +} +// +func (o *Hackers) Group_ByName(cred p.Ucred, req p.Request_Group_ByName) p.Group_Enumerator { + // TODO + return nil +} +func (o *Hackers) Group_ByGid(cred p.Ucred, req p.Request_Group_ByGid) p.Group_Enumerator { + // TODO + return nil +} +func (o *Hackers) Group_ByMember(cred p.Ucred, req p.Request_Group_ByMember) p.Group_Enumerator { + // TODO + return nil +} +func (o *Hackers) Group_All(cred p.Ucred, req p.Request_Group_All) p.Group_Enumerator { + // TODO + return nil +} +// +func (o *Hackers) PAM_Authentication(cred p.Ucred, req p.Request_PAM_Authentication) p.PAM_Authentication_Enumerator { + // TODO + return nil +} +func (o *Hackers) PAM_Authorization(cred p.Ucred, req p.Request_PAM_Authorization) p.PAM_Authorization_Enumerator { + // TODO + return nil +} +func (o *Hackers) PAM_SessionOpen(cred p.Ucred, req p.Request_PAM_SessionOpen) p.PAM_SessionOpen_Enumerator { + // TODO + return nil +} +func (o *Hackers) PAM_SessionClose(cred p.Ucred, req p.Request_PAM_SessionClose) p.PAM_SessionClose_Enumerator { + // TODO + return nil +} diff --git a/src/nshd/main.go b/src/nshd/main.go index 8230734..d31160f 100644 --- a/src/nshd/main.go +++ b/src/nshd/main.go @@ -1,28 +1,11 @@ package main import ( - _ "golang.org/x/exp/inotify" - _ "gopkg.in/yaml.v2" - "nslcd_proto" + "nshd/hackers_git" "nslcd_systemd" ) -type hackersBackend struct { - nslcd_proto.NullBackend -} - -var _ nslcd_systemd.Backend = &hackersBackend{} - -func (o *hackersBackend) Reload() { - // TODO -} - -func newHackersBackend() *hackersBackend { - // TODO - return &hackersBackend{} -} - func main() { - backend := newHackersBackend() + backend := hackers_git.NewHackers("/var/cache/parabola-hackers/users") nslcd_systemd.Main(backend) } |