diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-18 03:59:10 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-18 03:59:10 -0500 |
commit | 5aa2dc8085d65c8cfcc46a02ee74ddb9d9032e62 (patch) | |
tree | 7ffa48eea1cd99655413a18b83144c8ca2ddf5bb /proto/server | |
parent | 321e6c8958823f64fa2464497f9d217712f93530 (diff) |
Rename packages to make goimports happy. BREAKING CHANGE.
Diffstat (limited to 'proto/server')
-rw-r--r-- | proto/server/.gitignore | 3 | ||||
-rw-r--r-- | proto/server/Makefile | 36 | ||||
-rw-r--r-- | proto/server/doc.go | 25 | ||||
-rwxr-xr-x | proto/server/func_handlerequest.go.sh | 120 | ||||
-rwxr-xr-x | proto/server/interface_backend.go.sh | 40 | ||||
-rwxr-xr-x | proto/server/type_nilbackend.go.sh | 41 |
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 |