diff options
author | Charles E. Lehner <cel@celehner.com> | 2020-09-14 12:01:11 -0400 |
---|---|---|
committer | Charles E. Lehner <cel@celehner.com> | 2020-09-14 12:01:11 -0400 |
commit | 4f61b5ec0e90e9ffe51fded4426a38958c8f7e04 (patch) | |
tree | 5c6e4b897ba77bfa6c9ee0e90c5f04f6a3c82a32 /gemini.filter.dpi | |
parent | 8eb8ce1848da1b753112e47581a151af87a4ca1b (diff) |
Factor out serving response, to reduce indentation
Diffstat (limited to 'gemini.filter.dpi')
-rwxr-xr-x | gemini.filter.dpi | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/gemini.filter.dpi b/gemini.filter.dpi index 237729e..f2e885b 100755 --- a/gemini.filter.dpi +++ b/gemini.filter.dpi @@ -269,21 +269,24 @@ serve_gemini() { if [ "$host" = "$port" ]; then port=1965; fi send_status_msg "Sending request..." - printf "%s\r\n" "$url" | openssl s_client -quiet -connect "$host:$port" | { - read status meta - send_status_msg "Status: $status" - meta=$(echo "$meta" | sed 's/\s*$//') - case "$status" in - 1*) serve_input "$url" "$meta";; - 2*) serve_success "$meta";; - 3*) serve_redirect "$meta";; - 4*) serve_error "$status" "$meta";; - 5*) serve_error "$meta";; - #6*) serve_client_cert_required "$meta";; - '') serve_missing_status "$meta";; - *) serve_status_not_supported "$status" "$meta";; - esac - } + printf "%s\r\n" "$url" | openssl s_client -quiet -connect "$host:$port" | serve_gemini_response "$url" +} + +serve_gemini_response() { + url=$1 + read status meta + send_status_msg "Status: $status" + meta=$(echo "$meta" | sed 's/\s*$//') + case "$status" in + 1*) serve_input "$url" "$meta";; + 2*) serve_success "$meta";; + 3*) serve_redirect "$meta";; + 4*) serve_error "$status" "$meta";; + 5*) serve_error "$meta";; + #6*) serve_client_cert_required "$meta";; + '') serve_missing_status "$meta";; + *) serve_status_not_supported "$status" "$meta";; + esac } case "$url" in |