Currently, the only way for cgi scripts to determine if the request was made over SSL seems to be to check if the SERVER_PORT environment variable is set to 443, which is less than ideal. This sets the HTTPS environment variable, like the first version of uhttpd.
Signed-off-by: Dan Staples <danstaples at opentechinstitute.org> --- proc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/proc.c b/proc.c index 9c4b685..b520b91 100644 --- a/proc.c +++ b/proc.c @@ -81,6 +81,7 @@ enum extra_vars { VAR_METHOD, VAR_PATH_INFO, VAR_USER, + VAR_TLS, VAR_REDIRECT, VAR_SERVER_NAME, VAR_SERVER_ADDR, @@ -108,6 +109,7 @@ static struct env_var extra_vars[] = { [VAR_METHOD] = { "REQUEST_METHOD" }, [VAR_PATH_INFO] = { "PATH_INFO" }, [VAR_USER] = { "REMOTE_USER" }, + [VAR_TLS] = { "HTTPS" }, [VAR_REDIRECT] = { "REDIRECT_STATUS", redirect_status }, [VAR_SERVER_NAME] = { "SERVER_NAME", local_addr }, [VAR_SERVER_ADDR] = { "SERVER_ADDR", local_addr }, @@ -143,6 +145,7 @@ struct env_var *uh_get_process_vars(struct client *cl, struct path_info *pi) extra_vars[VAR_METHOD].value = http_methods[req->method]; extra_vars[VAR_PATH_INFO].value = pi->info; extra_vars[VAR_USER].value = req->realm ? req->realm->user : NULL; + extra_vars[VAR_TLS].value = cl->tls ? "on" : NULL; snprintf(redirect_status, sizeof(redirect_status), "%d", req->redirect_status); -- 1.8.3.2 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel