diff options
Diffstat (limited to 'src/nslcd_proto/func_handlerequest.go.sh')
-rwxr-xr-x | src/nslcd_proto/func_handlerequest.go.sh | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/src/nslcd_proto/func_handlerequest.go.sh b/src/nslcd_proto/func_handlerequest.go.sh deleted file mode 100755 index 4b89a8a..0000000 --- a/src/nslcd_proto/func_handlerequest.go.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash -# -*- Mode: Go -*- -requests=$1 -cat <<EOF -package nslcd_proto - -import ( - "fmt" - "io" - "os" -) - -func handleRequest(backend Backend, in io.Reader, out io.Writer, cred Ucred) { - var version int32 - read(in, &version) - if version != NSLCD_VERSION { - panic(NslcdError(fmt.Sprintf("Version mismatch: server=%#08x client=%#08x", NSLCD_VERSION, version))) - } - var action int32 - read(in, &action) - - ch := make(chan interface{}) - switch action { -$( -while read -r request; do - cat <<EOT - case NSLCD_ACTION_${request^^}: - var req Request_${request} - 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(NslcdError(fmt.Sprintf("Unknown request action: %#08x", action))) - } - write(out, NSLCD_VERSION) - write(out, action) - - for result := range ch { - write(out, NSLCD_RESULT_BEGIN) - write(out, result) - } - write(out, NSLCD_RESULT_END) -} -EOF |