summaryrefslogtreecommitdiff
path: root/src/nslcd/proto/server/func_handlerequest.go.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/nslcd/proto/server/func_handlerequest.go.sh')
-rwxr-xr-xsrc/nslcd/proto/server/func_handlerequest.go.sh101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/nslcd/proto/server/func_handlerequest.go.sh b/src/nslcd/proto/server/func_handlerequest.go.sh
deleted file mode 100755
index 3ef2758..0000000
--- a/src/nslcd/proto/server/func_handlerequest.go.sh
+++ /dev/null
@@ -1,101 +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"
- p "nslcd/proto"
- "os"
- s "syscall"
-)
-
-// 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)
- $(
- if [[ $request == PAM_Authentication ]]; then
- echo '_req := req'
- echo '_req.Password = "<omitted-from-log>"'
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", _req)'
- else
- echo 'fmt.Fprintf(os.Stderr, "Request: %#v\n", req)'
- fi
- )
- _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