summaryrefslogtreecommitdiff
path: root/proto/server
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-12-18 03:59:10 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-12-18 03:59:10 -0500
commit5aa2dc8085d65c8cfcc46a02ee74ddb9d9032e62 (patch)
tree7ffa48eea1cd99655413a18b83144c8ca2ddf5bb /proto/server
parent321e6c8958823f64fa2464497f9d217712f93530 (diff)
Rename packages to make goimports happy. BREAKING CHANGE.
Diffstat (limited to 'proto/server')
-rw-r--r--proto/server/.gitignore3
-rw-r--r--proto/server/Makefile36
-rw-r--r--proto/server/doc.go25
-rwxr-xr-xproto/server/func_handlerequest.go.sh120
-rwxr-xr-xproto/server/interface_backend.go.sh40
-rwxr-xr-xproto/server/type_nilbackend.go.sh41
6 files changed, 0 insertions, 265 deletions
diff --git a/proto/server/.gitignore b/proto/server/.gitignore
deleted file mode 100644
index ff46733..0000000
--- a/proto/server/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/func_handlerequest.go
-/interface_backend.go
-/type_nilbackend.go
diff --git a/proto/server/Makefile b/proto/server/Makefile
deleted file mode 100644
index 1bbfc58..0000000
--- a/proto/server/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (C) 2015-2016 Luke Shumaker <lukeshu@sbcglobal.net>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA
-
-files.src.gen += interface_backend.go
-files.src.gen += func_handlerequest.go
-files.src.gen += type_nilbackend.go
-
-files.generate: $(files.src.gen)
-maintainer-clean:
- rm -f -- $(files.src.gen)
-.PHONY: files.generate maintainer-clean
-
-%.go: %.go.sh
- ./$^ > $@
-
-interface_backend.go: ../requests.txt
-func_handlerequest.go: ../requests.txt
-type_nilbackend.go: interface_backend.go
-
-../requests.txt:
- $(MAKE) -C $(@D) $(@F)
-
diff --git a/proto/server/doc.go b/proto/server/doc.go
deleted file mode 100644
index 1cf7552..0000000
--- a/proto/server/doc.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2015-2016 Luke Shumaker <lukeshu@sbcglobal.net>
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
-
-//go:generate make
-
-// Package nslcd_server is a framework for implementing an nslcd
-// server.
-//
-// You write an implementation of the Backend interface, then pass
-// that to the HandleRequest function for each connection.
-package nslcd_server
diff --git a/proto/server/func_handlerequest.go.sh b/proto/server/func_handlerequest.go.sh
deleted file mode 100755
index ac61e76..0000000
--- a/proto/server/func_handlerequest.go.sh
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env bash
-# -*- Mode: Go -*-
-# Copyright (C) 2015 Luke Shumaker <lukeshu@sbcglobal.net>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA
-
-requests=$1
-printf '//'
-printf ' %q' "$0" "$@"
-printf '\n// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n'
-cat <<EOF | gofmt
-package nslcd_server
-
-import (
- "fmt"
- "io"
- "os"
- s "syscall"
-
- p "lukeshu.com/git/go/libnslcd.git/proto"
-)
-
-var sensitive = "<omitted-from-log>"
-
-// Handle a request to nslcd
-func HandleRequest(backend Backend, in io.Reader, out io.Writer, cred s.Ucred) (err error) {
- err = nil
- defer func() {
- if r := recover(); r != nil {
- switch r := r.(type) {
- case error:
- err = r
- default:
- panic(r)
- }
- }
- }()
- handleRequest(backend, in, out, cred)
- return
-}
-
-func handleRequest(backend Backend, in io.Reader, out io.Writer, cred s.Ucred) {
- var version int32
- p.Read(in, &version)
- if version != p.NSLCD_VERSION {
- panic(p.NslcdError(fmt.Sprintf("Version mismatch: server=%#08x client=%#08x", p.NSLCD_VERSION, version)))
- }
- var action int32
- p.Read(in, &action)
-
- ch := make(chan interface{})
- switch action {
-$(
-while read -r request; do
- cat <<EOT
- case p.NSLCD_ACTION_${request^^}:
- var req p.Request_${request}
- p.Read(in, &req)
- $(
- case "$request" in
- PAM_Authentication)
- echo '_req := req'
- echo '_req.Password = sensitive'
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", _req)'
- ;;
- PAM_PwMod)
- echo '_req := req'
- echo 'if len(_req.OldPassword) > 0 {'
- echo ' _req.OldPassword = sensitive'
- echo '}'
- echo '_req.NewPassword = sensitive'
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", _req)'
- ;;
- PAM_UserMod)
- echo '_req := req'
- echo '_req.Password = sensitive'
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", _req)'
- ;;
- *)
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", req)'
- ;;
- esac
- )
- _ch := backend.${request}(cred, req)
- go func() {
- defer close(ch)
- for obj := range _ch {
- ch <- obj
- }
- }()
-EOT
-done < "$requests"
-)
- default:
- close(ch)
- panic(p.NslcdError(fmt.Sprintf("Unknown request action: %#08x", action)))
- }
- p.Write(out, p.NSLCD_VERSION)
- p.Write(out, action)
-
- for result := range ch {
- p.Write(out, p.NSLCD_RESULT_BEGIN)
- p.Write(out, result)
- }
- p.Write(out, p.NSLCD_RESULT_END)
-}
-EOF
diff --git a/proto/server/interface_backend.go.sh b/proto/server/interface_backend.go.sh
deleted file mode 100755
index 71745ba..0000000
--- a/proto/server/interface_backend.go.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (C) 2015 Luke Shumaker <lukeshu@sbcglobal.net>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA
-
-requests=$1
-printf '//'
-printf ' %q' "$0" "$@"
-printf '\n// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n'
-cat <<EOF | gofmt
-package nslcd_server
-
-import (
- s "syscall"
-
- p "lukeshu.com/git/go/libnslcd.git/proto"
-)
-
-// The Backend interface allows the backend store to be implemented
-// separately from the protocol implementation. Each request type
-// that the nslcd server may reply to is implemented simply as a
-// method that returns a channel of the resulting values.
-type Backend interface {
- $(sed -rn 's/([^_]+)(.*)/\1\2(s.Ucred, p.Request_\1\2) <-chan p.\1/p' "$requests" | grep -v PAM)
- $(sed -rn 's/(PAM)(.*)/\1\2(s.Ucred, p.Request_\1\2) <-chan p.\1\2/p' "$requests")
-}
-EOF
diff --git a/proto/server/type_nilbackend.go.sh b/proto/server/type_nilbackend.go.sh
deleted file mode 100755
index 3a94d6e..0000000
--- a/proto/server/type_nilbackend.go.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (C) 2015 Luke Shumaker <lukeshu@sbcglobal.net>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA
-
-interface=$1
-printf '//'
-printf ' %q' "$0" "$@"
-printf '\n// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT\n\n'
-cat <<EOF | gofmt
-package nslcd_server
-
-import (
- s "syscall"
-
- p "lukeshu.com/git/go/libnslcd.git/proto"
-)
-
-// NilBackend implements the Backend interface, but only returns empty
-// responses. It is useful to add as an anonymous member of a backend
-// implementation that does not return results for all of the
-// databases.
-type NilBackend struct{}
-
-$(< "$interface" sed -rn 's/^\t([^(]+)\(s.Ucred, ([^)]+)\) <-chan (\S+)$/func (o NilBackend) \1(s.Ucred, \2) <-chan \3 { r := make(chan \3); close(r); return r }/p')
-
-var _ Backend = NilBackend{}
-EOF